diff --git a/_data/engine-cli/docker.yaml b/_data/engine-cli/docker.yaml index cfed41624a..959b53d912 100644 --- a/_data/engine-cli/docker.yaml +++ b/_data/engine-cli/docker.yaml @@ -2,6 +2,7 @@ command: docker cname: - docker attach - docker build +- docker builder - docker checkpoint - docker commit - docker config @@ -10,6 +11,7 @@ cname: - docker create - docker deploy - docker diff +- docker engine - docker events - docker exec - docker export @@ -59,6 +61,7 @@ cname: clink: - docker_attach.yaml - docker_build.yaml +- docker_builder.yaml - docker_checkpoint.yaml - docker_commit.yaml - docker_config.yaml @@ -67,6 +70,7 @@ clink: - docker_create.yaml - docker_deploy.yaml - docker_diff.yaml +- docker_engine.yaml - docker_events.yaml - docker_exec.yaml - docker_export.yaml diff --git a/_data/engine-cli/docker_build.yaml b/_data/engine-cli/docker_build.yaml index 66c4c2f474..a120fc306f 100644 --- a/_data/engine-cli/docker_build.yaml +++ b/_data/engine-cli/docker_build.yaml @@ -293,6 +293,16 @@ options: experimentalcli: false kubernetes: false swarm: false +- option: progress + value_type: string + default_value: auto + description: | + Set type of progress output (auto, plain, tty). Use plain to show container output + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false - option: pull value_type: bool default_value: "false" @@ -321,6 +331,17 @@ options: experimentalcli: false kubernetes: false swarm: false +- option: secret + value_type: stringArray + default_value: '[]' + description: | + Secret file to expose to the build (only if BuildKit enabled): id=mysecret,src=/local/secret + deprecated: false + min_api_version: "1.39" + experimental: false + experimentalcli: false + kubernetes: false + swarm: false - option: security-opt value_type: stringSlice default_value: '[]' @@ -349,6 +370,17 @@ options: experimentalcli: false kubernetes: false swarm: false +- option: ssh + value_type: stringArray + default_value: '[]' + description: | + SSH agent socket or keys to expose to the build (only if BuildKit enabled) (format: default|[=|[,]]) + deprecated: false + min_api_version: "1.39" + experimental: false + experimentalcli: false + kubernetes: false + swarm: false - option: stream value_type: bool default_value: "false" @@ -477,21 +509,27 @@ examples: "### Build with PATH\n\n```bash\n$ docker build .\n\nUploading context build an image on.\n\nA good example is `http_proxy` or source versions for pulling intermediate\nfiles. The `ARG` instruction lets Dockerfile authors define values that users\ncan set at build-time using the `--build-arg` flag:\n\n```bash\n$ docker - build --build-arg HTTP_PROXY=http://10.20.30.2:1234 .\n```\n\nThis flag allows you - to pass the build-time variables that are\naccessed like regular environment variables - in the `RUN` instruction of the\nDockerfile. Also, these values don't persist in - the intermediate or final images\nlike `ENV` values do.\n\nUsing this flag will - not alter the output you see when the `ARG` lines from the\nDockerfile are echoed - during the build process.\n\nFor detailed information on using `ARG` and `ENV` instructions, - see the\n[Dockerfile reference](../builder.md).\n\n### Optional security options - (--security-opt)\n\nThis flag is only supported on a daemon running on Windows, - and only supports\nthe `credentialspec` option. The `credentialspec` must be in - the format\n`file://spec.txt` or `registry://keyname`.\n\n### Specify isolation - technology for container (--isolation)\n\nThis option is useful in situations where - you are running Docker containers on\nWindows. The `--isolation=` option - sets a container's isolation\ntechnology. On Linux, the only supported is the `default` - option which uses\nLinux namespaces. On Microsoft Windows, you can specify these - values:\n\n\n| Value | Description |\n|-----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| + build --build-arg HTTP_PROXY=http://10.20.30.2:1234 --build-arg FTP_PROXY=http://40.50.60.5:4567 + .\n```\n\nThis flag allows you to pass the build-time variables that are\naccessed + like regular environment variables in the `RUN` instruction of the\nDockerfile. + Also, these values don't persist in the intermediate or final images\nlike `ENV` + values do. You must add `--build-arg` for each build argument. \n\nUsing this + flag will not alter the output you see when the `ARG` lines from the\nDockerfile + are echoed during the build process.\n\nFor detailed information on using `ARG` + and `ENV` instructions, see the\n[Dockerfile reference](../builder.md).\n\nYou may + also use the `--build-arg` flag without a value, in which case the value\nfrom the + local environment will be propagated into the Docker container being\nbuilt:\n\n```bash\n$ + export HTTP_PROXY=http://10.20.30.2:1234\n$ docker build --build-arg HTTP_PROXY + .\n```\n\nThis is similar to how `docker run -e` works. Refer to the [`docker run` + documentation](https://docs.docker.com/engine/reference/commandline/run/#set-environment-variables--e---env---env-file)\nfor + more information.\n\n### Optional security options (--security-opt)\n\nThis flag + is only supported on a daemon running on Windows, and only supports\nthe `credentialspec` + option. The `credentialspec` must be in the format\n`file://spec.txt` or `registry://keyname`.\n\n### + Specify isolation technology for container (--isolation)\n\nThis option is useful + in situations where you are running Docker containers on\nWindows. The `--isolation=` + option sets a container's isolation\ntechnology. On Linux, the only supported is + the `default` option which uses\nLinux namespaces. On Microsoft Windows, you can + specify these values:\n\n\n| Value | Description |\n|-----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `default` | Use the value specified by the Docker daemon's `--exec-opt` . If the `daemon` does not specify an isolation technology, Microsoft Windows uses `process` as its default value. |\n| `process` | Namespace isolation only. |\n| @@ -519,19 +557,18 @@ examples: "### Build with PATH\n\n```bash\n$ docker build .\n\nUploading context sharing layers between\nimages (saving space).\n\nFor most use cases, multi-stage are a better alternative, as they give more\nfine-grained control over your build, and can take advantage of future\noptimizations in the builder. Refer to the [use - multi-stage builds](https://docs.docker.com/engine/userguide/eng-image/multistage-build/)\nsection + multi-stage builds](https://docs.docker.com/develop/develop-images/multistage-build/)\nsection in the userguide for more information.\n\n\n#### Known limitations\n\nThe `--squash` option has a number of known limitations:\n\n- When squashing layers, the resulting - image cannot take advantage of layer \n sharing with other images, and may use - significantly more space. Sharing the\n base image is still supported.\n- When - using this option you may see significantly more space used due to\n storing two - copies of the image, one for the build cache with all the cache\n layers in tact, - and one for the squashed version.\n- While squashing layers may produce smaller - images, it may have a negative\n impact on performance, as a single layer takes - longer to extract, and\n downloading a single layer cannot be parallelized.\n- - When attempting to squash an image that does not make changes to the\n filesystem - (for example, the Dockerfile only contains `ENV` instructions),\n the squash step - will fail (see [issue #33823](https://github.com/moby/moby/issues/33823)\n\n#### + image cannot take advantage of layer\n sharing with other images, and may use significantly + more space. Sharing the\n base image is still supported.\n- When using this option + you may see significantly more space used due to\n storing two copies of the image, + one for the build cache with all the cache\n layers in tact, and one for the squashed + version.\n- While squashing layers may produce smaller images, it may have a negative\n + \ impact on performance, as a single layer takes longer to extract, and\n downloading + a single layer cannot be parallelized.\n- When attempting to squash an image that + does not make changes to the\n filesystem (for example, the Dockerfile only contains + `ENV` instructions),\n the squash step will fail (see [issue #33823](https://github.com/moby/moby/issues/33823)\n\n#### Prerequisites\n\nThe example on this page is using experimental mode in Docker 1.13.\n\nExperimental mode can be enabled by using the `--experimental` flag when starting the Docker daemon or setting `experimental: true` in the `daemon.json` configuration file.\n\nBy @@ -551,7 +588,7 @@ examples: "### Build with PATH\n\n```bash\n$ docker build .\n\nUploading context >> /hello\nRUN touch remove_me /remove_me\nENV HELLO world\nRUN rm /remove_me\n```\n\nAn image named `test` is built with `--squash` argument.\n\n```bash\n$ docker build --squash -t test .\n\n[...]\n```\n\nIf everything is right, the history will look - like this:\n\n```bash\n$ docker history test \n\nIMAGE CREATED CREATED + like this:\n\n```bash\n$ docker history test\n\nIMAGE CREATED CREATED BY SIZE COMMENT\n4e10cb5b4cac \ 3 seconds ago 12 B \ merge sha256:88a7b0112a41826885df0e7072698006ee8f621c6ab99fca7fe9151d7b599702 diff --git a/_data/engine-cli/docker_builder.yaml b/_data/engine-cli/docker_builder.yaml new file mode 100644 index 0000000000..aa1464ce9a --- /dev/null +++ b/_data/engine-cli/docker_builder.yaml @@ -0,0 +1,16 @@ +command: docker builder +short: Manage builds +long: Manage builds +usage: docker builder +pname: docker +plink: docker.yaml +cname: +- docker builder prune +clink: +- docker_builder_prune.yaml +deprecated: false +experimental: false +experimentalcli: false +kubernetes: false +swarm: false + diff --git a/_data/engine-cli/docker_builder_prune.yaml b/_data/engine-cli/docker_builder_prune.yaml new file mode 100644 index 0000000000..820ed9d98a --- /dev/null +++ b/_data/engine-cli/docker_builder_prune.yaml @@ -0,0 +1,51 @@ +command: docker builder prune +short: Remove build cache +long: Remove build cache +usage: docker builder prune +pname: docker builder +plink: docker_builder.yaml +options: +- option: all + shorthand: a + value_type: bool + default_value: "false" + description: Remove all unused images, not just dangling ones + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: filter + value_type: filter + description: Provide filter values (e.g. 'unused-for=24h') + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: force + shorthand: f + value_type: bool + default_value: "false" + description: Do not prompt for confirmation + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: keep-storage + value_type: bytes + default_value: "0" + description: Amount of disk space to keep for cache + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +deprecated: false +min_api_version: "1.39" +experimental: false +experimentalcli: false +kubernetes: false +swarm: false + diff --git a/_data/engine-cli/docker_checkpoint.yaml b/_data/engine-cli/docker_checkpoint.yaml index 970f801688..d170105891 100644 --- a/_data/engine-cli/docker_checkpoint.yaml +++ b/_data/engine-cli/docker_checkpoint.yaml @@ -18,4 +18,5 @@ experimental: true experimentalcli: false kubernetes: false swarm: false +os_type: linux diff --git a/_data/engine-cli/docker_checkpoint_create.yaml b/_data/engine-cli/docker_checkpoint_create.yaml index c21eac46c2..c45b1f5228 100644 --- a/_data/engine-cli/docker_checkpoint_create.yaml +++ b/_data/engine-cli/docker_checkpoint_create.yaml @@ -28,4 +28,5 @@ experimental: true experimentalcli: false kubernetes: false swarm: false +os_type: linux diff --git a/_data/engine-cli/docker_checkpoint_ls.yaml b/_data/engine-cli/docker_checkpoint_ls.yaml index 4f37970d31..2d5966a347 100644 --- a/_data/engine-cli/docker_checkpoint_ls.yaml +++ b/_data/engine-cli/docker_checkpoint_ls.yaml @@ -20,4 +20,5 @@ experimental: true experimentalcli: false kubernetes: false swarm: false +os_type: linux diff --git a/_data/engine-cli/docker_checkpoint_rm.yaml b/_data/engine-cli/docker_checkpoint_rm.yaml index 95bcadddd4..eab14820c7 100644 --- a/_data/engine-cli/docker_checkpoint_rm.yaml +++ b/_data/engine-cli/docker_checkpoint_rm.yaml @@ -20,4 +20,5 @@ experimental: true experimentalcli: false kubernetes: false swarm: false +os_type: linux diff --git a/_data/engine-cli/docker_container_create.yaml b/_data/engine-cli/docker_container_create.yaml index e3f2a6790a..0801342d64 100644 --- a/_data/engine-cli/docker_container_create.yaml +++ b/_data/engine-cli/docker_container_create.yaml @@ -82,6 +82,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: windows - option: cpu-percent value_type: int64 default_value: "0" @@ -91,6 +92,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: windows - option: cpu-period value_type: int64 default_value: "0" @@ -394,6 +396,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: windows - option: io-maxiops value_type: uint64 default_value: "0" @@ -403,6 +406,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: windows - option: ip value_type: string description: IPv4 address (e.g., 172.30.100.104) diff --git a/_data/engine-cli/docker_container_run.yaml b/_data/engine-cli/docker_container_run.yaml index 37c5e48681..c83b017d70 100644 --- a/_data/engine-cli/docker_container_run.yaml +++ b/_data/engine-cli/docker_container_run.yaml @@ -82,6 +82,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: windows - option: cpu-percent value_type: int64 default_value: "0" @@ -91,6 +92,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: windows - option: cpu-period value_type: int64 default_value: "0" @@ -412,6 +414,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: windows - option: io-maxiops value_type: uint64 default_value: "0" @@ -421,6 +424,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: windows - option: ip value_type: string description: IPv4 address (e.g., 172.30.100.104) diff --git a/_data/engine-cli/docker_container_start.yaml b/_data/engine-cli/docker_container_start.yaml index a14deea297..e31d6be262 100644 --- a/_data/engine-cli/docker_container_start.yaml +++ b/_data/engine-cli/docker_container_start.yaml @@ -23,6 +23,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: linux - option: checkpoint-dir value_type: string description: Use a custom checkpoint storage directory @@ -31,6 +32,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: linux - option: detach-keys value_type: string description: Override the key sequence for detaching a container diff --git a/_data/engine-cli/docker_create.yaml b/_data/engine-cli/docker_create.yaml index dac8c8f7f5..713288a425 100644 --- a/_data/engine-cli/docker_create.yaml +++ b/_data/engine-cli/docker_create.yaml @@ -93,6 +93,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: windows - option: cpu-percent value_type: int64 default_value: "0" @@ -102,6 +103,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: windows - option: cpu-period value_type: int64 default_value: "0" @@ -405,6 +407,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: windows - option: io-maxiops value_type: uint64 default_value: "0" @@ -414,6 +417,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: windows - option: ip value_type: string description: IPv4 address (e.g., 172.30.100.104) @@ -961,7 +965,7 @@ examples: |- Then, a user could ask `udev` to execute a script that would `docker exec my-container mknod newDevX c 42 ` the required device when it is added. - NOTE: initially present devices still need to be explicitely added to + NOTE: initially present devices still need to be explicitly added to the create/run command deprecated: false experimental: false diff --git a/_data/engine-cli/docker_deploy.yaml b/_data/engine-cli/docker_deploy.yaml index 0ec01f06df..d34d90655f 100644 --- a/_data/engine-cli/docker_deploy.yaml +++ b/_data/engine-cli/docker_deploy.yaml @@ -19,13 +19,21 @@ options: shorthand: c value_type: stringSlice default_value: '[]' - description: Path to a Compose file + description: Path to a Compose file, or "-" to read from stdin deprecated: false min_api_version: "1.25" experimental: false experimentalcli: false kubernetes: false swarm: false +- option: namespace + value_type: string + description: Kubernetes namespace to use + deprecated: false + experimental: false + experimentalcli: false + kubernetes: true + swarm: false - option: prune value_type: bool default_value: "false" @@ -122,5 +130,5 @@ min_api_version: "1.25" experimental: true experimentalcli: false kubernetes: false -swarm: true +swarm: false diff --git a/_data/engine-cli/docker_engine.yaml b/_data/engine-cli/docker_engine.yaml new file mode 100644 index 0000000000..765ab27d53 --- /dev/null +++ b/_data/engine-cli/docker_engine.yaml @@ -0,0 +1,20 @@ +command: docker engine +short: Manage the docker engine +long: Manage the docker engine +usage: docker engine COMMAND +pname: docker +plink: docker.yaml +cname: +- docker engine activate +- docker engine check +- docker engine update +clink: +- docker_engine_activate.yaml +- docker_engine_check.yaml +- docker_engine_update.yaml +deprecated: false +experimental: false +experimentalcli: false +kubernetes: false +swarm: false + diff --git a/_data/engine-cli/docker_engine_activate.yaml b/_data/engine-cli/docker_engine_activate.yaml new file mode 100644 index 0000000000..f62725866d --- /dev/null +++ b/_data/engine-cli/docker_engine_activate.yaml @@ -0,0 +1,95 @@ +command: docker engine activate +short: Activate Enterprise Edition +long: | + Activate Enterprise Edition. + + With this command you may apply an existing Docker enterprise license, or + interactively download one from Docker. In the interactive exchange, you can + sign up for a new trial, or download an existing license. If you are + currently running a Community Edition engine, the daemon will be updated to + the Enterprise Edition Docker engine with additional capabilities and long + term support. + + For more information about different Docker Enterprise license types visit + https://www.docker.com/licenses + + For non-interactive scriptable deployments, download your license from + https://hub.docker.com/ then specify the file with the '--license' flag. +usage: docker engine activate [OPTIONS] +pname: docker engine +plink: docker_engine.yaml +options: +- option: containerd + value_type: string + description: override default location of containerd endpoint + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: display-only + value_type: bool + default_value: "false" + description: only display license information and exit + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: engine-image + value_type: string + description: Specify engine image + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: format + value_type: string + description: Pretty-print licenses using a Go template + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: license + value_type: string + description: License File + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: quiet + value_type: bool + default_value: "false" + description: Only display available licenses by ID + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: registry-prefix + value_type: string + default_value: docker.io/store/docker + description: Override the default location where engine images are pulled + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: version + value_type: string + description: | + Specify engine version (default is to use currently running version) + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +deprecated: false +experimental: false +experimentalcli: false +kubernetes: false +swarm: false + diff --git a/_data/engine-cli/docker_engine_check.yaml b/_data/engine-cli/docker_engine_check.yaml new file mode 100644 index 0000000000..2a4c3ca390 --- /dev/null +++ b/_data/engine-cli/docker_engine_check.yaml @@ -0,0 +1,85 @@ +command: docker engine check +short: Check for available engine updates +long: Check for available engine updates +usage: docker engine check [OPTIONS] +pname: docker engine +plink: docker_engine.yaml +options: +- option: containerd + value_type: string + description: override default location of containerd endpoint + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: downgrades + value_type: bool + default_value: "false" + description: Report downgrades (default omits older versions) + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: engine-image + value_type: string + description: | + Specify engine image (default uses the same image as currently running) + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: format + value_type: string + description: Pretty-print updates using a Go template + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: pre-releases + value_type: bool + default_value: "false" + description: Include pre-release versions + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: quiet + shorthand: q + value_type: bool + default_value: "false" + description: Only display available versions + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: registry-prefix + value_type: string + default_value: docker.io/store/docker + description: | + Override the existing location where engine images are pulled + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: upgrades + value_type: bool + default_value: "true" + description: Report available upgrades + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +deprecated: false +experimental: false +experimentalcli: false +kubernetes: false +swarm: false + diff --git a/_data/engine-cli/docker_engine_update.yaml b/_data/engine-cli/docker_engine_update.yaml new file mode 100644 index 0000000000..1ea2f7495f --- /dev/null +++ b/_data/engine-cli/docker_engine_update.yaml @@ -0,0 +1,47 @@ +command: docker engine update +short: Update a local engine +long: Update a local engine +usage: docker engine update [OPTIONS] +pname: docker engine +plink: docker_engine.yaml +options: +- option: containerd + value_type: string + description: override default location of containerd endpoint + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: engine-image + value_type: string + description: | + Specify engine image (default uses the same image as currently running) + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: registry-prefix + value_type: string + default_value: docker.io/store/docker + description: Override the current location where engine images are pulled + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: version + value_type: string + description: Specify engine version + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +deprecated: false +experimental: false +experimentalcli: false +kubernetes: false +swarm: false + diff --git a/_data/engine-cli/docker_events.yaml b/_data/engine-cli/docker_events.yaml index fd42f278c5..080b082ca2 100644 --- a/_data/engine-cli/docker_events.yaml +++ b/_data/engine-cli/docker_events.yaml @@ -19,6 +19,7 @@ long: |- - `die` - `exec_create` - `exec_detach` + - `exec_die` - `exec_start` - `export` - `health_status` diff --git a/_data/engine-cli/docker_export.yaml b/_data/engine-cli/docker_export.yaml index 1959106442..b75e3d580f 100644 --- a/_data/engine-cli/docker_export.yaml +++ b/_data/engine-cli/docker_export.yaml @@ -6,7 +6,7 @@ long: |- the container, `docker export` will export the contents of the *underlying* directory, not the contents of the volume. - Refer to [Backup, restore, or migrate data volumes](https://docs.docker.com/engine/tutorials/dockervolumes/#backup-restore-or-migrate-data-volumes) + Refer to [Backup, restore, or migrate data volumes](https://docs.docker.com/v17.03/engine/tutorials/dockervolumes/#backup-restore-or-migrate-data-volumes) in the user guide for examples on exporting data in a volume. usage: docker export [OPTIONS] CONTAINER pname: docker diff --git a/_data/engine-cli/docker_history.yaml b/_data/engine-cli/docker_history.yaml index 3ef2e2dcee..316bb6b769 100644 --- a/_data/engine-cli/docker_history.yaml +++ b/_data/engine-cli/docker_history.yaml @@ -89,19 +89,13 @@ examples: |- `table` directive, will include column headers as well. The following example uses a template without headers and outputs the - `ID` and `CreatedSince` entries separated by a colon for all images: + `ID` and `CreatedSince` entries separated by a colon for the `busybox` image: ```bash - $ docker images --format "{{.ID}}: {{.Created}} ago" + $ docker history --format "{{.ID}}: {{.CreatedSince}}" busybox - cc1b61406712: 2 weeks ago - : 2 weeks ago - : 2 weeks ago - : 2 weeks ago - : 2 weeks ago - : 3 weeks ago - : 3 weeks ago - : 3 weeks ago + f6e427c148a7: 4 weeks ago + : 4 weeks ago ``` deprecated: false experimental: false diff --git a/_data/engine-cli/docker_image_build.yaml b/_data/engine-cli/docker_image_build.yaml index 8621343da4..eee1f8a55b 100644 --- a/_data/engine-cli/docker_image_build.yaml +++ b/_data/engine-cli/docker_image_build.yaml @@ -191,6 +191,16 @@ options: experimentalcli: false kubernetes: false swarm: false +- option: progress + value_type: string + default_value: auto + description: | + Set type of progress output (auto, plain, tty). Use plain to show container output + deprecated: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false - option: pull value_type: bool default_value: "false" @@ -219,6 +229,17 @@ options: experimentalcli: false kubernetes: false swarm: false +- option: secret + value_type: stringArray + default_value: '[]' + description: | + Secret file to expose to the build (only if BuildKit enabled): id=mysecret,src=/local/secret + deprecated: false + min_api_version: "1.39" + experimental: false + experimentalcli: false + kubernetes: false + swarm: false - option: security-opt value_type: stringSlice default_value: '[]' @@ -247,6 +268,17 @@ options: experimentalcli: false kubernetes: false swarm: false +- option: ssh + value_type: stringArray + default_value: '[]' + description: | + SSH agent socket or keys to expose to the build (only if BuildKit enabled) (format: default|[=|[,]]) + deprecated: false + min_api_version: "1.39" + experimental: false + experimentalcli: false + kubernetes: false + swarm: false - option: stream value_type: bool default_value: "false" diff --git a/_data/engine-cli/docker_image_import.yaml b/_data/engine-cli/docker_image_import.yaml index fd63cfcf51..b2a6656396 100644 --- a/_data/engine-cli/docker_image_import.yaml +++ b/_data/engine-cli/docker_image_import.yaml @@ -23,6 +23,15 @@ options: experimentalcli: false kubernetes: false swarm: false +- option: platform + value_type: string + description: Set platform if server is multi-platform capable + deprecated: false + min_api_version: "1.32" + experimental: true + experimentalcli: false + kubernetes: false + swarm: false deprecated: false experimental: false experimentalcli: false diff --git a/_data/engine-cli/docker_import.yaml b/_data/engine-cli/docker_import.yaml index b80b96792a..c8949c1273 100644 --- a/_data/engine-cli/docker_import.yaml +++ b/_data/engine-cli/docker_import.yaml @@ -35,6 +35,15 @@ options: experimentalcli: false kubernetes: false swarm: false +- option: platform + value_type: string + description: Set platform if server is multi-platform capable + deprecated: false + min_api_version: "1.32" + experimental: true + experimentalcli: false + kubernetes: false + swarm: false examples: |- ### Import from a remote location diff --git a/_data/engine-cli/docker_login.yaml b/_data/engine-cli/docker_login.yaml index c86ba0b06c..1737fee756 100644 --- a/_data/engine-cli/docker_login.yaml +++ b/_data/engine-cli/docker_login.yaml @@ -25,49 +25,49 @@ long: "Login to a registry.\n\n### Login to a self-hosted registry\n\nIf you wan helpers and where\nyou can download them from:\n\n- D-Bus Secret Service: https://github.com/docker/docker-credential-helpers/releases\n- Apple macOS keychain: https://github.com/docker/docker-credential-helpers/releases\n- Microsoft Windows Credential Manager: https://github.com/docker/docker-credential-helpers/releases\n- - [pass](https://www.passwordstore.org/): https://github.com/docker/docker-credential-helpers/releases\n\nYou - need to specify the credentials store in `$HOME/.docker/config.json`\nto tell the - docker engine to use it. The value of the config property should be\nthe suffix - of the program to use (i.e. everything after `docker-credential-`).\nFor example, - to use `docker-credential-osxkeychain`:\n\n```json\n{\n\t\"credsStore\": \"osxkeychain\"\n}\n```\n\nIf - you are currently logged in, run `docker logout` to remove\nthe credentials from - the file and run `docker login` again.\n\n### Default behavior\n\nBy default, Docker - looks for the native binary on each of the platforms, i.e.\n\"osxkeychain\" on macOS, - \"wincred\" on windows, and \"pass\" on Linux. A special\ncase is that on Linux, - Docker will fall back to the \"secretservice\" binary if\nit cannot find the \"pass\" - binary. If none of these binaries are present, it\nstores the credentials (i.e. - password) in base64 encoding in the config files\ndescribed above.\n\n### Credential - helper protocol\n\nCredential helpers can be any program or script that follows - a very simple protocol.\nThis protocol is heavily inspired by Git, but it differs - in the information shared.\n\nThe helpers always use the first argument in the command - to identify the action.\nThere are only three possible values for that argument: - `store`, `get`, and `erase`.\n\nThe `store` command takes a JSON payload from the - standard input. That payload carries\nthe server address, to identify the credential, - the user name, and either a password\nor an identity token.\n\n```json\n{\n\t\"ServerURL\": - \"https://index.docker.io/v1\",\n\t\"Username\": \"david\",\n\t\"Secret\": \"passw0rd1\"\n}\n```\n\nIf - the secret being stored is an identity token, the Username should be set to\n``.\n\nThe - `store` command can write error messages to `STDOUT` that the docker engine\nwill - show if there was an issue.\n\nThe `get` command takes a string payload from the - standard input. That payload carries\nthe server address that the docker engine - needs credentials for. This is\nan example of that payload: `https://index.docker.io/v1`.\n\nThe - `get` command writes a JSON payload to `STDOUT`. Docker reads the user name\nand - password from this payload:\n\n```json\n{\n\t\"Username\": \"david\",\n\t\"Secret\": - \"passw0rd1\"\n}\n```\n\nThe `erase` command takes a string payload from `STDIN`. - That payload carries\nthe server address that the docker engine wants to remove - credentials for. This is\nan example of that payload: `https://index.docker.io/v1`.\n\nThe - `erase` command can write error messages to `STDOUT` that the docker engine\nwill - show if there was an issue.\n\n### Credential helpers\n\nCredential helpers are - similar to the credential store above, but act as the\ndesignated programs to handle - credentials for *specific registries*. The default\ncredential store (`credsStore` - or the config file itself) will not be used for\noperations concerning credentials - of the specified registries.\n\n### Logging out\n\nIf you are currently logged in, - run `docker logout` to remove\nthe credentials from the default store.\n\nCredential - helpers are specified in a similar way to `credsStore`, but\nallow for multiple - helpers to be configured at a time. Keys specify the\nregistry domain, and values - specify the suffix of the program to use\n(i.e. everything after `docker-credential-`).\nFor - example:\n\n```json\n{\n \"credHelpers\": {\n \"registry.example.com\": \"registryhelper\",\n - \ \"awesomereg.example.org\": \"hip-star\",\n \"unicorn.example.io\": \"vcbait\"\n - \ }\n}\n```" + [pass](https://www.passwordstore.org/): https://github.com/docker/docker-credential-helpers/releases\n\n#### + Configure the credentials store\n\nYou need to specify the credentials store in + `$HOME/.docker/config.json`\nto tell the docker engine to use it. The value of the + config property should be\nthe suffix of the program to use (i.e. everything after + `docker-credential-`).\nFor example, to use `docker-credential-osxkeychain`:\n\n```json\n{\n\t\"credsStore\": + \"osxkeychain\"\n}\n```\n\nIf you are currently logged in, run `docker logout` to + remove\nthe credentials from the file and run `docker login` again.\n\n#### Default + behavior\n\nBy default, Docker looks for the native binary on each of the platforms, + i.e.\n\"osxkeychain\" on macOS, \"wincred\" on windows, and \"pass\" on Linux. A + special\ncase is that on Linux, Docker will fall back to the \"secretservice\" binary + if\nit cannot find the \"pass\" binary. If none of these binaries are present, it\nstores + the credentials (i.e. password) in base64 encoding in the config files\ndescribed + above.\n\n#### Credential helper protocol\n\nCredential helpers can be any program + or script that follows a very simple protocol.\nThis protocol is heavily inspired + by Git, but it differs in the information shared.\n\nThe helpers always use the + first argument in the command to identify the action.\nThere are only three possible + values for that argument: `store`, `get`, and `erase`.\n\nThe `store` command takes + a JSON payload from the standard input. That payload carries\nthe server address, + to identify the credential, the user name, and either a password\nor an identity + token.\n\n```json\n{\n\t\"ServerURL\": \"https://index.docker.io/v1\",\n\t\"Username\": + \"david\",\n\t\"Secret\": \"passw0rd1\"\n}\n```\n\nIf the secret being stored is + an identity token, the Username should be set to\n``.\n\nThe `store` command + can write error messages to `STDOUT` that the docker engine\nwill show if there + was an issue.\n\nThe `get` command takes a string payload from the standard input. + That payload carries\nthe server address that the docker engine needs credentials + for. This is\nan example of that payload: `https://index.docker.io/v1`.\n\nThe `get` + command writes a JSON payload to `STDOUT`. Docker reads the user name\nand password + from this payload:\n\n```json\n{\n\t\"Username\": \"david\",\n\t\"Secret\": \"passw0rd1\"\n}\n```\n\nThe + `erase` command takes a string payload from `STDIN`. That payload carries\nthe server + address that the docker engine wants to remove credentials for. This is\nan example + of that payload: `https://index.docker.io/v1`.\n\nThe `erase` command can write + error messages to `STDOUT` that the docker engine\nwill show if there was an issue.\n\n### + Credential helpers\n\nCredential helpers are similar to the credential store above, + but act as the\ndesignated programs to handle credentials for *specific registries*. + The default\ncredential store (`credsStore` or the config file itself) will not + be used for\noperations concerning credentials of the specified registries.\n\n#### + Configure credential helpers\n\nIf you are currently logged in, run `docker logout` + to remove\nthe credentials from the default store.\n\nCredential helpers are specified + in a similar way to `credsStore`, but\nallow for multiple helpers to be configured + at a time. Keys specify the\nregistry domain, and values specify the suffix of the + program to use\n(i.e. everything after `docker-credential-`).\nFor example:\n\n```json\n{\n + \ \"credHelpers\": {\n \"registry.example.com\": \"registryhelper\",\n \"awesomereg.example.org\": + \"hip-star\",\n \"unicorn.example.io\": \"vcbait\"\n }\n}\n```" usage: docker login [OPTIONS] [SERVER] pname: docker plink: docker.yaml diff --git a/_data/engine-cli/docker_logs.yaml b/_data/engine-cli/docker_logs.yaml index 8750eee686..188e31543d 100644 --- a/_data/engine-cli/docker_logs.yaml +++ b/_data/engine-cli/docker_logs.yaml @@ -7,7 +7,7 @@ long: |- > the `json-file` or `journald` logging driver. For more information about selecting and configuring logging drivers, refer to - [Configure logging drivers](https://docs.docker.com/engine/admin/logging/overview/). + [Configure logging drivers](https://docs.docker.com/config/containers/logging/configure/). The `docker logs --follow` command will continue streaming the new output from the container's `STDOUT` and `STDERR`. diff --git a/_data/engine-cli/docker_manifest.yaml b/_data/engine-cli/docker_manifest.yaml index fa0fbdc177..82249e3c7b 100644 --- a/_data/engine-cli/docker_manifest.yaml +++ b/_data/engine-cli/docker_manifest.yaml @@ -9,25 +9,25 @@ long: "The `docker manifest` command by itself performs no action. In order to o in the same way as\nan image name in `docker pull` and `docker run` commands, for example.\n\nIdeally a manifest list is created from images that are identical in function for\ndifferent os/arch combinations. For this reason, manifest lists are - often referred to as\n\"multi-arch images.\" However, a user could create a manifest + often referred to as\n\"multi-arch images\". However, a user could create a manifest list that points\nto two images -- one for windows on amd64, and one for darwin on amd64.\n\n### manifest inspect\n\n```\nmanifest inspect --help\n\nUsage: docker - manifest inspect [OPTIONS] [MANIFEST_LIST] MANIFEST\n\nisplay an image manifest, - or manifest list\n\nOptions:\n --help Print usage\n --insecure allow + manifest inspect [OPTIONS] [MANIFEST_LIST] MANIFEST\n\nDisplay an image manifest, + or manifest list\n\nOptions:\n --help Print usage\n --insecure Allow communication with an insecure registry\n -v, --verbose Output additional info including layers and platform\n```\n\n### manifest create \n\n```bash\nUsage: docker - manifest create MANFEST_LIST MANIFEST [MANIFEST...]\n\nCreate a local manifest list - for annotating and pushing to a registry\n\nOptions:\n -a, --amend Amend an existing - manifest list\n --insecure allow communication with an insecure registry\n - \ --help Print usage\n```\n\n### manifest annotate\n```bash\nUsage: docker - manifest annotate [OPTIONS] MANIFEST_LIST MANIFEST\n\nAdd additional information + manifest create MANIFEST_LIST MANIFEST [MANIFEST...]\n\nCreate a local manifest + list for annotating and pushing to a registry\n\nOptions:\n -a, --amend Amend + an existing manifest list\n --insecure Allow communication with an insecure + registry\n --help Print usage\n```\n\n### manifest annotate\n```bash\nUsage: + \ docker manifest annotate [OPTIONS] MANIFEST_LIST MANIFEST\n\nAdd additional information to a local image manifest\n\nOptions:\n --arch string Set architecture\n \ --help Print usage\n --os string Set operating system\n --os-features stringSlice Set operating system feature\n \ --variant string Set architecture variant\n\n```\n\n### manifest push\n```bash\nUsage: docker manifest push [OPTIONS] MANIFEST_LIST\n\nPush a manifest - list to a repository\n\nOptions:\n --help Print usage\n --insecure - \ allow push to an insecure registry\n -p, --purge Remove the local manifest + list to a repository\n\nOptions:\n --help Print usage\n --insecure + \ Allow push to an insecure registry\n -p, --purge Remove the local manifest list after push\n```\n\n### Working with insecure registries\n\nThe manifest command interacts solely with a Docker registry. Because of this, it has no way to query the engine for the list of allowed insecure registries. To allow the CLI to interact @@ -51,7 +51,7 @@ clink: - docker_manifest_create.yaml - docker_manifest_inspect.yaml - docker_manifest_push.yaml -examples: "### inspect an image's manifest object\n \n```bash\n$ docker manifest inspect +examples: "### Inspect an image's manifest object\n \n```bash\n$ docker manifest inspect hello-world\n{\n \"schemaVersion\": 2,\n \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n \ \"config\": {\n \"mediaType\": \"application/vnd.docker.container.image.v1+json\",\n \ \"size\": 1520,\n \"digest\": \"sha256:1815c82652c03bfd8644afda26fb184f2ed891d921b20a0703b46768f9755c57\"\n @@ -64,7 +64,7 @@ examples: "### inspect an image's manifest object\n \n```bash\n$ docker manifest as with other docker commands that take image names, you can refer to an image with or\nwithout a tag, or by digest (e.g. hello-world@sha256:f3b3b28a45160805bb16542c9531888519430e9e6d6ffc09d72261b0d26ff74f).\n\nHere is an example of inspecting an image's manifest with the `--verbose` flag:\n\n```bash\n$ - docker manifest inspect -v hello-world\n{\n \"Ref\": \"docker.io/library/hello-world:latest\",\n + docker manifest inspect --verbose hello-world\n{\n \"Ref\": \"docker.io/library/hello-world:latest\",\n \ \"Digest\": \"sha256:f3b3b28a45160805bb16542c9531888519430e9e6d6ffc09d72261b0d26ff74f\",\n \ \"SchemaV2Manifest\": {\n \"schemaVersion\": 2,\n \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n \"config\": diff --git a/_data/engine-cli/docker_manifest_create.yaml b/_data/engine-cli/docker_manifest_create.yaml index fd49ff5614..9bee33d6bd 100644 --- a/_data/engine-cli/docker_manifest_create.yaml +++ b/_data/engine-cli/docker_manifest_create.yaml @@ -1,7 +1,7 @@ command: docker manifest create short: Create a local manifest list for annotating and pushing to a registry long: Create a local manifest list for annotating and pushing to a registry -usage: docker manifest create MANFEST_LIST MANIFEST [MANIFEST...] +usage: docker manifest create MANIFEST_LIST MANIFEST [MANIFEST...] pname: docker manifest plink: docker_manifest.yaml options: @@ -18,7 +18,7 @@ options: - option: insecure value_type: bool default_value: "false" - description: allow communication with an insecure registry + description: Allow communication with an insecure registry deprecated: false experimental: false experimentalcli: false diff --git a/_data/engine-cli/docker_manifest_inspect.yaml b/_data/engine-cli/docker_manifest_inspect.yaml index c0a54bd0db..8da0a57b6f 100644 --- a/_data/engine-cli/docker_manifest_inspect.yaml +++ b/_data/engine-cli/docker_manifest_inspect.yaml @@ -8,7 +8,7 @@ options: - option: insecure value_type: bool default_value: "false" - description: allow communication with an insecure registry + description: Allow communication with an insecure registry deprecated: false experimental: false experimentalcli: false diff --git a/_data/engine-cli/docker_rmi.yaml b/_data/engine-cli/docker_rmi.yaml index e21b2d3d46..0ea52232fd 100644 --- a/_data/engine-cli/docker_rmi.yaml +++ b/_data/engine-cli/docker_rmi.yaml @@ -43,11 +43,11 @@ examples: |- Error: Conflict, cannot delete image fd484f19954f because it is tagged in multiple repositories, use -f to force 2013/12/11 05:47:16 Error: failed to remove one or more images - $ docker rmi test1 + $ docker rmi test1:latest Untagged: test1:latest - $ docker rmi test2 + $ docker rmi test2:latest Untagged: test2:latest @@ -57,7 +57,7 @@ examples: |- REPOSITORY TAG IMAGE ID CREATED SIZE test latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB) - $ docker rmi test + $ docker rmi test:latest Untagged: test:latest Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8 diff --git a/_data/engine-cli/docker_run.yaml b/_data/engine-cli/docker_run.yaml index d7b59fe2f2..28e07ab825 100644 --- a/_data/engine-cli/docker_run.yaml +++ b/_data/engine-cli/docker_run.yaml @@ -93,6 +93,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: windows - option: cpu-percent value_type: int64 default_value: "0" @@ -102,6 +103,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: windows - option: cpu-period value_type: int64 default_value: "0" @@ -423,6 +425,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: windows - option: io-maxiops value_type: uint64 default_value: "0" @@ -432,6 +435,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: windows - option: ip value_type: string description: IPv4 address (e.g., 172.30.100.104) @@ -1138,7 +1142,7 @@ examples: |- ``` The `my-label` key doesn't specify a value so the label defaults to an empty - string(`""`). To add multiple labels, repeat the label flag (`-l` or `--label`). + string (`""`). To add multiple labels, repeat the label flag (`-l` or `--label`). The `key=value` must be unique to avoid overwriting the label value. If you specify labels with identical keys but different values, each subsequent value @@ -1312,7 +1316,7 @@ examples: |- |:---------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `no` | Do not automatically restart the container when it exits. This is the default. | | `on-failure[:max-retries]` | Restart only if the container exits with a non-zero exit status. Optionally, limit the number of restart retries the Docker daemon attempts. | - | `unless-stopped` | Restart the container unless it is explicitly stopped or Docker itself is stopped or restarted. | + | `unless-stopped` | Restart the container unless it is explicitly stopped or Docker itself is stopped or restarted. | | `always` | Always restart the container regardless of the exit status. When you specify always, the Docker daemon will try to restart the container indefinitely. The container will also always start on daemon startup, regardless of the current state of the container. | ```bash @@ -1323,7 +1327,7 @@ examples: |- so that if the container exits, Docker will restart it. More detailed information on restart policies can be found in the - [Restart Policies (--restart)](../run.md#restart-policies-restart) + [Restart Policies (--restart)](../run.md#restart-policies---restart) section of the Docker run reference page. ### Add entries to container hosts file (--add-host) diff --git a/_data/engine-cli/docker_secret_create.yaml b/_data/engine-cli/docker_secret_create.yaml index 374afa3b74..cece92e299 100644 --- a/_data/engine-cli/docker_secret_create.yaml +++ b/_data/engine-cli/docker_secret_create.yaml @@ -1,8 +1,9 @@ command: docker secret create short: Create a secret from a file or STDIN as content -long: "Creates a secret using standard input or from a file for the secret content. - You must run this command on a manager node. \n\nFor detailed information about - using secrets, refer to [manage sensitive data with Docker secrets](https://docs.docker.com/engine/swarm/secrets/)." +long: |- + Creates a secret using standard input or from a file for the secret content. You must run this command on a manager node. + + For detailed information about using secrets, refer to [manage sensitive data with Docker secrets](https://docs.docker.com/engine/swarm/secrets/). usage: docker secret create [OPTIONS] SECRET [file|-] pname: docker secret plink: docker_secret.yaml @@ -38,7 +39,7 @@ examples: |- ### Create a secret ```bash - $ echo | docker secret create my_secret - + $ printf | docker secret create my_secret - onakdyv307se2tl7nl20anokv diff --git a/_data/engine-cli/docker_service_create.yaml b/_data/engine-cli/docker_service_create.yaml index c980fd5038..3ea004eefe 100644 --- a/_data/engine-cli/docker_service_create.yaml +++ b/_data/engine-cli/docker_service_create.yaml @@ -196,6 +196,17 @@ options: experimentalcli: false kubernetes: false swarm: false +- option: init + value_type: bool + default_value: "false" + description: | + Use an init inside each service container to forward signals and reap processes + deprecated: false + min_api_version: "1.37" + experimental: false + experimentalcli: false + kubernetes: false + swarm: false - option: isolation value_type: string description: Service container isolation mode diff --git a/_data/engine-cli/docker_service_update.yaml b/_data/engine-cli/docker_service_update.yaml index 2769d0c3e2..d311228134 100644 --- a/_data/engine-cli/docker_service_update.yaml +++ b/_data/engine-cli/docker_service_update.yaml @@ -306,6 +306,17 @@ options: experimentalcli: false kubernetes: false swarm: false +- option: init + value_type: bool + default_value: "false" + description: | + Use an init inside each service container to forward signals and reap processes + deprecated: false + min_api_version: "1.37" + experimental: false + experimentalcli: false + kubernetes: false + swarm: false - option: isolation value_type: string description: Service container isolation mode diff --git a/_data/engine-cli/docker_stack.yaml b/_data/engine-cli/docker_stack.yaml index ed80ae2518..3c378f8ac1 100644 --- a/_data/engine-cli/docker_stack.yaml +++ b/_data/engine-cli/docker_stack.yaml @@ -1,7 +1,7 @@ command: docker stack short: Manage Docker stacks long: Manage stacks. -usage: docker stack +usage: docker stack [OPTIONS] pname: docker plink: docker.yaml cname: @@ -22,22 +22,21 @@ options: description: Kubernetes config file deprecated: false experimental: false - experimentalcli: true + experimentalcli: false kubernetes: true swarm: false -- option: namespace +- option: orchestrator value_type: string - default_value: default - description: Kubernetes namespace to use + description: Orchestrator to use (swarm|kubernetes|all) deprecated: false experimental: false - experimentalcli: true - kubernetes: true + experimentalcli: false + kubernetes: false swarm: false deprecated: false min_api_version: "1.25" experimental: false experimentalcli: false -kubernetes: true -swarm: true +kubernetes: false +swarm: false diff --git a/_data/engine-cli/docker_stack_deploy.yaml b/_data/engine-cli/docker_stack_deploy.yaml index 1ad8c25cc0..e4a3992e52 100644 --- a/_data/engine-cli/docker_stack_deploy.yaml +++ b/_data/engine-cli/docker_stack_deploy.yaml @@ -20,13 +20,21 @@ options: shorthand: c value_type: stringSlice default_value: '[]' - description: Path to a Compose file + description: Path to a Compose file, or "-" to read from stdin deprecated: false min_api_version: "1.25" experimental: false experimentalcli: false kubernetes: false swarm: false +- option: namespace + value_type: string + description: Kubernetes namespace to use + deprecated: false + experimental: false + experimentalcli: false + kubernetes: true + swarm: false - option: prune value_type: bool default_value: "false" @@ -63,17 +71,16 @@ inherited_options: description: Kubernetes config file deprecated: false experimental: false - experimentalcli: true + experimentalcli: false kubernetes: true swarm: false -- option: namespace +- option: orchestrator value_type: string - default_value: default - description: Kubernetes namespace to use + description: Orchestrator to use (swarm|kubernetes|all) deprecated: false experimental: false - experimentalcli: true - kubernetes: true + experimentalcli: false + kubernetes: false swarm: false examples: |- ### Compose file @@ -117,7 +124,7 @@ examples: |- `--compose-file` flags. ```bash - $ docker stack deploy --compose-file docker-compose.yml -f docker-compose.prod.yml vossibility + $ docker stack deploy --compose-file docker-compose.yml -c docker-compose.prod.yml vossibility Ignoring unsupported options: links @@ -176,6 +183,6 @@ deprecated: false min_api_version: "1.25" experimental: false experimentalcli: false -kubernetes: true -swarm: true +kubernetes: false +swarm: false diff --git a/_data/engine-cli/docker_stack_ls.yaml b/_data/engine-cli/docker_stack_ls.yaml index 830b1d16a1..6e72b6f387 100644 --- a/_data/engine-cli/docker_stack_ls.yaml +++ b/_data/engine-cli/docker_stack_ls.yaml @@ -2,10 +2,19 @@ command: docker stack ls aliases: list short: List stacks long: Lists the stacks. -usage: docker stack ls +usage: docker stack ls [OPTIONS] pname: docker stack plink: docker_stack.yaml options: +- option: all-namespaces + value_type: bool + default_value: "false" + description: List stacks from all Kubernetes namespaces + deprecated: false + experimental: false + experimentalcli: false + kubernetes: true + swarm: false - option: format value_type: string description: Pretty-print stacks using a Go template @@ -14,23 +23,31 @@ options: experimentalcli: false kubernetes: false swarm: false +- option: namespace + value_type: stringSlice + default_value: '[]' + description: Kubernetes namespaces to use + deprecated: false + experimental: false + experimentalcli: false + kubernetes: true + swarm: false inherited_options: - option: kubeconfig value_type: string description: Kubernetes config file deprecated: false experimental: false - experimentalcli: true + experimentalcli: false kubernetes: true swarm: false -- option: namespace +- option: orchestrator value_type: string - default_value: default - description: Kubernetes namespace to use + description: Orchestrator to use (swarm|kubernetes|all) deprecated: false experimental: false - experimentalcli: true - kubernetes: true + experimentalcli: false + kubernetes: false swarm: false examples: |- The following command shows all stacks and some additional information: @@ -38,9 +55,9 @@ examples: |- ```bash $ docker stack ls - ID SERVICES - vossibility-stack 6 - myapp 2 + ID SERVICES ORCHESTRATOR + myapp 2 Kubernetes + vossibility-stack 6 Swarm ``` ### Formatting @@ -49,10 +66,12 @@ examples: |- Valid placeholders for the Go template are listed below: - | Placeholder | Description | - | ----------- | ------------------ | - | `.Name` | Stack name | - | `.Services` | Number of services | + | Placeholder | Description | + | --------------- | ------------------ | + | `.Name` | Stack name | + | `.Services` | Number of services | + | `.Orchestrator` | Orchestrator name | + | `.Namespace` | Namespace | When using the `--format` option, the `stack ls` command either outputs the data exactly as the template declares or, when using the @@ -70,6 +89,6 @@ deprecated: false min_api_version: "1.25" experimental: false experimentalcli: false -kubernetes: true -swarm: true +kubernetes: false +swarm: false diff --git a/_data/engine-cli/docker_stack_ps.yaml b/_data/engine-cli/docker_stack_ps.yaml index 843816ca78..0a07725782 100644 --- a/_data/engine-cli/docker_stack_ps.yaml +++ b/_data/engine-cli/docker_stack_ps.yaml @@ -15,7 +15,7 @@ options: experimental: false experimentalcli: false kubernetes: false - swarm: true + swarm: false - option: format value_type: string description: Pretty-print tasks using a Go template @@ -24,6 +24,14 @@ options: experimentalcli: false kubernetes: false swarm: false +- option: namespace + value_type: string + description: Kubernetes namespace to use + deprecated: false + experimental: false + experimentalcli: false + kubernetes: true + swarm: false - option: no-resolve value_type: bool default_value: "false" @@ -58,17 +66,16 @@ inherited_options: description: Kubernetes config file deprecated: false experimental: false - experimentalcli: true + experimentalcli: false kubernetes: true swarm: false -- option: namespace +- option: orchestrator value_type: string - default_value: default - description: Kubernetes namespace to use + description: Orchestrator to use (swarm|kubernetes|all) deprecated: false experimental: false - experimentalcli: true - kubernetes: true + experimentalcli: false + kubernetes: false swarm: false examples: |- ### List the tasks that are part of a stack @@ -260,6 +267,6 @@ deprecated: false min_api_version: "1.25" experimental: false experimentalcli: false -kubernetes: true -swarm: true +kubernetes: false +swarm: false diff --git a/_data/engine-cli/docker_stack_rm.yaml b/_data/engine-cli/docker_stack_rm.yaml index 2e95860df7..921809b5fa 100644 --- a/_data/engine-cli/docker_stack_rm.yaml +++ b/_data/engine-cli/docker_stack_rm.yaml @@ -4,26 +4,34 @@ short: Remove one or more stacks long: |- Remove the stack from the swarm. This command has to be run targeting a manager node. -usage: docker stack rm STACK [STACK...] +usage: docker stack rm [OPTIONS] STACK [STACK...] pname: docker stack plink: docker_stack.yaml +options: +- option: namespace + value_type: string + description: Kubernetes namespace to use + deprecated: false + experimental: false + experimentalcli: false + kubernetes: true + swarm: false inherited_options: - option: kubeconfig value_type: string description: Kubernetes config file deprecated: false experimental: false - experimentalcli: true + experimentalcli: false kubernetes: true swarm: false -- option: namespace +- option: orchestrator value_type: string - default_value: default - description: Kubernetes namespace to use + description: Orchestrator to use (swarm|kubernetes|all) deprecated: false experimental: false - experimentalcli: true - kubernetes: true + experimentalcli: false + kubernetes: false swarm: false examples: |- ### Remove a stack @@ -65,6 +73,6 @@ deprecated: false min_api_version: "1.25" experimental: false experimentalcli: false -kubernetes: true -swarm: true +kubernetes: false +swarm: false diff --git a/_data/engine-cli/docker_stack_services.yaml b/_data/engine-cli/docker_stack_services.yaml index 13d2741388..3c12920444 100644 --- a/_data/engine-cli/docker_stack_services.yaml +++ b/_data/engine-cli/docker_stack_services.yaml @@ -15,7 +15,7 @@ options: experimental: false experimentalcli: false kubernetes: false - swarm: true + swarm: false - option: format value_type: string description: Pretty-print services using a Go template @@ -24,6 +24,14 @@ options: experimentalcli: false kubernetes: false swarm: false +- option: namespace + value_type: string + description: Kubernetes namespace to use + deprecated: false + experimental: false + experimentalcli: false + kubernetes: true + swarm: false - option: quiet shorthand: q value_type: bool @@ -40,17 +48,16 @@ inherited_options: description: Kubernetes config file deprecated: false experimental: false - experimentalcli: true + experimentalcli: false kubernetes: true swarm: false -- option: namespace +- option: orchestrator value_type: string - default_value: default - description: Kubernetes namespace to use + description: Orchestrator to use (swarm|kubernetes|all) deprecated: false experimental: false - experimentalcli: true - kubernetes: true + experimentalcli: false + kubernetes: false swarm: false examples: |- The following command shows all services in the `myapp` stack: @@ -82,8 +89,23 @@ examples: |- The currently supported filters are: * id / ID (`--filter id=7be5ei6sqeye`, or `--filter ID=7be5ei6sqeye`) - * name (`--filter name=myapp_web`) + * Swarm: supported + * Kubernetes: not supported * label (`--filter label=key=value`) + * Swarm: supported + * Kubernetes: supported + * mode (`--filter mode=replicated`, or `--filter mode=global`) + * Swarm: not supported + * Kubernetes: supported + * name (`--filter name=myapp_web`) + * Swarm: supported + * Kubernetes: supported + * node (`--filter node=mynode`) + * Swarm: not supported + * Kubernetes: supported + * service (`--filter service=web`) + * Swarm: not supported + * Kubernetes: supported ### Formatting @@ -117,6 +139,6 @@ deprecated: false min_api_version: "1.25" experimental: false experimentalcli: false -kubernetes: true -swarm: true +kubernetes: false +swarm: false diff --git a/_data/engine-cli/docker_start.yaml b/_data/engine-cli/docker_start.yaml index a78f25143f..fe0567d0c9 100644 --- a/_data/engine-cli/docker_start.yaml +++ b/_data/engine-cli/docker_start.yaml @@ -23,6 +23,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: linux - option: checkpoint-dir value_type: string description: Use a custom checkpoint storage directory @@ -31,6 +32,7 @@ options: experimentalcli: false kubernetes: false swarm: false + os_type: linux - option: detach-keys value_type: string description: Override the key sequence for detaching a container diff --git a/_data/engine-cli/docker_stats.yaml b/_data/engine-cli/docker_stats.yaml index 8940ff9911..0b3dd6756b 100644 --- a/_data/engine-cli/docker_stats.yaml +++ b/_data/engine-cli/docker_stats.yaml @@ -6,6 +6,8 @@ long: |- If you want more detailed information about a container's resource usage, use the `/containers/(id)/stats` API endpoint. > **Note**: On Linux, the Docker CLI reports memory usage by subtracting page cache usage from the total memory usage. The API does not perform such a calculation but rather provides the total memory usage and the amount from the page cache so that clients can use the data as needed. + + > **Note**: The `PIDS` column contains the number of processes and kernel threads created by that container. Threads is the term used by Linux kernel. Other equivalent terms are "lightweight process" or "kernel task", etc. A large number in the `PIDS` column combined with a small number of processes (as reported by `ps` or `top`) may indicate that something in the container is creating many threads. usage: docker stats [OPTIONS] [CONTAINER...] pname: docker plink: docker.yaml diff --git a/_data/engine-cli/docker_swarm_init.yaml b/_data/engine-cli/docker_swarm_init.yaml index c1f175d0c0..450963798b 100644 --- a/_data/engine-cli/docker_swarm_init.yaml +++ b/_data/engine-cli/docker_swarm_init.yaml @@ -48,6 +48,27 @@ options: description: | Address or interface to use for data path traffic (format: ) deprecated: false + min_api_version: "1.31" + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: default-addr-pool + value_type: ipNetSlice + default_value: '[]' + description: default address pool in CIDR format + deprecated: false + min_api_version: "1.39" + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +- option: default-addr-pool-mask-length + value_type: uint32 + default_value: "24" + description: default address pool subnet mask length + deprecated: false + min_api_version: "1.39" experimental: false experimentalcli: false kubernetes: false @@ -202,6 +223,14 @@ examples: |- If unspecified, Docker will use the same IP address or interface that is used for the advertise address. + ### `--default-addr-pool` + This flag specifies default subnet pools for global scope networks. + Format example is `--default-addr-pool 30.30.0.0/16 --default-addr-pool 40.40.0.0/16` + + ### `--default-addr-pool-mask-length` + This flag specifies default subnet pools mask length for default-addr-pool. + Format example is `--default-addr-pool-mask-length 24` + ### `--task-history-limit` This flag sets up task history retention limit. diff --git a/_data/engine-cli/docker_swarm_join.yaml b/_data/engine-cli/docker_swarm_join.yaml index 8fdbcf5e59..83768fa239 100644 --- a/_data/engine-cli/docker_swarm_join.yaml +++ b/_data/engine-cli/docker_swarm_join.yaml @@ -30,6 +30,7 @@ options: description: | Address or interface to use for data path traffic (format: ) deprecated: false + min_api_version: "1.31" experimental: false experimentalcli: false kubernetes: false diff --git a/_data/engine-cli/docker_trust_inspect.yaml b/_data/engine-cli/docker_trust_inspect.yaml index 8e4034ce52..58223004b9 100644 --- a/_data/engine-cli/docker_trust_inspect.yaml +++ b/_data/engine-cli/docker_trust_inspect.yaml @@ -23,7 +23,7 @@ examples: "### Get low-level details about signatures for a single image tag\n\n trust inspect alpine:latest\n[\n {\n \"Name\": \"alpine:latest\",\n \"SignedTags\": [\n {\n \"SignedTag\": \"latest\",\n \"Digest\": \"d6bfc3baf615dc9618209a8d607ba2a8103d9c8a405b3bd8741d88b4bef36478\",\n \ \"Signers\": [\n \"Repo Admin\"\n ]\n }\n ],\n \"Signers\": - [],\n \"AdminstrativeKeys\": [\n {\n \"Name\": \"Repository\",\n + [],\n \"AdministrativeKeys\": [\n {\n \"Name\": \"Repository\",\n \ \"Keys\": [\n {\n \"ID\": \"5a46c9aaa82ff150bb7305a2d17d0c521c2d784246807b2dc611f436a69041fd\"\n \ }\n ]\n },\n {\n \"Name\": \"Root\",\n \"Keys\": [\n {\n \"ID\": \"a2489bcac7a79aa67b19b96c4a3bf0c675ffdf00c6d2fabe1a5df1115e80adce\"\n @@ -43,7 +43,7 @@ examples: "### Get low-level details about signatures for a single image tag\n\n \ }\n ]\n },\n {\n \"Name\": \"carol\",\n \"Keys\": [\n {\n \"ID\": \"d32fa8b5ca08273a2880f455fcb318da3dc80aeae1a30610815140deef8f30d9\"\n \ },\n {\n \"ID\": \"9a8bbec6ba2af88a5fad6047d428d17e6d05dbdd03d15b4fc8a9a0e8049cd606\"\n - \ }\n ]\n }\n ],\n \"AdminstrativeKeys\": [\n {\n + \ }\n ]\n }\n ],\n \"AdministrativeKeys\": [\n {\n \ \"Name\": \"Repository\",\n \"Keys\": [\n {\n \"ID\": \"27df2c8187e7543345c2e0bf3a1262e0bc63a72754e9a7395eac3f747ec23a44\"\n }\n \ ]\n },\n {\n \"Name\": \"Root\",\n \"Keys\": [\n @@ -53,7 +53,7 @@ examples: "### Get low-level details about signatures for a single image tag\n\n docker trust inspect unsigned-img\nNo signatures or cannot access unsigned-img\n```\n\nHowever, if other tags are signed in the same image repository,\n`docker trust inspect` reports relevant key information:\n\n```bash\n$ docker trust inspect alpine:unsigned\n[\n - \ {\n \"Name\": \"alpine:unsigned\",\n \"Signers\": [],\n \"AdminstrativeKeys\": + \ {\n \"Name\": \"alpine:unsigned\",\n \"Signers\": [],\n \"AdministrativeKeys\": [\n {\n \"Name\": \"Repository\",\n \"Keys\": [\n {\n \ \"ID\": \"5a46c9aaa82ff150bb7305a2d17d0c521c2d784246807b2dc611f436a69041fd\"\n \ }\n ]\n },\n {\n \"Name\": \"Root\",\n \"Keys\": @@ -72,7 +72,7 @@ examples: "### Get low-level details about signatures for a single image tag\n\n [\n \"Repo Admin\"\n ]\n },\n {\n \ \"SignedTag\": \"latest\",\n \"Digest\": \"d6bfc3baf615dc9618209a8d607ba2a8103d9c8a405b3bd8741d88b4bef36478\",\n \ \"Signers\": [\n \"Repo Admin\"\n ]\n - \ }\n ],\n \"Signers\": [],\n \"AdminstrativeKeys\": + \ }\n ],\n \"Signers\": [],\n \"AdministrativeKeys\": [\n {\n \"Name\": \"Repository\",\n \"Keys\": [\n {\n \"ID\": \"5a46c9aaa82ff150bb7305a2d17d0c521c2d784246807b2dc611f436a69041fd\"\n \ }\n ]\n },\n {\n \"Name\": @@ -95,7 +95,7 @@ examples: "### Get low-level details about signatures for a single image tag\n\n [\n \"Repo Admin\"\n ]\n },\n {\n \ \"SignedTag\": \"latest\",\n \"Digest\": \"d6bfc3baf615dc9618209a8d607ba2a8103d9c8a405b3bd8741d88b4bef36478\",\n \ \"Signers\": [\n \"Repo Admin\"\n ]\n - \ }\n ],\n \"Signers\": [],\n \"AdminstrativeKeys\": + \ }\n ],\n \"Signers\": [],\n \"AdministrativeKeys\": [\n {\n \"Name\": \"Repository\",\n \"Keys\": [\n {\n \"ID\": \"5a46c9aaa82ff150bb7305a2d17d0c521c2d784246807b2dc611f436a69041fd\"\n \ }\n ]\n },\n {\n \"Name\": @@ -108,7 +108,7 @@ examples: "### Get low-level details about signatures for a single image tag\n\n \ },\n {\n \"SignedTag\": \"signer\",\n \"Digest\": \"a6122d79b1e74f70b5dd933b18a6d1f99329a4728011079f06b245205f158fe8\",\n \"Signers\": [\n \"Repo Admin\"\n ]\n }\n ],\n - \ \"Signers\": [],\n \"AdminstrativeKeys\": [\n {\n \"Name\": + \ \"Signers\": [],\n \"AdministrativeKeys\": [\n {\n \"Name\": \"Root\",\n \"Keys\": [\n {\n \"ID\": \"8cdcdef5bd039f4ab5a029126951b5985eebf57cabdcdc4d21f5b3be8bb4ce92\"\n }\n \ ]\n },\n {\n \"Name\": \"Repository\",\n diff --git a/_data/engine-cli/docker_version.yaml b/_data/engine-cli/docker_version.yaml index b83c8675d7..38f161dda6 100644 --- a/_data/engine-cli/docker_version.yaml +++ b/_data/engine-cli/docker_version.yaml @@ -19,6 +19,14 @@ options: experimentalcli: false kubernetes: false swarm: false +- option: kubeconfig + value_type: string + description: Kubernetes config file + deprecated: false + experimental: false + experimentalcli: false + kubernetes: true + swarm: false examples: |- ### Default output diff --git a/_data/toc.yaml b/_data/toc.yaml index c09de218a1..b707aad5de 100644 --- a/_data/toc.yaml +++ b/_data/toc.yaml @@ -1726,6 +1726,8 @@ manuals: section: - title: Access Kubernetes Resources path: /ee/ucp/kubernetes/kube-resources/ + - title: Configure AWS EBS Storage for Kubernetes + path: /ee/ucp/kubernetes/configure-aws-storage/ - title: Deploy a workload path: /ee/ucp/kubernetes/ - title: Deploy a Compose-based app diff --git a/_includes/ee-linux-install-reuse.md b/_includes/ee-linux-install-reuse.md index 38aa83ed50..695196bfc6 100644 --- a/_includes/ee-linux-install-reuse.md +++ b/_includes/ee-linux-install-reuse.md @@ -172,7 +172,7 @@ You only need to set up the repository once, after which you can install Docker For example, if you want to install the 18.09 version run the following: ```bash - sudo yum-config-manager --enable docker-ee-stable-18.09.0 + sudo yum-config-manager --enable docker-ee-stable-18.09 ``` Docker is installed but not started. The `docker` group is created, but no users are added to the group. diff --git a/datacenter/dtr/2.5/reference/api/main.js b/datacenter/dtr/2.5/reference/api/main.js index 48c1d513cf..3bb1091a50 100644 --- a/datacenter/dtr/2.5/reference/api/main.js +++ b/datacenter/dtr/2.5/reference/api/main.js @@ -3,7 +3,7 @@ window.onload = function() { // Build a system const ui = SwaggerUIBundle({ spec: -{"swagger":"2.0","info":{"description":"Docker Trusted Registry has an experimental API that you can use to manage\nDTR repositories, permissions, and settings.\n\n**This API is experimental and subject to change, which could affect future\nbackwards compatibility.**\n","title":"DTR 2.4.0 API Documentation","version":"2.4.0"},"paths":{"/api/v0/accounts/language":{"get":{"description":"Get the chosen language","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Get the chosen language","operationId":"GetLanguage","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Language"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Language"}}}}},"/api/v0/accounts/{namespace}":{"delete":{"description":"Removes a user or organization along with all repositories","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Removes a user or organization along with all repositories","operationId":"DeleteNamespace","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true}],"responses":{"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/accounts/{namespace}/repositories":{"delete":{"description":"Removes all of a user or organization's repositories","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Removes all of a user or organization's repositories","operationId":"DeleteNamespaceRepositories","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true}],"responses":{"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/accounts/{namespace}/webhooks":{"get":{"description":"List the webhook subscriptions for a namespace","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"List the webhook subscriptions for a namespace","operationId":"ListNamespaceWebhooks","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/accounts/{orgname}/teams/{teamname}/repositoryAccess":{"get":{"description":"List repository access grants for a team","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"List repository access grants for a team","operationId":"ListTeamRepoAccess","parameters":[{"type":"string","description":"organization account name","name":"orgname","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListTeamRepoAccess"}},"400":{"description":"the team does not belong to the organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListTeamRepoAccess"}}}}},"/api/v0/accounts/{username}/repositoryAccess/{namespace}/{reponame}":{"get":{"description":"Check a user's access to a repository","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Check a user's access to a repository","operationId":"GetUserRepoAccess","parameters":[{"type":"string","description":"user account name","name":"username","in":"path","required":true},{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.RepoUserAccess"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.RepoUserAccess"}}}}},"/api/v0/accounts/{username}/settings":{"get":{"description":"Check a user's settings","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Check a user's settings","operationId":"GetUserSettings","parameters":[{"type":"string","description":"user account name","name":"username","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.UserSettings"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.UserSettings"}}}},"patch":{"description":"Update a user's settings","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Update a user's settings","operationId":"UpdateUserSettings","parameters":[{"type":"string","description":"user account name","name":"username","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UserSettings"}}],"responses":{"200":{"description":"Successfully updated user settings."},"400":{"description":"INVALID_USER_SETTINGS: The submitted user settings change request contains invalid values."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully updated user settings."}}}},"/api/v0/action_configs/":{"get":{"description":"List all action configs","consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"List all action configs","operationId":"ListActionConfigs","responses":{"200":{"description":"Success, list of action configs returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfigs"}},"default":{"description":"Success, list of action configs returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfigs"}}}},"post":{"description":"Configure actions","consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"Configure actions","operationId":"UpdateActionConfig","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.ActionConfigCreate"}}],"responses":{"202":{"description":"Success.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}}},"/api/v0/action_configs/{action}":{"get":{"description":"Get info about the actionConfig with the given action","consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"Get info about the actionConfig with the given action","operationId":"GetActionConfig","parameters":[{"type":"string","description":"name of action to fetch the config for","name":"action","in":"path","required":true}],"responses":{"200":{"description":"Success, action config info returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}},"default":{"description":"Success, action config info returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}},"delete":{"description":"Delete the action config. The defaults will be used.","consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"Delete the action config. The defaults will be used.","operationId":"DeleteActionConfig","parameters":[{"type":"string","description":"the name of the action to delete the config for","name":"action","in":"path","required":true}],"responses":{"204":{"description":"Success, action config has been deleted."}}}},"/api/v0/content_caches/":{"get":{"description":"List all content caches","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"List all content caches","operationId":"ListContentCaches","responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ContentCache"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ContentCache"}}}}},"post":{"description":"Create content cache","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"Create content cache","operationId":"CreateContentCache","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateContentCache"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.ContentCache"}},"400":{"description":"invalid content cache details"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/content_caches/{contentcacheuuid}":{"get":{"description":"View details of a content cache","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"View details of a content cache","operationId":"GetContentCache","parameters":[{"type":"string","description":"uuid of content cache","name":"contentcacheuuid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ContentCache"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_CONTENT_CACHE: A content cache with the given uuid does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ContentCache"}}}},"delete":{"description":"Remove a content cache","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"Remove a content cache","operationId":"DeleteContentCache","parameters":[{"type":"string","description":"uuid of content cache","name":"contentcacheuuid","in":"path","required":true}],"responses":{"204":{"description":"success or content cache does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_CONTENT_CACHE: A content cache with the given uuid does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/crons/":{"get":{"description":"List all crons","consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"List all crons","operationId":"ListCrons","responses":{"200":{"description":"Success, list of crons returned.","schema":{"$ref":"#/definitions/tmpresponses.Crons"}},"default":{"description":"Success, list of crons returned.","schema":{"$ref":"#/definitions/tmpresponses.Crons"}}}},"post":{"description":"Create / update a periodic task","consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"Create / update a periodic task","operationId":"UpdateCron","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.CronCreate"}}],"responses":{"202":{"description":"Success.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}}}}},"/api/v0/crons/{action}":{"get":{"description":"Get info about the cron with the given action","consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"Get info about the cron with the given action","operationId":"GetCron","parameters":[{"type":"string","description":"action of the cron to fetch","name":"action","in":"path","required":true}],"responses":{"200":{"description":"Success, cron info returned.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}},"default":{"description":"Success, cron info returned.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}}}},"delete":{"description":"Delete the cron. Jobs created from it will not be canceled.","consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"Delete the cron. Jobs created from it will not be canceled.","operationId":"DeleteCron","parameters":[{"type":"string","description":"action of cron to delete","name":"action","in":"path","required":true}],"responses":{"204":{"description":"Success, cron has been deleted."}}}},"/api/v0/events/":{"get":{"description":"Get Events","consumes":["application/json"],"produces":["application/json"],"tags":["events"],"summary":"Get Events","operationId":"GetEvents","parameters":[{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"string","name":"publishedBefore","in":"query"},{"type":"string","name":"publishedAfter","in":"query"},{"type":"string","description":"UUID of the user or organization that performed the event","name":"actorId","in":"query"},{"type":"string","description":"Type of events to filter by","name":"eventType","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Events"}},"400":{"description":"INVALID_PARAMETERS: Unable to parse query parameters"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Events"}}}}},"/api/v0/imagescan/layer/{layerid}":{"get":{"description":"Get the layer info from the given sha","consumes":["application/json"],"produces":["application/json"],"summary":"Get the layer info from the given sha","operationId":"GetLayerFromSha","parameters":[{"type":"string","description":"layer id","name":"layerid","in":"path","required":true}],"responses":{"200":{"description":"Successfully retrieved layer info."},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_LAYER: A layer with the given sha does not exist in the repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved layer info."}}}},"/api/v0/imagescan/repositories/{namespace}/{reponame}/{tag}":{"get":{"description":"Get the summary info on a namespace/repo:tag","consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the summary info on a namespace/repo:tag","operationId":"GetSummaryByManifestDigest","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to include detailed summary results","name":"detailed","in":"query"},{"type":"string","description":"Operating system of the tag","name":"os","in":"query"},{"type":"string","description":"Architecture of the tag","name":"arch","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/schema.TagScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/schema.TagScanSummary"}}}}}},"/api/v0/imagescan/scan":{"post":{"description":"Do a scan or a scan/check of all layers","consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Do a scan or a scan/check of all layers","operationId":"ScanAllLayers","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.ScanOptions"}}],"responses":{"200":{"description":"Successfully submitted all layers to jobrunner for scan/check."},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully submitted all layers to jobrunner for scan/check."}}}},"/api/v0/imagescan/scan/update":{"put":{"description":"Update the vulnerability database for security scanning","consumes":["multipart/form-data","application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Update the vulnerability database for security scanning","operationId":"UpdateVulnDB","parameters":[{"type":"file","description":"Upload file to init database","name":"file","in":"formData"},{"type":"boolean","default":false,"description":"Init or update vuln db in online mode.","name":"online","in":"query"}],"responses":{"200":{"description":"Successfully started to updated vulnerability DB."},"400":{"description":"SCANNING_DB_NOT_READY: Scanning DB is not ready"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully started to updated vulnerability DB."}}}},"/api/v0/imagescan/scan/{namespace}/{reponame}/{tag}/{os}/{arch}":{"post":{"description":"Do a scan or a scan/check of given image","consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Do a scan or a scan/check of given image","operationId":"ScanImage","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"string","description":"operating system of the tag","name":"os","in":"path","required":true},{"type":"string","description":"architecture of the tag","name":"arch","in":"path","required":true}],"responses":{"200":{"description":"Successfully submitted image to jobrunner for scan/check."},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully submitted image to jobrunner for scan/check."}}}},"/api/v0/imagescan/status":{"get":{"description":"Get the status and version of scanning service","consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the status and version of scanning service","operationId":"GetNautilusDBStatus","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/schema.NautilusStatus"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/schema.NautilusStatus"}}}}},"/api/v0/index/autocomplete":{"get":{"description":"Autocompletion for repositories and/or accounts","consumes":["application/json"],"produces":["application/json"],"tags":["index"],"summary":"Autocompletion for repositories and/or accounts","operationId":"Autocomplete","parameters":[{"type":"string","description":"Autocomplete query","name":"query","in":"query","required":true},{"type":"boolean","default":true,"description":"Whether to include repositories in the response","name":"includeRepositories","in":"query"},{"type":"boolean","default":true,"description":"Whether to include accounts in the response","name":"includeAccounts","in":"query"},{"type":"string","description":"Exact repository namespace to limit results to.","name":"namespace","in":"query"},{"type":"number","default":25,"name":"limit","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Autocomplete"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Autocomplete"}}}}},"/api/v0/index/dockersearch":{"get":{"description":"Search Docker repositories","consumes":["application/json"],"produces":["application/json"],"tags":["index"],"summary":"Search Docker repositories","operationId":"Docker Search","parameters":[{"type":"string","description":"Search query","name":"q","in":"query","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.DockerSearch"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.DockerSearch"}}}}},"/api/v0/jobs/":{"get":{"description":"List all jobs ordered by most recently scheduled","consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"List all jobs ordered by most recently scheduled","operationId":"ListJobs","parameters":[{"type":"string","default":"any","description":"Filter jobs by action.","name":"action","in":"query"},{"type":"string","default":"any","description":"Filter jobs by worker ID.","name":"worker","in":"query"},{"type":"string","default":"any","description":"Show only jobs that are running.","name":"running","in":"query"},{"type":"integer","default":0,"description":"Return most recently scheduled jobs starting from this offset index.","name":"start","in":"query"},{"type":"integer","default":10,"description":"Maximum number of jobs per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, list of jobs returned.","schema":{"$ref":"#/definitions/tmpresponses.Jobs"}},"default":{"description":"Success, list of jobs returned.","schema":{"$ref":"#/definitions/tmpresponses.Jobs"}}}},"post":{"description":"Schedule a job to be run immediately","consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Schedule a job to be run immediately","operationId":"CreateJob","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.JobSubmission"}}],"responses":{"202":{"description":"Success, job waiting to be claimed.","schema":{"$ref":"#/definitions/tmpresponses.Job"}}}}},"/api/v0/jobs/{jobID}":{"get":{"description":"Get info about the job with the given ID","consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Get info about the job with the given ID","operationId":"GetJob","parameters":[{"type":"string","description":"ID of job to fetch","name":"jobID","in":"path","required":true}],"responses":{"200":{"description":"Success, job info returned.","schema":{"$ref":"#/definitions/tmpresponses.Job"}},"default":{"description":"Success, job info returned.","schema":{"$ref":"#/definitions/tmpresponses.Job"}}}},"delete":{"description":"Signal this job's worker to cancel and delete the job","consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Signal this job's worker to cancel and delete the job","operationId":"DeleteJobs","parameters":[{"type":"string","description":"ID of job to delete","name":"jobID","in":"path","required":true}],"responses":{"204":{"description":"Success, job has been deleted."}}}},"/api/v0/jobs/{jobID}/cancel":{"post":{"description":"Signal this job's worker to cancel the job","consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Signal this job's worker to cancel the job","operationId":"CancelJob","parameters":[{"type":"string","description":"ID of job to cancel","name":"jobID","in":"path","required":true}],"responses":{"204":{"description":"Success, job has been canceled."}}}},"/api/v0/jobs/{jobID}/logs":{"get":{"description":"Retrieve logs for this job from its worker","consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Retrieve logs for this job from its worker","operationId":"GetJobLogs","parameters":[{"type":"string","description":"ID of job whose logs to retrieve","name":"jobID","in":"path","required":true},{"type":"boolean","default":false,"description":"t/f: stream new logs","name":"stream","in":"query"},{"type":"integer","default":0,"description":"Line number to start from","name":"offset","in":"query"},{"type":"integer","default":0,"description":"Number of lines to return if not streaming","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, job's logs returned.","schema":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.JobLogs"}}},"default":{"description":"Success, job's logs returned.","schema":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.JobLogs"}}}}}},"/api/v0/meta/cluster_status":{"get":{"description":"Get cluster status","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get cluster status","operationId":"GetClusterStatus","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ClusterStatus"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ClusterStatus"}}}}},"/api/v0/meta/features":{"get":{"description":"Get features","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get features","operationId":"GetFeatures","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Features"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Features"}}}}},"/api/v0/meta/settings":{"get":{"description":"Get settings","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get settings","operationId":"GetSettings","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Settings"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Settings"}}}},"post":{"description":"Update settings","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Update settings","operationId":"UpdateSettings","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Settings"}}],"responses":{"202":{"description":"success"},"400":{"description":"INVALID_SETTINGS: The submitted settings change request contains invalid values."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/":{"get":{"description":"List all repositories","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List all repositories","operationId":"ListRepositories","parameters":[{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}}}}},"/api/v0/repositories/scan/toggle":{"post":{"description":"Toggles scan on push for all repositories","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Toggles scan on push for all repositories","operationId":"ToggleAllRepositoriesScanOnPush","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.ToggleScanOnPush"}}],"responses":{"200":{"description":"Successfully toggled scan on push for all repositories."},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully toggled scan on push for all repositories."}}}},"/api/v0/repositories/{namespace}":{"get":{"description":"List repositories in a namespace","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List repositories in a namespace","operationId":"ListNamespaceRepositories","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}}}},"post":{"description":"Create repository","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create repository","operationId":"CreateRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateRepo"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.Repository"}},"400":{"description":"REPOSITORY_EXISTS: A repository with the same name already exists."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}":{"get":{"description":"View details of a repository","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"View details of a repository","operationId":"GetRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}}}},"delete":{"description":"Remove a repository","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Remove a repository","operationId":"DeleteRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"}],"responses":{"204":{"description":"success or repository does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}},"patch":{"description":"Update details of a repository","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Update details of a repository","operationId":"PatchRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateRepo"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}},"400":{"description":"INVALID_REPOSITORY_VISIBILITY: The visibility value of the repository is invalid."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}}}}},"/api/v0/repositories/{namespace}/{reponame}/manifests":{"get":{"description":"List the available manifests for a repository","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the available manifests for a repository","operationId":"ListRepoManifests","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Manifest"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Manifest"}}}}}},"/api/v0/repositories/{namespace}/{reponame}/manifests/{reference}":{"delete":{"description":"Delete a manifest for a repository","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Delete a manifest for a repository","operationId":"DeleteRepoManifest","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"digest or tag for an image manifest","name":"reference","in":"path","required":true}],"responses":{"204":{"description":"success"},"400":{"description":"INVALID_DIGEST: The given digest is invalid."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_MANIFEST: A manifest with the given reference does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/promotionPolicies":{"get":{"description":"List the promotion policies for a repository","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the promotion policies for a repository","operationId":"ListRepoPromotionPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to list promotion policies for a repository as a source or destination.","name":"source","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PromotionPolicy"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PromotionPolicy"}}}}},"post":{"description":"Create a promotion policy for a repository","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create a promotion policy for a repository","operationId":"CreateRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the promotion policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePromotionPolicy"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}},"400":{"description":"REQUIRES_ADVANCED_LICENSE: This feature requires Enterprise Edition Advanced"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PROMOTION_POLICY: The given promotion policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/promotionPolicies/{promotionpolicyid}":{"get":{"description":"Retrieve a specific promotion policy for a repository","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific promotion policy for a repository","operationId":"GetRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"promotion policy id","name":"promotionpolicyid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PROMOTION_POLICY: A promotion policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}}}},"put":{"description":"Updates a specific promotion policy for a repository","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Updates a specific promotion policy for a repository","operationId":"UpdateRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"promotion policy id","name":"promotionpolicyid","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the promotion policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdatePromotionPolicy"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}},"400":{"description":"REQUIRES_ADVANCED_LICENSE: This feature requires Enterprise Edition Advanced"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PROMOTION_POLICY: The given promotion policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}}}},"delete":{"description":"Deletes a specific promotion policy for a repository","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a specific promotion policy for a repository","operationId":"DeleteRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"promotion policy id","name":"promotionpolicyid","in":"path","required":true}],"responses":{"204":{"description":"success or promotion policy does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PROMOTION_POLICY: A promotion policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags":{"get":{"description":"List the available tags for a repository","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the available tags for a repository","operationId":"ListRepoTags","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the manifest for each tag","name":"includeManifests","in":"query"},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}":{"get":{"description":"Retrieve a specific tag for a repository","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific tag for a repository","operationId":"ListRepoTag","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"},{"type":"string","description":"Operating system of the tag","name":"os","in":"query"},{"type":"string","description":"Architecture of the tag","name":"arch","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}}}},"delete":{"description":"Delete a tag for a repository","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Delete a tag for a repository","operationId":"DeleteRepoTag","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"}],"responses":{"204":{"description":"success"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"409":{"description":"TAG_IN_NOTARY: This tag is in notary and can't be deleted until it is removed from notary"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}/promotion":{"post":{"description":"Promotes a specific tag for a repository","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Promotes a specific tag for a repository","operationId":"CreateRepoTagPromotion","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePromotion"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.Promotion"}},"400":{"description":"INVALID_TAG_NAME: The given tag name is either too long or contains illegal characters."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/teamAccess":{"get":{"description":"List teams granted access to an organization-owned repository","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List teams granted access to an organization-owned repository","operationId":"ListRepoTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}}}}},"/api/v0/repositories/{namespace}/{reponame}/teamAccess/{teamname}":{"put":{"description":"Set a team's access to an orgnization-owned repository","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Set a team's access to an orgnization-owned repository","operationId":"GrantRepoTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Access"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}},"400":{"description":"the team does not belong to the organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}}}},"delete":{"description":"Revoke a team's acccess to an organization-owned repository","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Revoke a team's acccess to an organization-owned repository","operationId":"RevokeRepoTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true}],"responses":{"204":{"description":"success or the team is not in the access list or there is no such team in the organization"},"400":{"description":"the repository is not owned by an organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/webhooks":{"get":{"description":"List the webhook subscriptions for a repository","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the webhook subscriptions for a repository","operationId":"ListRepoWebhooks","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/repositoryNamespaces/{namespace}/teamAccess":{"get":{"description":"List teams granted access to an organization-owned namespace of repositories","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"List teams granted access to an organization-owned namespace of repositories","operationId":"ListRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoNamespaceTeamAccess"}},"400":{"description":"the namespace is not owned by an organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoNamespaceTeamAccess"}}}}},"/api/v0/repositoryNamespaces/{namespace}/teamAccess/{teamname}":{"get":{"description":"Get a team's granted access to an organization-owned namespace of repositories","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"Get a team's granted access to an organization-owned namespace of repositories","operationId":"GetRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_NAMESPACE_TEAM_ACCESS: An access grant for the given team in the given namespace does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}}}},"put":{"description":"Set a team's access to an organization-owned namespace of repositories","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"Set a team's access to an organization-owned namespace of repositories","operationId":"GrantRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Access"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}},"400":{"description":"the team does not belong to the owning organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}}}},"delete":{"description":"Revoke a team's access to an organization-owned namespace of repositories","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"Revoke a team's access to an organization-owned namespace of repositories","operationId":"RevokeRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true}],"responses":{"204":{"description":"success or the team does not exist in the access list or there is no such team in the organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/webhooks/":{"get":{"description":"List Webhooks","consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"List Webhooks","operationId":"ListWebhooks","parameters":[{"type":"string","default":"any","description":"The type of webhook to list","name":"webhookType","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}},"post":{"description":"Create Webhook","consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Create Webhook","operationId":"CreateWebhook","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Webhook"}}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/webhooks/test":{"post":{"description":"Test Webhook","consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Test Webhook","operationId":"TestWebhook","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.WebhookTestPayload"}}],"responses":{"200":{"description":"OK"},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK"}}}},"/api/v0/webhooks/update":{"post":{"description":"Update Webhook","consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Update Webhook","operationId":"UpdateWebhook","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.WebhookUpdate"}}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/webhooks/{webhook}":{"delete":{"description":"Delete Webhook","consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Delete Webhook","operationId":"DeleteWebhook","parameters":[{"type":"string","description":"webhook subscription ID","name":"webhook","in":"path","required":true}],"responses":{"200":{"description":"OK"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_WEBHOOK: A webhook subscription with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK"}}}},"/api/v0/workers/":{"get":{"description":"List all workers","consumes":["application/json"],"produces":["application/json"],"tags":["workers"],"summary":"List all workers","operationId":"ListWorkers","responses":{"200":{"description":"Success, list of workers returned.","schema":{"$ref":"#/definitions/tmpresponses.Workers"}},"default":{"description":"Success, list of workers returned.","schema":{"$ref":"#/definitions/tmpresponses.Workers"}}}}},"/api/v0/workers/{id}/capacity":{"post":{"description":"Update the capacity for a worker","consumes":["application/json"],"produces":["application/json"],"tags":["workers"],"summary":"Update the capacity for a worker","operationId":"UpdateWorkerCapacity","parameters":[{"type":"string","description":"ID of worker to update","name":"id","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.UpdateWorkerCapacity"}}],"responses":{"202":{"description":"Success."}}}}},"definitions":{"forms.Access":{"id":"forms.Access","required":["accessLevel"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]}}},"forms.CreateContentCache":{"id":"forms.CreateContentCache","required":["name","host"],"properties":{"host":{"type":"string"},"name":{"type":"string"}}},"forms.CreatePromotion":{"id":"forms.CreatePromotion","required":["targetRepository","targetTag"],"properties":{"targetRepository":{"type":"string"},"targetTag":{"type":"string"}}},"forms.CreatePromotionPolicy":{"id":"forms.CreatePromotionPolicy","required":["rules","targetRepository","tagTemplate","enabled"],"properties":{"enabled":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"tagTemplate":{"type":"string"},"targetRepository":{"type":"string"}}},"forms.CreateRepo":{"id":"forms.CreateRepo","required":["name","shortDescription","longDescription","scanOnPush","immutableTags","enableManifestLists"],"properties":{"enableManifestLists":{"type":"boolean"},"immutableTags":{"type":"boolean"},"longDescription":{"type":"string"},"name":{"type":"string"},"scanOnPush":{"type":"boolean"},"shortDescription":{"type":"string"},"visibility":{"type":"string","enum":["public","private"]}}},"forms.EmptyForm":{"id":"forms.EmptyForm"},"forms.ScanOptions":{"id":"forms.ScanOptions","required":["scan","check"],"properties":{"check":{"type":"boolean"},"scan":{"type":"boolean"}}},"forms.Settings":{"id":"forms.Settings","properties":{"anonymizeAnalytics":{"type":"boolean"},"disableBackupWarning":{"type":"boolean"},"disableUpgrades":{"type":"boolean"},"dtrHost":{"type":"string"},"gcMode":{"type":"string"},"jobHistoryToKeep":{"type":"integer"},"reportAnalytics":{"type":"boolean"},"scanningEnableAutoRecheck":{"type":"boolean"},"scanningEnabled":{"type":"boolean"},"scanningSyncOnline":{"type":"boolean"},"sso":{"type":"boolean"},"webTLSCA":{"type":"string"},"webTLSCert":{"type":"string"},"webTLSKey":{"type":"string"}}},"forms.ToggleScanOnPush":{"id":"forms.ToggleScanOnPush","required":["scanOnPush"],"properties":{"scanOnPush":{"type":"boolean"}}},"forms.UpdatePromotionPolicy":{"id":"forms.UpdatePromotionPolicy","properties":{"enabled":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"tagTemplate":{"type":"string"},"targetRepository":{"type":"string"}}},"forms.UpdateRepo":{"id":"forms.UpdateRepo","required":["immutableTags"],"properties":{"enableManifestLists":{"type":"boolean"},"immutableTags":{"type":"boolean"},"longDescription":{"type":"string"},"scanOnPush":{"type":"boolean"},"shortDescription":{"type":"string"},"visibility":{"type":"string","enum":["public","private"]}}},"forms.UserSettings":{"id":"forms.UserSettings","properties":{"contentCacheUUID":{"type":"string"}}},"forms.Webhook":{"id":"forms.Webhook","required":["endpoint"],"properties":{"endpoint":{"type":"string"},"key":{"type":"string"},"type":{"type":"string","enum":["TAG_PUSH","TAG_DELETE","PROMOTION","MANIFEST_PUSH","MANIFEST_DELETE","REPO_EVENT","SCAN_COMPLETED","SCAN_FAILED","SCANNER_UPDATE_COMPLETED"]}}},"forms.WebhookTestPayload":{"id":"forms.WebhookTestPayload","required":["type","endpoint"],"properties":{"endpoint":{"type":"string"},"type":{"type":"string"}}},"forms.WebhookUpdate":{"id":"forms.WebhookUpdate","required":["id","inactive"],"properties":{"id":{"type":"string"},"inactive":{"type":"boolean"}}},"responses.Account":{"id":"responses.Account","required":["name","id","fullName","isOrg","isImported"],"properties":{"fullName":{"description":"Full Name of the account","type":"string"},"id":{"description":"ID of the account","type":"string"},"isActive":{"description":"Whether the user is active and can login (users only)","type":"boolean"},"isAdmin":{"description":"Whether the user is a system admin (users only)","type":"boolean"},"isImported":{"type":"boolean"},"isOrg":{"description":"Whether the account is an organization (or user)","type":"boolean"},"membersCount":{"description":"The number of members of the organization","type":"integer","format":"int32"},"name":{"description":"Name of the account","type":"string"}}},"responses.Autocomplete":{"id":"responses.Autocomplete","properties":{"accountResults":{"type":"array","items":{"$ref":"#/definitions/responses.Account"}},"repositoryResults":{"type":"array","items":{"$ref":"#/definitions/responses.Repository"}}}},"responses.ClusterStatus":{"id":"responses.ClusterStatus","required":["rethink_system_tables","replica_health","replica_timestamp","replica_readonly","gc_lock_holder"],"properties":{"gc_lock_holder":{"type":"string"},"replica_health":{"type":"object"},"replica_readonly":{"type":"object"},"replica_timestamp":{"type":"object"},"rethink_system_tables":{"type":"object"}}},"responses.ContentCache":{"id":"responses.ContentCache","required":["id","name","host"],"properties":{"host":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"}}},"responses.DockerRepository":{"id":"responses.DockerRepository","required":["description","is_official","is_trusted","name","star_count"],"properties":{"description":{"type":"string"},"is_official":{"type":"boolean"},"is_trusted":{"type":"boolean"},"name":{"type":"string"},"star_count":{"type":"integer","format":"int32"}}},"responses.DockerSearch":{"id":"responses.DockerSearch","required":["num_results","query","results"],"properties":{"num_results":{"type":"integer","format":"int32"},"query":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/definitions/responses.DockerRepository"}}}},"responses.DockerfileLine":{"id":"responses.DockerfileLine","required":["line","layerDigest","size","isEmpty"],"properties":{"isEmpty":{"type":"boolean"},"layerDigest":{"type":"string"},"line":{"type":"string"},"mediaType":{"type":"string"},"size":{"type":"integer","format":"int64"},"urls":{"type":"array","items":{"type":"string"}}}},"responses.Events":{"id":"responses.Events","required":["events"],"properties":{"events":{"type":"array","items":{"$ref":"#/definitions/schema.Event"}}}},"responses.Features":{"id":"responses.Features","required":["scanningEnabled","scanningLicensed","promotionLicensed","db_version","ucpHost"],"properties":{"db_version":{"type":"integer","format":"int32"},"promotionLicensed":{"type":"boolean"},"scanningEnabled":{"type":"boolean"},"scanningLicensed":{"type":"boolean"},"ucpHost":{"type":"string"}}},"responses.Language":{"id":"responses.Language","required":["language"],"properties":{"language":{"type":"string"}}},"responses.ListRepoNamespaceTeamAccess":{"id":"responses.ListRepoNamespaceTeamAccess","required":["namespace","teamAccessList"],"properties":{"namespace":{"type":"string"},"teamAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.TeamAccess"}}}},"responses.ListRepoTeamAccess":{"id":"responses.ListRepoTeamAccess","required":["repository","teamAccessList"],"properties":{"repository":{"$ref":"#/definitions/responses.Repository"},"teamAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.TeamAccess"}}}},"responses.ListTeamRepoAccess":{"id":"responses.ListTeamRepoAccess","required":["team","repositoryAccessList"],"properties":{"repositoryAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.RepoAccess"}},"team":{"$ref":"#/definitions/responses.Team"}}},"responses.Manifest":{"id":"responses.Manifest","required":["digest"],"properties":{"architecture":{"type":"string"},"author":{"type":"string"},"configMediaType":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"digest":{"type":"string"},"dockerfile":{"type":"array","items":{"$ref":"#/definitions/responses.DockerfileLine"}},"mediaType":{"type":"string"},"os":{"type":"string"},"osVersion":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"responses.NamespaceTeamAccess":{"id":"responses.NamespaceTeamAccess","required":["accessLevel","team","namespace"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"namespace":{"type":"string"},"team":{"$ref":"#/definitions/responses.Team"}}},"responses.Promotion":{"id":"responses.Promotion","required":["promotionPolicyID","string","sourceRepository","sourceTag"],"properties":{"promotionPolicyID":{"type":"string"},"sourceRepository":{"type":"string"},"sourceTag":{"type":"string"},"string":{"type":"string"}}},"responses.PromotionPolicy":{"id":"responses.PromotionPolicy","required":["id","rules","sourceRepository","targetRepository","tagTemplate","enabled","lastPromotedAt"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastPromotedAt":{"type":"string","format":"date-time"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"sourceRepository":{"type":"string"},"tagTemplate":{"type":"string"},"targetRepository":{"type":"string"}}},"responses.RepoAccess":{"id":"responses.RepoAccess","required":["accessLevel","repository"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"repository":{"$ref":"#/definitions/responses.Repository"}}},"responses.RepoUserAccess":{"id":"responses.RepoUserAccess","required":["accessLevel","user","repository"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"repository":{"$ref":"#/definitions/responses.Repository"},"user":{"$ref":"#/definitions/responses.Account"}}},"responses.Repositories":{"id":"responses.Repositories","required":["repositories"],"properties":{"repositories":{"type":"array","items":{"$ref":"#/definitions/responses.Repository"}}}},"responses.Repository":{"id":"responses.Repository","required":["id","namespace","namespaceType","name","shortDescription","visibility","scanOnPush","immutableTags","enableManifestLists"],"properties":{"enableManifestLists":{"type":"boolean"},"id":{"type":"string"},"immutableTags":{"type":"boolean"},"longDescription":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"namespaceType":{"type":"string","enum":["user","organization"]},"scanOnPush":{"type":"boolean"},"shortDescription":{"type":"string"},"visibility":{"type":"string","enum":["public","private"]}}},"responses.Settings":{"id":"responses.Settings","required":["dtrHost","sso","replicaSettings","httpProxy","httpsProxy","noProxy","disableUpgrades","reportAnalytics","anonymizeAnalytics","disableBackupWarning","logProtocol","logHost","logLevel","webTLSCert","webTLSCA","replicaID","gcMode","scanningEnabled","scanningSyncOnline","scanningEnableAutoRecheck","jobHistoryToKeep","storageVolume","nfsHost","nfsPath"],"properties":{"anonymizeAnalytics":{"type":"boolean"},"disableBackupWarning":{"type":"boolean"},"disableUpgrades":{"type":"boolean"},"dtrHost":{"type":"string"},"gcMode":{"type":"string"},"httpProxy":{"type":"string"},"httpsProxy":{"type":"string"},"jobHistoryToKeep":{"type":"integer"},"logHost":{"type":"string"},"logLevel":{"type":"string"},"logProtocol":{"type":"string"},"nfsHost":{"type":"string"},"nfsPath":{"type":"string"},"noProxy":{"type":"string"},"replicaID":{"type":"string"},"replicaSettings":{"type":"object"},"reportAnalytics":{"type":"boolean"},"scanningEnableAutoRecheck":{"type":"boolean"},"scanningEnabled":{"type":"boolean"},"scanningSyncOnline":{"type":"boolean"},"sso":{"type":"boolean"},"storageVolume":{"type":"string"},"webTLSCA":{"type":"string"},"webTLSCert":{"type":"string"}}},"responses.Tag":{"id":"responses.Tag","required":["name","digest","author","updatedAt","createdAt","hashMismatch","inNotary","manifest","licenses","components"],"properties":{"author":{"type":"string"},"components":{"type":"array","items":{"$ref":"#/definitions/schema.Component"}},"createdAt":{"type":"string","format":"date-time"},"digest":{"type":"string"},"hashMismatch":{"description":"true if the hashes from notary and registry don't match","type":"boolean"},"inNotary":{"description":"true if the tag exists in Notary","type":"boolean"},"licenses":{"type":"array","items":{"$ref":"#/definitions/schema.License"}},"manifest":{"$ref":"#/definitions/responses.Manifest"},"name":{"type":"string"},"promotion":{"$ref":"#/definitions/responses.Promotion"},"updatedAt":{"type":"string","format":"date-time"},"vuln_summary":{"$ref":"#/definitions/schema.TagScanSummary"}}},"responses.Team":{"id":"responses.Team","required":["id","clientUserIsMember"],"properties":{"clientUserIsMember":{"type":"boolean"},"id":{"type":"string"}}},"responses.TeamAccess":{"id":"responses.TeamAccess","required":["accessLevel","team"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"team":{"$ref":"#/definitions/responses.Team"}}},"responses.UserSettings":{"id":"responses.UserSettings","required":["ContentCacheUUID"],"properties":{"ContentCacheUUID":{"type":"string"}}},"responses.Webhook":{"id":"responses.Webhook","required":["id","type","key","endpoint","authorID","createdAt","inactive"],"properties":{"authorID":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"endpoint":{"type":"string"},"id":{"type":"string"},"inactive":{"type":"boolean"},"key":{"type":"string"},"lastSuccessfulAt":{"type":"string","format":"date-time"},"type":{"type":"string"}}},"ruleengine.Rule":{"id":"ruleengine.Rule","properties":{"field":{"type":"string"},"operator":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}}},"schema.Component":{"id":"schema.Component","required":["component","version","vulns","fullpath"],"properties":{"component":{"type":"string"},"fullpath":{"type":"array","items":{"type":"string"}},"license":{"$ref":"#/definitions/schema.License"},"version":{"type":"string"},"vulns":{"type":"array","items":{"$ref":"#/definitions/schema.VulnerabilityDetails"}}}},"schema.DetailedSummary":{"id":"schema.DetailedSummary","required":["sha256sum"],"properties":{"components":{"type":"array","items":{"$ref":"#/definitions/schema.Component"}},"sha256sum":{"type":"string"}}},"schema.Event":{"id":"schema.Event","required":["id","publishedAt","actor","type","object"],"properties":{"actor":{"type":"string"},"id":{"type":"string"},"object":{"$ref":"#/definitions/schema.Object"},"publishedAt":{"type":"string","format":"date-time"},"target":{"$ref":"#/definitions/schema.Object"},"type":{"type":"string"}}},"schema.Layer":{"id":"schema.Layer","required":["Sha256sum","Sha1Sum","Size","BillOfMaterials","VulnerabilityData","Author","status","LastCheckStartedAt","LastCheckFinishedAt","LastScanStartedAt","LastScanFinishedAt","BillOfMaterialsVersion","VulnerabilityVersion","MediaType"],"properties":{"Author":{"type":"string"},"BillOfMaterials":{"type":"string"},"BillOfMaterialsVersion":{"type":"integer","format":"int32"},"LastCheckFinishedAt":{"type":"string","format":"date-time"},"LastCheckStartedAt":{"type":"string","format":"date-time"},"LastScanFinishedAt":{"type":"string","format":"date-time"},"LastScanStartedAt":{"type":"string","format":"date-time"},"MediaType":{"type":"string"},"Sha1Sum":{"type":"string"},"Sha256sum":{"type":"string"},"Size":{"type":"integer","format":"int64"},"VulnerabilityData":{"type":"string"},"VulnerabilityVersion":{"type":"integer","format":"int32"},"status":{"type":"integer","format":"int32"}}},"schema.License":{"id":"schema.License","required":["name","type","url"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}}},"schema.NautilusStatus":{"id":"schema.NautilusStatus","required":["state","scanner_version","scanner_updated_at","db_version","db_updated_at","last_db_update_failed"],"properties":{"db_updated_at":{"type":"string","format":"date-time"},"db_version":{"type":"integer","format":"int32"},"last_db_update_failed":{"type":"boolean"},"replicas":{"type":"object"},"scanner_updated_at":{"type":"string","format":"date-time"},"scanner_version":{"type":"integer","format":"int32"},"state":{"type":"integer","format":"int32"}}},"schema.Note":{"id":"schema.Note","required":["reason","type"],"properties":{"reason":{"type":"string"},"type":{"type":"string"}}},"schema.Object":{"id":"schema.Object","required":["id","type"],"properties":{"content":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"}}},"schema.TagScanSummary":{"id":"schema.TagScanSummary","required":["namespace","reponame","tag","critical","major","minor","last_scan_status","check_completed_at","should_rescan","has_foreign_layers"],"properties":{"check_completed_at":{"type":"string","format":"date-time"},"critical":{"type":"integer","format":"int32"},"has_foreign_layers":{"type":"boolean"},"last_scan_status":{"type":"integer","format":"int32"},"layer_details":{"type":"array","items":{"$ref":"#/definitions/schema.DetailedSummary"}},"major":{"type":"integer","format":"int32"},"minor":{"type":"integer","format":"int32"},"namespace":{"type":"string"},"reponame":{"type":"string"},"should_rescan":{"type":"boolean"},"tag":{"type":"string"}}},"schema.Vulnerability":{"id":"schema.Vulnerability","required":["cve","cvss","summary"],"properties":{"cve":{"type":"string"},"cvss":{"type":"number","format":"float"},"summary":{"type":"string"}}},"schema.VulnerabilityDetails":{"id":"schema.VulnerabilityDetails","required":["vuln","exact","notes"],"properties":{"exact":{"type":"boolean"},"notes":{"type":"array","items":{"$ref":"#/definitions/schema.Note"}},"vuln":{"$ref":"#/definitions/schema.Vulnerability"}}},"tmpforms.ActionConfigCreate":{"id":"tmpforms.ActionConfigCreate","required":["action","parameters"],"properties":{"action":{"description":"The action to modify the config for","type":"string"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job. These are overwritten by any corresponding parameters set in the job itself.","type":"object"}}},"tmpforms.CronCreate":{"id":"tmpforms.CronCreate","required":["action","schedule","retries","capacityMap","parameters","deadline","stopTimeout"],"properties":{"action":{"description":"The action which the cron will perform","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object"},"deadline":{"description":"After this amount of time has passed, a SIGTERM will be sent","type":"string"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object"},"retries":{"description":"The number of times to retry a job if it fails","type":"integer","format":"int32"},"schedule":{"description":"The for the cron as a cronspec string: (seconds) (minutes) (hours) (day of month) (month) (day of week) or @hourly, @weekly, etc.","type":"string"},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"}}},"tmpforms.EmptyForm":{"id":"tmpforms.EmptyForm"},"tmpforms.JobSubmission":{"id":"tmpforms.JobSubmission","required":["action","parameters","retries","capacityMap","deadline","stopTimeout","scheduledAt"],"properties":{"action":{"description":"The action which the job will perform","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object"},"deadline":{"description":"After this amount of time has passed, a SIGTERM will be sent","type":"string"},"parameters":{"description":"Parameters to start the job with","type":"object"},"retries":{"description":"The number of times to retry a job if it fails","type":"integer","format":"int32"},"scheduledAt":{"description":"The time at which to run the job. Empty string or no value means now. Format: RFC3339","type":"string"},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"}}},"tmpforms.UpdateWorkerCapacity":{"id":"tmpforms.UpdateWorkerCapacity","required":["capacityMap"],"properties":{"capacityMap":{"description":"The new capacity for the worker, representing roughly the amount of RAM to use","type":"object"}}},"tmpresponses.ActionConfig":{"id":"tmpresponses.ActionConfig","required":["id","action","parameters"],"properties":{"action":{"description":"The action this config refers to.","type":"string"},"id":{"description":"Randomly generated UUID for foreign references.","type":"string"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object"}}},"tmpresponses.ActionConfigs":{"id":"tmpresponses.ActionConfigs","required":["actionConfigs"],"properties":{"actionConfigs":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}},"tmpresponses.Cron":{"id":"tmpresponses.Cron","required":["id","action","schedule","retries","capacityMap","parameters","deadline","stopTimeout","nextRun"],"properties":{"action":{"description":"The action to be performed by jobs spawned from this cron.","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object"},"deadline":{"type":"string"},"id":{"description":"Randomly generated UUID for foreign references.","type":"string"},"nextRun":{"description":"The next time the job will run.","type":"string","format":"date-time"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object"},"retries":{"description":"The number of times to retry the job if it fails","type":"integer","format":"int32"},"schedule":{"description":"The schedule for this cron as a cronspec string: (seconds) (minutes) (hours) (day of month) (month) (day of week) or @hourly, @weekly, etc.","type":"string"},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"}}},"tmpresponses.Crons":{"id":"tmpresponses.Crons","required":["crons"],"properties":{"crons":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.Cron"}}}},"tmpresponses.Job":{"id":"tmpresponses.Job","required":["id","retryFromID","workerID","status","scheduledAt","lastUpdated","action","retriesLeft","retriesTotal","capacityMap","parameters","deadline","stopTimeout"],"properties":{"action":{"description":"The action this job performs","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object"},"deadline":{"type":"string"},"id":{"description":"The ID of the job","type":"string"},"lastUpdated":{"description":"The last time at which the status of this job was updated","type":"string","format":"date-time"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object"},"retriesLeft":{"description":"The number of times to retry the job if it fails","type":"integer","format":"int32"},"retriesTotal":{"description":"The total number of times to retry the original job if it fails","type":"integer","format":"int32"},"retryFromID":{"description":"The ID of the job this job retried from","type":"string"},"scheduledAt":{"description":"The time at which this job was scheduled","type":"string","format":"date-time"},"status":{"description":"The current status of the job","type":"string","enum":["waiting","running","done","canceled","errored"]},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"},"workerID":{"description":"The ID of the worker which performed the job, unclaimed by a worker if empty","type":"string"}}},"tmpresponses.JobLog":{"id":"tmpresponses.JobLog","required":["data"],"properties":{"data":{"description":"Contents of the log line","type":"string"}}},"tmpresponses.JobLogs":{"id":"tmpresponses.JobLogs","required":["jobLogs"],"properties":{"jobLogs":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.JobLog"}}}},"tmpresponses.Jobs":{"id":"tmpresponses.Jobs","required":["jobs"],"properties":{"jobs":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.Job"}}}},"tmpresponses.Worker":{"id":"tmpresponses.Worker","required":["id","status","capacityMap","heartbeatExpiration"],"properties":{"capacityMap":{"description":"A map used to represent now much load the worker should be allocated. Only security scanning jobs use this and the value is roughly equivalent to expected memory usage in bytes.","type":"object"},"heartbeatExpiration":{"description":"Time after which the worker should be considered dead.","type":"string"},"id":{"description":"Randomly generated UUID for foreign references.","type":"string"},"status":{"description":"Status of the worker","type":"string"}}},"tmpresponses.Workers":{"id":"tmpresponses.Workers","required":["workers"],"properties":{"workers":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.Worker"}}}},"||responses.ContentCache":{"id":"||responses.ContentCache"},"||responses.Manifest":{"id":"||responses.Manifest"},"||responses.PromotionPolicy":{"id":"||responses.PromotionPolicy"},"||responses.Tag":{"id":"||responses.Tag"},"||responses.Webhook":{"id":"||responses.Webhook"},"||schema.TagScanSummary":{"id":"||schema.TagScanSummary"},"||tmpresponses.JobLogs":{"id":"||tmpresponses.JobLogs"}},"tags":[{"description":"Accounts","name":"accounts"},{"description":"Admin","name":"meta"},{"description":"Content Caches","name":"content_caches"},{"description":"Repositories","name":"repositories"},{"description":"Repository Namespaces","name":"repositoryNamespaces"},{"description":"Events","name":"events"},{"description":"Docker Security Scanner","name":"imagescan"},{"description":"Webhooks","name":"webhooks"},{"description":"Jobs","name":"jobs"},{"description":"Crons","name":"crons"},{"description":"Workers","name":"workers"},{"description":"Action Configs","name":"action_configs"}]} +{"swagger":"2.0","info":{"description":"Docker Trusted Registry has an experimental API that you can use to manage\nDTR repositories, permissions, and settings.\n\n**This API is experimental and subject to change, which could affect future\nbackwards compatibility.**\n\nYou can authenticate your requests by using an authentication token. In the\nDTR web UI, navigate to your user profile and choose **Access tokens** to\ncreate a new token. The authentication token issued will have the same\npermissions your user has.\n\nTo authenticate your requests, use HTTP basic authentication to pass the\nauthentication token to the DTR API. Here's an example:\n\n```\ncurl -sL -u {user}:{token} /api/v0/repositories\n```\n","title":"Docker Trusted Registry","version":"2.5.0"},"paths":{"/api/v0/accounts/language":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Get the chosen language","operationId":"GetLanguage","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Language"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Language"}}}}},"/api/v0/accounts/{namespace}":{"delete":{"description":"\n\t*Authorization:* Client must be authenticated as a system admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Removes a user or organization along with all repositories","operationId":"DeleteNamespace","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true}],"responses":{"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/accounts/{namespace}/repositories":{"delete":{"description":"\n\t*Authorization:* Client must be authenticated as a system admin, organization admin or user in question\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Removes all of a user or organization's repositories","operationId":"DeleteNamespaceRepositories","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true}],"responses":{"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/accounts/{namespace}/webhooks":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"List the webhook subscriptions for a namespace","operationId":"ListNamespaceWebhooks","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/accounts/{orgname}/teams/{teamname}/repositoryAccess":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who owns the organization the team is in or be a member of that team.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"List repository access grants for a team","operationId":"ListTeamRepoAccess","parameters":[{"type":"string","description":"organization account name","name":"orgname","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListTeamRepoAccess"}},"400":{"description":"the team does not belong to the organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListTeamRepoAccess"}}}}},"/api/v0/accounts/{username}/repositoryAccess/{namespace}/{reponame}":{"get":{"description":"\n\t*Authorization:* Client must be authenticated either as the user in question or be a system admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Check a user's access to a repository","operationId":"GetUserRepoAccess","parameters":[{"type":"string","description":"user account name","name":"username","in":"path","required":true},{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.RepoUserAccess"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.RepoUserAccess"}}}}},"/api/v0/accounts/{username}/settings":{"get":{"description":"\n*Authorization:* Client must be authenticated either as the user in question or be a system admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Check a user's settings","operationId":"GetUserSettings","parameters":[{"type":"string","description":"user account name","name":"username","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.UserSettings"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.UserSettings"}}}},"patch":{"description":"\n*Authorization:* Client must be authenticated either as the user in question or be a system admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Update a user's settings","operationId":"UpdateUserSettings","parameters":[{"type":"string","description":"user account name","name":"username","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UserSettings"}}],"responses":{"200":{"description":"Successfully updated user settings."},"400":{"description":"INVALID_USER_SETTINGS: The submitted user settings change request contains invalid values."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully updated user settings."}}}},"/api/v0/action_configs":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"List all action configs","operationId":"ListActionConfigs","responses":{"200":{"description":"Success, list of action configs returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfigs"}},"default":{"description":"Success, list of action configs returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfigs"}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"Configure actions","operationId":"UpdateActionConfig","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.ActionConfigCreate"}}],"responses":{"202":{"description":"Success.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}}},"/api/v0/action_configs/{action}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"Get info about the actionConfig with the given action","operationId":"GetActionConfig","parameters":[{"type":"string","description":"name of action to fetch the config for","name":"action","in":"path","required":true}],"responses":{"200":{"description":"Success, action config info returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}},"default":{"description":"Success, action config info returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}},"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"Delete the action config. The defaults will be used.","operationId":"DeleteActionConfig","parameters":[{"type":"string","description":"the name of the action to delete the config for","name":"action","in":"path","required":true}],"responses":{"204":{"description":"Success, action config has been deleted."}}}},"/api/v0/api_tokens":{"get":{"description":"listUserAPITokensHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Get all API tokens associated with user. Get all tokens if no user is not specified","operationId":"GetAllAPITokensByUser","parameters":[{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"string","description":"Limit the API token results to a specific user","name":"username","in":"query"}],"responses":{"200":{"description":"Successfully retrieved API tokens","schema":{"type":"array","items":{"$ref":"#/definitions/responses.APIToken"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved API tokens","schema":{"type":"array","items":{"$ref":"#/definitions/responses.APIToken"}}}}},"post":{"description":"createAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Create a new API token","operationId":"CreateAnAPIToken","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateAPIToken"}},{"type":"string","description":"Limit the API token results to a specific user","name":"username","in":"query"}],"responses":{"200":{"description":"Successfully created API token","schema":{"$ref":"#/definitions/responses.NewAPIToken"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully created API token","schema":{"$ref":"#/definitions/responses.NewAPIToken"}}}},"delete":{"description":"cleanupAPITokenHleanupHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Mass deletion of API tokens from database based on user, time created, and/or generation method","operationId":"APITokenCleanup","parameters":[{"type":"string","description":"Limit the API token results to a specific user","name":"username","in":"query"},{"type":"string","description":"The date on which the token was last used","name":"usedbefore","in":"query"},{"type":"string","default":"auto","description":"The method by which the token was created","name":"generatedby","in":"query"}],"responses":{"200":{"description":"Successfully cleaned up API tokens"},"400":{"description":"INVALID_PARAMETERS: Unable to parse query parameters"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully cleaned up API tokens"}}}},"/api/v0/api_tokens/{hashedtoken}":{"get":{"description":"getAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Get an API token's information based on it's token id","operationId":"GetAnAPIToken","parameters":[{"type":"string","description":"API token id","name":"hashedtoken","in":"path","required":true}],"responses":{"200":{"description":"Successfully retrieved API token","schema":{"$ref":"#/definitions/responses.APIToken"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_API_TOKEN: An API token with the id name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved API token","schema":{"$ref":"#/definitions/responses.APIToken"}}}},"delete":{"description":"deleteAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Delete a specific API token","operationId":"DeleteAnAPIToken","parameters":[{"type":"string","description":"API token id","name":"hashedtoken","in":"path","required":true}],"responses":{"200":{"description":"Successfully deleted API token"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_API_TOKEN: An API token with the id name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully deleted API token"}}},"patch":{"description":"updateAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Update information about a specific API token","operationId":"UpdateAnAPIToken","parameters":[{"type":"string","description":"API token id","name":"hashedtoken","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateAPIToken"}}],"responses":{"200":{"description":"Successfully updated API tokens","schema":{"$ref":"#/definitions/responses.APIToken"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_API_TOKEN: An API token with the id name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully updated API tokens","schema":{"$ref":"#/definitions/responses.APIToken"}}}}},"/api/v0/content_caches":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"List all content caches","operationId":"ListContentCaches","responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ContentCache"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ContentCache"}}}}},"post":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"Create content cache","operationId":"CreateContentCache","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateContentCache"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.ContentCache"}},"400":{"description":"invalid content cache details"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/content_caches/{contentcacheuuid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"View details of a content cache","operationId":"GetContentCache","parameters":[{"type":"string","description":"uuid of content cache","name":"contentcacheuuid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ContentCache"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_CONTENT_CACHE: A content cache with the given uuid does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ContentCache"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"Remove a content cache","operationId":"DeleteContentCache","parameters":[{"type":"string","description":"uuid of content cache","name":"contentcacheuuid","in":"path","required":true}],"responses":{"204":{"description":"success or content cache does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_CONTENT_CACHE: A content cache with the given uuid does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/crons":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"List all crons","operationId":"ListCrons","responses":{"200":{"description":"Success, list of crons returned.","schema":{"$ref":"#/definitions/tmpresponses.Crons"}},"default":{"description":"Success, list of crons returned.","schema":{"$ref":"#/definitions/tmpresponses.Crons"}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"Create / update a periodic task","operationId":"UpdateCron","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.CronCreate"}}],"responses":{"202":{"description":"Success.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}}}}},"/api/v0/crons/{action}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"Get info about the cron with the given action","operationId":"GetCron","parameters":[{"type":"string","description":"action of the cron to fetch","name":"action","in":"path","required":true}],"responses":{"200":{"description":"Success, cron info returned.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}},"default":{"description":"Success, cron info returned.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}}}},"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"Delete the cron. Jobs created from it will not be canceled.","operationId":"DeleteCron","parameters":[{"type":"string","description":"action of cron to delete","name":"action","in":"path","required":true}],"responses":{"204":{"description":"Success, cron has been deleted."}}}},"/api/v0/events":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["events"],"summary":"Get Events","operationId":"GetEvents","parameters":[{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"string","name":"publishedBefore","in":"query"},{"type":"string","name":"publishedAfter","in":"query"},{"type":"string","description":"UUID of the user or organization that performed the event","name":"actorId","in":"query"},{"type":"string","description":"Type of events to filter by","name":"eventType","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Events"}},"400":{"description":"INVALID_PARAMETERS: Unable to parse query parameters"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Events"}}}}},"/api/v0/imagescan/layeroverride":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Gets a list of all the available overrides","operationId":"GetLayerVulnOverrides","responses":{"200":{"description":"Successfully set vulnerability override","schema":{"type":"array","items":{"$ref":"#/definitions/responses.LayerVulnOverride"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"500":{"description":"INTERNAL_ERROR: An internal server error occurred. Contact a system administrator for more information."},"default":{"description":"Successfully set vulnerability override","schema":{"type":"array","items":{"$ref":"#/definitions/responses.LayerVulnOverride"}}}}}},"/api/v0/imagescan/layeroverride/{layerid}":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Sets a vulnerability override for the given layer","operationId":"SetLayerVulnOverride","parameters":[{"type":"string","description":"layer id","name":"layerid","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.VulnOverrideOption"}}],"responses":{"200":{"description":"Successfully set vulnerability override"},"400":{"description":"INVALID_SETTINGS: The submitted settings change request contains invalid values."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_LAYER: A layer with the given sha does not exist in the repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"500":{"description":"INTERNAL_ERROR: An internal server error occurred. Contact a system administrator for more information."},"default":{"description":"Successfully set vulnerability override"}}}},"/api/v0/imagescan/layeroverride/{vulnerabilityid}":{"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Deletes a layer vulnerability override","operationId":"DeleteLayerVulnOverride","parameters":[{"type":"string","description":"vulnerability id","name":"vulnerabilityid","in":"path","required":true}],"responses":{"200":{"description":"OK"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_LAYER: A layer with the given sha does not exist in the repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK"}}}},"/api/v0/imagescan/repositories/{namespace}/{reponame}/{tag}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the summary info on a namespace/repo:tag","operationId":"GetSummaryByManifestDigest","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to include detailed summary results","name":"detailed","in":"query"},{"type":"string","description":"Operating system of the tag","name":"os","in":"query"},{"type":"string","description":"Architecture of the tag","name":"arch","in":"query"}],"responses":{"200":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.OldScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.OldScanSummary"}}}}}},"/api/v0/imagescan/scan":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Do a scan or a scan/check of all layers","operationId":"ScanAllLayers","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.ScanOptions"}}],"responses":{"200":{"description":"Successfully submitted all layers to jobrunner for scan/check."},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully submitted all layers to jobrunner for scan/check."}}}},"/api/v0/imagescan/scan/update":{"put":{"consumes":["multipart/form-data","application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Update the vulnerability database for security scanning","operationId":"UpdateVulnDB","parameters":[{"type":"file","description":"Upload file to init database","name":"file","in":"formData"},{"type":"boolean","default":false,"description":"Init or update vuln db in online mode.","name":"online","in":"query"}],"responses":{"200":{"description":"Successfully started to updated vulnerability DB."},"400":{"description":"SCANNING_DB_NOT_READY: Scanning DB is not ready"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully started to updated vulnerability DB."}}}},"/api/v0/imagescan/scan/{namespace}/{reponame}/{tag}/{os}/{arch}":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Do a scan or a scan/check of given image","operationId":"ScanImage","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"string","description":"operating system of the tag","name":"os","in":"path","required":true},{"type":"string","description":"architecture of the tag","name":"arch","in":"path","required":true}],"responses":{"200":{"description":"Successfully submitted image to jobrunner for scan/check."},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully submitted image to jobrunner for scan/check."}}}},"/api/v0/imagescan/scansummary/component/{component}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by component","operationId":"GetScannedImageByComponent","parameters":[{"type":"string","description":"component","name":"component","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/cve/{cve}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by CVE","operationId":"GetScannedImageByCVE","parameters":[{"type":"string","description":"cve","name":"cve","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/layer/{layerid}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by layer sha","operationId":"GetScannedImageByLayer","parameters":[{"type":"string","description":"layer id","name":"layerid","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_LAYER: A layer with the given sha does not exist in the repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/license/{license}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by license","operationId":"GetScannedImageByLicense","parameters":[{"type":"string","description":"license","name":"license","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/repositories/{namespace}/{reponame}/{tag}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the scan summary info on a namespace/repo:tag","operationId":"GetScanSummary","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"},{"type":"string","description":"Operating system of the tag","name":"os","in":"query"},{"type":"string","description":"Architecture of the tag","name":"arch","in":"query"}],"responses":{"200":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/status":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the status and version of scanning service","operationId":"GetNautilusDBStatus","responses":{"200":{"description":"Successfully retrieved DB status","schema":{"$ref":"#/definitions/responses.NautilusStatus"}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved DB status","schema":{"$ref":"#/definitions/responses.NautilusStatus"}}}}},"/api/v0/index/autocomplete":{"get":{"description":"\nRepository results will be filtered to only those repositories visible to the client. Account results will not be filtered.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["index"],"summary":"Autocompletion for repositories and/or accounts","operationId":"Autocomplete","parameters":[{"type":"string","description":"Autocomplete query","name":"query","in":"query","required":true},{"type":"boolean","default":true,"description":"Whether to include repositories in the response","name":"includeRepositories","in":"query"},{"type":"boolean","default":true,"description":"Whether to include accounts in the response","name":"includeAccounts","in":"query"},{"type":"string","description":"Exact repository namespace to limit results to.","name":"namespace","in":"query"},{"type":"number","default":25,"name":"limit","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Autocomplete"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Autocomplete"}}}}},"/api/v0/index/dockersearch":{"get":{"description":"\nThis is used for the Docker CLI's docker search command. Repository results will be filtered to only those repositories visible to the client.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["index"],"summary":"Search Docker repositories","operationId":"Docker Search","parameters":[{"type":"string","description":"Search query","name":"q","in":"query","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.DockerSearch"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.DockerSearch"}}}}},"/api/v0/jobs":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"List all jobs ordered by most recently scheduled","operationId":"ListJobs","parameters":[{"type":"string","default":"any","description":"Filter jobs by action.","name":"action","in":"query"},{"type":"string","default":"any","description":"Filter jobs by worker ID.","name":"worker","in":"query"},{"type":"string","default":"any","description":"Show only jobs that are running.","name":"running","in":"query"},{"type":"integer","default":0,"description":"Return most recently scheduled jobs starting from this offset index.","name":"start","in":"query"},{"type":"integer","default":10,"description":"Maximum number of jobs per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, list of jobs returned.","schema":{"$ref":"#/definitions/tmpresponses.Jobs"}},"default":{"description":"Success, list of jobs returned.","schema":{"$ref":"#/definitions/tmpresponses.Jobs"}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Schedule a job to be run immediately","operationId":"CreateJob","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.JobSubmission"}}],"responses":{"202":{"description":"Success, job waiting to be claimed.","schema":{"$ref":"#/definitions/tmpresponses.Job"}}}}},"/api/v0/jobs/{jobID}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Get info about the job with the given ID","operationId":"GetJob","parameters":[{"type":"string","description":"ID of job to fetch","name":"jobID","in":"path","required":true}],"responses":{"200":{"description":"Success, job info returned.","schema":{"$ref":"#/definitions/tmpresponses.Job"}},"default":{"description":"Success, job info returned.","schema":{"$ref":"#/definitions/tmpresponses.Job"}}}},"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Signal this job's worker to cancel and delete the job","operationId":"DeleteJobs","parameters":[{"type":"string","description":"ID of job to delete","name":"jobID","in":"path","required":true}],"responses":{"204":{"description":"Success, job has been deleted."}}}},"/api/v0/jobs/{jobID}/cancel":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Signal this job's worker to cancel the job","operationId":"CancelJob","parameters":[{"type":"string","description":"ID of job to cancel","name":"jobID","in":"path","required":true}],"responses":{"204":{"description":"Success, job has been canceled."}}}},"/api/v0/jobs/{jobID}/logs":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Retrieve logs for this job from its worker","operationId":"GetJobLogs","parameters":[{"type":"string","description":"ID of job whose logs to retrieve","name":"jobID","in":"path","required":true},{"type":"boolean","default":false,"description":"t/f: stream new logs","name":"stream","in":"query"},{"type":"integer","default":0,"description":"Line number to start from","name":"offset","in":"query"},{"type":"integer","default":0,"description":"Number of lines to return if not streaming","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, job's logs returned.","schema":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.JobLog"}}},"default":{"description":"Success, job's logs returned.","schema":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.JobLog"}}}}}},"/api/v0/meta/cluster_status":{"get":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get cluster status","operationId":"GetClusterStatus","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ClusterStatus"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ClusterStatus"}}}}},"/api/v0/meta/features":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get features","operationId":"GetFeatures","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Features"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Features"}}}}},"/api/v0/meta/settings":{"get":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get settings","operationId":"GetSettings","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Settings"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Settings"}}}},"post":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Update settings","operationId":"UpdateSettings","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Settings"}}],"responses":{"202":{"description":"success"},"400":{"description":"INVALID_SETTINGS: The submitted settings change request contains invalid values."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/remote/registry":{"post":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system. Credentials provided in the request body must be for an active user in the remote system.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["remote"],"summary":"Create a check for connection status of remote registry","operationId":"CreateRemoteRegistryCheck","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateRemoteRegistryCheck"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.RemoteRegistryCheck"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system. Results will be filtered to only those repositories visible to the client.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List all repositories","operationId":"ListRepositories","parameters":[{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}}}}},"/api/v0/repositories/scan/toggle":{"post":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" access to the repository\n(i.e., user owns the repo or is a member of a team with \"admin\" level access to the organization\"s repository).\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Toggles scan on push for all repositories","operationId":"ToggleAllRepositoriesScanOnPush","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.ToggleScanOnPush"}}],"responses":{"200":{"description":"Successfully toggled scan on push for all repositories."},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully toggled scan on push for all repositories."}}}},"/api/v0/repositories/{namespace}":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system. Results will be filtered to only those repositories visible to the client.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List repositories in a namespace","operationId":"ListNamespaceRepositories","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}}}},"post":{"description":"\n*Authorization:* Client must be authenticated as a user who has admin access to the\nrepository namespace (i.e., user owns the repo or is a member of a team with\n\"admin\" level access to the organization's namespace of repositories).\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create repository","operationId":"CreateRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateRepo"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.Repository"}},"400":{"description":"REPOSITORY_EXISTS: A repository with the same name already exists."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"View details of a repository","operationId":"GetRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" access to the repository\n(i.e., user owns the repo or is a member of a team with \"admin\" level access to the organization\"s repository).\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Remove a repository","operationId":"DeleteRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"}],"responses":{"204":{"description":"success or repository does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}},"patch":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" access to the repository\n(i.e., user owns the repo or is a member of a team with \"admin\" level access to the organization\"s repository).\n\nNote that a repository cannot be renamed this way.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Update details of a repository","operationId":"PatchRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateRepo"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}},"400":{"description":"INVALID_REPOSITORY_VISIBILITY: The visibility value of the repository is invalid."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}}}}},"/api/v0/repositories/{namespace}/{reponame}/manifests":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the available manifests for a repository","operationId":"ListRepoManifests","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Manifest"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Manifest"}}}}}},"/api/v0/repositories/{namespace}/{reponame}/manifests/{reference}":{"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"write\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Delete a manifest for a repository","operationId":"DeleteRepoManifest","deprecated":true,"parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"digest or tag for an image manifest","name":"reference","in":"path","required":true}],"responses":{"204":{"description":"success"},"400":{"description":"INVALID_DIGEST: The given digest is invalid."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_MANIFEST: A manifest with the given reference does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pollMirroringPolicies":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the poll mirroring policies for a repository","operationId":"ListRepoPollMirroringPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}}}},"post":{"description":"*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create a poll mirroring policy for a repository","operationId":"CreateRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePollMirroringPolicy"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_POLL_MIRRORING_POLICY: The given poll mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pollMirroringPolicies/{pollmirroringpolicyid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific poll mirroring policy for a repository","operationId":"GetRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"poll mirroring policy id","name":"pollmirroringpolicyid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_POLL_MIRRORING_POLICY: A poll mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Updates a specific poll mirroring policy for a repository","operationId":"UpdateRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"poll mirroring policy id","name":"pollmirroringpolicyid","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdatePollMirroringPolicy"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_POLL_MIRRORING_POLICY: The given poll mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a specific poll mirroring policy for a repository","operationId":"DeleteRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"poll mirroring policy id","name":"pollmirroringpolicyid","in":"path","required":true}],"responses":{"204":{"description":"success or poll mirroring policy does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_POLL_MIRRORING_POLICY: A poll mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/promotionPolicies":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the source or target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the promotion policies for a repository","operationId":"ListRepoPromotionPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to list promotion policies for a repository as a source or destination.","name":"source","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PromotionPolicy"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PromotionPolicy"}}}}},"post":{"description":"*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the source and target repository.\nRules for the policy can be on the following fields and their respective operators:\n- \"tag\"\n\t- \"eq\": equals\n\t- \"sw\": starts with\n\t- \"ew\": ends with\n\t- \"c\": contains\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"license.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"package.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"vulnerability_all\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_critical\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_major\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_minor\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n\nThe tag template is used to rename the tag in the target repository. The\nfollowing symbols are allowed:\n- \"%n\": The tag to promote (e.g. 1, 4.5, latest)\n- \"%A\": Day of the week (e.g. Sunday, Monday)\n- \"%a\": Day of the week, abbreviated (e.g. Sun, Mon , Tue)\n- \"%w\": Day of the week, as a number (e.g. 0, 1, 6)\n- \"%d\": Number for the day of the month (e.g. 01, 15, 31)\n- \"%B\": Month (e.g. January, December)\n- \"%b\": Month, abbreviated (e.g. Jan, Jun, Dec)\n- \"%m\": Month, as a number (e.g. 01, 06, 12)\n- \"%Y\": Year (e.g. 1999, 2015, 2048)\n- \"%y\": Year, two digits (e.g. 99, 15, 48)\n- \"%H\": Hour, in 24 hour format (e.g. 00, 12, 23)\n- \"%I\": Hour, in 12 hour format (e.g. 01, 10, 10)\n- \"%p\": Period of the day (e.g. AM, PM)\n- \"%M\": Minute (e.g. 00, 10, 59)\n- \"%S\": Second (e.g. 00, 10, 59)\n- \"%f\": Microsecond (e.g. 000000, 999999)\n- \"%Z\": Name for the timezone (e.g. UTC, PST, EST)\n- \"%j\": Day of the year (e.g. 001, 200, 366)\n- \"%W\": Week of the year (e.g. 00, 10 , 53)\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create a promotion policy for a repository","operationId":"CreateRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePromotionPolicy"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}},"400":{"description":"REQUIRES_ADVANCED_LICENSE: This feature requires Enterprise Edition Advanced"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PROMOTION_POLICY: The given promotion policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/promotionPolicies/{promotionpolicyid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the source or target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific promotion policy for a repository","operationId":"GetRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"promotion policy id","name":"promotionpolicyid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PROMOTION_POLICY: A promotion policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the source and target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Updates a specific promotion policy for a repository","operationId":"UpdateRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"promotion policy id","name":"promotionpolicyid","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdatePromotionPolicy"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}},"400":{"description":"REQUIRES_ADVANCED_LICENSE: This feature requires Enterprise Edition Advanced"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PROMOTION_POLICY: The given promotion policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the source or target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a specific promotion policy for a repository","operationId":"DeleteRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"promotion policy id","name":"promotionpolicyid","in":"path","required":true}],"responses":{"204":{"description":"success or promotion policy does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PROMOTION_POLICY: A promotion policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pushMirroringPolicies":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the push mirroring policies for a repository","operationId":"ListRepoPushMirroringPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}}}},"post":{"description":"*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.\nRules for the policy can be on the following fields and their respective operators:\n- \"tag\"\n\t- \"eq\": equals\n\t- \"sw\": starts with\n\t- \"ew\": ends with\n\t- \"c\": contains\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"license.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"package.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"vulnerability_all\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_critical\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_major\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_minor\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n\nThe tag template is used to rename the tag in the target repository. The\nfollowing symbols are allowed:\n- \"%n\": The tag to promote (e.g. 1, 4.5, latest)\n- \"%A\": Day of the week (e.g. Sunday, Monday)\n- \"%a\": Day of the week, abbreviated (e.g. Sun, Mon , Tue)\n- \"%w\": Day of the week, as a number (e.g. 0, 1, 6)\n- \"%d\": Number for the day of the month (e.g. 01, 15, 31)\n- \"%B\": Month (e.g. January, December)\n- \"%b\": Month, abbreviated (e.g. Jan, Jun, Dec)\n- \"%m\": Month, as a number (e.g. 01, 06, 12)\n- \"%Y\": Year (e.g. 1999, 2015, 2048)\n- \"%y\": Year, two digits (e.g. 99, 15, 48)\n- \"%H\": Hour, in 24 hour format (e.g. 00, 12, 23)\n- \"%I\": Hour, in 12 hour format (e.g. 01, 10, 10)\n- \"%p\": Period of the day (e.g. AM, PM)\n- \"%M\": Minute (e.g. 00, 10, 59)\n- \"%S\": Second (e.g. 00, 10, 59)\n- \"%f\": Microsecond (e.g. 000000, 999999)\n- \"%Z\": Name for the timezone (e.g. UTC, PST, EST)\n- \"%j\": Day of the year (e.g. 001, 200, 366)\n- \"%W\": Week of the year (e.g. 00, 10 , 53)\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create a push mirroring policy for a repository","operationId":"CreateRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePushMirroringPolicy"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PUSH_MIRRORING_POLICY: The given push mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pushMirroringPolicies/{pushmirroringpolicyid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific push mirroring policy for a repository","operationId":"GetRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"push mirroring policy id","name":"pushmirroringpolicyid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PUSH_MIRRORING_POLICY: A push mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Updates a specific push mirroring policy for a repository","operationId":"UpdateRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"push mirroring policy id","name":"pushmirroringpolicyid","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdatePushMirroringPolicy"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PUSH_MIRRORING_POLICY: The given push mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a specific push mirroring policy for a repository","operationId":"DeleteRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"push mirroring policy id","name":"pushmirroringpolicyid","in":"path","required":true}],"responses":{"204":{"description":"success or push mirroring policy does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PUSH_MIRRORING_POLICY: A push mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the available tags for a repository","operationId":"ListRepoTags","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the manifest for each tag","name":"includeManifests","in":"query"},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific tag for a repository","operationId":"ListRepoTag","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"},{"type":"string","description":"Operating system of the tag","name":"os","in":"query"},{"type":"string","description":"Architecture of the tag","name":"arch","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"write\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Delete a tag for a repository","operationId":"DeleteRepoTag","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"}],"responses":{"204":{"description":"success"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"409":{"description":"TAG_IN_NOTARY: This tag is in notary and can't be deleted until it is removed from notary"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}/promotion":{"post":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"read\" level access to the source repository and \"write\" level access to the target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Promotes a specific tag for a repository","operationId":"CreateRepoTagPromotion","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePromotion"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.Promotion"}},"400":{"description":"INVALID_TAG_NAME: The given tag name is either too long or contains illegal characters."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}/pushMirroring":{"post":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"read\" level access to the local repository and \"write\" level access to the remote repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Mirrors a local tag by pushing to a remote repository","operationId":"CreateRepoTagPushMirroring","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateMirroring"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.Mirroring"}},"400":{"description":"INVALID_TAG_NAME: The given tag name is either too long or contains illegal characters."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/teamAccess":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List teams granted access to an organization-owned repository","operationId":"ListRepoTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}}}}},"/api/v0/repositories/{namespace}/{reponame}/teamAccess/{teamname}":{"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Set a team's access to an orgnization-owned repository","operationId":"GrantRepoTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Access"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}},"400":{"description":"the team does not belong to the organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Revoke a team's acccess to an organization-owned repository","operationId":"RevokeRepoTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true}],"responses":{"204":{"description":"success or the team is not in the access list or there is no such team in the organization"},"400":{"description":"the repository is not owned by an organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/webhooks":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the webhook subscriptions for a repository","operationId":"ListRepoWebhooks","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/repositoryNamespaces/{namespace}/teamAccess":{"get":{"description":"\n*Authorization:* Client must be authenticated as an admin or a member of the organization.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"List teams granted access to an organization-owned namespace of repositories","operationId":"ListRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoNamespaceTeamAccess"}},"400":{"description":"the namespace is not owned by an organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoNamespaceTeamAccess"}}}}},"/api/v0/repositoryNamespaces/{namespace}/teamAccess/{teamname}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level\naccess to the namespace or is a member of the team.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"Get a team's granted access to an organization-owned namespace of repositories","operationId":"GetRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_NAMESPACE_TEAM_ACCESS: An access grant for the given team in the given namespace does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the namespace.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"Set a team's access to an organization-owned namespace of repositories","operationId":"GrantRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Access"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}},"400":{"description":"the team does not belong to the owning organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the namespace.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"Revoke a team's access to an organization-owned namespace of repositories","operationId":"RevokeRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true}],"responses":{"204":{"description":"success or the team does not exist in the access list or there is no such team in the organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/webhooks":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"List Webhooks","operationId":"ListWebhooks","parameters":[{"type":"string","default":"any","description":"The type of webhook to list","name":"webhookType","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Create Webhook","operationId":"CreateWebhook","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Webhook"}}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/webhooks/test":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Test Webhook","operationId":"TestWebhook","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.WebhookTestPayload"}}],"responses":{"200":{"description":"OK"},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK"}}}},"/api/v0/webhooks/update":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Update Webhook","operationId":"UpdateWebhook","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.WebhookUpdate"}}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/webhooks/{webhook}":{"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Delete Webhook","operationId":"DeleteWebhook","parameters":[{"type":"string","description":"webhook subscription ID","name":"webhook","in":"path","required":true}],"responses":{"200":{"description":"OK"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_WEBHOOK: A webhook subscription with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK"}}}},"/api/v0/workers":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["workers"],"summary":"List all workers","operationId":"ListWorkers","responses":{"200":{"description":"Success, list of workers returned.","schema":{"$ref":"#/definitions/tmpresponses.Workers"}},"default":{"description":"Success, list of workers returned.","schema":{"$ref":"#/definitions/tmpresponses.Workers"}}}}},"/api/v0/workers/{id}/capacity":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["workers"],"summary":"Update the capacity for a worker","operationId":"UpdateWorkerCapacity","parameters":[{"type":"string","description":"ID of worker to update","name":"id","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.UpdateWorkerCapacity"}}],"responses":{"202":{"description":"Success."}}}}},"definitions":{"forms.Access":{"required":["accessLevel"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]}}},"forms.CreateAPIToken":{"properties":{"tokenLabel":{"type":"string"}}},"forms.CreateContentCache":{"required":["name","host"],"properties":{"host":{"type":"string"},"name":{"type":"string"}}},"forms.CreateMirroring":{"required":["remoteHost","remoteRepository","remoteCA","skipTLSVerification","remoteTag","username","password","authToken"],"properties":{"authToken":{"type":"string"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"remoteTag":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.CreatePollMirroringPolicy":{"required":["remoteHost","remoteRepository","remoteCA","skipTLSVerification","enabled","username","password","authToken"],"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.CreatePromotion":{"required":["targetRepository","targetTag"],"properties":{"targetRepository":{"type":"string"},"targetTag":{"type":"string"}}},"forms.CreatePromotionPolicy":{"required":["rules","targetRepository","tagTemplate","enabled"],"properties":{"enabled":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"tagTemplate":{"type":"string"},"targetRepository":{"type":"string"}}},"forms.CreatePushMirroringPolicy":{"required":["rules","remoteHost","remoteRepository","remoteCA","skipTLSVerification","tagTemplate","enabled","username","password","authToken"],"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"skipTLSVerification":{"type":"boolean"},"tagTemplate":{"type":"string"},"username":{"type":"string"}}},"forms.CreateRemoteRegistryCheck":{"required":["remoteHost","remoteRepository","remoteCA","skipTLSVerification","username","password","authToken"],"properties":{"authToken":{"type":"string"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.CreateRepo":{"required":["name","shortDescription","longDescription","scanOnPush","immutableTags","enableManifestLists"],"properties":{"enableManifestLists":{"type":"boolean"},"immutableTags":{"type":"boolean"},"longDescription":{"type":"string"},"name":{"type":"string"},"scanOnPush":{"type":"boolean"},"shortDescription":{"type":"string"},"visibility":{"type":"string","enum":["public","private"]}}},"forms.EmptyForm":{},"forms.ScanOptions":{"required":["scan","check"],"properties":{"check":{"type":"boolean"},"scan":{"type":"boolean"}}},"forms.Settings":{"required":["dtrHost","sso","createRepositoryOnPush","reportAnalytics","anonymizeAnalytics","disableBackupWarning","webTLSCert","webTLSKey","webTLSCA","scanningEnabled","scanningSyncOnline","scanningEnableAutoRecheck","jobHistoryToKeep"],"properties":{"anonymizeAnalytics":{"type":"boolean"},"createRepositoryOnPush":{"type":"boolean"},"disableBackupWarning":{"type":"boolean"},"dtrHost":{"type":"string"},"jobHistoryToKeep":{"type":"integer"},"reportAnalytics":{"type":"boolean"},"scanningEnableAutoRecheck":{"type":"boolean"},"scanningEnabled":{"type":"boolean"},"scanningSyncOnline":{"type":"boolean"},"sso":{"type":"boolean"},"webTLSCA":{"type":"string"},"webTLSCert":{"type":"string"},"webTLSKey":{"type":"string"}}},"forms.ToggleScanOnPush":{"required":["scanOnPush"],"properties":{"scanOnPush":{"type":"boolean"}}},"forms.UpdateAPIToken":{"properties":{"isActive":{"type":"boolean"},"tokenLabel":{"type":"string"}}},"forms.UpdatePollMirroringPolicy":{"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.UpdatePromotionPolicy":{"properties":{"enabled":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"tagTemplate":{"type":"string"},"targetRepository":{"type":"string"}}},"forms.UpdatePushMirroringPolicy":{"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"skipTLSVerification":{"type":"boolean"},"tagTemplate":{"type":"string"},"username":{"type":"string"}}},"forms.UpdateRepo":{"required":["immutableTags"],"properties":{"enableManifestLists":{"type":"boolean"},"immutableTags":{"type":"boolean"},"longDescription":{"type":"string"},"scanOnPush":{"type":"boolean"},"shortDescription":{"type":"string"},"visibility":{"type":"string","enum":["public","private"]}}},"forms.UserSettings":{"properties":{"contentCacheUUID":{"type":"string"}}},"forms.VulnOverrideOption":{"required":["component","componentVersion","cve","notes"],"properties":{"component":{"type":"string"},"componentVersion":{"type":"string"},"cve":{"type":"string"},"notes":{"type":"string"}}},"forms.Webhook":{"required":["endpoint"],"properties":{"endpoint":{"type":"string"},"key":{"type":"string"},"type":{"type":"string","enum":["TAG_PUSH","TAG_DELETE","PROMOTION","PUSH_MIRRORING","POLL_MIRRORING","MANIFEST_PUSH","MANIFEST_DELETE","REPO_EVENT","SCAN_COMPLETED","SCAN_FAILED","SCANNER_UPDATE_COMPLETED"]}}},"forms.WebhookTestPayload":{"required":["type","endpoint"],"properties":{"endpoint":{"type":"string"},"type":{"type":"string"}}},"forms.WebhookUpdate":{"required":["id","inactive"],"properties":{"id":{"type":"string"},"inactive":{"type":"boolean"}}},"responses.APIToken":{"required":["hashedToken","tokenLabel","isActive","lastUsed","createdAt","generatedBy","creatorUa"],"properties":{"createdAt":{"type":"string","format":"date-time"},"creatorUa":{"type":"string"},"generatedBy":{"type":"string"},"hashedToken":{"type":"string"},"isActive":{"type":"boolean"},"lastUsed":{"type":"string","format":"date-time"},"tokenLabel":{"type":"string"}}},"responses.Account":{"required":["name","id","fullName","isOrg","isImported"],"properties":{"fullName":{"description":"Full Name of the account","type":"string"},"id":{"description":"ID of the account","type":"string"},"isActive":{"description":"Whether the user is active and can login (users only)","type":"boolean"},"isAdmin":{"description":"Whether the user is a system admin (users only)","type":"boolean"},"isImported":{"type":"boolean"},"isOrg":{"description":"Whether the account is an organization (or user)","type":"boolean"},"membersCount":{"description":"The number of members of the organization","type":"integer","format":"int32"},"name":{"description":"Name of the account","type":"string"}}},"responses.Autocomplete":{"properties":{"accountResults":{"type":"array","items":{"$ref":"#/definitions/responses.Account"}},"repositoryResults":{"type":"array","items":{"$ref":"#/definitions/responses.Repository"}}}},"responses.ClusterStatus":{"required":["rethink_system_tables","replica_health","replica_timestamp","replica_readonly","gc_lock_holder"],"properties":{"gc_lock_holder":{"type":"string"},"replica_health":{"type":"object"},"replica_readonly":{"type":"object"},"replica_timestamp":{"type":"object"},"rethink_system_tables":{"type":"object"}}},"responses.Component":{"required":["component","version","vulns","fullpath"],"properties":{"component":{"type":"string"},"fullpath":{"type":"array","items":{"type":"string"}},"license":{"$ref":"#/definitions/responses.License"},"version":{"type":"string"},"vulns":{"type":"array","items":{"$ref":"#/definitions/responses.VulnerabilityDetails"}}}},"responses.ContentCache":{"required":["id","name","host"],"properties":{"host":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"}}},"responses.DetailedSummary":{"required":["sha256sum"],"properties":{"components":{"type":"array","items":{"$ref":"#/definitions/responses.Component"}},"sha256sum":{"type":"string"}}},"responses.DockerRepository":{"required":["description","is_official","is_trusted","name","star_count"],"properties":{"description":{"type":"string"},"is_official":{"type":"boolean"},"is_trusted":{"type":"boolean"},"name":{"type":"string"},"star_count":{"type":"integer","format":"int32"}}},"responses.DockerSearch":{"required":["num_results","query","results"],"properties":{"num_results":{"type":"integer","format":"int32"},"query":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/definitions/responses.DockerRepository"}}}},"responses.DockerfileLine":{"required":["line","layerDigest","size","isEmpty"],"properties":{"isEmpty":{"type":"boolean"},"layerDigest":{"type":"string"},"line":{"type":"string"},"mediaType":{"type":"string"},"size":{"type":"integer","format":"int64"},"urls":{"type":"array","items":{"type":"string"}}}},"responses.Events":{"required":["events"],"properties":{"events":{"type":"array","items":{"$ref":"#/definitions/schema.Event"}}}},"responses.Features":{"required":["scanningEnabled","scanningLicensed","promotionLicensed","mirroringLicensed","metadataStoreOptedIn","onlineGCEnabled","db_version","ucpHost"],"properties":{"db_version":{"type":"integer","format":"int32"},"metadataStoreOptedIn":{"type":"boolean"},"mirroringLicensed":{"type":"boolean"},"onlineGCEnabled":{"type":"boolean"},"promotionLicensed":{"type":"boolean"},"scanningEnabled":{"type":"boolean"},"scanningLicensed":{"type":"boolean"},"ucpHost":{"type":"string"}}},"responses.Language":{"required":["language"],"properties":{"language":{"type":"string"}}},"responses.LayerVulnOverride":{"required":["pk","digest","component","componentVersion","cve","notes"],"properties":{"component":{"type":"string"},"componentVersion":{"type":"string"},"cve":{"type":"string"},"digest":{"type":"string"},"notes":{"type":"string"},"pk":{"type":"string"}}},"responses.License":{"required":["name","type","url"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}}},"responses.ListRepoNamespaceTeamAccess":{"required":["namespace","teamAccessList"],"properties":{"namespace":{"type":"string"},"teamAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.TeamAccess"}}}},"responses.ListRepoTeamAccess":{"required":["repository","teamAccessList"],"properties":{"repository":{"$ref":"#/definitions/responses.Repository"},"teamAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.TeamAccess"}}}},"responses.ListTeamRepoAccess":{"required":["team","repositoryAccessList"],"properties":{"repositoryAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.RepoAccess"}},"team":{"$ref":"#/definitions/responses.Team"}}},"responses.Manifest":{"required":["digest"],"properties":{"architecture":{"type":"string"},"author":{"type":"string"},"configDigest":{"type":"string"},"configMediaType":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"digest":{"type":"string"},"dockerfile":{"type":"array","items":{"$ref":"#/definitions/responses.DockerfileLine"}},"mediaType":{"type":"string"},"os":{"type":"string"},"osVersion":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"responses.Mirroring":{"required":["mirroringPolicyID","digest","remoteRepository","remoteTag"],"properties":{"digest":{"type":"string"},"mirroringPolicyID":{"type":"string"},"remoteRepository":{"type":"string"},"remoteTag":{"type":"string"}}},"responses.NamespaceTeamAccess":{"required":["accessLevel","team","namespace"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"namespace":{"type":"string"},"team":{"$ref":"#/definitions/responses.Team"}}},"responses.NautilusStatus":{"required":["state","scanner_version","scannerUpdatedAt","db_version","db_updated_at","lastDBUpdateFailed","lastVulnOverridesDBUpdateFailed"],"properties":{"db_updated_at":{"type":"string","format":"date-time"},"db_version":{"type":"integer","format":"int32"},"lastDBUpdateFailed":{"type":"boolean"},"lastVulnOverridesDBUpdateFailed":{"type":"boolean"},"replicas":{"type":"object"},"scannerUpdatedAt":{"type":"string","format":"date-time"},"scanner_version":{"type":"integer","format":"int32"},"state":{"type":"integer","format":"int32"}}},"responses.NewAPIToken":{"required":["token","hashedToken","tokenLabel","isActive","lastUsed","createdAt","generatedBy","creatorUa"],"properties":{"createdAt":{"type":"string","format":"date-time"},"creatorUa":{"type":"string"},"generatedBy":{"type":"string"},"hashedToken":{"type":"string"},"isActive":{"type":"boolean"},"lastUsed":{"type":"string","format":"date-time"},"token":{"type":"string"},"tokenLabel":{"type":"string"}}},"responses.Note":{"required":["reason","type"],"properties":{"reason":{"type":"string"},"type":{"type":"string"}}},"responses.OldScanSummary":{"required":["namespace","reponame","tag","critical","major","minor","last_scan_status","check_completed_at","should_rescan","has_foreign_layers"],"properties":{"check_completed_at":{"type":"string","format":"date-time"},"critical":{"type":"integer","format":"int32"},"has_foreign_layers":{"type":"boolean"},"last_scan_status":{"type":"integer","format":"int32"},"layer_details":{"type":"array","items":{"$ref":"#/definitions/responses.DetailedSummary"}},"major":{"type":"integer","format":"int32"},"minor":{"type":"integer","format":"int32"},"namespace":{"type":"string"},"reponame":{"type":"string"},"should_rescan":{"type":"boolean"},"tag":{"type":"string"}}},"responses.PollMirroringPolicy":{"required":["id","username","localRepository","remoteHost","remoteRepository","remoteCA","skipTLSVerification","enabled","lastMirroredAt","lastStatus"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastMirroredAt":{"type":"string"},"lastStatus":{"$ref":"#/definitions/schema.MirroringStatus"},"localRepository":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"responses.Promotion":{"required":["promotionPolicyID","string","sourceRepository","sourceTag"],"properties":{"promotionPolicyID":{"type":"string"},"sourceRepository":{"type":"string"},"sourceTag":{"type":"string"},"string":{"type":"string"}}},"responses.PromotionPolicy":{"required":["id","rules","sourceRepository","targetRepository","tagTemplate","enabled","lastPromotedAt"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastPromotedAt":{"type":"string","format":"date-time"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"sourceRepository":{"type":"string"},"tagTemplate":{"type":"string"},"targetRepository":{"type":"string"}}},"responses.PushMirroringPolicy":{"required":["id","rules","username","localRepository","remoteHost","remoteRepository","remoteCA","skipTLSVerification","tagTemplate","enabled","lastMirroredAt","lastStatus"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastMirroredAt":{"type":"string"},"lastStatus":{"$ref":"#/definitions/schema.MirroringStatus"},"localRepository":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"skipTLSVerification":{"type":"boolean"},"tagTemplate":{"type":"string"},"username":{"type":"string"}}},"responses.RemoteRegistryCheck":{"required":["registryType","accessLevel"],"properties":{"accessLevel":{"type":"string"},"registryType":{"type":"string"}}},"responses.RepoAccess":{"required":["accessLevel","repository"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"repository":{"$ref":"#/definitions/responses.Repository"}}},"responses.RepoUserAccess":{"required":["accessLevel","user","repository"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"repository":{"$ref":"#/definitions/responses.Repository"},"user":{"$ref":"#/definitions/responses.Account"}}},"responses.Repositories":{"required":["repositories"],"properties":{"repositories":{"type":"array","items":{"$ref":"#/definitions/responses.Repository"}}}},"responses.Repository":{"required":["id","namespace","namespaceType","name","shortDescription","visibility","scanOnPush","immutableTags","enableManifestLists","pulls","pushes"],"properties":{"enableManifestLists":{"type":"boolean"},"id":{"type":"string"},"immutableTags":{"type":"boolean"},"longDescription":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"namespaceType":{"type":"string","enum":["user","organization"]},"pulls":{"type":"integer","format":"integer"},"pushes":{"type":"integer","format":"integer"},"scanOnPush":{"type":"boolean"},"shortDescription":{"type":"string"},"visibility":{"type":"string","enum":["public","private"]}}},"responses.ScanSummary":{"required":["scannedImage","shouldRescan"],"properties":{"scanStatus":{"type":"integer","format":"int32"},"scannedImage":{"$ref":"#/definitions/schema.ScannedImage"},"shouldRescan":{"type":"boolean"}}},"responses.Settings":{"required":["dtrHost","sso","createRepositoryOnPush","replicaSettings","httpProxy","httpsProxy","noProxy","reportAnalytics","anonymizeAnalytics","disableBackupWarning","logProtocol","logHost","logLevel","webTLSCert","webTLSCA","replicaID","scanningEnabled","scanningSyncOnline","scanningEnableAutoRecheck","jobHistoryToKeep","storageVolume","nfsHost","nfsPath"],"properties":{"anonymizeAnalytics":{"type":"boolean"},"createRepositoryOnPush":{"type":"boolean"},"disableBackupWarning":{"type":"boolean"},"dtrHost":{"type":"string"},"httpProxy":{"type":"string"},"httpsProxy":{"type":"string"},"jobHistoryToKeep":{"type":"integer"},"logHost":{"type":"string"},"logLevel":{"type":"string"},"logProtocol":{"type":"string"},"nfsHost":{"type":"string"},"nfsPath":{"type":"string"},"noProxy":{"type":"string"},"replicaID":{"type":"string"},"replicaSettings":{"type":"object"},"reportAnalytics":{"type":"boolean"},"scanningEnableAutoRecheck":{"type":"boolean"},"scanningEnabled":{"type":"boolean"},"scanningSyncOnline":{"type":"boolean"},"sso":{"type":"boolean"},"storageVolume":{"type":"string"},"webTLSCA":{"type":"string"},"webTLSCert":{"type":"string"}}},"responses.Tag":{"required":["name","digest","author","updatedAt","createdAt","hashMismatch","inNotary","manifest","licenses","components"],"properties":{"author":{"type":"string"},"components":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerComponent"}},"createdAt":{"type":"string","format":"date-time"},"digest":{"type":"string"},"hashMismatch":{"description":"true if the hashes from notary and registry don't match","type":"boolean"},"inNotary":{"description":"true if the tag exists in Notary","type":"boolean"},"licenses":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerLicense"}},"manifest":{"$ref":"#/definitions/responses.Manifest"},"mirroring":{"$ref":"#/definitions/responses.Mirroring"},"name":{"type":"string"},"promotion":{"$ref":"#/definitions/responses.Promotion"},"updatedAt":{"type":"string","format":"date-time"},"vuln_summary":{"$ref":"#/definitions/responses.OldScanSummary"}}},"responses.Team":{"required":["id","clientUserIsMember"],"properties":{"clientUserIsMember":{"type":"boolean"},"id":{"type":"string"}}},"responses.TeamAccess":{"required":["accessLevel","team"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"team":{"$ref":"#/definitions/responses.Team"}}},"responses.UserSettings":{"required":["ContentCacheUUID"],"properties":{"ContentCacheUUID":{"type":"string"}}},"responses.Vulnerability":{"required":["cve","cvss","summary"],"properties":{"cve":{"type":"string"},"cvss":{"type":"number","format":"float"},"summary":{"type":"string"}}},"responses.VulnerabilityDetails":{"required":["vuln","exact","notes"],"properties":{"exact":{"type":"boolean"},"notes":{"type":"array","items":{"$ref":"#/definitions/responses.Note"}},"vuln":{"$ref":"#/definitions/responses.Vulnerability"}}},"responses.Webhook":{"required":["id","type","key","endpoint","authorID","createdAt","inactive"],"properties":{"authorID":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"endpoint":{"type":"string"},"id":{"type":"string"},"inactive":{"type":"boolean"},"key":{"type":"string"},"lastSuccessfulAt":{"type":"string","format":"date-time"},"type":{"type":"string"}}},"ruleengine.Rule":{"properties":{"field":{"type":"string"},"operator":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}}},"schema.Event":{"required":["id","publishedAt","actor","type","object"],"properties":{"actor":{"type":"string"},"id":{"type":"string"},"object":{"$ref":"#/definitions/schema.Object"},"publishedAt":{"type":"string","format":"date-time"},"target":{"$ref":"#/definitions/schema.Object"},"type":{"type":"string"}}},"schema.LayerVulnOverride":{"required":["pk","digest","component","componentVersion","cve","notes"],"properties":{"component":{"type":"string"},"componentVersion":{"type":"string"},"cve":{"type":"string"},"digest":{"type":"string"},"notes":{"type":"string"},"pk":{"type":"string"}}},"schema.MirroringStatus":{"required":["code","detail","timestamp"],"properties":{"code":{"type":"string"},"detail":{"type":"string"},"timestamp":{"type":"string","format":"date-time"}}},"schema.Object":{"required":["id","type"],"properties":{"content":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"}}},"schema.ScannedImage":{"required":["pk","namespace","repository","tag","manifestDigest","totalVulnCount","licenses","layers","components","cves","maxCVSSValue","scannerFingerprint","vulnOverrides"],"properties":{"components":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerComponent"}},"cves":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerCVE"}},"layers":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerLayer"}},"licenses":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerLicense"}},"manifestDigest":{"type":"string"},"maxCVSSValue":{"type":"number","format":"float"},"namespace":{"type":"string"},"pk":{"type":"string"},"repository":{"type":"string"},"scannerFingerprint":{"$ref":"#/definitions/schema.ScannerFingerprint"},"tag":{"type":"string"},"totalVulnCount":{"$ref":"#/definitions/schema.ScannerVulnCount"},"vulnOverrides":{"type":"array","items":{"$ref":"#/definitions/schema.LayerVulnOverride"}}}},"schema.ScannerCVE":{"required":["cvePK","summary","cvss","notes"],"properties":{"cvePK":{"type":"string"},"cvss":{"type":"number","format":"float"},"notes":{"type":"string"},"summary":{"type":"string"}}},"schema.ScannerComponent":{"required":["componentPK","vulnCount","name","version","filepaths","cves","licenses"],"properties":{"componentPK":{"type":"string"},"cves":{"type":"array","items":{"type":"string"}},"filepaths":{"type":"array","items":{"type":"string"}},"licenses":{"type":"array","items":{"type":"string"}},"name":{"type":"string"},"version":{"type":"string"},"vulnCount":{"$ref":"#/definitions/schema.ScannerVulnCount"}}},"schema.ScannerFingerprint":{"required":["scannerType","version"],"properties":{"scannerType":{"type":"integer","format":"int32"},"version":{"type":"array","items":{"type":"string"}}}},"schema.ScannerLayer":{"required":["digest","mediaType","author","size","components"],"properties":{"author":{"type":"string"},"components":{"type":"array","items":{"type":"string"}},"digest":{"type":"string"},"mediaType":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"schema.ScannerLicense":{"required":["name","url","type"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}}},"schema.ScannerVulnCount":{"required":["critical","major","minor"],"properties":{"critical":{"type":"integer","format":"int32"},"major":{"type":"integer","format":"int32"},"minor":{"type":"integer","format":"int32"}}},"tmpforms.ActionConfigCreate":{"required":["action","parameters"],"properties":{"action":{"description":"The action to modify the config for","type":"string"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job. These are overwritten by any corresponding parameters set in the job itself.","type":"object"}}},"tmpforms.CronCreate":{"required":["action","schedule","retries","capacityMap","parameters","deadline","stopTimeout"],"properties":{"action":{"description":"The action which the cron will perform","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object"},"deadline":{"description":"After this amount of time has passed, a SIGTERM will be sent","type":"string"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object"},"retries":{"description":"The number of times to retry a job if it fails","type":"integer","format":"int32"},"schedule":{"description":"The for the cron as a cronspec string: (seconds) (minutes) (hours) (day of month) (month) (day of week) or @hourly, @weekly, etc.","type":"string"},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"}}},"tmpforms.EmptyForm":{},"tmpforms.JobSubmission":{"required":["action","parameters","retries","capacityMap","deadline","stopTimeout","scheduledAt"],"properties":{"action":{"description":"The action which the job will perform","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object"},"deadline":{"description":"After this amount of time has passed, a SIGTERM will be sent","type":"string"},"parameters":{"description":"Parameters to start the job with","type":"object"},"retries":{"description":"The number of times to retry a job if it fails","type":"integer","format":"int32"},"scheduledAt":{"description":"The time at which to run the job. Empty string or no value means now. Format: RFC3339","type":"string"},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"}}},"tmpforms.UpdateWorkerCapacity":{"required":["capacityMap"],"properties":{"capacityMap":{"description":"The new capacity for the worker, representing roughly the amount of RAM to use","type":"object"}}},"tmpresponses.ActionConfig":{"required":["id","action","parameters"],"properties":{"action":{"description":"The action this config refers to.","type":"string"},"id":{"description":"Randomly generated UUID for foreign references.","type":"string"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object"}}},"tmpresponses.ActionConfigs":{"required":["actionConfigs"],"properties":{"actionConfigs":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}},"tmpresponses.Cron":{"required":["id","action","schedule","retries","capacityMap","parameters","deadline","stopTimeout","nextRun"],"properties":{"action":{"description":"The action to be performed by jobs spawned from this cron.","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object"},"deadline":{"type":"string"},"id":{"description":"Randomly generated UUID for foreign references.","type":"string"},"nextRun":{"description":"The next time the job will run.","type":"string","format":"date-time"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object"},"retries":{"description":"The number of times to retry the job if it fails","type":"integer","format":"int32"},"schedule":{"description":"The schedule for this cron as a cronspec string: (seconds) (minutes) (hours) (day of month) (month) (day of week) or @hourly, @weekly, etc.","type":"string"},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"}}},"tmpresponses.Crons":{"required":["crons"],"properties":{"crons":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.Cron"}}}},"tmpresponses.Job":{"required":["id","retryFromID","workerID","status","scheduledAt","lastUpdated","action","retriesLeft","retriesTotal","capacityMap","parameters","deadline","stopTimeout"],"properties":{"action":{"description":"The action this job performs","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object"},"deadline":{"type":"string"},"id":{"description":"The ID of the job","type":"string"},"lastUpdated":{"description":"The last time at which the status of this job was updated","type":"string","format":"date-time"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object"},"retriesLeft":{"description":"The number of times to retry the job if it fails","type":"integer","format":"int32"},"retriesTotal":{"description":"The total number of times to retry the original job if it fails","type":"integer","format":"int32"},"retryFromID":{"description":"The ID of the job this job retried from","type":"string"},"scheduledAt":{"description":"The time at which this job was scheduled","type":"string","format":"date-time"},"status":{"description":"The current status of the job","type":"string","enum":["waiting","running","done","canceled","errored"]},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"},"workerID":{"description":"The ID of the worker which performed the job, unclaimed by a worker if empty","type":"string"}}},"tmpresponses.JobLog":{"required":["data","lineNum"],"properties":{"data":{"type":"string"},"lineNum":{"type":"integer","format":"int32"}}},"tmpresponses.Jobs":{"required":["jobs"],"properties":{"jobs":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.Job"}}}},"tmpresponses.Worker":{"required":["id","status","capacityMap","heartbeatExpiration"],"properties":{"capacityMap":{"description":"A map used to represent now much load the worker should be allocated. Only security scanning jobs use this and the value is roughly equivalent to expected memory usage in bytes.","type":"object"},"heartbeatExpiration":{"description":"Time after which the worker should be considered dead.","type":"string"},"id":{"description":"Randomly generated UUID for foreign references.","type":"string"},"status":{"description":"Status of the worker","type":"string"}}},"tmpresponses.Workers":{"required":["workers"],"properties":{"workers":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.Worker"}}}}},"tags":[{"description":"Accounts","name":"accounts"},{"description":"Admin","name":"meta"},{"description":"Content Caches","name":"content_caches"},{"description":"Repositories","name":"repositories"},{"description":"Repository Namespaces","name":"repositoryNamespaces"},{"description":"Events","name":"events"},{"description":"Docker Security Scanner","name":"imagescan"},{"description":"Webhooks","name":"webhooks"},{"description":"Jobs","name":"jobs"},{"description":"Crons","name":"crons"},{"description":"Workers","name":"workers"},{"description":"Action Configs","name":"action_configs"}]} , dom_id: '#swagger-ui', validatorUrl: null, diff --git a/datacenter/dtr/2.5/reference/cli/backup.md b/datacenter/dtr/2.5/reference/cli/backup.md index bee8b2615a..96a95e17d7 100644 --- a/datacenter/dtr/2.5/reference/cli/backup.md +++ b/datacenter/dtr/2.5/reference/cli/backup.md @@ -16,34 +16,38 @@ docker run -i --rm docker/dtr \ ## Description -This command creates a tar file with the contents of the volumes used by -DTR, and prints it. You can then use the 'restore' command to restore the data -from an existing backup. +This command creates a `tar` file with the contents of the volumes used by +DTR, and prints it. You can then use `docker/dtr restore` to restore the data +from an existing backup. Note: * This command only creates backups of configurations, and image metadata. - It doesn't backup users and organizations. Users and organizations can be - backed up when performing a UCP backup. + It does not back up users and organizations. Users and organizations can be + backed up during a UCP backup. - It also doesn't backup the Docker images stored in your registry. + It also doesn't back up Docker images stored in your registry. You should implement a separate backup policy for the Docker images stored - in your registry, taking in consideration whether your DTR installation is - configured to store images on the filesystem or using a cloud provider. + in your registry, taking into consideration whether your DTR installation is + configured to store images on the filesystem or is using a cloud provider. * This backup contains sensitive information and should be stored securely. + * Using the `--offline-backup` flag temporarily shuts down the RethinkDB container. + Take the replica out of your load balancer to avoid downtime. + ## Options | Option | Environment Variable | Description | |:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| | `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | +| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica. To add, remove or modify a DTR replica, you must connect to an existing healthy replica's database. | | `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | +| `--offline-backup` | $DTR_OFFLINE_BACKUP | This flag takes RethinkDB down during backup and takes a more reliable backup. If you back up DTR with this flag, RethinkDB will go down during backup. However, offline backups are guaranteed to be more consistent than online backups. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP. Download the UCP TLS CA certificate from `https:///ca`, and use `--ucp-ca "$(cat ca.pem)"`. | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP. The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to MITM (man-in-the-middle) attacks. For production deployments, use `--ucp-ca "$(cat ca.pem)"` instead. | | `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | | `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | | `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | diff --git a/reference/dtr/2.5/cli/emergency-repair.md b/datacenter/dtr/2.5/reference/cli/emergency-repair.md similarity index 65% rename from reference/dtr/2.5/cli/emergency-repair.md rename to datacenter/dtr/2.5/reference/cli/emergency-repair.md index 7d8b299df3..be8b936349 100644 --- a/reference/dtr/2.5/cli/emergency-repair.md +++ b/datacenter/dtr/2.5/reference/cli/emergency-repair.md @@ -26,14 +26,14 @@ There are three steps you can take to recover an unhealthy DTR cluster: 2. If the majority of replicas are unhealthy, use this command to revert your cluster to a single DTR replica. 3. If you can't repair your cluster to a single replica, you'll have to - restore from an existing backup, using the 'restore' command. + restore from an existing backup, using the `restore` command. When you run this command, a DTR replica of your choice is repaired and turned into the only replica in the whole DTR cluster. The containers for all the other DTR replicas are stopped and removed. When -using the 'force' option, the volumes for these replicas are also deleted. +using the `force` option, the volumes for these replicas are also deleted. -After repairing the cluster, you should use the 'join' command to add more +After repairing the cluster, you should use the `join` command to add more DTR replicas for high availability. @@ -42,12 +42,12 @@ DTR replicas for high availability. | Option | Environment Variable | Description | |:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| | `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | +| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica. To add, remove or modify DTR, you must connect to an existing healthy replica's database. | | `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | -| `--overlay-subnet` | $DTR_OVERLAY_SUBNET | The subnet used by the dtr-ol overlay network. Example: 10.0.0.0/24.For high-availalibity, DTR creates an overlay network between UCP nodes. This flag allows you to choose the subnet for that network. Make sure the subnet you choose is not used on any machine where DTR replicas are deployed. | -| `--prune` | $PRUNE | Delete the data volumes of all unhealthy replicas.With this option, the volume of the DTR replica you're restoring is preserved but the volumes for all other replicas are deleted. This has the same result as completely uninstalling DTR from those replicas.. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | +| `--overlay-subnet` | $DTR_OVERLAY_SUBNET | The subnet used by the dtr-ol overlay network. Example: `10.0.0.0/24`. For high-availability, DTR creates an overlay network between UCP nodes. This flag allows you to choose the subnet for that network. Make sure the subnet you choose is not used on any machine where DTR replicas are deployed. | +| `--prune` | $PRUNE | Delete the data volumes of all unhealthy replicas. With this option, the volume of the DTR replica you`re restoring is preserved but the volumes for all other replicas are deleted. This has the same result as completely uninstalling DTR from those replicas. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP. Download the UCP TLS CA certificate from https:///ca, and use `--ucp-ca "$(cat ca.pem)"`. | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP. The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to MITM (man-in-the-middle) attacks. For production deployments, use `--ucp-ca "$(cat ca.pem)"` instead. | | `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | | `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | | `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | diff --git a/datacenter/dtr/2.5/reference/cli/index.md b/datacenter/dtr/2.5/reference/cli/index.md index 93fc8079ee..0a40303483 100644 --- a/datacenter/dtr/2.5/reference/cli/index.md +++ b/datacenter/dtr/2.5/reference/cli/index.md @@ -19,17 +19,20 @@ docker run -it --rm docker/dtr \ command [command options] ``` +If not specified, `docker/dtr` uses the `latest` tag by default. To work with a different version, specify it in the command. For example, `docker run -it --rm docker/dtr:2.5.5`. + ## Commands -| Option | Description | -|:------------------------------------------|:---------------------------| -|[install](install)| Install Docker Trusted Registry | -|[join](join)| Add a new replica to an existing DTR cluster | -|[reconfigure](reconfigure)| Change DTR configurations | -|[remove](remove)| Remove a DTR replica from a cluster | -|[destroy](destroy)| Destroy a DTR replica's data | -|[restore](restore)| Install and restore DTR from an existing backup | -|[backup](backup)| Create a backup of DTR | -|[upgrade](upgrade)| Upgrade DTR 2.3.x cluster to this version | -|[images](images)| List all the images necessary to install DTR | +| Option | Description | +|:-------------------------------------|:------------------------------------------------| +| [install](install) | Install Docker Trusted Registry | +| [join](join) | Add a new replica to an existing DTR cluster | +| [reconfigure](reconfigure) | Change DTR configurations | +| [remove](remove) | Remove a DTR replica from a cluster | +| [destroy](destroy) | Destroy a DTR replica's data | +| [restore](restore) | Install and restore DTR from an existing backup | +| [backup](backup) | Create a backup of DTR | +| [upgrade](upgrade) | Upgrade DTR 2.4.x cluster to this version | +| [images](images) | List all the images necessary to install DTR | +| [emergency-repair](emergency-repair) | Recover DTR from loss of quorum | diff --git a/datacenter/dtr/2.5/reference/cli/install.md b/datacenter/dtr/2.5/reference/cli/install.md index b7699e1e52..4db1f660bf 100644 --- a/datacenter/dtr/2.5/reference/cli/install.md +++ b/datacenter/dtr/2.5/reference/cli/install.md @@ -19,43 +19,43 @@ docker run -it --rm docker/dtr \ This command installs Docker Trusted Registry (DTR) on a node managed by Docker Universal Control Plane (UCP). -After installing DTR, you can join additional DTR replicas using the 'join' -command. +After installing DTR, you can join additional DTR replicas using `docker/dtr join`. -Example usage: +### Example Usage -$ docker run -it --rm docker/dtr:2.4.1 install \ +$ docker run -it --rm docker/dtr install \ --ucp-node \ --ucp-insecure-tls -Note: Use --ucp-ca "$(cat ca.pem)" instead of --ucp-insecure-tls for a production deployment. +Note: Use `--ucp-ca "$(cat ca.pem)"` instead of `--ucp-insecure-tls` for a production deployment. ## Options | Option | Environment Variable | Description | |:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| | `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--dtr-ca` | $DTR_CA | Use a PEM-encoded TLS CA certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS CA certificate with --dtr-ca "$(cat ca.pem)". | -| `--dtr-cert` | $DTR_CERT | Use a PEM-encoded TLS certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS certificate with --dtr-cert "$(cat ca.pem)". | -| `--dtr-external-url` | $DTR_EXTERNAL_URL | URL of the host or load balancer clients use to reach DTR.When you use this flag, users are redirected to UCP for logging in. Once authenticated they are redirected to the url you specify in this flag. If you don't use this flag, DTR is deployed without single sign-on with UCP. Users and teams are shared but users login separately into the two applications. You can enable and disable single sign-on in the DTR settings. Format https://host[:port], where port is the value you used with --replica-https-port. | -| `--dtr-key` | $DTR_KEY | Use a PEM-encoded TLS private key for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS private key with --dtr-key "$(cat ca.pem)". | -| `--dtr-storage-volume` | $DTR_STORAGE_VOLUME | Customize the volume to store Docker images.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify a full path or volume name for DTR to store images. For high-availability, make sure all DTR replicas can read and write data on this volume. If you're using NFS, use --nfs-storage-url instead. | -| `--enable-pprof` | $DTR_PPROF | Enables pprof profiling of the server.Once DTR is deployed with this flag, you can access the pprof endpoint for the api server at /debug/pprof, and the registry endpoint at /registry_debug_pprof/debug/pprof. | +| `--dtr-ca` | $DTR_CA | Use a PEM-encoded TLS CA certificate for DTR. By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS CA certificate with `--dtr-ca "$(cat ca.pem)"`. | +| `--dtr-cert` | $DTR_CERT | Use a PEM-encoded TLS certificate for DTR. By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS certificate with `--dtr-cert "$(cat ca.pem)"`. | +| `--dtr-external-url` | $DTR_EXTERNAL_URL | URL of the host or load balancer clients use to reach DTR. When you use this flag, users are redirected to UCP for logging in. Once authenticated they are redirected to the URL you specify in this flag. If you don't use this flag, DTR is deployed without single sign-on with UCP. Users and teams are shared but users log in separately into the two applications. You can enable and disable single sign-on within your DTR system settings. Format `https://host[:port]`, where port is the value you used with `--replica-https-port`. | +| `--dtr-key` | $DTR_KEY | Use a PEM-encoded TLS private key for DTR. By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS private key with `--dtr-key "$(cat ca.pem)"`. | +| `--dtr-storage-volume` | $DTR_STORAGE_VOLUME | Customize the volume to store Docker images. By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify a full path or volume name for DTR to store images. For high-availability, make sure all DTR replicas can read and write data on this volume. If you're using NFS, use `--nfs-storage-url` instead. | +| `--enable-pprof` | $DTR_PPROF | Enables pprof profiling of the server. Use `--enable-pprof=false` to disable it. Once DTR is deployed with this flag, you can access the `pprof` endpoint for the api server at `/debug/pprof`, and the registry endpoint at `/registry_debug_pprof/debug/pprof`. | | `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | | `--http-proxy` | $DTR_HTTP_PROXY | The HTTP proxy used for outgoing requests. | | `--https-proxy` | $DTR_HTTPS_PROXY | The HTTPS proxy used for outgoing requests. | -| `--log-host` | $LOG_HOST | Where to send logs to.The endpoint to send logs to. Use this flag if you set --log-protocol to tcp or udp. | -| `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO. | -| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.This allows to define the protocol used to send container logs to an external system. The supported protocols are tcp, udp, or internal. Use this flag with --log-host. | -| `--nfs-storage-url` | $NFS_STORAGE_URL | NFS to store Docker images. Format nfs:///.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify an NFS mount for DTR to store images, using the format nfs:///. To use this flag, you need to install an NFS client library like nfs-common in the node where you're deploying DTR. You can test this by running showmount -e . When you join new replicas, they will start using NFS so you don't need to use this flag. To reconfigure DTR to stop using NFS, leave this option empty. | -| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route through the proxy. Format acme.com[, acme.org]. | -| `--overlay-subnet` | $DTR_OVERLAY_SUBNET | The subnet used by the dtr-ol overlay network. Example: 10.0.0.0/24.For high-availalibity, DTR creates an overlay network between UCP nodes. This flag allows you to choose the subnet for that network. Make sure the subnet you choose is not used on any machine where DTR replicas are deployed. | -| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | -| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | -| `--replica-id` | $DTR_INSTALL_REPLICA_ID | Assign an ID to the DTR replica. Random by default. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | -| `--ucp-node` | $UCP_NODE | The hostname of the UCP node to deploy DTR. Random by default.You can find the hostnames of the nodes in the cluster in the UCP web UI, or by running 'docker node ls' on a UCP manager node.. | +| `--log-host` | $LOG_HOST | The syslog system to send logs to.The endpoint to send logs to. Use this flag if you set `--log-protocol` to `tcp` or `udp`. | +| `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO. The supported log levels are debug, info, warn, error, or fatal. | +| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal. By default, DTR internal components log information using the logger specified in the Docker daemon in the node where the DTR replica is deployed. Use this option to send DTR logs to an external syslog system. The supported values are `tcp`, `udp`, or `internal`. Internal is the default option, stopping DTR from sending logs to an external system. Use this flag with `--log-host`. | +| `--nfs-storage-url` | $NFS_STORAGE_URL | NFS to store Docker images. Format `nfs:///`. By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify an NFS mount for DTR to store images, using the format `nfs:///`. To use this flag, you need to install an NFS client library like ***nfs-common*** in your DTR node. You can test this by running `showmount -e `. When you join new replicas, they will start using NFS so you don't need to use this flag. To reconfigure DTR to stop using NFS, leave this option empty: `--nfs-storage-url ""` | +| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for. When using `--http-proxy` you can use this flag to specify a list of domains that you don't want to route through the proxy. Format `acme.com[, acme.org]`. | +| `--overlay-subnet` | $DTR_OVERLAY_SUBNET | The subnet used by the dtr-ol overlay network. Example: `10.0.0.0/24`. For high-availability, DTR creates an overlay network between UCP nodes. This flag allows you to choose the subnet for that network. Make sure the subnet you choose is not used on any machine where DTR replicas are deployed. | +| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is `80`. This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with `--replica-https-port`. This port can also be used for unencrypted health checks. | +| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is `443`. This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | +| `--replica-id` | $DTR_INSTALL_REPLICA_ID | Assign a 12-character hexadecimal ID to the DTR replica. Random by default. | +| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space in MB for RethinkDB in-memory cache used by the given replica. Default is auto. Auto is `(available_memory - 1024) / 2`. This config allows changing the RethinkDB cache usage per replica. You need to run it once per replica to change each one. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP. Download the UCP TLS CA certificate from `https:///ca`, and use `--ucp-ca "$(cat ca.pem)"`. | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP. The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to MITM (man-in-the-middle) attacks. For production deployments, use `--ucp-ca "$(cat ca.pem)"` instead. | +| `--ucp-node` | $UCP_NODE | The hostname of the UCP node to deploy DTR. Random by default. You can find the hostnames of the nodes in the cluster in the UCP web interface, or by running `docker node ls` on a UCP manager node. | | `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | | `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | | `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | diff --git a/datacenter/dtr/2.5/reference/cli/join.md b/datacenter/dtr/2.5/reference/cli/join.md index 4e8123e4c7..80373de3e2 100644 --- a/datacenter/dtr/2.5/reference/cli/join.md +++ b/datacenter/dtr/2.5/reference/cli/join.md @@ -22,15 +22,16 @@ For setting DTR for high-availability, create 3, 5, or 7 replicas of DTR. | Option | Environment Variable | Description | |:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| | `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | +| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica. To add, remove or modify DTR, you must connect to an existing healthy replica's database. | | `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | -| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | -| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | -| `--replica-id` | $DTR_INSTALL_REPLICA_ID | Assign an ID to the DTR replica. Random by default. | -| `--skip-network-test` | $DTR_SKIP_NETWORK_TEST | Don't test if overlay networks are working correctly between UCP nodes.For high-availalibity, DTR creates an overlay network between UCP nodes and tests that it is working when joining replicas. Don't use this option for production deployments. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | -| `--ucp-node` | $UCP_NODE | The hostname of the UCP node to deploy DTR. Random by default.You can find the hostnames of the nodes in the cluster in the UCP web UI, or by running 'docker node ls' on a UCP manager node.. | +| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is `80`. This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | +| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is `443`. This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | +| `--replica-id` | $DTR_INSTALL_REPLICA_ID | Assign a 12-character hexadecimal ID to the DTR replica. Random by default. | +| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space in MB for RethinkDB in-memory cache used by the given replica. Default is auto. Auto is `(available_memory - 1024) / 2`. This config allows changing the RethinkDB cache usage per replica. You need to run it once per replica to change each one. | +| `--skip-network-test` | $DTR_SKIP_NETWORK_TEST | Don't test if overlay networks are working correctly between UCP nodes. For high-availability, DTR creates an overlay network between UCP nodes and tests that it is working when joining replicas. Don't use this option for production deployments. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from `https:///ca`, and use `--ucp-ca "$(cat ca.pem)"`. | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP. The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to MITM (man-in-the-middle) attacks. For production deployments, use `--ucp-ca "$(cat ca.pem)"` instead. | +| `--ucp-node` | $UCP_NODE | The hostname of the UCP node to deploy DTR. Random by default.You can find the hostnames of the nodes in the cluster in the UCP web interface, or by running `docker node ls` on a UCP manager node. | | `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | | `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | | `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | diff --git a/datacenter/dtr/2.5/reference/cli/reconfigure.md b/datacenter/dtr/2.5/reference/cli/reconfigure.md index 0605098068..d576f1c4c0 100644 --- a/datacenter/dtr/2.5/reference/cli/reconfigure.md +++ b/datacenter/dtr/2.5/reference/cli/reconfigure.md @@ -19,7 +19,7 @@ docker run -it --rm docker/dtr \ This command changes DTR configuration settings. DTR is restarted for the new configurations to take effect. To have no down -time, configure your DTR for high-availability. +time, configure your DTR for high availability. ## Options @@ -29,23 +29,24 @@ time, configure your DTR for high-availability. | `--debug` | $DEBUG | Enable debug mode for additional logs. | | `--dtr-ca` | $DTR_CA | Use a PEM-encoded TLS CA certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS CA certificate with --dtr-ca "$(cat ca.pem)". | | `--dtr-cert` | $DTR_CERT | Use a PEM-encoded TLS certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS certificate with --dtr-cert "$(cat ca.pem)". | -| `--dtr-external-url` | $DTR_EXTERNAL_URL | URL of the host or load balancer clients use to reach DTR.When you use this flag, users are redirected to UCP for logging in. Once authenticated they are redirected to the url you specify in this flag. If you don't use this flag, DTR is deployed without single sign-on with UCP. Users and teams are shared but users login separately into the two applications. You can enable and disable single sign-on in the DTR settings. Format https://host[:port], where port is the value you used with --replica-https-port. | -| `--dtr-key` | $DTR_KEY | Use a PEM-encoded TLS private key for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS private key with --dtr-key "$(cat ca.pem)". | -| `--dtr-storage-volume` | $DTR_STORAGE_VOLUME | Customize the volume to store Docker images.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify a full path or volume name for DTR to store images. For high-availability, make sure all DTR replicas can read and write data on this volume. If you're using NFS, use --nfs-storage-url instead. | -| `--enable-pprof` | $DTR_PPROF | Enables pprof profiling of the server.Once DTR is deployed with this flag, you can access the pprof endpoint for the api server at /debug/pprof, and the registry endpoint at /registry_debug_pprof/debug/pprof. | -| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | +| `--dtr-external-url` | $DTR_EXTERNAL_URL | URL of the host or load balancer clients use to reach DTR. When you use this flag, users are redirected to UCP for logging in. Once authenticated they are redirected to the url you specify in this flag. If you don't use this flag, DTR is deployed without single sign-on with UCP. Users and teams are shared but users login separately into the two applications. You can enable and disable single sign-on in the DTR settings. Format `https://host[:port]`, where port is the value you used with `--replica-https-port`. | +| `--dtr-key` | $DTR_KEY | Use a PEM-encoded TLS private key for DTR. By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS private key with `--dtr-key "$(cat ca.pem)"`. | +| `--dtr-storage-volume` | $DTR_STORAGE_VOLUME | Customize the volume to store Docker images. By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify a full path or volume name for DTR to store images. For high-availability, make sure all DTR replicas can read and write data on this volume. If you're using NFS, use `--nfs-storage-url` instead. | +| `--enable-pprof` | $DTR_PPROF | Enables pprof profiling of the server. Use `--enable-pprof=false` to disable it. Once DTR is deployed with this flag, you can access the pprof endpoint for the api server at `/debug/pprof`, and the registry endpoint at `/registry_debug_pprof/debug/pprof`. | +| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica. To add, remove or modify DTR, you must connect to an existing healthy replica's database. | | `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | | `--http-proxy` | $DTR_HTTP_PROXY | The HTTP proxy used for outgoing requests. | | `--https-proxy` | $DTR_HTTPS_PROXY | The HTTPS proxy used for outgoing requests. | -| `--log-host` | $LOG_HOST | Where to send logs to.The endpoint to send logs to. Use this flag if you set --log-protocol to tcp or udp. | -| `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO. | -| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.This allows to define the protocol used to send container logs to an external system. The supported protocols are tcp, udp, or internal. Use this flag with --log-host. | -| `--nfs-storage-url` | $NFS_STORAGE_URL | NFS to store Docker images. Format nfs:///.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify an NFS mount for DTR to store images, using the format nfs:///. To use this flag, you need to install an NFS client library like nfs-common in the node where you're deploying DTR. You can test this by running showmount -e . When you join new replicas, they will start using NFS so you don't need to use this flag. To reconfigure DTR to stop using NFS, leave this option empty. | -| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route through the proxy. Format acme.com[, acme.org]. | -| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | -| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | +| `--log-host` | $LOG_HOST | The syslog system to send logs to. The endpoint to send logs to. Use this flag if you set `--log-protocol` to `tcp` or `udp`. | +| `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO. The supported log levels are `debug`, `info`, `warn`, `error`, or `fatal`. | +| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal. By default, DTR internal components log information using the logger specified in the Docker daemon in the node where the DTR replica is deployed. Use this option to send DTR logs to an external syslog system. The supported values are `tcp`, `udp`, and `internal`. Internal is the default option, stopping DTR from sending logs to an external system. Use this flag with `--log-host`. | +| `--nfs-storage-url` | $NFS_STORAGE_URL | NFS to store Docker images. Format `nfs:///`. By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify an NFS mount for DTR to store images, using the format `nfs:///`. To use this flag, you need to install an NFS client library like **nfs-common** in the node where you're deploying DTR. You can test this by running `showmount -e `. When you join new replicas, they will start using NFS so you don't need to use this flag. To reconfigure DTR to stop using NFS, leave this option empty: `--nfs-storage-url ""` | +| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for. When using `--http-proxy` you can use this flag to specify a list of domains that you don't want to route through the proxy. Format `acme.com[, acme.org]`. | +| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is `80`. This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | +| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is `443`. This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | +| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space in MB for RethinkDB in-memory cache used by the given replica. Default is auto. Auto is `(available_memory - 1024) / 2`. This config allows changing the RethinkDB cache usage per replica. You need to run it once per replica to change each one. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP. Download the UCP TLS CA certificate from `https:///ca`, and use `--ucp-ca "$(cat ca.pem)"`. | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP. The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to MITM (man-in-the-middle) attacks. For production deployments, use `--ucp-ca "$(cat ca.pem)"` instead. | | `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | | `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | | `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | diff --git a/datacenter/dtr/2.5/reference/cli/remove.md b/datacenter/dtr/2.5/reference/cli/remove.md index 929d5df019..cc8720cb1e 100644 --- a/datacenter/dtr/2.5/reference/cli/remove.md +++ b/datacenter/dtr/2.5/reference/cli/remove.md @@ -26,12 +26,12 @@ this operation. | Option | Environment Variable | Description | |:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| | `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | +| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica. To add, remove or modify DTR, you must connect to an existing healthy replica's database. | | `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | -| `--replica-id` | $DTR_REMOVE_REPLICA_ID | DEPRECATED Alias for --replica-ids. | +| `--replica-id` | $DTR_REMOVE_REPLICA_ID | DEPRECATED Alias for `--replica-ids`. | | `--replica-ids` | $DTR_REMOVE_REPLICA_IDS | A comma separated list of IDs of replicas to remove from the cluster. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP. Download the UCP TLS CA certificate from `https:///ca`, and use `--ucp-ca "$(cat ca.pem)"`. | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP. The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to MITM (man-in-the-middle) attacks. For production deployments, use `--ucp-ca "$(cat ca.pem)"` instead. | | `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | | `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | | `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | diff --git a/datacenter/dtr/2.5/reference/cli/restore.md b/datacenter/dtr/2.5/reference/cli/restore.md index 187439cf61..94a6071668 100644 --- a/datacenter/dtr/2.5/reference/cli/restore.md +++ b/datacenter/dtr/2.5/reference/cli/restore.md @@ -17,14 +17,24 @@ docker run -i --rm docker/dtr \ This command performs a fresh installation of DTR, and reconfigures it -with configuration data from a tar file generated by the 'backup' command. +with configuration data from a `tar` file generated by `docker/dtr backup`. + +There are three steps you can take to recover an unhealthy DTR cluster: + +1. If the majority of replicas are healthy, remove the unhealthy nodes from + the cluster, and join new nodes for high availability. +2. If the majority of replicas are unhealthy, use this command to revert your + cluster to a single DTR replica. +3. If you can't repair your cluster to a single replica, you'll have to + restore from an existing backup, using the `restore` command. This command does not restore Docker images. You should implement a separate restore procedure for the Docker images stored in your registry, taking in consideration whether your DTR installation is configured to store images on the local filesystem or using a cloud provider. -After restoring, you can add more DTR replicas by using the 'join' command. +After restoring the cluster, you should use the `join` command to add more +DTR replicas for high availability. ## Options @@ -32,26 +42,27 @@ After restoring, you can add more DTR replicas by using the 'join' command. | Option | Environment Variable | Description | |:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| | `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--dtr-ca` | $DTR_CA | Use a PEM-encoded TLS CA certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS CA certificate with --dtr-ca "$(cat ca.pem)". | -| `--dtr-cert` | $DTR_CERT | Use a PEM-encoded TLS certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS certificate with --dtr-cert "$(cat ca.pem)". | -| `--dtr-external-url` | $DTR_EXTERNAL_URL | URL of the host or load balancer clients use to reach DTR.When you use this flag, users are redirected to UCP for logging in. Once authenticated they are redirected to the url you specify in this flag. If you don't use this flag, DTR is deployed without single sign-on with UCP. Users and teams are shared but users login separately into the two applications. You can enable and disable single sign-on in the DTR settings. Format https://host[:port], where port is the value you used with --replica-https-port. | -| `--dtr-key` | $DTR_KEY | Use a PEM-encoded TLS private key for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS private key with --dtr-key "$(cat ca.pem)". | -| `--dtr-storage-volume` | $DTR_STORAGE_VOLUME | Customize the volume to store Docker images.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify a full path or volume name for DTR to store images. For high-availability, make sure all DTR replicas can read and write data on this volume. If you're using NFS, use --nfs-storage-url instead. | -| `--enable-pprof` | $DTR_PPROF | Enables pprof profiling of the server.Once DTR is deployed with this flag, you can access the pprof endpoint for the api server at /debug/pprof, and the registry endpoint at /registry_debug_pprof/debug/pprof. | +| `--dtr-ca` | $DTR_CA | Use a PEM-encoded TLS CA certificate for DTR. By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS CA certificate with `--dtr-ca "$(cat ca.pem)"`. | +| `--dtr-cert` | $DTR_CERT | Use a PEM-encoded TLS certificate for DTR. By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS certificate with `--dtr-cert "$(cat ca.pem)"`. | +| `--dtr-external-url` | $DTR_EXTERNAL_URL | URL of the host or load balancer clients use to reach DTR. When you use this flag, users are redirected to UCP for logging in. Once authenticated they are redirected to the URL you specify in this flag. If you don't use this flag, DTR is deployed without single sign-on with UCP. Users and teams are shared but users log in separately into the two applications. You can enable and disable single sign-on within your DTR system settings. Format `https://host[:port]`, where port is the value you used with `--replica-https-port`. | +| `--dtr-key` | $DTR_KEY | Use a PEM-encoded TLS private key for DTR. By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS private key with `--dtr-key "$(cat ca.pem)"`. | +| `--dtr-storage-volume` | $DTR_STORAGE_VOLUME | Customize the volume to store Docker images. By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify a full path or volume name for DTR to store images. For high-availability, make sure all DTR replicas can read and write data on this volume. If you're using NFS, use --nfs-storage-url instead. | +| `--enable-pprof` | $DTR_PPROF | Enables pprof profiling of the server. Use `--enable-pprof=false` to disable it. Once DTR is deployed with this flag, you can access the `pprof` endpoint for the api server at `/debug/pprof`, and the registry endpoint at `/registry_debug_pprof/debug/pprof`. | | `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | | `--http-proxy` | $DTR_HTTP_PROXY | The HTTP proxy used for outgoing requests. | | `--https-proxy` | $DTR_HTTPS_PROXY | The HTTPS proxy used for outgoing requests. | -| `--log-host` | $LOG_HOST | Where to send logs to.The endpoint to send logs to. Use this flag if you set --log-protocol to tcp or udp. | -| `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO. | -| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.This allows to define the protocol used to send container logs to an external system. The supported protocols are tcp, udp, or internal. Use this flag with --log-host. | -| `--nfs-storage-url` | $NFS_STORAGE_URL | NFS to store Docker images. Format nfs:///.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify an NFS mount for DTR to store images, using the format nfs:///. To use this flag, you need to install an NFS client library like nfs-common in the node where you're deploying DTR. You can test this by running showmount -e . When you join new replicas, they will start using NFS so you don't need to use this flag. To reconfigure DTR to stop using NFS, leave this option empty. | +| `--log-host` | $LOG_HOST | The syslog system to send logs to.The endpoint to send logs to. Use this flag if you set --log-protocol to tcp or udp. | +| `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: `INFO`. The supported log levels are `debug`, `info`, `warn`, `error`, or `fatal`. | +| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.By default, DTR internal components log information using the logger specified in the Docker daemon in the node where the DTR replica is deployed. Use this option to send DTR logs to an external syslog system. The supported values are tcp, udp, and internal. Internal is the default option, stopping DTR from sending logs to an external system. Use this flag with --log-host. | +| `--nfs-storage-url` | $NFS_STORAGE_URL | NFS to store Docker images. Format `nfs:///`. By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify an NFS mount for DTR to store images, using the format `nfs:///`. To use this flag, you need to install an NFS client library like ***nfs-common*** in your DTR node. You can test this by running `showmount -e `. When you join new replicas, they will start using NFS so you don't need to use this flag. To reconfigure DTR to stop using NFS, leave this option empty: `--nfs-storage-url ""` | | `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route through the proxy. Format acme.com[, acme.org]. | -| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | -| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | -| `--replica-id` | $DTR_INSTALL_REPLICA_ID | Assign an ID to the DTR replica. Random by default. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | -| `--ucp-node` | $UCP_NODE | The hostname of the UCP node to deploy DTR. Random by default.You can find the hostnames of the nodes in the cluster in the UCP web UI, or by running 'docker node ls' on a UCP manager node.. | +| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is `80`. This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with `--replica-https-port`. This port can also be used for unencrypted health checks. | +| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is `443`. This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | +| `--replica-id` | $DTR_INSTALL_REPLICA_ID | Assign a 12-character hexadecimal ID to the DTR replica. Random by default. | +| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space in MB for RethinkDB in-memory cache used by the given replica. Default is auto. Auto is `(available_memory - 1024) / 2`. This config allows changing the RethinkDB cache usage per replica. You need to run it once per replica to change each one. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP. Download the UCP TLS CA certificate from `https:///ca`, and use `--ucp-ca "$(cat ca.pem)"`. | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP. The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to MITM (man-in-the-middle) attacks. For production deployments, use `--ucp-ca "$(cat ca.pem)"` instead. | +| `--ucp-node` | $UCP_NODE | The hostname of the UCP node to deploy DTR. Random by default. You can find the hostnames of the nodes in the cluster in the UCP web interface, or by running `docker node ls` on a UCP manager node. | | `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | | `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | | `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | diff --git a/datacenter/dtr/2.5/reference/cli/upgrade.md b/datacenter/dtr/2.5/reference/cli/upgrade.md index 676a458511..122f925ee7 100644 --- a/datacenter/dtr/2.5/reference/cli/upgrade.md +++ b/datacenter/dtr/2.5/reference/cli/upgrade.md @@ -1,10 +1,10 @@ --- title: docker/dtr upgrade -description: Upgrade DTR 2.3.x cluster to this version +description: Upgrade DTR 2.4.x cluster to this version keywords: dtr, cli, upgrade --- -Upgrade DTR 2.3.x cluster to this version +Upgrade DTR 2.4.x cluster to this version ## Usage @@ -16,7 +16,7 @@ docker run -it --rm docker/dtr \ ## Description -This command upgrades DTR 2.3.x to the current version of this image. +This command upgrades DTR 2.4.x to the current version of this image. ## Options @@ -24,10 +24,10 @@ This command upgrades DTR 2.3.x to the current version of this image. | Option | Environment Variable | Description | |:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| | `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | +| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica. To add, remove or modify DTR, you must connect to an existing healthy replica's database. | | `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP. Download the UCP TLS CA certificate from `https:///ca`, and use `--ucp-ca "$(cat ca.pem)"`. | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP. The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to MITM (man-in-the-middle) attacks. For production deployments, use `--ucp-ca "$(cat ca.pem)"` instead. | | `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | | `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | | `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | diff --git a/datacenter/ucp/3.0/reference/api/index.md b/datacenter/ucp/3.0/reference/api/index.md index 2568a2bbc0..6db4fe4dbe 100644 --- a/datacenter/ucp/3.0/reference/api/index.md +++ b/datacenter/ucp/3.0/reference/api/index.md @@ -1,7 +1,7 @@ --- description: Learn how to use the Universal Control Plane REST API keywords: ucp, api, reference -title: Universal Control Plane 2.2 API +title: Universal Control Plane 3.0 API ---
diff --git a/datacenter/ucp/3.0/reference/api/main.js b/datacenter/ucp/3.0/reference/api/main.js index 5da14ea10e..b08662cf45 100644 --- a/datacenter/ucp/3.0/reference/api/main.js +++ b/datacenter/ucp/3.0/reference/api/main.js @@ -12,7 +12,7 @@ $(function () { } window.swaggerUi = new SwaggerUi({ spec: - {"swagger":"2.0","info":{"description":"The Universal Control Plane API is a REST API, available using HTTPS, that enables programmatic access to swarm resources that are managed by UCP. UCP exposes the full Docker Engine API, so you can extend your existing code with UCP features. The API is secured with role-based access control so that only authorized users can make changes and deploy applications to your Docker swarm.\n\nThe UCP API is accessible in the same IP addresses and domain names that you use to access the web UI. It's the same API that the UCP web UI uses, so everything you can do on the UCP web UI from your browser, you can also do programmatically.\n\nThe system manages swarm resources by using collections, which you access through the `/collection` endpoint. For example, `GET /defaultCollection/\u003cuserID\u003e` retrieves the default collection for a user. [Learn more about resource collections](https://www.docker.com/ddc-33).\n\n- The `/roles` endpoint lets you enumerate and create custom permissions for accessing collections.\n\n- The `/accounts` endpoint enables managing users, teams, and organizations.\n\n- The `/configs` endpoint gives you access to the swarm's configuration.","title":"UCP API Documentation","version":"1.30"},"paths":{"/_ping":{"get":{"description":"Check the health of a UCP manager.\nUse the `_ping` endpoint to check the health of a single UCP manager node. The UCP manager validates that all of its internal components are working, and it returns either 200, if all components are healthy, or 500, if any aren't healthy.\n\nIf you’re accessing the `_ping` endpoint through a load balancer, you have no way of knowing which UCP manager node isn't healthy, because any manager node may be serving your request. Make sure you’re connecting directly to the URL of a manager node, and not a load balancer.","tags":["UCP"],"summary":"Check the health of a UCP manager.","operationId":"Ping","responses":{"200":{"description":"Success, manager healthy"},"500":{"description":"Failure, manager unhealthy"},"default":{"description":"Success, manager healthy"}}}},"/accounts/":{"get":{"description":"List users and organizations","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"List users and organizations","operationId":"ListAccounts","parameters":[{"type":"string","default":"all","description":"Filter accounts by type or attribute - either \"users\", \"orgs\", \"admins\", \"non-admins\", \"active-users\", \"inactive-users\", or \"all\" (default). These filters cannot be combined in any way.","name":"filter","in":"query"},{"type":"string","default":"","description":"Specifies the ordering of the results - either \"name\" (default) or \"fullName\". Prefix with \"+\" (default) or \"-\" to specify ascending or descending order, respectively.","name":"order","in":"query"},{"type":"string","default":"","description":"Only return accounts with an order marker starting from this value.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of accounts per page of results.","name":"limit","in":"query"},{"type":"string","default":"","description":"Additionally filter results to those which have either a name or full name which contains this case insensitive string","name":"contains","in":"query"}],"responses":{"200":{"description":"Success, page of accounts listed.","schema":{"$ref":"#/definitions/responses.Accounts"}},"default":{"description":"Success, page of accounts listed.","schema":{"$ref":"#/definitions/responses.Accounts"}}}},"post":{"description":"Create a user or organization","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Create a user or organization","operationId":"CreateAccount","parameters":[{"type":"forms.CreateAccount","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateAccount"}}],"responses":{"201":{"description":"Success, account created.","schema":{"$ref":"#/definitions/responses.Account"}}}},"patch":{"description":"Perform operations in bulk user or organization accounts","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Perform operations in bulk user or organization accounts","operationId":"BulkAccountOps","parameters":[{"type":"forms.BulkOperations","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.BulkOperations"}}],"responses":{"200":{"description":"Success, bulk operations performed. Any errors encountered for an operation are returned.","schema":{"$ref":"#/definitions/responses.BulkResults"}},"default":{"description":"Success, bulk operations performed. Any errors encountered for an operation are returned.","schema":{"$ref":"#/definitions/responses.BulkResults"}}}}},"/accounts/{accountNameOrID}":{"get":{"description":"Details for a user or organization","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Details for a user or organization","operationId":"GetAccount","parameters":[{"type":"string","default":"","description":"Name or id of account to fetch","name":"accountNameOrID","in":"path","required":true}],"responses":{"200":{"description":"Success, account returned.","schema":{"$ref":"#/definitions/responses.Account"}},"default":{"description":"Success, account returned.","schema":{"$ref":"#/definitions/responses.Account"}}}},"delete":{"description":"Delete a user or organization","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Delete a user or organization","operationId":"DeleteAccount","parameters":[{"type":"string","default":"","description":"Name or id of account to delete","name":"accountNameOrID","in":"path","required":true}],"responses":{"204":{"description":"Success, account deleted."}}},"patch":{"description":"Update details for a user or organization","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Update details for a user or organization","operationId":"UpdateAccount","parameters":[{"type":"string","default":"","description":"Name or id of account to update","name":"accountNameOrID","in":"path","required":true},{"type":"forms.UpdateAccount","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateAccount"}}],"responses":{"200":{"description":"Success, account updated.","schema":{"$ref":"#/definitions/responses.Account"}},"default":{"description":"Success, account updated.","schema":{"$ref":"#/definitions/responses.Account"}}}}},"/accounts/{accountNameOrID}/publicKeys":{"get":{"description":"List accountPublicKeys in an account","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"List accountPublicKeys in an account","operationId":"ListAccountPublicKeys","parameters":[{"type":"string","default":"","description":"Name or id of the account whose accountPublicKeys will be listed","name":"accountNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Only return accountPublicKeys with a key ID greater than or equal to this name.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of accountPublicKeys per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, page of accountPublicKeys listed.","schema":{"$ref":"#/definitions/responses.AccountPublicKeys"}},"default":{"description":"Success, page of accountPublicKeys listed.","schema":{"$ref":"#/definitions/responses.AccountPublicKeys"}}}},"post":{"description":"Create a public key for an account","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Create a public key for an account","operationId":"CreateAccountPublicKey","parameters":[{"type":"string","default":"","description":"Name or id of account to fetch","name":"accountNameOrID","in":"path","required":true},{"type":"forms.CreateAccountPublicKey","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateAccountPublicKey"}}],"responses":{"201":{"description":"Success, account public key created.","schema":{"$ref":"#/definitions/responses.AccountPublicKey"}}}}},"/accounts/{accountNameOrID}/publicKeys/{keyID}":{"delete":{"description":"Remove an account public key","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Remove an account public key","operationId":"DeleteAccountPublicKey","parameters":[{"type":"string","default":"","description":"Name or id of the account","name":"accountNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Public key id of the account","name":"keyID","in":"path","required":true}],"responses":{"204":{"description":"Success, account public key removed."}}},"patch":{"description":"Update details for an account public key","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Update details for an account public key","operationId":"UpdateAccountPublicKey","parameters":[{"type":"string","default":"","description":"Name or id of the account","name":"accountNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Public key id of the account","name":"keyID","in":"path","required":true},{"type":"forms.UpdateAccountPublicKey","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateAccountPublicKey"}}],"responses":{"200":{"description":"Success, account public key updated.","schema":{"$ref":"#/definitions/responses.AccountPublicKey"}},"default":{"description":"Success, account public key updated.","schema":{"$ref":"#/definitions/responses.AccountPublicKey"}}}}},"/accounts/{orgNameOrID}/adminMemberSyncConfig":{"get":{"description":"Get options for syncing admin members of an organization","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Get options for syncing admin members of an organization","operationId":"GetOrganizationAdminSyncConfig","parameters":[{"type":"string","default":"","description":"Name or id of organization whose LDAP sync options to be retrieved","name":"orgNameOrID","in":"path","required":true}],"responses":{"200":{"description":"Success, LDAP sync options retrieved.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}},"default":{"description":"Success, LDAP sync options retrieved.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}}}},"put":{"description":"Set options for syncing admin members of an organization","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Set options for syncing admin members of an organization","operationId":"SetOrganizationAdminSyncConfig","parameters":[{"type":"string","default":"","description":"Name or id of organization whose LDAP sync options to set","name":"orgNameOrID","in":"path","required":true},{"type":"forms.MemberSyncOpts","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.MemberSyncOpts"}}],"responses":{"200":{"description":"Success, LDAP sync options set.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}},"default":{"description":"Success, LDAP sync options set.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}}}}},"/accounts/{orgNameOrID}/members":{"get":{"description":"List members of an organization","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"List members of an organization","operationId":"ListOrganizationMembers","parameters":[{"type":"string","default":"","description":"Name or id of organization whose members will be listed","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"all","description":"Filter members by type - either 'admins', 'non-admins', or 'all' (default).","name":"filter","in":"query"},{"type":"string","default":"","description":"Only return members with a user ID greater than or equal to this ID.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of members per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, page of organization members listed.","schema":{"$ref":"#/definitions/responses.Members"}},"default":{"description":"Success, page of organization members listed.","schema":{"$ref":"#/definitions/responses.Members"}}}}},"/accounts/{orgNameOrID}/members/{memberNameOrID}":{"get":{"description":"Details of a user's membership in an organization","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Details of a user's membership in an organization","operationId":"GetOrganizationMembership","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the membership will be retrieved","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user whose membership will be retrieved","name":"memberNameOrID","in":"path","required":true}],"responses":{"200":{"description":"Success, membership returned.","schema":{"$ref":"#/definitions/responses.Member"}},"default":{"description":"Success, membership returned.","schema":{"$ref":"#/definitions/responses.Member"}}}},"put":{"description":"Add a member to an organization","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Add a member to an organization","operationId":"AddOrganizationMember","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the membership will be added","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user which will be added as a member","name":"memberNameOrID","in":"path","required":true},{"type":"forms.SetMembership","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.SetMembership"}}],"responses":{"200":{"description":"Success, membership set.","schema":{"$ref":"#/definitions/responses.Member"}},"default":{"description":"Success, membership set.","schema":{"$ref":"#/definitions/responses.Member"}}}},"delete":{"description":"Remove a member from an organization","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Remove a member from an organization","operationId":"DeleteOrganizationMember","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the membership will be deleted","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user whose membership will be deleted","name":"memberNameOrID","in":"path","required":true}],"responses":{"204":{"description":"Success, membership removed."}}}},"/accounts/{orgNameOrID}/members/{memberNameOrID}/teams":{"get":{"description":"List a user's team membership in an organization","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"List a user's team membership in an organization","operationId":"ListOrganizationMemberTeams","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the member's team memberships will be listed","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user whose memberships will be listed","name":"memberNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Only return team memberships with a team ID greater than or equal to this ID.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of team memberships per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, page of member's teams listed.","schema":{"$ref":"#/definitions/responses.MemberTeams"}},"default":{"description":"Success, page of member's teams listed.","schema":{"$ref":"#/definitions/responses.MemberTeams"}}}}},"/accounts/{orgNameOrID}/teams":{"get":{"description":"List teams in an organization","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"List teams in an organization","operationId":"ListTeams","parameters":[{"type":"string","default":"","description":"Name or id of organization whose teams will be listed","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Only return teams with a name greater than or equal to this name.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of teams per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, page of teams listed.","schema":{"$ref":"#/definitions/responses.Teams"}},"default":{"description":"Success, page of teams listed.","schema":{"$ref":"#/definitions/responses.Teams"}}}},"post":{"description":"Create a team","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Create a team","operationId":"CreateTeam","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team will be created","name":"orgNameOrID","in":"path","required":true},{"type":"forms.CreateTeam","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateTeam"}}],"responses":{"201":{"description":"Success, team created.","schema":{"$ref":"#/definitions/responses.Team"}}}}},"/accounts/{orgNameOrID}/teams/{teamNameOrID}":{"get":{"description":"Details for a team","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Details for a team","operationId":"GetTeam","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team will be retrieved","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of team which will be retrieved","name":"teamNameOrID","in":"path","required":true}],"responses":{"200":{"description":"Success, team returned.","schema":{"$ref":"#/definitions/responses.Team"}},"default":{"description":"Success, team returned.","schema":{"$ref":"#/definitions/responses.Team"}}}},"delete":{"description":"Delete a team","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Delete a team","operationId":"DeleteTeam","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team will be deleted","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of team which will be deleted","name":"teamNameOrID","in":"path","required":true}],"responses":{"204":{"description":"Success, team deleted."}}},"patch":{"description":"Update details for a team","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Update details for a team","operationId":"UpdateTeam","parameters":[{"type":"string","default":"","description":"Name or id of team which will be updated","name":"teamNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of organization in which the team will be updated","name":"orgNameOrID","in":"path","required":true},{"type":"forms.UpdateTeam","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateTeam"}}],"responses":{"200":{"description":"Success, team updated.","schema":{"$ref":"#/definitions/responses.Team"}},"default":{"description":"Success, team updated.","schema":{"$ref":"#/definitions/responses.Team"}}}}},"/accounts/{orgNameOrID}/teams/{teamNameOrID}/memberSyncConfig":{"get":{"description":"Get options for syncing members of a team","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Get options for syncing members of a team","operationId":"GetTeamMemberSyncConfig","parameters":[{"type":"string","default":"","description":"Name or id of organization to which the team belongs","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of team whose LDAP sync config will be retrieved","name":"teamNameOrID","in":"path","required":true}],"responses":{"200":{"description":"Success, LDAP sync options retrieved.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}},"default":{"description":"Success, LDAP sync options retrieved.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}}}},"put":{"description":"Set options for syncing members of a team","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Set options for syncing members of a team","operationId":"SetTeamMemberSyncConfig","parameters":[{"type":"string","default":"","description":"Name or id of organization to which the team belongs","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of team whose LDAP sync config will be set","name":"teamNameOrID","in":"path","required":true},{"type":"forms.MemberSyncOpts","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.MemberSyncOpts"}}],"responses":{"200":{"description":"Success, LDAP sync options set.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}},"default":{"description":"Success, LDAP sync options set.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}}}}},"/accounts/{orgNameOrID}/teams/{teamNameOrID}/members":{"get":{"description":"List members of a team","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"List members of a team","operationId":"ListTeamMembers","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team's members will be listed'","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of team whose members will be listed","name":"teamNameOrID","in":"path","required":true},{"type":"string","default":"all","description":"Filter members by type - either 'admins', 'non-admins', or 'all' (default).","name":"filter","in":"query"},{"type":"string","default":"","description":"Only return members with a user ID greater than or equal to this ID.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of members per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, page of team members listed.","schema":{"$ref":"#/definitions/responses.Members"}},"default":{"description":"Success, page of team members listed.","schema":{"$ref":"#/definitions/responses.Members"}}}}},"/accounts/{orgNameOrID}/teams/{teamNameOrID}/members/{memberNameOrID}":{"get":{"description":"Details of a user's membership in a team","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Details of a user's membership in a team","operationId":"GetTeamMembership","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team membership will be retrieved","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of the team in which the membership will be retrieved","name":"teamNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user whose team membership will be retrieved","name":"memberNameOrID","in":"path","required":true}],"responses":{"200":{"description":"Success, team membership returned.","schema":{"$ref":"#/definitions/responses.Member"}},"default":{"description":"Success, team membership returned.","schema":{"$ref":"#/definitions/responses.Member"}}}},"put":{"description":"Add a member to a team","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Add a member to a team","operationId":"AddTeamMember","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team membership will be added","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of the team in which the membership will be added","name":"teamNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user which will be added as a member","name":"memberNameOrID","in":"path","required":true},{"type":"forms.SetMembership","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.SetMembership"}}],"responses":{"200":{"description":"Success, team membership set.","schema":{"$ref":"#/definitions/responses.Member"}},"default":{"description":"Success, team membership set.","schema":{"$ref":"#/definitions/responses.Member"}}}},"delete":{"description":"Remove a member from a team","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Remove a member from a team","operationId":"DeleteTeamMember","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team membership will be deleted","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of the team in which the membership will be deleted","name":"teamNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user whose team membership will be deleted","name":"memberNameOrID","in":"path","required":true}],"responses":{"204":{"description":"Success, team membership deleted."}}}},"/accounts/{userNameOrID}/changePassword":{"post":{"description":"Change a user's password","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Change a user's password","operationId":"ChangePassword","parameters":[{"type":"string","default":"","description":"Name or id of username whose password is to be changed","name":"userNameOrID","in":"path","required":true},{"type":"forms.ChangePassword","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.ChangePassword"}}],"responses":{"200":{"description":"Success, password changed.","schema":{"$ref":"#/definitions/responses.Account"}},"default":{"description":"Success, password changed.","schema":{"$ref":"#/definitions/responses.Account"}}}}},"/accounts/{userNameOrID}/organizations":{"get":{"description":"List a user's organization memberships","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"List a user's organization memberships","operationId":"ListUserOrganizations","parameters":[{"type":"string","default":"","description":"Name or id of user to whose organizations will be listed","name":"userNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Only return memberships with an org ID greater than or equal to this ID.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of organizations per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, page of user's organizations listed.","schema":{"$ref":"#/definitions/responses.MemberOrgs"}},"default":{"description":"Success, page of user's organizations listed.","schema":{"$ref":"#/definitions/responses.MemberOrgs"}}}}},"/auth":{"post":{"description":"Validate credentials for a registry and, if available, get an identity token for accessing the registry without password.","consumes":["application/json"],"produces":["application/json"],"tags":["System"],"summary":"Check auth configuration","operationId":"SystemAuth","parameters":[{"description":"Authentication to check","name":"authConfig","in":"body","schema":{"$ref":"#/definitions/AuthConfig"}}],"responses":{"200":{"description":"An identity token was generated successfully.","schema":{"type":"object","required":["Status"],"properties":{"IdentityToken":{"description":"An opaque token used to authenticate a user after a successful login","type":"string","x-nullable":false},"Status":{"description":"The status of the authentication","type":"string","x-nullable":false}}},"examples":{"application/json":{"IdentityToken":"9cbaf023786cd7...","Status":"Login Succeeded"}}},"204":{"description":"No error"},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/build":{"post":{"description":"Build an image from a tar archive with a `Dockerfile` in it.\n\nThe `Dockerfile` specifies how the image is built from the tar archive. It is typically in the archive's root, but can be at a different path or have a different name by specifying the `dockerfile` parameter. [See the `Dockerfile` reference for more information](https://docs.docker.com/engine/reference/builder/).\n\nThe Docker daemon performs a preliminary validation of the `Dockerfile` before starting the build, and returns an error if the syntax is incorrect. After that, each instruction is run one-by-one until the ID of the new image is output.\n\nThe build is canceled if the client drops the connection by quitting or being killed.\n","consumes":["application/octet-stream"],"produces":["application/json"],"tags":["Image"],"summary":"Build an image","operationId":"ImageBuild","parameters":[{"description":"A tar archive compressed with one of the following algorithms: identity (no compression), gzip, bzip2, xz.","name":"inputStream","in":"body","schema":{"type":"string","format":"binary"}},{"type":"string","default":"Dockerfile","description":"Path within the build context to the `Dockerfile`. This is ignored if `remote` is specified and points to an external `Dockerfile`.","name":"dockerfile","in":"query"},{"type":"string","description":"A name and optional tag to apply to the image in the `name:tag` format. If you omit the tag the default `latest` value is assumed. You can provide several `t` parameters.","name":"t","in":"query"},{"type":"string","description":"Extra hosts to add to /etc/hosts","name":"extrahosts","in":"query"},{"type":"string","description":"A Git repository URI or HTTP/HTTPS context URI. If the URI points to a single text file, the file’s contents are placed into a file called `Dockerfile` and the image is built from that file. If the URI points to a tarball, the file is downloaded by the daemon and the contents therein used as the context for the build. If the URI points to a tarball and the `dockerfile` parameter is also specified, there must be a file with the corresponding path inside the tarball.","name":"remote","in":"query"},{"type":"boolean","default":false,"description":"Suppress verbose build output.","name":"q","in":"query"},{"type":"boolean","default":false,"description":"Do not use the cache when building the image.","name":"nocache","in":"query"},{"type":"string","description":"JSON array of images used for build cache resolution.","name":"cachefrom","in":"query"},{"type":"string","description":"Attempt to pull the image even if an older image exists locally.","name":"pull","in":"query"},{"type":"boolean","default":true,"description":"Remove intermediate containers after a successful build.","name":"rm","in":"query"},{"type":"boolean","default":false,"description":"Always remove intermediate containers, even upon failure.","name":"forcerm","in":"query"},{"type":"integer","description":"Set memory limit for build.","name":"memory","in":"query"},{"type":"integer","description":"Total memory (memory + swap). Set as `-1` to disable swap.","name":"memswap","in":"query"},{"type":"integer","description":"CPU shares (relative weight).","name":"cpushares","in":"query"},{"type":"string","description":"CPUs in which to allow execution (e.g., `0-3`, `0,1`).","name":"cpusetcpus","in":"query"},{"type":"integer","description":"The length of a CPU period in microseconds.","name":"cpuperiod","in":"query"},{"type":"integer","description":"Microseconds of CPU time that the container can get in a CPU period.","name":"cpuquota","in":"query"},{"type":"integer","description":"JSON map of string pairs for build-time variables. Users pass these values at build-time. Docker uses the buildargs as the environment context for commands run via the `Dockerfile` RUN instruction, or for variable expansion in other `Dockerfile` instructions. This is not meant for passing secret values. [Read more about the buildargs instruction.](https://docs.docker.com/engine/reference/builder/#arg)","name":"buildargs","in":"query"},{"type":"integer","description":"Size of `/dev/shm` in bytes. The size must be greater than 0. If omitted the system uses 64MB.","name":"shmsize","in":"query"},{"type":"boolean","description":"Squash the resulting images layers into a single layer. *(Experimental release only.)*","name":"squash","in":"query"},{"type":"string","description":"Arbitrary key/value labels to set on the image, as a JSON map of string pairs.","name":"labels","in":"query"},{"type":"string","description":"Sets the networking mode for the run commands during build. Supported standard values are: `bridge`, `host`, `none`, and `container:\u003cname|id\u003e`. Any other value is taken as a custom network's name to which this container should connect to.","name":"networkmode","in":"query"},{"enum":["application/x-tar"],"type":"string","default":"application/x-tar","name":"Content-type","in":"header"},{"type":"string","description":"This is a base64-encoded JSON object with auth configurations for multiple registries that a build may refer to.\n\nThe key is a registry URL, and the value is an auth configuration object, [as described in the authentication section](#section/Authentication). For example:\n\n```\n{\n \"docker.example.com\": {\n \"username\": \"janedoe\",\n \"password\": \"hunter2\"\n },\n \"https://index.docker.io/v1/\": {\n \"username\": \"mobydock\",\n \"password\": \"conta1n3rize14\"\n }\n}\n```\n\nOnly the registry domain name (and port if not the default 443) are required. However, for legacy reasons, the Docker Hub registry must be specified with both a `https://` prefix and a `/v1/` suffix even though Docker will prefer to use the v2 registry API.\n","name":"X-Registry-Config","in":"header"}],"responses":{"200":{"description":"no error"},"400":{"description":"Bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/collectionByPath":{"get":{"description":"Retrieve a single collection by path.","produces":["application/json"],"tags":["UCP"],"summary":"Retrieve a single collection by path.","operationId":"Get Collection by path","parameters":[{"type":"string","default":"","description":"Path of the collection to get.","name":"path","in":"query"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/authz.Collection"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/authz.Collection"}}}}},"/collectionGrants":{"get":{"description":"Lists all collection grants","produces":["application/json"],"tags":["UCP"],"summary":"Lists all collection grants","operationId":"ListGrants","parameters":[{"type":"string","default":"","description":"Filter grants by subjectID. Only a single value may be specified for this query parameter. A subjectID may be an account ID for a user or organization, or a team ID.","name":"subjectID","in":"query"},{"type":"string","default":"","description":"Filter grants by collection ID. Only a single value may be specified for this query parameter.","name":"objectID","in":"query"},{"type":"string","default":"","description":"Filter grants by roleID. Only a single value may be specified for this query parameter.","name":"roleID","in":"query"},{"type":"string","default":"all","description":"Filter grants by a subject type - either \"anonymous\", \"authenticated\", \"org\", \"team\", or \"user\" (default). These filters cannot be combined in any way.%!(EXTRA string=all)","name":"subjectType","in":"query"},{"type":"boolean","default":"false","description":"Expands the subject into a list of subjects that it belongs to.","name":"expandUser","in":"query"},{"type":"boolean","default":"false","description":"Include the collection paths in the response.","name":"showPaths","in":"query"},{"type":"string","default":"","description":"Only return grants with an order marker starting from this value.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of grants per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/responses.Grants"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/responses.Grants"}}}}},"/collectionGrants/{subjectID}/{objectID}/{roleID}":{"put":{"description":"Creates a collection grant","tags":["UCP"],"summary":"Creates a collection grant","operationId":"CreateGrant","parameters":[{"type":"string","default":"","description":"SubjectID of grant to create","name":"subjectID","in":"path","required":true},{"type":"string","default":"","description":"ObjectID of grant to create","name":"objectID","in":"path","required":true},{"type":"string","default":"","description":"RoleID of grant to create","name":"roleID","in":"path","required":true}],"responses":{"201":{"description":"Success"}}},"delete":{"description":"Deletes a collection grant.","tags":["UCP"],"summary":"Deletes a collection grant.","operationId":"DeleteGrant","parameters":[{"type":"string","default":"","description":"SubjectID of grant to delete","name":"subjectID","in":"path","required":true},{"type":"string","default":"","description":"ObjectID of grant to delete","name":"objectID","in":"path","required":true},{"type":"string","default":"","description":"RoleID of grant to delete","name":"roleID","in":"path","required":true}],"responses":{"204":{"description":"Success"}}}},"/collections":{"get":{"description":"List all visible collections.","produces":["application/json"],"tags":["UCP"],"summary":"List all visible collections.","operationId":"List collections","parameters":[{"type":"string","default":"","description":"Only return collections with an order marker starting from this value.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of collections per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/authz.Collection"}}},"default":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/authz.Collection"}}}}},"post":{"description":"Create a new collection of resources that share mutual authorization settings.","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Create a new collection of resources that share mutual authorization settings.","operationId":"Create Collection","parameters":[{"type":"authz.CollectionCreate","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/authz.CollectionCreate"}}],"responses":{"201":{"description":"Success","schema":{"$ref":"#/definitions/authz.CollectionCreateResponse"}}}}},"/collections/{id}":{"get":{"description":"Retrieve a single collection by ID.","produces":["application/json"],"tags":["UCP"],"summary":"Retrieve a single collection by ID.","operationId":"Get Collection","parameters":[{"type":"string","default":"","description":"ID of the collection to get","name":"id","in":"path","required":true}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/authz.Collection"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/authz.Collection"}}}},"delete":{"description":"Delete a single collection by ID.","tags":["UCP"],"summary":"Delete a single collection by ID.","operationId":"Delete Collection","parameters":[{"type":"string","default":"","description":"ID of the collection to delete.","name":"id","in":"path","required":true}],"responses":{"204":{"description":"Success"}}},"patch":{"description":"Updates an existing collection","consumes":["application/json"],"tags":["UCP"],"summary":"Updates an existing collection","operationId":"Update Collection","parameters":[{"type":"string","default":"","description":"ID of the collection to update.","name":"id","in":"path","required":true},{"type":"authz.CollectionUpdate","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/authz.CollectionUpdate"}}],"responses":{"200":{"description":"Success"},"default":{"description":"Success"}}}},"/collections/{id}/children":{"get":{"description":"Retrieve all children collection to a specific collection.","produces":["application/json"],"tags":["UCP"],"summary":"Retrieve all children collection to a specific collection.","operationId":"Get Collection Children","parameters":[{"type":"string","default":"","description":"ID of the collection whose children will be returned","name":"id","in":"path","required":true},{"type":"string","default":"","description":"Only return collections with an order marker starting from this value.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of collections per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/authz.Collection"}}},"default":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/authz.Collection"}}}}}},"/commit":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["Image"],"summary":"Create a new image from a container","operationId":"ImageCommit","parameters":[{"description":"The container configuration","name":"containerConfig","in":"body","schema":{"$ref":"#/definitions/ContainerConfig"}},{"type":"string","description":"The ID or name of the container to commit","name":"container","in":"query"},{"type":"string","description":"Repository name for the created image","name":"repo","in":"query"},{"type":"string","description":"Tag name for the create image","name":"tag","in":"query"},{"type":"string","description":"Commit message","name":"comment","in":"query"},{"type":"string","description":"Author of the image (e.g., `John Hannibal Smith \u003channibal@a-team.com\u003e`)","name":"author","in":"query"},{"type":"boolean","default":true,"description":"Whether to pause the container before committing","name":"pause","in":"query"},{"type":"string","description":"`Dockerfile` instructions to apply while committing","name":"changes","in":"query"}],"responses":{"201":{"description":"no error","schema":{"$ref":"#/definitions/IdResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/configs":{"get":{"produces":["application/json"],"tags":["Config"],"summary":"List configs","operationId":"ConfigList","parameters":[{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the configs list. Available filters:\n\n- `id=\u003cconfig id\u003e`\n- `label=\u003ckey\u003e or label=\u003ckey\u003e=value`\n- `name=\u003cconfig name\u003e`\n- `names=\u003cconfig name\u003e`\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"array","items":{"$ref":"#/definitions/Config"},"example":[{"CreatedAt":"2016-11-05T01:20:17.327670065Z","ID":"ktnbjxoalbkvbvedmg1urrz8h","Spec":{"Name":"server.conf"},"UpdatedAt":"2016-11-05T01:20:17.327670065Z","Version":{"Index":11}}]}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/configs/create":{"post":{"description":"If you create a UCP config with a name that starts with `com.docker.ucp.config`, UCP verifies that the config is valid before saving it. Also, UCP validates any licenses with names that start with `com.docker.license`.","consumes":["application/json"],"produces":["application/json"],"tags":["Config"],"summary":"Create a config","operationId":"ConfigCreate","parameters":[{"name":"body","in":"body","schema":{"allOf":[{"$ref":"#/definitions/ConfigSpec"},{"type":"object","example":{"Data":"VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg==","Labels":{"foo":"bar"},"Name":"server.conf"}}]}}],"responses":{"201":{"description":"no error","schema":{"type":"object","properties":{"ID":{"description":"The ID of the created config.","type":"string"}},"example":{"ID":"ktnbjxoalbkvbvedmg1urrz8h"}}},"409":{"description":"name conflicts with an existing object","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/configs/{id}":{"get":{"produces":["application/json"],"tags":["Config"],"summary":"Inspect a config","operationId":"ConfigInspect","parameters":[{"type":"string","description":"ID of the config","name":"id","in":"path","required":true}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/Config"},"examples":{"application/json":{"CreatedAt":"2016-11-05T01:20:17.327670065Z","ID":"ktnbjxoalbkvbvedmg1urrz8h","Spec":{"Name":"app-dev.crt"},"UpdatedAt":"2016-11-05T01:20:17.327670065Z","Version":{"Index":11}}}},"404":{"description":"config not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"produces":["application/json"],"tags":["Config"],"summary":"Delete a config","operationId":"ConfigDelete","parameters":[{"type":"string","description":"ID of the config","name":"id","in":"path","required":true}],"responses":{"204":{"description":"no error"},"404":{"description":"config not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/configs/{id}/update":{"post":{"tags":["Config"],"summary":"Update a Config","operationId":"ConfigUpdate","parameters":[{"type":"string","description":"The ID or name of the config","name":"id","in":"path","required":true},{"description":"The spec of the config to update. Currently, only the Labels field can be updated. All other fields must remain unchanged from the [ConfigInspect endpoint](#operation/ConfigInspect) response values.","name":"body","in":"body","schema":{"$ref":"#/definitions/ConfigSpec"}},{"type":"integer","format":"int64","description":"The version number of the config object being updated. This is required to avoid conflicting writes.","name":"version","in":"query","required":true}],"responses":{"200":{"description":"no error"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such config","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/create":{"post":{"consumes":["application/json","application/octet-stream"],"produces":["application/json"],"tags":["Container"],"summary":"Create a container","operationId":"ContainerCreate","parameters":[{"pattern":"/?[a-zA-Z0-9_-]+","type":"string","description":"Assign the specified name to the container. Must match `/?[a-zA-Z0-9_-]+`.","name":"name","in":"query"},{"description":"Container to create","name":"body","in":"body","required":true,"schema":{"allOf":[{"$ref":"#/definitions/ContainerConfig","example":{"AttachStderr":true,"AttachStdin":false,"AttachStdout":true,"Cmd":["date"],"Domainname":"","Entrypoint":"","Env":["FOO=bar","BAZ=quux"],"ExposedPorts":{"22/tcp":{}},"HostConfig":{"AutoRemove":true,"Binds":["/tmp:/tmp"],"BlkioDeviceReadBps":[{}],"BlkioDeviceReadIOps":[{}],"BlkioDeviceWriteBps":[{}],"BlkioDeviceWriteIOps":[{}],"BlkioWeight":300,"BlkioWeightDevice":[{}],"CapAdd":["NET_ADMIN"],"CapDrop":["MKNOD"],"CgroupParent":"","CpuPercent":80,"CpuPeriod":100000,"CpuQuota":50000,"CpuRealtimePeriod":1000000,"CpuRealtimeRuntime":10000,"CpuShares":512,"CpusetCpus":"0,1","CpusetMems":"0,1","Devices":[],"Dns":["8.8.8.8"],"DnsOptions":[""],"DnsSearch":[""],"GroupAdd":["newgroup"],"KernelMemory":0,"Links":["redis3:redis"],"LogConfig":{"Config":{},"Type":"json-file"},"MaximumIOBps":0,"MaximumIOps":0,"Memory":0,"MemoryReservation":0,"MemorySwap":0,"MemorySwappiness":60,"NanoCPUs":500000,"NetworkMode":"bridge","OomKillDisable":false,"OomScoreAdj":500,"PidMode":"","PidsLimit":-1,"PortBindings":{"22/tcp":[{"HostPort":"11022"}]},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":[],"ShmSize":67108864,"StorageOpt":{},"Ulimits":[{}],"VolumeDriver":"","VolumesFrom":["parent","other:ro"]},"Hostname":"","Image":"ubuntu","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"MacAddress":"12:34:56:78:9a:bc","NetworkDisabled":false,"NetworkingConfig":{"EndpointsConfig":{"isolated_nw":{"Aliases":["server_x","server_y"],"IPAMConfig":{"IPv4Address":"172.20.30.33","IPv6Address":"2001:db8:abcd::3033","LinkLocalIPs":["169.254.34.68","fe80::3468"]},"Links":["container_1","container_2"]}}},"OpenStdin":false,"StdinOnce":false,"StopSignal":"SIGTERM","StopTimeout":10,"Tty":false,"User":"","Volumes":{"/volumes/data":{}},"WorkingDir":""}},{"type":"object","properties":{"HostConfig":{"$ref":"#/definitions/HostConfig"},"NetworkingConfig":{"description":"This container's networking configuration.","type":"object","properties":{"EndpointsConfig":{"description":"A mapping of network name to endpoint configuration for that network.","type":"object","additionalProperties":{"$ref":"#/definitions/EndpointSettings"}}}}},"example":{"AttachStderr":true,"AttachStdin":false,"AttachStdout":true,"Cmd":["date"],"Domainname":"","Entrypoint":"","Env":["FOO=bar","BAZ=quux"],"ExposedPorts":{"22/tcp":{}},"HostConfig":{"AutoRemove":true,"Binds":["/tmp:/tmp"],"BlkioDeviceReadBps":[{}],"BlkioDeviceReadIOps":[{}],"BlkioDeviceWriteBps":[{}],"BlkioDeviceWriteIOps":[{}],"BlkioWeight":300,"BlkioWeightDevice":[{}],"CapAdd":["NET_ADMIN"],"CapDrop":["MKNOD"],"CgroupParent":"","CpuPercent":80,"CpuPeriod":100000,"CpuQuota":50000,"CpuRealtimePeriod":1000000,"CpuRealtimeRuntime":10000,"CpuShares":512,"CpusetCpus":"0,1","CpusetMems":"0,1","Devices":[],"Dns":["8.8.8.8"],"DnsOptions":[""],"DnsSearch":[""],"GroupAdd":["newgroup"],"KernelMemory":0,"Links":["redis3:redis"],"LogConfig":{"Config":{},"Type":"json-file"},"MaximumIOBps":0,"MaximumIOps":0,"Memory":0,"MemoryReservation":0,"MemorySwap":0,"MemorySwappiness":60,"NanoCPUs":500000,"NetworkMode":"bridge","OomKillDisable":false,"OomScoreAdj":500,"PidMode":"","PidsLimit":-1,"PortBindings":{"22/tcp":[{"HostPort":"11022"}]},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":[],"ShmSize":67108864,"StorageOpt":{},"Ulimits":[{}],"VolumeDriver":"","VolumesFrom":["parent","other:ro"]},"Hostname":"","Image":"ubuntu","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"MacAddress":"12:34:56:78:9a:bc","NetworkDisabled":false,"NetworkingConfig":{"EndpointsConfig":{"isolated_nw":{"Aliases":["server_x","server_y"],"IPAMConfig":{"IPv4Address":"172.20.30.33","IPv6Address":"2001:db8:abcd::3033","LinkLocalIPs":["169.254.34.68","fe80::3468"]},"Links":["container_1","container_2"]}}},"OpenStdin":false,"StdinOnce":false,"StopSignal":"SIGTERM","StopTimeout":10,"Tty":false,"User":"","Volumes":{"/volumes/data":{}},"WorkingDir":""}}],"example":{"AttachStderr":true,"AttachStdin":false,"AttachStdout":true,"Cmd":["date"],"Domainname":"","Entrypoint":"","Env":["FOO=bar","BAZ=quux"],"ExposedPorts":{"22/tcp":{}},"HostConfig":{"AutoRemove":true,"Binds":["/tmp:/tmp"],"BlkioDeviceReadBps":[{}],"BlkioDeviceReadIOps":[{}],"BlkioDeviceWriteBps":[{}],"BlkioDeviceWriteIOps":[{}],"BlkioWeight":300,"BlkioWeightDevice":[{}],"CapAdd":["NET_ADMIN"],"CapDrop":["MKNOD"],"CgroupParent":"","CpuPercent":80,"CpuPeriod":100000,"CpuQuota":50000,"CpuRealtimePeriod":1000000,"CpuRealtimeRuntime":10000,"CpuShares":512,"CpusetCpus":"0,1","CpusetMems":"0,1","Devices":[],"Dns":["8.8.8.8"],"DnsOptions":[""],"DnsSearch":[""],"GroupAdd":["newgroup"],"KernelMemory":0,"Links":["redis3:redis"],"LogConfig":{"Config":{},"Type":"json-file"},"MaximumIOBps":0,"MaximumIOps":0,"Memory":0,"MemoryReservation":0,"MemorySwap":0,"MemorySwappiness":60,"NanoCPUs":500000,"NetworkMode":"bridge","OomKillDisable":false,"OomScoreAdj":500,"PidMode":"","PidsLimit":-1,"PortBindings":{"22/tcp":[{"HostPort":"11022"}]},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":[],"ShmSize":67108864,"StorageOpt":{},"Ulimits":[{}],"VolumeDriver":"","VolumesFrom":["parent","other:ro"]},"Hostname":"","Image":"ubuntu","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"MacAddress":"12:34:56:78:9a:bc","NetworkDisabled":false,"NetworkingConfig":{"EndpointsConfig":{"isolated_nw":{"Aliases":["server_x","server_y"],"IPAMConfig":{"IPv4Address":"172.20.30.33","IPv6Address":"2001:db8:abcd::3033","LinkLocalIPs":["169.254.34.68","fe80::3468"]},"Links":["container_1","container_2"]}}},"OpenStdin":false,"StdinOnce":false,"StopSignal":"SIGTERM","StopTimeout":10,"Tty":false,"User":"","Volumes":{"/volumes/data":{}},"WorkingDir":""}}}],"responses":{"201":{"description":"Container created successfully","schema":{"type":"object","required":["Id","Warnings"],"properties":{"Id":{"description":"The ID of the created container","type":"string","x-nullable":false},"Warnings":{"description":"Warnings encountered when creating the container","type":"array","items":{"type":"string"},"x-nullable":false}}},"examples":{"application/json":{"Id":"e90e34656806","Warnings":[]}}},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"406":{"description":"impossible to attach","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"conflict","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/json":{"get":{"produces":["application/json"],"tags":["Container"],"summary":"List containers","operationId":"ContainerList","parameters":[{"type":"boolean","default":false,"description":"Return all containers. By default, only running containers are shown","name":"all","in":"query"},{"type":"integer","description":"Return this number of most recently created containers, including non-running ones.","name":"limit","in":"query"},{"type":"boolean","default":false,"description":"Return the size of container as fields `SizeRw` and `SizeRootFs`.","name":"size","in":"query"},{"type":"string","description":"Filters to process on the container list, encoded as JSON (a `map[string][]string`). For example, `{\"status\": [\"paused\"]}` will only return paused containers. Available filters:\n\n- `ancestor`=(`\u003cimage-name\u003e[:\u003ctag\u003e]`, `\u003cimage id\u003e`, or `\u003cimage@digest\u003e`)\n- `before`=(`\u003ccontainer id\u003e` or `\u003ccontainer name\u003e`)\n- `expose`=(`\u003cport\u003e[/\u003cproto\u003e]`|`\u003cstartport-endport\u003e/[\u003cproto\u003e]`)\n- `exited=\u003cint\u003e` containers with exit code of `\u003cint\u003e`\n- `health`=(`starting`|`healthy`|`unhealthy`|`none`)\n- `id=\u003cID\u003e` a container's ID\n- `isolation=`(`default`|`process`|`hyperv`) (Windows daemon only)\n- `is-task=`(`true`|`false`)\n- `label=key` or `label=\"key=value\"` of a container label\n- `name=\u003cname\u003e` a container's name\n- `network`=(`\u003cnetwork id\u003e` or `\u003cnetwork name\u003e`)\n- `publish`=(`\u003cport\u003e[/\u003cproto\u003e]`|`\u003cstartport-endport\u003e/[\u003cproto\u003e]`)\n- `since`=(`\u003ccontainer id\u003e` or `\u003ccontainer name\u003e`)\n- `status=`(`created`|`restarting`|`running`|`removing`|`paused`|`exited`|`dead`)\n- `volume`=(`\u003cvolume name\u003e` or `\u003cmount point destination\u003e`)\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/ContainerSummary"},"examples":{"application/json":[{"Command":"echo 1","Created":1367854155,"HostConfig":{"NetworkMode":"default"},"Id":"8dfafdbc3a40","Image":"ubuntu:latest","ImageID":"d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"Mounts":[{"Destination":"/data","Driver":"local","Mode":"ro,Z","Name":"fac362...80535","Propagation":"","RW":false,"Source":"/data"}],"Names":["/boring_feynman"],"NetworkSettings":{"Networks":{"bridge":{"EndpointID":"2cdc4edb1ded3631c81f57966563e5c8525b81121bb3706a9a9a3ae102711f3f","Gateway":"172.17.0.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.2","IPPrefixLen":16,"IPv6Gateway":"","MacAddress":"02:42:ac:11:00:02","NetworkID":"7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"}}},"Ports":[{"PrivatePort":2222,"PublicPort":3333,"Type":"tcp"}],"SizeRootFs":0,"SizeRw":12288,"State":"Exited","Status":"Exit 0"},{"Command":"echo 222222","Created":1367854155,"HostConfig":{"NetworkMode":"default"},"Id":"9cd87474be90","Image":"ubuntu:latest","ImageID":"d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82","Labels":{},"Mounts":[],"Names":["/coolName"],"NetworkSettings":{"Networks":{"bridge":{"EndpointID":"88eaed7b37b38c2a3f0c4bc796494fdf51b270c2d22656412a2ca5d559a64d7a","Gateway":"172.17.0.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.8","IPPrefixLen":16,"IPv6Gateway":"","MacAddress":"02:42:ac:11:00:08","NetworkID":"7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"}}},"Ports":[],"SizeRootFs":0,"SizeRw":12288,"State":"Exited","Status":"Exit 0"},{"Command":"echo 3333333333333333","Created":1367854154,"HostConfig":{"NetworkMode":"default"},"Id":"3176a2479c92","Image":"ubuntu:latest","ImageID":"d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82","Labels":{},"Mounts":[],"Names":["/sleepy_dog"],"NetworkSettings":{"Networks":{"bridge":{"EndpointID":"8b27c041c30326d59cd6e6f510d4f8d1d570a228466f956edf7815508f78e30d","Gateway":"172.17.0.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.6","IPPrefixLen":16,"IPv6Gateway":"","MacAddress":"02:42:ac:11:00:06","NetworkID":"7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"}}},"Ports":[],"SizeRootFs":0,"SizeRw":12288,"State":"Exited","Status":"Exit 0"},{"Command":"echo 444444444444444444444444444444444","Created":1367854152,"HostConfig":{"NetworkMode":"default"},"Id":"4cb07b47f9fb","Image":"ubuntu:latest","ImageID":"d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82","Labels":{},"Mounts":[],"Names":["/running_cat"],"NetworkSettings":{"Networks":{"bridge":{"EndpointID":"d91c7b2f0644403d7ef3095985ea0e2370325cd2332ff3a3225c4247328e66e9","Gateway":"172.17.0.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.5","IPPrefixLen":16,"IPv6Gateway":"","MacAddress":"02:42:ac:11:00:05","NetworkID":"7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"}}},"Ports":[],"SizeRootFs":0,"SizeRw":12288,"State":"Exited","Status":"Exit 0"}]}},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/prune":{"post":{"produces":["application/json"],"tags":["Container"],"summary":"Delete stopped containers","operationId":"ContainerPrune","parameters":[{"type":"string","description":"Filters to process on the prune list, encoded as JSON (a `map[string][]string`).\n\nAvailable filters:\n- `until=\u003ctimestamp\u003e` Prune containers created before this timestamp. The `\u003ctimestamp\u003e` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time.\n- `label` (`label=\u003ckey\u003e`, `label=\u003ckey\u003e=\u003cvalue\u003e`, `label!=\u003ckey\u003e`, or `label!=\u003ckey\u003e=\u003cvalue\u003e`) Prune containers with (or without, in case `label!=...` is used) the specified labels.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"object","properties":{"ContainersDeleted":{"description":"Container IDs that were deleted","type":"array","items":{"type":"string"}},"SpaceReclaimed":{"description":"Disk space reclaimed in bytes","type":"integer","format":"int64"}}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}":{"delete":{"tags":["Container"],"summary":"Remove a container","operationId":"ContainerDelete","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Remove the volumes associated with the container.","name":"v","in":"query"},{"type":"boolean","default":false,"description":"If the container is running, kill it before removing it.","name":"force","in":"query"},{"type":"boolean","default":false,"description":"Remove the specified link associated with the container.","name":"link","in":"query"}],"responses":{"204":{"description":"no error"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"409":{"description":"conflict","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"You cannot remove a running container: c2ada9df5af8. Stop the container before attempting removal or force remove"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/archive":{"get":{"description":"Get a tar archive of a resource in the filesystem of container id.","produces":["application/x-tar"],"tags":["Container"],"summary":"Get an archive of a filesystem resource in a container","operationId":"ContainerArchive","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","description":"Resource in the container’s filesystem to archive.","name":"path","in":"query","required":true}],"responses":{"200":{"description":"no error"},"400":{"description":"Bad parameter","schema":{"allOf":[{"$ref":"#/definitions/ErrorResponse"},{"type":"object","properties":{"message":{"description":"The error message. Either \"must specify path parameter\" (path cannot be empty) or \"not a directory\" (path was asserted to be a directory but exists as a file).","type":"string","x-nullable":false}}}]}},"404":{"description":"Container or path does not exist","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"put":{"description":"Upload a tar archive to be extracted to a path in the filesystem of container id.","consumes":["application/x-tar","application/octet-stream"],"tags":["Container"],"summary":"Extract an archive of files or folders to a directory in a container","operationId":"PutContainerArchive","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","description":"Path to a directory in the container to extract the archive’s contents into. ","name":"path","in":"query","required":true},{"type":"string","description":"If “1”, “true”, or “True” then it will be an error if unpacking the given content would cause an existing directory to be replaced with a non-directory and vice versa.","name":"noOverwriteDirNonDir","in":"query"},{"description":"The input stream must be a tar archive compressed with one of the following algorithms: identity (no compression), gzip, bzip2, xz.","name":"inputStream","in":"body","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The content was extracted successfully"},"400":{"description":"Bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Permission denied, the volume or container rootfs is marked as read-only.","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"No such container or path does not exist inside the container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"head":{"description":"A response header `X-Docker-Container-Path-Stat` is return containing a base64 - encoded JSON object with some filesystem header information about the path.","tags":["Container"],"summary":"Get information about files in a container","operationId":"ContainerArchiveInfo","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","description":"Resource in the container’s filesystem to archive.","name":"path","in":"query","required":true}],"responses":{"200":{"description":"no error","headers":{"X-Docker-Container-Path-Stat":{"type":"string","description":"TODO"}}},"400":{"description":"Bad parameter","schema":{"allOf":[{"$ref":"#/definitions/ErrorResponse"},{"type":"object","properties":{"message":{"description":"The error message. Either \"must specify path parameter\" (path cannot be empty) or \"not a directory\" (path was asserted to be a directory but exists as a file).","type":"string","x-nullable":false}}}]}},"404":{"description":"Container or path does not exist","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/attach":{"post":{"description":"Attach to a container to read its output or send it input. You can attach to the same container multiple times and you can reattach to containers that have been detached.\n\nEither the `stream` or `logs` parameter must be `true` for this endpoint to do anything.\n\nSee [the documentation for the `docker attach` command](https://docs.docker.com/engine/reference/commandline/attach/) for more details.\n\n### Hijacking\n\nThis endpoint hijacks the HTTP connection to transport `stdin`, `stdout`, and `stderr` on the same socket.\n\nThis is the response from the daemon for an attach request:\n\n```\nHTTP/1.1 200 OK\nContent-Type: application/vnd.docker.raw-stream\n\n[STREAM]\n```\n\nAfter the headers and two new lines, the TCP connection can now be used for raw, bidirectional communication between the client and server.\n\nTo hint potential proxies about connection hijacking, the Docker client can also optionally send connection upgrade headers.\n\nFor example, the client sends this request to upgrade the connection:\n\n```\nPOST /containers/16253994b7c4/attach?stream=1\u0026stdout=1 HTTP/1.1\nUpgrade: tcp\nConnection: Upgrade\n```\n\nThe Docker daemon will respond with a `101 UPGRADED` response, and will similarly follow with the raw stream:\n\n```\nHTTP/1.1 101 UPGRADED\nContent-Type: application/vnd.docker.raw-stream\nConnection: Upgrade\nUpgrade: tcp\n\n[STREAM]\n```\n\n### Stream format\n\nWhen the TTY setting is disabled in [`POST /containers/create`](#operation/ContainerCreate), the stream over the hijacked connected is multiplexed to separate out `stdout` and `stderr`. The stream consists of a series of frames, each containing a header and a payload.\n\nThe header contains the information which the stream writes (`stdout` or `stderr`). It also contains the size of the associated frame encoded in the last four bytes (`uint32`).\n\nIt is encoded on the first eight bytes like this:\n\n```go\nheader := [8]byte{STREAM_TYPE, 0, 0, 0, SIZE1, SIZE2, SIZE3, SIZE4}\n```\n\n`STREAM_TYPE` can be:\n\n- 0: `stdin` (is written on `stdout`)\n- 1: `stdout`\n- 2: `stderr`\n\n`SIZE1, SIZE2, SIZE3, SIZE4` are the four bytes of the `uint32` size encoded as big endian.\n\nFollowing the header is the payload, which is the specified number of bytes of `STREAM_TYPE`.\n\nThe simplest way to implement this protocol is the following:\n\n1. Read 8 bytes.\n2. Choose `stdout` or `stderr` depending on the first byte.\n3. Extract the frame size from the last four bytes.\n4. Read the extracted size and output it on the correct output.\n5. Goto 1.\n\n### Stream format when using a TTY\n\nWhen the TTY setting is enabled in [`POST /containers/create`](#operation/ContainerCreate), the stream is not multiplexed. The data exchanged over the hijacked connection is simply the raw data from the process PTY and client's `stdin`.\n","produces":["application/vnd.docker.raw-stream"],"tags":["Container"],"summary":"Attach to a container","operationId":"ContainerAttach","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","description":"Override the key sequence for detaching a container.Format is a single character `[a-Z]` or `ctrl-\u003cvalue\u003e` where `\u003cvalue\u003e` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`.","name":"detachKeys","in":"query"},{"type":"boolean","default":false,"description":"Replay previous logs from the container.\n\nThis is useful for attaching to a container that has started and you want to output everything since the container started.\n\nIf `stream` is also enabled, once all the previous output has been returned, it will seamlessly transition into streaming current output.\n","name":"logs","in":"query"},{"type":"boolean","default":false,"description":"Stream attached streams from the time the request was made onwards","name":"stream","in":"query"},{"type":"boolean","default":false,"description":"Attach to `stdin`","name":"stdin","in":"query"},{"type":"boolean","default":false,"description":"Attach to `stdout`","name":"stdout","in":"query"},{"type":"boolean","default":false,"description":"Attach to `stderr`","name":"stderr","in":"query"}],"responses":{"101":{"description":"no error, hints proxy about hijacking"},"200":{"description":"no error, no upgrade header found"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/changes":{"get":{"description":"Returns which files in a container's filesystem have been added, deleted,\nor modified. The `Kind` of modification can be one of:\n\n- `0`: Modified\n- `1`: Added\n- `2`: Deleted\n","produces":["application/json"],"tags":["Container"],"summary":"Get changes on a container’s filesystem","operationId":"ContainerChanges","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true}],"responses":{"200":{"description":"The list of changes","schema":{"type":"array","items":{"type":"object","required":["Path","Kind"],"properties":{"Kind":{"description":"Kind of change","type":"integer","format":"uint8","enum":[0,1,2],"x-nullable":false},"Path":{"description":"Path to file that has changed","type":"string","x-nullable":false}},"x-go-name":"ContainerChangeResponseItem"}},"examples":{"application/json":[{"Kind":0,"Path":"/dev"},{"Kind":1,"Path":"/dev/kmsg"},{"Kind":1,"Path":"/test"}]}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/exec":{"post":{"description":"Run a command inside a running container.","consumes":["application/json"],"produces":["application/json"],"tags":["Exec"],"summary":"Create an exec instance","operationId":"ContainerExec","parameters":[{"description":"Exec configuration","name":"execConfig","in":"body","required":true,"schema":{"type":"object","properties":{"AttachStderr":{"description":"Attach to `stderr` of the exec command.","type":"boolean"},"AttachStdin":{"description":"Attach to `stdin` of the exec command.","type":"boolean"},"AttachStdout":{"description":"Attach to `stdout` of the exec command.","type":"boolean"},"Cmd":{"description":"Command to run, as a string or array of strings.","type":"array","items":{"type":"string"}},"DetachKeys":{"description":"Override the key sequence for detaching a container. Format is a single character `[a-Z]` or `ctrl-\u003cvalue\u003e` where `\u003cvalue\u003e` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`.","type":"string"},"Env":{"description":"A list of environment variables in the form `[\"VAR=value\", ...]`.","type":"array","items":{"type":"string"}},"Privileged":{"description":"Runs the exec process with extended privileges.","type":"boolean","default":false},"Tty":{"description":"Allocate a pseudo-TTY.","type":"boolean"},"User":{"description":"The user, and optionally, group to run the exec process inside the container. Format is one of: `user`, `user:group`, `uid`, or `uid:gid`.","type":"string"}},"example":{"AttachStderr":true,"AttachStdin":false,"AttachStdout":true,"Cmd":["date"],"DetachKeys":"ctrl-p,ctrl-q","Env":["FOO=bar","BAZ=quux"],"Tty":false}}},{"type":"string","description":"ID or name of container","name":"id","in":"path","required":true}],"responses":{"201":{"description":"no error","schema":{"$ref":"#/definitions/IdResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"409":{"description":"container is paused","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/export":{"get":{"description":"Export the contents of a container as a tarball.","produces":["application/octet-stream"],"tags":["Container"],"summary":"Export a container","operationId":"ContainerExport","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true}],"responses":{"200":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/json":{"get":{"description":"Return low-level information about a container.","produces":["application/json"],"tags":["Container"],"summary":"Inspect a container","operationId":"ContainerInspect","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Return the size of container as fields `SizeRw` and `SizeRootFs`","name":"size","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"object","properties":{"AppArmorProfile":{"type":"string"},"Args":{"description":"The arguments to the command being run","type":"array","items":{"type":"string"}},"Config":{"$ref":"#/definitions/ContainerConfig"},"Created":{"description":"The time the container was created","type":"string"},"Driver":{"type":"string"},"ExecIDs":{"type":"string"},"GraphDriver":{"$ref":"#/definitions/GraphDriverData"},"HostConfig":{"$ref":"#/definitions/HostConfig"},"HostnamePath":{"type":"string"},"HostsPath":{"type":"string"},"Id":{"description":"The ID of the container","type":"string"},"Image":{"description":"The container's image","type":"string"},"LogPath":{"type":"string"},"MountLabel":{"type":"string"},"Mounts":{"type":"array","items":{"$ref":"#/definitions/MountPoint"}},"Name":{"type":"string"},"NetworkSettings":{"$ref":"#/definitions/NetworkConfig"},"Node":{"description":"TODO","type":"object"},"Path":{"description":"The path to the command being run","type":"string"},"ProcessLabel":{"type":"string"},"ResolvConfPath":{"type":"string"},"RestartCount":{"type":"integer"},"SizeRootFs":{"description":"The total size of all the files in this container.","type":"integer","format":"int64"},"SizeRw":{"description":"The size of files that have been created or changed by this container.","type":"integer","format":"int64"},"State":{"description":"The state of the container.","type":"object","properties":{"Dead":{"type":"boolean"},"Error":{"type":"string"},"ExitCode":{"description":"The last exit code of this container","type":"integer"},"FinishedAt":{"description":"The time when this container last exited.","type":"string"},"OOMKilled":{"description":"Whether this container has been killed because it ran out of memory.","type":"boolean"},"Paused":{"description":"Whether this container is paused.","type":"boolean"},"Pid":{"description":"The process ID of this container","type":"integer"},"Restarting":{"description":"Whether this container is restarting.","type":"boolean"},"Running":{"description":"Whether this container is running.\n\nNote that a running container can be _paused_. The `Running` and `Paused`\nbooleans are not mutually exclusive:\n\nWhen pausing a container (on Linux), the cgroups freezer is used to suspend\nall processes in the container. Freezing the process requires the process to\nbe running. As a result, paused containers are both `Running` _and_ `Paused`.\n\nUse the `Status` field instead to determine if a container's state is \"running\".\n","type":"boolean"},"StartedAt":{"description":"The time when this container was last started.","type":"string"},"Status":{"description":"The status of the container. For example, `\"running\"` or `\"exited\"`.\n","type":"string","enum":["created","running","paused","restarting","removing","exited","dead"]}}}}},"examples":{"application/json":{"AppArmorProfile":"","Args":["-c","exit 9"],"Config":{"AttachStderr":true,"AttachStdin":false,"AttachStdout":true,"Cmd":["/bin/sh","-c","exit 9"],"Domainname":"","Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Hostname":"ba033ac44011","Image":"ubuntu","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"MacAddress":"","NetworkDisabled":false,"OpenStdin":false,"StdinOnce":false,"StopSignal":"SIGTERM","StopTimeout":10,"Tty":false,"User":"","Volumes":{"/volumes/data":{}},"WorkingDir":""},"Created":"2015-01-06T15:47:31.485331387Z","Driver":"devicemapper","HostConfig":{"BlkioDeviceReadBps":[{}],"BlkioDeviceReadIOps":[{}],"BlkioDeviceWriteBps":[{}],"BlkioDeviceWriteIOps":[{}],"BlkioWeight":0,"BlkioWeightDevice":[{}],"ContainerIDFile":"","CpuPercent":80,"CpuPeriod":100000,"CpuRealtimePeriod":1000000,"CpuRealtimeRuntime":10000,"CpuShares":0,"CpusetCpus":"","CpusetMems":"","Devices":[],"IpcMode":"","KernelMemory":0,"LogConfig":{"Type":"json-file"},"LxcConf":[],"MaximumIOBps":0,"MaximumIOps":0,"Memory":0,"MemoryReservation":0,"MemorySwap":0,"NetworkMode":"bridge","OomKillDisable":false,"OomScoreAdj":500,"PidMode":"","PortBindings":{},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":2,"Name":"on-failure"},"ShmSize":67108864,"Sysctls":{"net.ipv4.ip_forward":"1"},"Ulimits":[{}],"VolumeDriver":""},"HostnamePath":"/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/hostname","HostsPath":"/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/hosts","Id":"ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39","Image":"04c5d3b7b0656168630d3ba35d8889bd0e9caafcaeb3004d2bfbc47e7c5d35d2","LogPath":"/var/lib/docker/containers/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b-json.log","MountLabel":"","Mounts":[{"Destination":"/data","Driver":"local","Mode":"ro,Z","Name":"fac362...80535","Propagation":"","RW":false,"Source":"/data"}],"Name":"/boring_euclid","NetworkSettings":{"Bridge":"","EndpointID":"","Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"HairpinMode":false,"IPAddress":"","IPPrefixLen":0,"IPv6Gateway":"","LinkLocalIPv6Address":"","LinkLocalIPv6PrefixLen":0,"MacAddress":"","Networks":{"bridge":{"EndpointID":"7587b82f0dada3656fda26588aee72630c6fab1536d36e394b2bfbcf898c971d","Gateway":"172.17.0.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.2","IPPrefixLen":16,"IPv6Gateway":"","MacAddress":"02:42:ac:12:00:02","NetworkID":"7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"}},"SandboxID":"","SandboxKey":"","SecondaryIPAddresses":"","SecondaryIPv6Addresses":""},"Path":"/bin/sh","ProcessLabel":"","ResolvConfPath":"/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/resolv.conf","RestartCount":1,"State":{"Dead":false,"Error":"","ExitCode":9,"FinishedAt":"2015-01-06T15:47:32.080254511Z","OOMKilled":false,"Paused":false,"Pid":0,"Restarting":false,"Running":true,"StartedAt":"2015-01-06T15:47:32.072697474Z","Status":"running"}}}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/kill":{"post":{"description":"Send a POSIX signal to a container, defaulting to killing to the container.","tags":["Container"],"summary":"Kill a container","operationId":"ContainerKill","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","default":"SIGKILL","description":"Signal to send to the container as an integer or string (e.g. `SIGINT`)","name":"signal","in":"query"}],"responses":{"204":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/logs":{"get":{"description":"Get `stdout` and `stderr` logs from a container.\n\nNote: This endpoint works only for containers with the `json-file` or `journald` logging driver.\n","tags":["Container"],"summary":"Get container logs","operationId":"ContainerLogs","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Return the logs as a stream.\n\nThis will return a `101` HTTP response with a `Connection: upgrade` header, then hijack the HTTP connection to send raw output. For more information about hijacking and the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).\n","name":"follow","in":"query"},{"type":"boolean","default":false,"description":"Return logs from `stdout`","name":"stdout","in":"query"},{"type":"boolean","default":false,"description":"Return logs from `stderr`","name":"stderr","in":"query"},{"type":"integer","default":0,"description":"Only return logs since this time, as a UNIX timestamp","name":"since","in":"query"},{"type":"boolean","default":false,"description":"Add timestamps to every log line","name":"timestamps","in":"query"},{"type":"string","default":"all","description":"Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines.","name":"tail","in":"query"}],"responses":{"101":{"description":"logs returned as a stream","schema":{"type":"string","format":"binary"}},"200":{"description":"logs returned as a string in response body","schema":{"type":"string"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/pause":{"post":{"description":"Use the cgroups freezer to suspend all processes in a container.\n\nTraditionally, when suspending a process the `SIGSTOP` signal is used, which is observable by the process being suspended. With the cgroups freezer the process is unaware, and unable to capture, that it is being suspended, and subsequently resumed.\n","tags":["Container"],"summary":"Pause a container","operationId":"ContainerPause","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true}],"responses":{"204":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/rename":{"post":{"tags":["Container"],"summary":"Rename a container","operationId":"ContainerRename","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","description":"New name for the container","name":"name","in":"query","required":true}],"responses":{"204":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"409":{"description":"name already in use","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/resize":{"post":{"description":"Resize the TTY for a container. You must restart the container for the resize to take effect.","consumes":["application/octet-stream"],"produces":["text/plain"],"tags":["Container"],"summary":"Resize a container TTY","operationId":"ContainerResize","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"integer","description":"Height of the tty session in characters","name":"h","in":"query"},{"type":"integer","description":"Width of the tty session in characters","name":"w","in":"query"}],"responses":{"200":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"cannot resize container","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/restart":{"post":{"tags":["Container"],"summary":"Restart a container","operationId":"ContainerRestart","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"integer","description":"Number of seconds to wait before killing the container","name":"t","in":"query"}],"responses":{"204":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/start":{"post":{"tags":["Container"],"summary":"Start a container","operationId":"ContainerStart","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","description":"Override the key sequence for detaching a container. Format is a single character `[a-Z]` or `ctrl-\u003cvalue\u003e` where `\u003cvalue\u003e` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`.","name":"detachKeys","in":"query"}],"responses":{"204":{"description":"no error"},"304":{"description":"container already started","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/stats":{"get":{"description":"This endpoint returns a live stream of a container’s resource usage\nstatistics.\n\nThe `precpu_stats` is the CPU statistic of last read, which is used\nfor calculating the CPU usage percentage. It is not the same as the\n`cpu_stats` field.\n\nIf either `precpu_stats.online_cpus` or `cpu_stats.online_cpus` is\nnil then for compatibility with older daemons the length of the\ncorresponding `cpu_usage.percpu_usage` array should be used.\n","produces":["application/json"],"tags":["Container"],"summary":"Get container stats based on resource usage","operationId":"ContainerStats","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"boolean","default":true,"description":"Stream the output. If false, the stats will be output once and then it will disconnect.","name":"stream","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"object"},"examples":{"application/json":{"blkio_stats":{},"cpu_stats":{"cpu_usage":{"percpu_usage":[8646879,24472255,36438778,30657443],"total_usage":100215355,"usage_in_kernelmode":30000000,"usage_in_usermode":50000000},"online_cpus":4,"system_cpu_usage":739306590000000,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"failcnt":0,"limit":67108864,"max_usage":6651904,"stats":{"active_anon":6537216,"active_file":0,"cache":0,"hierarchical_memory_limit":67108864,"inactive_anon":0,"inactive_file":0,"mapped_file":0,"pgfault":964,"pgmajfault":0,"pgpgin":477,"pgpgout":414,"rss":6537216,"rss_huge":6291456,"total_active_anon":6537216,"total_active_file":0,"total_cache":0,"total_inactive_anon":0,"total_inactive_file":0,"total_mapped_file":0,"total_pgfault":964,"total_pgmajfault":0,"total_pgpgin":477,"total_pgpgout":414,"total_rss":6537216,"total_rss_huge":6291456,"total_unevictable":0,"total_writeback":0,"unevictable":0,"writeback":0},"usage":6537216},"networks":{"eth0":{"rx_bytes":5338,"rx_dropped":0,"rx_errors":0,"rx_packets":36,"tx_bytes":648,"tx_dropped":0,"tx_errors":0,"tx_packets":8},"eth5":{"rx_bytes":4641,"rx_dropped":0,"rx_errors":0,"rx_packets":26,"tx_bytes":690,"tx_dropped":0,"tx_errors":0,"tx_packets":9}},"pids_stats":{"current":3},"precpu_stats":{"cpu_usage":{"percpu_usage":[8646879,24350896,36438778,30657443],"total_usage":100093996,"usage_in_kernelmode":30000000,"usage_in_usermode":50000000},"online_cpus":4,"system_cpu_usage":9492140000000,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"read":"2015-01-08T22:57:31.547920715Z"}}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/stop":{"post":{"tags":["Container"],"summary":"Stop a container","operationId":"ContainerStop","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"integer","description":"Number of seconds to wait before killing the container","name":"t","in":"query"}],"responses":{"204":{"description":"no error"},"304":{"description":"container already stopped","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/top":{"get":{"description":"On Unix systems, this is done by running the `ps` command. This endpoint is not supported on Windows.","tags":["Container"],"summary":"List processes running inside a container","operationId":"ContainerTop","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","default":"-ef","description":"The arguments to pass to `ps`. For example, `aux`","name":"ps_args","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"object","properties":{"Processes":{"description":"Each process running in the container, where each is process is an array of values corresponding to the titles","type":"array","items":{"type":"array","items":{"type":"string"}}},"Titles":{"description":"The ps column titles","type":"array","items":{"type":"string"}}}},"examples":{"application/json":{"Processes":[["root","13642","882","0","17:03","pts/0","00:00:00","/bin/bash"],["root","13735","13642","0","17:06","pts/0","00:00:00","sleep 10"]],"Titles":["UID","PID","PPID","C","STIME","TTY","TIME","CMD"]}}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/unpause":{"post":{"description":"Resume a container which has been paused.","tags":["Container"],"summary":"Unpause a container","operationId":"ContainerUnpause","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true}],"responses":{"204":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/wait":{"post":{"description":"Block until a container stops, then returns the exit code.","produces":["application/json"],"tags":["Container"],"summary":"Wait for a container","operationId":"ContainerWait","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","default":"not-running","description":"Wait until a container state reaches the given condition, either 'not-running' (default), 'next-exit', or 'removed'.","name":"condition","in":"query"}],"responses":{"200":{"description":"The container has exit.","schema":{"type":"object","required":["StatusCode"],"properties":{"StatusCode":{"description":"Exit code of the container","type":"integer","x-nullable":false}}}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/defaultCollection/{userID}":{"get":{"description":"Retrieve a user's default collection.","produces":["application/json"],"tags":["UCP"],"summary":"Retrieve a user's default collection.","operationId":"Get user default collection","parameters":[{"type":"string","default":"","description":"ID of the user","name":"userID","in":"path","required":true}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/authz.Collection"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/authz.Collection"}}}},"put":{"description":"Set a user's default collection.","consumes":["application/json"],"tags":["UCP"],"summary":"Set a user's default collection.","operationId":"Set user default collection","parameters":[{"type":"string","default":"","description":"ID of the user","name":"userID","in":"path","required":true},{"type":"authz.CollectionID","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/authz.CollectionID"}}],"responses":{"201":{"description":"Success"}}},"delete":{"description":"Delete the default collection setting for a user","tags":["UCP"],"summary":"Delete the default collection setting for a user","operationId":"DeleteUserDefaultCollection","parameters":[{"type":"string","default":"","description":"ID of the user whose default collection mapping will be deleted","name":"userID","in":"path","required":true}],"responses":{"204":{"description":"Success"}}}},"/defaultCollectionRole":{"get":{"description":"Retrieve the role for the logged-in user's default collection.","produces":["application/json"],"tags":["UCP"],"summary":"Retrieve the role for the logged-in user's default collection.","operationId":"Get the logged-in user's role for their default collection","responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/role.Role"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/role.Role"}}}}},"/distribution/{name}/json":{"get":{"description":"Return image digest and platform information by contacting the registry.","produces":["application/json"],"tags":["Distribution"],"summary":"Get image information from the registry","operationId":"DistributionInspect","parameters":[{"type":"string","description":"Image name or id","name":"name","in":"path","required":true}],"responses":{"200":{"description":"descriptor and platform information","schema":{"type":"object","required":["Descriptor","Platforms"],"properties":{"Descriptor":{"description":"A descriptor struct containing digest, media type, and size","type":"object","properties":{"Digest":{"type":"string"},"MediaType":{"type":"string"},"Size":{"type":"integer","format":"int64"},"URLs":{"type":"array","items":{"type":"string"}}}},"Platforms":{"description":"An array containing all platforms supported by the image","type":"array","items":{"type":"object","properties":{"Architecture":{"type":"string"},"Features":{"type":"array","items":{"type":"string"}},"OS":{"type":"string"},"OSFeatures":{"type":"array","items":{"type":"string"}},"OSVersion":{"type":"string"},"Variant":{"type":"string"}}}}},"x-go-name":"DistributionInspect"},"examples":{"application/json":{"Descriptor":{"Digest":"sha256:c0537ff6a5218ef531ece93d4984efc99bbf3f7497c0a7726c88e2bb7584dc96","MediaType":"application/vnd.docker.distribution.manifest.v2+json","Size":3987495,"URLs":[""]},"Platforms":[{"Architecture":"amd64","Features":[""],"OS":"linux","OSFeatures":[""],"OSVersion":"","Variant":""}]}}},"401":{"description":"Failed authentication or no image found","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such image: someimage (tag: latest)"}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/events":{"get":{"description":"Stream real-time events from the server.\n\nVarious objects within Docker report events when something happens to them.\n\nContainers report these events: `attach`, `commit`, `copy`, `create`, `destroy`, `detach`, `die`, `exec_create`, `exec_detach`, `exec_start`, `export`, `health_status`, `kill`, `oom`, `pause`, `rename`, `resize`, `restart`, `start`, `stop`, `top`, `unpause`, and `update`\n\nImages report these events: `delete`, `import`, `load`, `pull`, `push`, `save`, `tag`, and `untag`\n\nVolumes report these events: `create`, `mount`, `unmount`, and `destroy`\n\nNetworks report these events: `create`, `connect`, `disconnect`, `destroy`, `update`, and `remove`\n\nThe Docker daemon reports these events: `reload`\n\nServices report these events: `create`, `update`, and `remove`\n\nNodes report these events: `create`, `update`, and `remove`\n\nSecrets report these events: `create`, `update`, and `remove`\n","produces":["application/json"],"tags":["System"],"summary":"Monitor events","operationId":"SystemEvents","parameters":[{"type":"string","description":"Show events created since this timestamp then stream new events.","name":"since","in":"query"},{"type":"string","description":"Show events created until this timestamp then stop streaming.","name":"until","in":"query"},{"type":"string","description":"A JSON encoded value of filters (a `map[string][]string`) to process on the event list. Available filters:\n\n- `container=\u003cstring\u003e` container name or ID\n- `daemon=\u003cstring\u003e` daemon name or ID\n- `event=\u003cstring\u003e` event type\n- `image=\u003cstring\u003e` image name or ID\n- `label=\u003cstring\u003e` image or container label\n- `network=\u003cstring\u003e` network name or ID\n- `plugin`=\u003cstring\u003e plugin name or ID\n- `scope`=\u003cstring\u003e local or swarm\n- `type=\u003cstring\u003e` object to filter by, one of `container`, `image`, `volume`, `network`, `daemon`, `plugin`, `node`, `service` or `secret`\n- `volume=\u003cstring\u003e` volume name or ID\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"object","properties":{"Action":{"description":"The type of event","type":"string"},"Actor":{"type":"object","properties":{"Attributes":{"description":"Various key/value attributes of the object, depending on its type","type":"object","additionalProperties":{"type":"string"}},"ID":{"description":"The ID of the object emitting the event","type":"string"}}},"Type":{"description":"The type of object emitting the event","type":"string"},"time":{"description":"Timestamp of event","type":"integer"},"timeNano":{"description":"Timestamp of event, with nanosecond accuracy","type":"integer","format":"int64"}}},"examples":{"application/json":{"Action":"create","Actor":{"Attributes":{"com.example.some-label":"some-label-value","image":"alpine","name":"my-container"},"ID":"ede54ee1afda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c743"},"Type":"container","time":1461943101}}},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/exec/{id}/json":{"get":{"description":"Return low-level information about an exec instance.","produces":["application/json"],"tags":["Exec"],"summary":"Inspect an exec instance","operationId":"ExecInspect","parameters":[{"type":"string","description":"Exec instance ID","name":"id","in":"path","required":true}],"responses":{"200":{"description":"No error","schema":{"type":"object","properties":{"ContainerID":{"type":"string"},"ExitCode":{"type":"integer"},"ID":{"type":"string"},"OpenStderr":{"type":"boolean"},"OpenStdin":{"type":"boolean"},"OpenStdout":{"type":"boolean"},"Pid":{"description":"The system process ID for the exec process.","type":"integer"},"ProcessConfig":{"$ref":"#/definitions/ProcessConfig"},"Running":{"type":"boolean"}}},"examples":{"application/json":{"CanRemove":false,"ContainerID":"b53ee82b53a40c7dca428523e34f741f3abc51d9f297a14ff874bf761b995126","DetachKeys":"","ExitCode":2,"ID":"f33bbfb39f5b142420f4759b2348913bd4a8d1a6d7fd56499cb41a1bb91d7b3b","OpenStderr":true,"OpenStdin":true,"OpenStdout":true,"Pid":42000,"ProcessConfig":{"arguments":["-c","exit 2"],"entrypoint":"sh","privileged":false,"tty":true,"user":"1000"},"Running":false}}},"404":{"description":"No such exec instance","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/exec/{id}/resize":{"post":{"description":"Resize the TTY session used by an exec instance. This endpoint only works if `tty` was specified as part of creating and starting the exec instance.","tags":["Exec"],"summary":"Resize an exec instance","operationId":"ExecResize","parameters":[{"type":"string","description":"Exec instance ID","name":"id","in":"path","required":true},{"type":"integer","description":"Height of the TTY session in characters","name":"h","in":"query"},{"type":"integer","description":"Width of the TTY session in characters","name":"w","in":"query"}],"responses":{"201":{"description":"No error"},"404":{"description":"No such exec instance","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/exec/{id}/start":{"post":{"description":"Starts a previously set up exec instance. If detach is true, this endpoint returns immediately after starting the command. Otherwise, it sets up an interactive session with the command.","consumes":["application/json"],"produces":["application/vnd.docker.raw-stream"],"tags":["Exec"],"summary":"Start an exec instance","operationId":"ExecStart","parameters":[{"name":"execStartConfig","in":"body","schema":{"type":"object","properties":{"Detach":{"description":"Detach from the command.","type":"boolean"},"Tty":{"description":"Allocate a pseudo-TTY.","type":"boolean"}},"example":{"Detach":false,"Tty":false}}},{"type":"string","description":"Exec instance ID","name":"id","in":"path","required":true}],"responses":{"200":{"description":"No error"},"404":{"description":"No such exec instance","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"Container is stopped or paused","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/id/":{"get":{"description":"Identify the Currently Authenticated Account.","produces":["application/json"],"tags":["UCP"],"summary":"Identify the Currently Authenticated Account.","operationId":"ID","responses":{"200":{"description":"Success, current account returned."},"default":{"description":"Success, current account returned."}}}},"/id/login":{"post":{"description":"Submit a Login Form in exchange for a Session Token","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Submit a Login Form in exchange for a Session Token","operationId":"Login","parameters":[{"type":"forms.Login","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Login"}}],"responses":{"200":{"description":"Success, login response returned.","schema":{"$ref":"#/definitions/responses.LoginSession"}},"default":{"description":"Success, login response returned.","schema":{"$ref":"#/definitions/responses.LoginSession"}}}}},"/id/logout":{"post":{"description":"Delete the current session is use.","produces":["application/json"],"tags":["UCP"],"summary":"Delete the current session is use.","operationId":"Logout","responses":{"204":{"description":"Success, current session deleted."}}}},"/images/create":{"post":{"description":"Create an image by either pulling it from a registry or importing it.\n\nThe `create` request pulls the image onto every node in the swarm that exists at that time and that have the right operating system. Nodes that join the swarm later or that don't have the same base OS as the image won't get the image.","consumes":["text/plain","application/octet-stream"],"produces":["application/json"],"tags":["Image"],"summary":"Create an image","operationId":"ImageCreate","parameters":[{"type":"string","description":"Name of the image to pull. The name may include a tag or digest. This parameter may only be used when pulling an image. The pull is cancelled if the HTTP connection is closed.","name":"fromImage","in":"query"},{"type":"string","description":"Source to import. The value may be a URL from which the image can be retrieved or `-` to read the image from the request body. This parameter may only be used when importing an image.","name":"fromSrc","in":"query"},{"type":"string","description":"Repository name given to an image when it is imported. The repo may include a tag. This parameter may only be used when importing an image.","name":"repo","in":"query"},{"type":"string","description":"Tag or digest. If empty when pulling an image, this causes all tags for the given image to be pulled.","name":"tag","in":"query"},{"description":"Image content if the value `-` has been specified in fromSrc query parameter","name":"inputImage","in":"body","schema":{"type":"string"}},{"type":"string","description":"A base64-encoded auth configuration. [See the authentication section for details.](#section/Authentication)","name":"X-Registry-Auth","in":"header"}],"responses":{"200":{"description":"no error"},"404":{"description":"repository does not exist or no read access","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/get":{"get":{"description":"Get a tarball containing all images and metadata for several image repositories.\n\nFor each value of the `names` parameter: if it is a specific name and tag (e.g. `ubuntu:latest`), then only that image (and its parents) are returned; if it is an image ID, similarly only that image (and its parents) are returned and there would be no names referenced in the 'repositories' file for this image ID.\n\nFor details on the format, see [the export image endpoint](#operation/ImageGet).\n","produces":["application/x-tar"],"tags":["Image"],"summary":"Export several images","operationId":"ImageGetAll","parameters":[{"type":"array","items":{"type":"string"},"description":"Image names to filter by","name":"names","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"string","format":"binary"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/json":{"get":{"description":"Returns a list of images on the server. Note that it uses a different, smaller representation of an image than inspecting a single image.\n\nThis endpoint returns the union of all images on all nodes in the cluster.","produces":["application/json"],"tags":["Image"],"summary":"List Images","operationId":"ImageList","parameters":[{"type":"boolean","default":false,"description":"Show all images. Only images from a final layer (no children) are shown by default.","name":"all","in":"query"},{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters:\n\n- `before`=(`\u003cimage-name\u003e[:\u003ctag\u003e]`, `\u003cimage id\u003e` or `\u003cimage@digest\u003e`)\n- `dangling=true`\n- `label=key` or `label=\"key=value\"` of an image label\n- `reference`=(`\u003cimage-name\u003e[:\u003ctag\u003e]`)\n- `since`=(`\u003cimage-name\u003e[:\u003ctag\u003e]`, `\u003cimage id\u003e` or `\u003cimage@digest\u003e`)\n","name":"filters","in":"query"},{"type":"boolean","default":false,"description":"Show digest information as a `RepoDigests` field on each image.","name":"digests","in":"query"}],"responses":{"200":{"description":"Summary image data for the images matching the query","schema":{"type":"array","items":{"$ref":"#/definitions/ImageSummary"}},"examples":{"application/json":[{"Containers":2,"Created":1474925151,"Id":"sha256:e216a057b1cb1efc11f8a268f37ef62083e70b1b38323ba252e25ac88904a7e8","Labels":{},"ParentId":"","RepoDigests":["ubuntu@sha256:992069aee4016783df6345315302fa59681aae51a8eeb2f889dea59290f21787"],"RepoTags":["ubuntu:12.04","ubuntu:precise"],"SharedSize":0,"Size":103579269,"VirtualSize":103579269},{"Containers":5,"Created":1403128455,"Id":"sha256:3e314f95dcace0f5e4fd37b10862fe8398e3c60ed36600bc0ca5fda78b087175","Labels":{},"ParentId":"","RepoDigests":["ubuntu@sha256:002fba3e3255af10be97ea26e476692a7ebed0bb074a9ab960b2e7a1526b15d7","ubuntu@sha256:68ea0200f0b90df725d99d823905b04cf844f6039ef60c60bf3e019915017bd3"],"RepoTags":["ubuntu:12.10","ubuntu:quantal"],"SharedSize":0,"Size":172064416,"VirtualSize":172064416}]}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/load":{"post":{"description":"Load a set of images and tags into a repository.\n\nFor details on the format, see [the export image endpoint](#operation/ImageGet).\n\n\nThe image is loaded on all nodes in the swarm that are compatible with the image's architecture. For example, Windows images aren't loaded on Linux nodes, and vice-versa.","consumes":["application/x-tar"],"produces":["application/json"],"tags":["Image"],"summary":"Import images","operationId":"ImageLoad","parameters":[{"description":"Tar archive containing images","name":"imagesTarball","in":"body","schema":{"type":"string","format":"binary"}},{"type":"boolean","default":false,"description":"Suppress progress details during load.","name":"quiet","in":"query"}],"responses":{"200":{"description":"no error"},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/prune":{"post":{"produces":["application/json"],"tags":["Image"],"summary":"Delete unused images","operationId":"ImagePrune","parameters":[{"type":"string","description":"Filters to process on the prune list, encoded as JSON (a `map[string][]string`). Available filters:\n\n- `dangling=\u003cboolean\u003e` When set to `true` (or `1`), prune only\n unused *and* untagged images. When set to `false`\n (or `0`), all unused images are pruned.\n- `until=\u003cstring\u003e` Prune images created before this timestamp. The `\u003ctimestamp\u003e` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time.\n- `label` (`label=\u003ckey\u003e`, `label=\u003ckey\u003e=\u003cvalue\u003e`, `label!=\u003ckey\u003e`, or `label!=\u003ckey\u003e=\u003cvalue\u003e`) Prune images with (or without, in case `label!=...` is used) the specified labels.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"object","properties":{"ImagesDeleted":{"description":"Images that were deleted","type":"array","items":{"$ref":"#/definitions/ImageDeleteResponseItem"}},"SpaceReclaimed":{"description":"Disk space reclaimed in bytes","type":"integer","format":"int64"}}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/search":{"get":{"description":"Search for an image on Docker Hub.","produces":["application/json"],"tags":["Image"],"summary":"Search images","operationId":"ImageSearch","parameters":[{"type":"string","description":"Term to search","name":"term","in":"query","required":true},{"type":"integer","description":"Maximum number of results to return","name":"limit","in":"query"},{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters:\n\n- `is-automated=(true|false)`\n- `is-official=(true|false)`\n- `stars=\u003cnumber\u003e` Matches images that has at least 'number' stars.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"is_automated":{"type":"boolean"},"is_official":{"type":"boolean"},"name":{"type":"string"},"star_count":{"type":"integer"}}}},"examples":{"application/json":[{"description":"","is_automated":false,"is_official":false,"name":"wma55/u1210sshd","star_count":0},{"description":"","is_automated":false,"is_official":false,"name":"jdswinbank/sshd","star_count":0},{"description":"","is_automated":false,"is_official":false,"name":"vgauthier/sshd","star_count":0}]}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/{name}":{"delete":{"description":"Remove an image, along with any untagged parent images that were\nreferenced by that image.\n\nImages can't be removed if they have descendant images, are being\nused by a running container or are being used by a build.\n","produces":["application/json"],"tags":["Image"],"summary":"Remove an image","operationId":"ImageDelete","parameters":[{"type":"string","description":"Image name or ID","name":"name","in":"path","required":true},{"type":"boolean","default":false,"description":"Remove the image even if it is being used by stopped containers or has other tags","name":"force","in":"query"},{"type":"boolean","default":false,"description":"Do not delete untagged parent images","name":"noprune","in":"query"}],"responses":{"200":{"description":"The image was deleted successfully","schema":{"type":"array","items":{"$ref":"#/definitions/ImageDeleteResponseItem"}},"examples":{"application/json":[{"Untagged":"3e2f21a89f"},{"Deleted":"3e2f21a89f"},{"Deleted":"53b4f83ac9"}]}},"404":{"description":"No such image","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"Conflict","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/{name}/get":{"get":{"description":"Get a tarball containing all images and metadata for a repository.\n\nIf `name` is a specific name and tag (e.g. `ubuntu:latest`), then only that image (and its parents) are returned. If `name` is an image ID, similarly only that image (and its parents) are returned, but with the exclusion of the `repositories` file in the tarball, as there were no image names referenced.\n\n### Image tarball format\n\nAn image tarball contains one directory per image layer (named using its long ID), each containing these files:\n\n- `VERSION`: currently `1.0` - the file format version\n- `json`: detailed layer information, similar to `docker inspect layer_id`\n- `layer.tar`: A tarfile containing the filesystem changes in this layer\n\nThe `layer.tar` file contains `aufs` style `.wh..wh.aufs` files and directories for storing attribute changes and deletions.\n\nIf the tarball defines a repository, the tarball should also include a `repositories` file at the root that contains a list of repository and tag names mapped to layer IDs.\n\n```json\n{\n \"hello-world\": {\n \"latest\": \"565a9d68a73f6706862bfe8409a7f659776d4d60a8d096eb4a3cbce6999cc2a1\"\n }\n}\n```\n","produces":["application/x-tar"],"tags":["Image"],"summary":"Export an image","operationId":"ImageGet","parameters":[{"type":"string","description":"Image name or ID","name":"name","in":"path","required":true}],"responses":{"200":{"description":"no error","schema":{"type":"string","format":"binary"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/{name}/history":{"get":{"description":"Return parent layers of an image.","produces":["application/json"],"tags":["Image"],"summary":"Get the history of an image","operationId":"ImageHistory","parameters":[{"type":"string","description":"Image name or ID","name":"name","in":"path","required":true}],"responses":{"200":{"description":"List of image layers","schema":{"type":"array","items":{"type":"object","required":["Id","Created","CreatedBy","Tags","Size","Comment"],"properties":{"Comment":{"type":"string","x-nullable":false},"Created":{"type":"integer","format":"int64","x-nullable":false},"CreatedBy":{"type":"string","x-nullable":false},"Id":{"type":"string","x-nullable":false},"Size":{"type":"integer","format":"int64","x-nullable":false},"Tags":{"type":"array","items":{"type":"string"}}},"x-go-name":"HistoryResponseItem"}},"examples":{"application/json":[{"Comment":"","Created":1398108230,"CreatedBy":"/bin/sh -c #(nop) ADD file:eb15dbd63394e063b805a3c32ca7bf0266ef64676d5a6fab4801f2e81e2a5148 in /","Id":"3db9c44f45209632d6050b35958829c3a2aa256d81b9a7be45b362ff85c54710","Size":182964289,"Tags":["ubuntu:lucid","ubuntu:10.04"]},{"Comment":"","Created":1398108222,"CreatedBy":"/bin/sh -c #(nop) MAINTAINER Tianon Gravi \u003cadmwiggin@gmail.com\u003e - mkimage-debootstrap.sh -i iproute,iputils-ping,ubuntu-minimal -t lucid.tar.xz lucid http://archive.ubuntu.com/ubuntu/","Id":"6cfa4d1f33fb861d4d114f43b25abd0ac737509268065cdfd69d544a59c85ab8","Size":0,"Tags":[]},{"Comment":"Imported from -","Created":1371157430,"CreatedBy":"","Id":"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158","Size":0,"Tags":["scratch12:latest","scratch:latest"]}]}},"404":{"description":"No such image","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/{name}/json":{"get":{"description":"Return low-level information about an image.","produces":["application/json"],"tags":["Image"],"summary":"Inspect an image","operationId":"ImageInspect","parameters":[{"type":"string","description":"Image name or id","name":"name","in":"path","required":true}],"responses":{"200":{"description":"No error","schema":{"$ref":"#/definitions/Image"},"examples":{"application/json":{"Architecture":"amd64","Author":"","Comment":"","Config":{"AttachStderr":false,"AttachStdin":false,"AttachStdout":false,"Cmd":["/bin/bash"],"Domainname":"","Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Hostname":"e611e15f9c9d","Image":"91e54dfb11794fad694460162bf0cb0a4fa710cfa3f60979c177d920813e267c","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"MacAddress":"","NetworkDisabled":false,"OnBuild":[],"OpenStdin":false,"PublishService":"","StdinOnce":false,"Tty":false,"User":"","WorkingDir":""},"Container":"cb91e48a60d01f1e27028b4fc6819f4f290b3cf12496c8176ec714d0d390984a","ContainerConfig":{"AttachStderr":false,"AttachStdin":false,"AttachStdout":false,"Cmd":["/bin/sh","-c","#(nop) LABEL com.example.vendor=Acme com.example.license=GPL com.example.version=1.0"],"Domainname":"","Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Hostname":"e611e15f9c9d","Image":"91e54dfb11794fad694460162bf0cb0a4fa710cfa3f60979c177d920813e267c","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"MacAddress":"","NetworkDisabled":false,"OnBuild":[],"OpenStdin":false,"PublishService":"","StdinOnce":false,"Tty":false,"User":"","WorkingDir":""},"Created":"2015-09-10T08:30:53.26995814Z","DockerVersion":"1.9.0-dev","GraphDriver":{"Data":{},"Name":"aufs"},"Id":"sha256:85f05633ddc1c50679be2b16a0479ab6f7637f8884e0cfe0f4d20e1ebb3d6e7c","Os":"linux","Parent":"sha256:91e54dfb11794fad694460162bf0cb0a4fa710cfa3f60979c177d920813e267c","RepoDigests":["localhost:5000/test/busybox/example@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf"],"RepoTags":["example:1.0","example:latest","example:stable"],"RootFS":{"Layers":["sha256:1834950e52ce4d5a88a1bbd131c537f4d0e56d10ff0dd69e66be3b7dfa9df7e6","sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef"],"Type":"layers"},"Size":0,"VirtualSize":188359297}}},"404":{"description":"No such image","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such image: someimage (tag: latest)"}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/{name}/push":{"post":{"description":"Push an image to a registry.\n\nIf you wish to push an image on to a private registry, that image must already have a tag which references the registry. For example, `registry.example.com/myimage:latest`.\n\nThe push is cancelled if the HTTP connection is closed.\n","consumes":["application/octet-stream"],"tags":["Image"],"summary":"Push an image","operationId":"ImagePush","parameters":[{"type":"string","description":"Image name or ID.","name":"name","in":"path","required":true},{"type":"string","description":"The tag to associate with the image on the registry.","name":"tag","in":"query"},{"type":"string","description":"A base64-encoded auth configuration. [See the authentication section for details.](#section/Authentication)","name":"X-Registry-Auth","in":"header","required":true}],"responses":{"200":{"description":"No error"},"404":{"description":"No such image","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/{name}/tag":{"post":{"description":"Tag an image so that it becomes part of a repository.","tags":["Image"],"summary":"Tag an image","operationId":"ImageTag","parameters":[{"type":"string","description":"Image name or ID to tag.","name":"name","in":"path","required":true},{"type":"string","description":"The repository to tag in. For example, `someuser/someimage`.","name":"repo","in":"query"},{"type":"string","description":"The name of the new tag.","name":"tag","in":"query"}],"responses":{"201":{"description":"No error"},"400":{"description":"Bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"No such image","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"Conflict","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/info":{"get":{"description":"UCP returns a combination of info about the swarm, including:\n\n- Swarm manager status\n\n- Swarm scheduler strategy\n\n- Swarm-manager endpoints that are useful for administrator access when troubleshooting\n\n- Engine proxy endpoints for each node in the swarm that are useful for troubleshooting\n\n- Plugins present on the current manager node\n\n- Engine information for the current manager node","produces":["application/json"],"tags":["System"],"summary":"Get system information","operationId":"SystemInfo","responses":{"200":{"description":"No error","schema":{"type":"object","properties":{"Architecture":{"type":"string"},"Containers":{"type":"integer"},"ContainersPaused":{"type":"integer"},"ContainersRunning":{"type":"integer"},"ContainersStopped":{"type":"integer"},"CpuCfsPeriod":{"type":"boolean"},"CpuCfsQuota":{"type":"boolean"},"Debug":{"type":"boolean"},"DiscoveryBackend":{"type":"string"},"DockerRootDir":{"type":"string"},"Driver":{"type":"string"},"DriverStatus":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"ExperimentalBuild":{"type":"boolean"},"HttpProxy":{"type":"string"},"HttpsProxy":{"type":"string"},"ID":{"type":"string"},"IPv4Forwarding":{"type":"boolean"},"Images":{"type":"integer"},"IndexServerAddress":{"type":"string"},"InitPath":{"type":"string"},"InitSha1":{"type":"string"},"KernelVersion":{"type":"string"},"Labels":{"type":"array","items":{"type":"string"}},"MemTotal":{"type":"integer"},"MemoryLimit":{"type":"boolean"},"NCPU":{"type":"integer"},"NEventsListener":{"type":"integer"},"NFd":{"type":"integer"},"NGoroutines":{"type":"integer"},"Name":{"type":"string"},"NoProxy":{"type":"string"},"OSType":{"type":"string"},"OomKillDisable":{"type":"boolean"},"OomScoreAdj":{"type":"integer"},"OperatingSystem":{"type":"string"},"Plugins":{"type":"object","properties":{"Log":{"type":"array","items":{"type":"string"}},"Network":{"type":"array","items":{"type":"string"}},"Volume":{"type":"array","items":{"type":"string"}}}},"RegistryConfig":{"type":"object","properties":{"IndexConfigs":{"type":"object","additionalProperties":{"type":"object","properties":{"Mirrors":{"type":"array","items":{"type":"string"}},"Name":{"type":"string"},"Official":{"type":"boolean"},"Secure":{"type":"boolean"}}}},"InsecureRegistryCIDRs":{"type":"array","items":{"type":"string"}}}},"ServerVersion":{"type":"string"},"SwapLimit":{"type":"boolean"},"SystemStatus":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"SystemTime":{"type":"string"}}},"examples":{"application/json":{"Architecture":"x86_64","CgroupDriver":"cgroupfs","ClusterStore":"etcd://localhost:2379","Containers":11,"ContainersPaused":1,"ContainersRunning":7,"ContainersStopped":3,"CpuCfsPeriod":true,"CpuCfsQuota":true,"Debug":false,"DockerRootDir":"/var/lib/docker","Driver":"btrfs","DriverStatus":[[""]],"ExperimentalBuild":false,"HttpProxy":"http://test:test@localhost:8080","HttpsProxy":"https://test:test@localhost:8080","ID":"7TRN:IPZB:QYBB:VPBQ:UMPP:KARE:6ZNR:XE6T:7EWV:PKF4:ZOJD:TPYS","IPv4Forwarding":true,"Images":16,"IndexServerAddress":"https://index.docker.io/v1/","InitPath":"/usr/bin/docker","InitSha1":"","KernelMemory":true,"KernelVersion":"3.12.0-1-amd64","Labels":["storage=ssd"],"MemTotal":2099236864,"MemoryLimit":true,"NCPU":1,"NEventsListener":0,"NFd":11,"NGoroutines":21,"Name":"prod-server-42","NoProxy":"9.81.1.160","OSType":"linux","OomKillDisable":true,"OperatingSystem":"Boot2Docker","Plugins":{"Network":["null","host","bridge"],"Volume":["local"]},"RegistryConfig":{"IndexConfigs":{"docker.io":{"Name":"docker.io","Official":true,"Secure":true}},"InsecureRegistryCIDRs":["127.0.0.0/8"]},"SecurityOptions":[{"Key":"Name","Value":"seccomp"},{"Key":"Profile","Value":"default"},{"Key":"Name","Value":"apparmor"},{"Key":"Name","Value":"selinux"},{"Key":"Name","Value":"userns"}],"ServerVersion":"1.9.0","SwapLimit":false,"SystemStatus":[["State","Healthy"]],"SystemTime":"2015-03-10T11:11:23.730591467-07:00"}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/networks":{"get":{"description":"Returns a list of networks. For details on the format, see [the network inspect endpoint](#operation/NetworkInspect).\n\nNote that it uses a different, smaller representation of a network than inspecting a single network. For example,\nthe list of containers attached to the network is not propagated in API versions 1.28 and up.\n\n\nNode-specific networks, like those with bridge and third-party drivers, are prefixed with the node name.","produces":["application/json"],"tags":["Network"],"summary":"List networks","operationId":"NetworkList","parameters":[{"type":"string","description":"JSON encoded value of the filters (a `map[string][]string`) to process on the networks list. Available filters:\n\n- `driver=\u003cdriver-name\u003e` Matches a network's driver.\n- `id=\u003cnetwork-id\u003e` Matches all or part of a network ID.\n- `label=\u003ckey\u003e` or `label=\u003ckey\u003e=\u003cvalue\u003e` of a network label.\n- `name=\u003cnetwork-name\u003e` Matches all or part of a network name.\n- `scope=[\"swarm\"|\"global\"|\"local\"]` Filters networks by scope (`swarm`, `global`, or `local`).\n- `type=[\"custom\"|\"builtin\"]` Filters networks by type. The `custom` keyword returns all user-defined networks.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"array","items":{"$ref":"#/definitions/Network"}},"examples":{"application/json":[{"Attachable":false,"Created":"2016-10-19T06:21:00.416543526Z","Driver":"bridge","EnableIPv6":false,"IPAM":{"Config":[{"Subnet":"172.17.0.0/16"}],"Driver":"default"},"Id":"f2de39df4171b0dc801e8002d1d999b77256983dfc63041c0f34030aa3977566","Ingress":false,"Internal":false,"Name":"bridge","Options":{"com.docker.network.bridge.default_bridge":"true","com.docker.network.bridge.enable_icc":"true","com.docker.network.bridge.enable_ip_masquerade":"true","com.docker.network.bridge.host_binding_ipv4":"0.0.0.0","com.docker.network.bridge.name":"docker0","com.docker.network.driver.mtu":"1500"},"Scope":"local"},{"Attachable":false,"Containers":{},"Created":"0001-01-01T00:00:00Z","Driver":"null","EnableIPv6":false,"IPAM":{"Config":[],"Driver":"default"},"Id":"e086a3893b05ab69242d3c44e49483a3bbbd3a26b46baa8f61ab797c1088d794","Ingress":false,"Internal":false,"Name":"none","Options":{},"Scope":"local"},{"Attachable":false,"Containers":{},"Created":"0001-01-01T00:00:00Z","Driver":"host","EnableIPv6":false,"IPAM":{"Config":[],"Driver":"default"},"Id":"13e871235c677f196c4e1ecebb9dc733b9b2d2ab589e30c539efeda84a24215e","Ingress":false,"Internal":false,"Name":"host","Options":{},"Scope":"local"}]}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/networks/create":{"post":{"description":"If the name is prefixed with the name of a node, the `create` request is sent to the specified node. Use the '/' character to separate the node name, like `testnode/testnet`.","consumes":["application/json"],"produces":["application/json"],"tags":["Network"],"summary":"Create a network","operationId":"NetworkCreate","parameters":[{"description":"Network configuration","name":"networkConfig","in":"body","required":true,"schema":{"type":"object","required":["Name"],"properties":{"Attachable":{"description":"Globally scoped network is manually attachable by regular containers from workers in swarm mode.","type":"boolean"},"CheckDuplicate":{"description":"Check for networks with duplicate names. Since Network is primarily keyed based on a random ID and not on the name, and network name is strictly a user-friendly alias to the network which is uniquely identified using ID, there is no guaranteed way to check for duplicates. CheckDuplicate is there to provide a best effort checking of any networks which has the same name but it is not guaranteed to catch all name collisions.","type":"boolean"},"Driver":{"description":"Name of the network driver plugin to use.","type":"string","default":"bridge"},"EnableIPv6":{"description":"Enable IPv6 on the network.","type":"boolean"},"IPAM":{"description":"Optional custom IP scheme for the network.","$ref":"#/definitions/IPAM"},"Ingress":{"description":"Ingress network is the network which provides the routing-mesh in swarm mode.","type":"boolean"},"Internal":{"description":"Restrict external access to the network.","type":"boolean"},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"The network's name.","type":"string"},"Options":{"description":"Network specific options to be used by the drivers.","type":"object","additionalProperties":{"type":"string"}}},"example":{"Attachable":false,"CheckDuplicate":false,"Driver":"bridge","EnableIPv6":true,"IPAM":{"Config":[{"Gateway":"172.20.10.11","IPRange":"172.20.10.0/24","Subnet":"172.20.0.0/16"},{"Gateway":"2001:db8:abcd::1011","Subnet":"2001:db8:abcd::/64"}],"Driver":"default","Options":{"foo":"bar"}},"Ingress":false,"Internal":true,"Labels":{"com.example.some-label":"some-value","com.example.some-other-label":"some-other-value"},"Name":"isolated_nw","Options":{"com.docker.network.bridge.default_bridge":"true","com.docker.network.bridge.enable_icc":"true","com.docker.network.bridge.enable_ip_masquerade":"true","com.docker.network.bridge.host_binding_ipv4":"0.0.0.0","com.docker.network.bridge.name":"docker0","com.docker.network.driver.mtu":"1500"}}}}],"responses":{"201":{"description":"No error","schema":{"type":"object","properties":{"Id":{"description":"The ID of the created network.","type":"string"},"Warning":{"type":"string"}},"example":{"Id":"22be93d5babb089c5aab8dbc369042fad48ff791584ca2da2100db837a1c7c30","Warning":""}}},"403":{"description":"operation not supported for pre-defined networks","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"plugin not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/networks/prune":{"post":{"description":"Not supported on UCP.","produces":["application/json"],"tags":["Network"],"summary":"Delete unused networks","operationId":"NetworkPrune","parameters":[{"type":"string","description":"Filters to process on the prune list, encoded as JSON (a `map[string][]string`).\n\nAvailable filters:\n- `until=\u003ctimestamp\u003e` Prune networks created before this timestamp. The `\u003ctimestamp\u003e` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time.\n- `label` (`label=\u003ckey\u003e`, `label=\u003ckey\u003e=\u003cvalue\u003e`, `label!=\u003ckey\u003e`, or `label!=\u003ckey\u003e=\u003cvalue\u003e`) Prune networks with (or without, in case `label!=...` is used) the specified labels.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"object","properties":{"NetworksDeleted":{"description":"Networks that were deleted","type":"array","items":{"type":"string"}}}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/networks/{id}":{"get":{"description":"Node-specific networks, like those with bridge and third-party drivers, are prefixed with the node name.","produces":["application/json"],"tags":["Network"],"summary":"Inspect a network","operationId":"NetworkInspect","parameters":[{"type":"string","description":"Network ID or name","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Detailed inspect output for troubleshooting","name":"verbose","in":"query"}],"responses":{"200":{"description":"No error","schema":{"$ref":"#/definitions/Network"}},"404":{"description":"Network not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"tags":["Network"],"summary":"Remove a network","operationId":"NetworkDelete","parameters":[{"type":"string","description":"Network ID or name","name":"id","in":"path","required":true}],"responses":{"204":{"description":"No error"},"403":{"description":"operation not supported for pre-defined networks","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such network","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/networks/{id}/connect":{"post":{"consumes":["application/octet-stream"],"tags":["Network"],"summary":"Connect a container to a network","operationId":"NetworkConnect","parameters":[{"type":"string","description":"Network ID or name","name":"id","in":"path","required":true},{"name":"container","in":"body","required":true,"schema":{"type":"object","properties":{"Container":{"description":"The ID or name of the container to connect to the network.","type":"string"},"EndpointConfig":{"$ref":"#/definitions/EndpointSettings"}},"example":{"Container":"3613f73ba0e4","EndpointConfig":{"IPAMConfig":{"IPv4Address":"172.24.56.89","IPv6Address":"2001:db8::5689"}}}}}],"responses":{"200":{"description":"No error"},"403":{"description":"Operation not supported for swarm scoped networks","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Network or container not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/networks/{id}/disconnect":{"post":{"consumes":["application/json"],"tags":["Network"],"summary":"Disconnect a container from a network","operationId":"NetworkDisconnect","parameters":[{"type":"string","description":"Network ID or name","name":"id","in":"path","required":true},{"name":"container","in":"body","required":true,"schema":{"type":"object","properties":{"Container":{"description":"The ID or name of the container to disconnect from the network.","type":"string"},"Force":{"description":"Force the container to disconnect from the network.","type":"boolean"}}}}],"responses":{"200":{"description":"No error"},"403":{"description":"Operation not supported for swarm scoped networks","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Network or container not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/nodes":{"get":{"description":"UCP augments the `Status.State` based on the status of the UCP components running on the current node.","tags":["Node"],"summary":"List nodes","operationId":"NodeList","parameters":[{"type":"string","description":"Filters to process on the nodes list, encoded as JSON (a `map[string][]string`).\n\nAvailable filters:\n- `id=\u003cnode id\u003e`\n- `label=\u003cengine label\u003e`\n- `membership=`(`accepted`|`pending`)`\n- `name=\u003cnode name\u003e`\n- `role=`(`manager`|`worker`)`\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"array","items":{"$ref":"#/definitions/Node"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/nodes/{id}":{"get":{"description":"UCP augments the `Status.State` based on the status of the UCP components running on the current node.","tags":["Node"],"summary":"Inspect a node","operationId":"NodeInspect","parameters":[{"type":"string","description":"The ID or name of the node","name":"id","in":"path","required":true}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/Node"}},"404":{"description":"no such node","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"description":"If the current node is a manager, to keep the system healthy UCP attempts to unwind swarm components, like the KV store and auth store, from the node.","tags":["Node"],"summary":"Delete a node","operationId":"NodeDelete","parameters":[{"type":"string","description":"The ID or name of the node","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Force remove a node from the swarm","name":"force","in":"query"}],"responses":{"200":{"description":"no error"},"404":{"description":"no such node","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/nodes/{id}/update":{"post":{"tags":["Node"],"summary":"Update a node","operationId":"NodeUpdate","parameters":[{"type":"string","description":"The ID of the node","name":"id","in":"path","required":true},{"name":"body","in":"body","schema":{"$ref":"#/definitions/NodeSpec"}},{"type":"integer","format":"int64","description":"The version number of the node object being updated. This is required to avoid conflicting writes.","name":"version","in":"query","required":true}],"responses":{"200":{"description":"no error"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such node","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins":{"get":{"description":"Returns information about installed plugins.\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","produces":["application/json"],"tags":["Plugin"],"summary":"List plugins","operationId":"PluginList","parameters":[{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the plugin list. Available filters:\n\n- `capability=\u003ccapability name\u003e`\n- `enable=\u003ctrue\u003e|\u003cfalse\u003e`\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"array","items":{"$ref":"#/definitions/Plugin"},"example":[{"Active":true,"Config":{"Args":{"Description":"command line arguments","Name":"args","Settable":"","Value":[]},"Description":"A sample volume plugin for Docker","Documentation":"https://docs.docker.com/engine/extend/plugins/","Entrypoint":["/usr/bin/sample-volume-plugin","/data"],"Env":[{"Description":"If set, prints debug messages","Name":"DEBUG","Settable":"","Value":"0"}],"Interface":{"Socket":"plugins.sock","Types":["docker.volumedriver/1.0"]},"Linux":{"AllowAllDevices":false,"Capabilities":"","Devices":""},"Mounts":"","Network":{"Type":""},"PropagatedMount":"/data","User":{},"WorkDir":""},"Id":"5724e2c8652da337ab2eedd19fc6fc0ec908e4bd907c7421bf6a8dfc70c4c078","Name":"tiborvass/sample-volume-plugin","Settings":{"Args":"","Devices":"","Env":["DEBUG=0"]},"Tag":"latest"}]}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/create":{"post":{"description":"\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","consumes":["application/x-tar"],"tags":["Plugin"],"summary":"Create a plugin","operationId":"PluginCreate","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"query","required":true},{"description":"Path to tar containing plugin rootfs and manifest","name":"tarContext","in":"body","schema":{"type":"string","format":"binary"}}],"responses":{"204":{"description":"no error"},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/pull":{"post":{"description":"Pulls and installs a plugin. After the plugin is installed, it can be enabled using the [`POST /plugins/{name}/enable` endpoint](#operation/PostPluginsEnable).\n\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","produces":["application/json"],"tags":["Plugin"],"summary":"Install a plugin","operationId":"PluginPull","parameters":[{"type":"string","description":"Remote reference for plugin to install.\n\nThe `:latest` tag is optional, and is used as the default if omitted.\n","name":"remote","in":"query","required":true},{"type":"string","description":"Local name for the pulled plugin.\n\nThe `:latest` tag is optional, and is used as the default if omitted.\n","name":"name","in":"query"},{"type":"string","description":"A base64-encoded auth configuration to use when pulling a plugin from a registry. [See the authentication section for details.](#section/Authentication)","name":"X-Registry-Auth","in":"header"},{"name":"body","in":"body","schema":{"type":"array","items":{"description":"Describes a permission accepted by the user upon installing the plugin.","type":"object","properties":{"Description":{"type":"string"},"Name":{"type":"string"},"Value":{"type":"array","items":{"type":"string"}}}},"example":[{"Description":"","Name":"network","Value":["host"]},{"Description":"","Name":"mount","Value":["/data"]},{"Description":"","Name":"device","Value":["/dev/cpu_dma_latency"]}]}}],"responses":{"204":{"description":"no error"},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/{name}":{"delete":{"description":"\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","tags":["Plugin"],"summary":"Remove a plugin","operationId":"PluginDelete","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"path","required":true},{"type":"boolean","default":false,"description":"Disable the plugin before removing. This may result in issues if the plugin is in use by a container.","name":"force","in":"query"}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/Plugin"}},"404":{"description":"plugin is not installed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/{name}/disable":{"post":{"description":"\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","tags":["Plugin"],"summary":"Disable a plugin","operationId":"PluginDisable","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"path","required":true}],"responses":{"200":{"description":"no error"},"404":{"description":"plugin is not installed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/{name}/enable":{"post":{"description":"\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","tags":["Plugin"],"summary":"Enable a plugin","operationId":"PluginEnable","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"path","required":true},{"type":"integer","default":0,"description":"Set the HTTP client timeout (in seconds)","name":"timeout","in":"query"}],"responses":{"200":{"description":"no error"},"404":{"description":"plugin is not installed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/{name}/push":{"post":{"description":"Push a plugin to the registry.\n\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","tags":["Plugin"],"summary":"Push a plugin","operationId":"PluginPush","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"path","required":true}],"responses":{"200":{"description":"no error"},"404":{"description":"plugin not installed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/{name}/set":{"post":{"description":"\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","consumes":["application/json"],"tags":["Plugin"],"summary":"Configure a plugin","operationId":"PluginSet","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"path","required":true},{"name":"body","in":"body","schema":{"type":"array","items":{"type":"string"},"example":["DEBUG=1"]}}],"responses":{"204":{"description":"No error"},"404":{"description":"Plugin not installed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/{name}/upgrade":{"post":{"description":"\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","tags":["Plugin"],"summary":"Upgrade a plugin","operationId":"PluginUpgrade","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"path","required":true},{"type":"string","description":"Remote reference to upgrade to.\n\nThe `:latest` tag is optional, and is used as the default if omitted.\n","name":"remote","in":"query","required":true},{"type":"string","description":"A base64-encoded auth configuration to use when pulling a plugin from a registry. [See the authentication section for details.](#section/Authentication)","name":"X-Registry-Auth","in":"header"},{"name":"body","in":"body","schema":{"type":"array","items":{"description":"Describes a permission accepted by the user upon installing the plugin.","type":"object","properties":{"Description":{"type":"string"},"Name":{"type":"string"},"Value":{"type":"array","items":{"type":"string"}}}},"example":[{"Description":"","Name":"network","Value":["host"]},{"Description":"","Name":"mount","Value":["/data"]},{"Description":"","Name":"device","Value":["/dev/cpu_dma_latency"]}]}}],"responses":{"204":{"description":"no error"},"404":{"description":"plugin not installed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/roles":{"get":{"description":"Lists all roles in the system.","produces":["application/json"],"tags":["UCP"],"summary":"Lists all roles in the system.","operationId":"ListRoles","responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/role.Role"}}},"default":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/role.Role"}}}}},"post":{"description":"Creates a new custom role","consumes":["application/json"],"tags":["UCP"],"summary":"Creates a new custom role","operationId":"CreateRole","parameters":[{"type":"role.Role","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/role.Role"}}],"responses":{"201":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/authz.RoleCreateResponse"}}}}}},"/roles/{role}":{"get":{"description":"Retrieves a single role by ID","produces":["application/json"],"tags":["UCP"],"summary":"Retrieves a single role by ID","operationId":"GetRole","parameters":[{"type":"string","default":"","description":"Name of the role to get","name":"role","in":"path","required":true}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/role.Role"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/role.Role"}}}},"delete":{"description":"Deletes a role by name","produces":["application/json"],"tags":["UCP"],"summary":"Deletes a role by name","operationId":"DeleteRole","parameters":[{"type":"string","default":"","description":"Name of the role to delete","name":"role","in":"path","required":true}],"responses":{"204":{"description":"Success"}}}},"/secrets":{"get":{"produces":["application/json"],"tags":["Secret"],"summary":"List secrets","operationId":"SecretList","parameters":[{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the secrets list. Available filters:\n\n- `id=\u003csecret id\u003e`\n- `label=\u003ckey\u003e or label=\u003ckey\u003e=value`\n- `name=\u003csecret name\u003e`\n- `names=\u003csecret name\u003e`\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"array","items":{"$ref":"#/definitions/Secret"},"example":[{"CreatedAt":"2016-11-05T01:20:17.327670065Z","ID":"ktnbjxoalbkvbvedmg1urrz8h","Spec":{"Name":"app-dev.crt"},"UpdatedAt":"2016-11-05T01:20:17.327670065Z","Version":{"Index":11}}]}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/secrets/create":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["Secret"],"summary":"Create a secret","operationId":"SecretCreate","parameters":[{"name":"body","in":"body","schema":{"allOf":[{"$ref":"#/definitions/SecretSpec"},{"type":"object","example":{"Data":"VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg==","Labels":{"foo":"bar"},"Name":"app-key.crt"}}]}}],"responses":{"201":{"description":"no error","schema":{"type":"object","properties":{"ID":{"description":"The ID of the created secret.","type":"string"}},"example":{"ID":"ktnbjxoalbkvbvedmg1urrz8h"}}},"409":{"description":"name conflicts with an existing object","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/secrets/{id}":{"get":{"produces":["application/json"],"tags":["Secret"],"summary":"Inspect a secret","operationId":"SecretInspect","parameters":[{"type":"string","description":"ID of the secret","name":"id","in":"path","required":true}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/Secret"},"examples":{"application/json":{"CreatedAt":"2016-11-05T01:20:17.327670065Z","ID":"ktnbjxoalbkvbvedmg1urrz8h","Spec":{"Name":"app-dev.crt"},"UpdatedAt":"2016-11-05T01:20:17.327670065Z","Version":{"Index":11}}}},"404":{"description":"secret not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"produces":["application/json"],"tags":["Secret"],"summary":"Delete a secret","operationId":"SecretDelete","parameters":[{"type":"string","description":"ID of the secret","name":"id","in":"path","required":true}],"responses":{"204":{"description":"no error"},"404":{"description":"secret not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/secrets/{id}/update":{"post":{"tags":["Secret"],"summary":"Update a Secret","operationId":"SecretUpdate","parameters":[{"type":"string","description":"The ID or name of the secret","name":"id","in":"path","required":true},{"description":"The spec of the secret to update. Currently, only the Labels field can be updated. All other fields must remain unchanged from the [SecretInspect endpoint](#operation/SecretInspect) response values.","name":"body","in":"body","schema":{"$ref":"#/definitions/SecretSpec"}},{"type":"integer","format":"int64","description":"The version number of the secret object being updated. This is required to avoid conflicting writes.","name":"version","in":"query","required":true}],"responses":{"200":{"description":"no error"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such secret","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/services":{"get":{"tags":["Service"],"summary":"List services","operationId":"ServiceList","parameters":[{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the services list. Available filters:\n\n- `id=\u003cservice id\u003e`\n- `label=\u003cservice label\u003e`\n- `mode=[\"replicated\"|\"global\"]`\n- `name=\u003cservice name\u003e`\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"array","items":{"$ref":"#/definitions/Service"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/services/create":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["Service"],"summary":"Create a service","operationId":"ServiceCreate","parameters":[{"name":"body","in":"body","required":true,"schema":{"allOf":[{"$ref":"#/definitions/ServiceSpec"},{"type":"object","example":{"EndpointSpec":{"Ports":[{"Protocol":"tcp","PublishedPort":8080,"TargetPort":80}]},"Labels":{"foo":"bar"},"Mode":{"Replicated":{"Replicas":4}},"Name":"web","RollbackConfig":{"Delay":1000000000,"FailureAction":"pause","MaxFailureRatio":0.15,"Monitor":15000000000,"Parallelism":1},"TaskTemplate":{"ContainerSpec":{"DNSConfig":{"Nameservers":["8.8.8.8"],"Options":["timeout:3"],"Search":["example.org"]},"Hosts":["10.10.10.10 host1","ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 host2"],"Image":"nginx:alpine","Mounts":[{"ReadOnly":true,"Source":"web-data","Target":"/usr/share/nginx/html","Type":"volume","VolumeOptions":{"DriverConfig":{},"Labels":{"com.example.something":"something-value"}}}],"Secrets":[{"File":{"GID":"33","Mode":384,"Name":"www.example.org.key","UID":"33"},"SecretID":"fpjqlhnwb19zds35k8wn80lq9","SecretName":"example_org_domain_key"}],"User":"33"},"LogDriver":{"Name":"json-file","Options":{"max-file":"3","max-size":"10M"}},"Placement":{},"Resources":{"Limits":{"MemoryBytes":104857600},"Reservations":{}},"RestartPolicy":{"Condition":"on-failure","Delay":10000000000,"MaxAttempts":10}},"UpdateConfig":{"Delay":1000000000,"FailureAction":"pause","MaxFailureRatio":0.15,"Monitor":15000000000,"Parallelism":2}}}]}},{"type":"string","description":"A base64-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)","name":"X-Registry-Auth","in":"header"}],"responses":{"201":{"description":"no error","schema":{"type":"object","properties":{"ID":{"description":"The ID of the created service.","type":"string"},"Warning":{"description":"Optional warning message","type":"string"}},"example":{"ID":"ak7w3gjqoa3kuz8xcpnyy0pvl","Warning":"unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found"}}},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"network is not eligible for services","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"name conflicts with an existing service","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/services/{id}":{"get":{"tags":["Service"],"summary":"Inspect a service","operationId":"ServiceInspect","parameters":[{"type":"string","description":"ID or name of service.","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Fill empty fields with default values.","name":"insertDefaults","in":"query"}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/Service"}},"404":{"description":"no such service","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"tags":["Service"],"summary":"Delete a service","operationId":"ServiceDelete","parameters":[{"type":"string","description":"ID or name of service.","name":"id","in":"path","required":true}],"responses":{"200":{"description":"no error"},"404":{"description":"no such service","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/services/{id}/logs":{"get":{"description":"Get `stdout` and `stderr` logs from a service.\n\n**Note**: This endpoint works only for services with the `json-file` or `journald` logging drivers.\n","produces":["application/vnd.docker.raw-stream","application/json"],"tags":["Service"],"summary":"Get service logs","operationId":"ServiceLogs","parameters":[{"type":"string","description":"ID or name of the service","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Show service context and extra details provided to logs.","name":"details","in":"query"},{"type":"boolean","default":false,"description":"Return the logs as a stream.\n\nThis will return a `101` HTTP response with a `Connection: upgrade` header, then hijack the HTTP connection to send raw output. For more information about hijacking and the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).\n","name":"follow","in":"query"},{"type":"boolean","default":false,"description":"Return logs from `stdout`","name":"stdout","in":"query"},{"type":"boolean","default":false,"description":"Return logs from `stderr`","name":"stderr","in":"query"},{"type":"integer","default":0,"description":"Only return logs since this time, as a UNIX timestamp","name":"since","in":"query"},{"type":"boolean","default":false,"description":"Add timestamps to every log line","name":"timestamps","in":"query"},{"type":"string","default":"all","description":"Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines.","name":"tail","in":"query"}],"responses":{"101":{"description":"logs returned as a stream","schema":{"type":"string","format":"binary"}},"200":{"description":"logs returned as a string in response body","schema":{"type":"string"}},"404":{"description":"no such service","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such service: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/services/{id}/update":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["Service"],"summary":"Update a service","operationId":"ServiceUpdate","parameters":[{"type":"string","description":"ID or name of service.","name":"id","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"allOf":[{"$ref":"#/definitions/ServiceSpec"},{"type":"object","example":{"EndpointSpec":{"Mode":"vip"},"Mode":{"Replicated":{"Replicas":1}},"Name":"top","RollbackConfig":{"Delay":1000000000,"FailureAction":"pause","MaxFailureRatio":0.15,"Monitor":15000000000,"Parallelism":1},"TaskTemplate":{"ContainerSpec":{"Args":["top"],"Image":"busybox"},"ForceUpdate":0,"Placement":{},"Resources":{"Limits":{},"Reservations":{}},"RestartPolicy":{"Condition":"any","MaxAttempts":0}},"UpdateConfig":{"Delay":1000000000,"FailureAction":"pause","MaxFailureRatio":0.15,"Monitor":15000000000,"Parallelism":2}}}]}},{"type":"integer","description":"The version number of the service object being updated. This is required to avoid conflicting writes.","name":"version","in":"query","required":true},{"type":"string","default":"spec","description":"If the X-Registry-Auth header is not specified, this parameter indicates where to find registry authorization credentials. The valid values are `spec` and `previous-spec`.","name":"registryAuthFrom","in":"query"},{"type":"string","description":"Set to this parameter to `previous` to cause a server-side rollback to the previous service spec. The supplied spec will be ignored in this case.","name":"rollback","in":"query"},{"type":"string","description":"A base64-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)","name":"X-Registry-Auth","in":"header"}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/ServiceUpdateResponse"}},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such service","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/swarm":{"get":{"tags":["Swarm"],"summary":"Inspect swarm","operationId":"SwarmInspect","responses":{"200":{"description":"no error","schema":{"allOf":[{"$ref":"#/definitions/ClusterInfo"},{"type":"object","properties":{"JoinTokens":{"description":"The tokens workers and managers need to join the swarm.","type":"object","properties":{"Manager":{"description":"The token managers can use to join the swarm.","type":"string"},"Worker":{"description":"The token workers can use to join the swarm.","type":"string"}}}}}],"example":{"CreatedAt":"2016-08-15T16:00:20.349727406Z","ID":"70ilmkj2f6sp2137c753w2nmt","JoinTokens":{"Manager":"SWMTKN-1-1h8aps2yszaiqmz2l3oc5392pgk8e49qhx2aj3nyv0ui0hez2a-8llk83c4wm9lwioey2s316r9l","Worker":"SWMTKN-1-1h8aps2yszaiqmz2l3oc5392pgk8e49qhx2aj3nyv0ui0hez2a-6qmn92w6bu3jdvnglku58u11a"},"RootRotationInProgress":false,"Spec":{"CAConfig":{"NodeCertExpiry":7776000000000000},"Dispatcher":{"HeartbeatPeriod":5000000000},"EncryptionConfig":{"AutoLockManagers":false},"Name":"default","Orchestration":{"TaskHistoryRetentionLimit":10},"Raft":{"ElectionTick":3,"HeartbeatTick":1,"LogEntriesForSlowFollowers":500,"SnapshotInterval":10000},"TaskDefaults":{}},"TLSInfo":{"CertIssuerPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A==","CertIssuerSubject":"MBMxETAPBgNVBAMTCHN3YXJtLWNh","TrustRoot":"-----BEGIN CERTIFICATE-----\nMIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw\nEzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0\nMzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH\nA0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf\n3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB\nAf8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO\nPQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz\npxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H\n-----END CERTIFICATE-----\n"},"UpdatedAt":"2016-08-15T16:32:09.623207604Z","Version":{"Index":51}}}},"404":{"description":"no such swarm","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/swarm/init":{"post":{"produces":["application/json","text/plain"],"tags":["Swarm"],"summary":"Initialize a new swarm","operationId":"SwarmInit","parameters":[{"name":"body","in":"body","required":true,"schema":{"type":"object","properties":{"AdvertiseAddr":{"description":"Externally reachable address advertised to other nodes. This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the port number from the listen address is used. If `AdvertiseAddr` is not specified, it will be automatically detected when possible.","type":"string"},"DataPathAddr":{"description":"Address or interface to use for data path traffic (format: `\u003cip|interface\u003e`), for example, `192.168.1.1`,\nor an interface, like `eth0`. If `DataPathAddr` is unspecified, the same address as `AdvertiseAddr`\nis used.\n\nThe `DataPathAddr` specifies the address that global scope network drivers will publish towards other\nnodes in order to reach the containers running on this node. Using this parameter it is possible to\nseparate the container data traffic from the management traffic of the cluster.\n","type":"string"},"ForceNewCluster":{"description":"Force creation of a new swarm.","type":"boolean"},"ListenAddr":{"description":"Listen address used for inter-manager communication, as well as determining the networking interface used for the VXLAN Tunnel Endpoint (VTEP). This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the default swarm listening port is used.","type":"string"},"Spec":{"$ref":"#/definitions/SwarmSpec"}},"example":{"AdvertiseAddr":"192.168.1.1:2377","ForceNewCluster":false,"ListenAddr":"0.0.0.0:2377","Spec":{"CAConfig":{},"Dispatcher":{},"EncryptionConfig":{"AutoLockManagers":false},"Orchestration":{},"Raft":{}}}}}],"responses":{"200":{"description":"no error","schema":{"description":"The node ID","type":"string","example":"7v2t30z9blmxuhnyo6s4cpenp"}},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is already part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/swarm/join":{"post":{"tags":["Swarm"],"summary":"Join an existing swarm","operationId":"SwarmJoin","parameters":[{"name":"body","in":"body","required":true,"schema":{"type":"object","properties":{"AdvertiseAddr":{"description":"Externally reachable address advertised to other nodes. This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the port number from the listen address is used. If `AdvertiseAddr` is not specified, it will be automatically detected when possible.","type":"string"},"DataPathAddr":{"description":"Address or interface to use for data path traffic (format: `\u003cip|interface\u003e`), for example, `192.168.1.1`,\nor an interface, like `eth0`. If `DataPathAddr` is unspecified, the same address as `AdvertiseAddr`\nis used.\n\nThe `DataPathAddr` specifies the address that global scope network drivers will publish towards other\nnodes in order to reach the containers running on this node. Using this parameter it is possible to\nseparate the container data traffic from the management traffic of the cluster.\n","type":"string"},"JoinToken":{"description":"Secret token for joining this swarm.","type":"string"},"ListenAddr":{"description":"Listen address used for inter-manager communication if the node gets promoted to manager, as well as determining the networking interface used for the VXLAN Tunnel Endpoint (VTEP).","type":"string"},"RemoteAddrs":{"description":"Addresses of manager nodes already participating in the swarm.","type":"string"}},"example":{"AdvertiseAddr":"192.168.1.1:2377","JoinToken":"SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2","ListenAddr":"0.0.0.0:2377","RemoteAddrs":["node1:2377"]}}}],"responses":{"200":{"description":"no error"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is already part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/swarm/leave":{"post":{"tags":["Swarm"],"summary":"Leave a swarm","operationId":"SwarmLeave","parameters":[{"type":"boolean","default":false,"description":"Force leave swarm, even if this is the last manager or that it will break the cluster.","name":"force","in":"query"}],"responses":{"200":{"description":"no error"},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/swarm/update":{"post":{"tags":["Swarm"],"summary":"Update a swarm","operationId":"SwarmUpdate","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/SwarmSpec"}},{"type":"integer","format":"int64","description":"The version number of the swarm object being updated. This is required to avoid conflicting writes.","name":"version","in":"query","required":true},{"type":"boolean","default":false,"description":"Rotate the worker join token.","name":"rotateWorkerToken","in":"query"},{"type":"boolean","default":false,"description":"Rotate the manager join token.","name":"rotateManagerToken","in":"query"},{"type":"boolean","default":false,"description":"Rotate the manager unlock key.","name":"rotateManagerUnlockKey","in":"query"}],"responses":{"200":{"description":"no error"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/tasks":{"get":{"produces":["application/json"],"tags":["Task"],"summary":"List tasks","operationId":"TaskList","parameters":[{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the tasks list. Available filters:\n\n- `desired-state=(running | shutdown | accepted)`\n- `id=\u003ctask id\u003e`\n- `label=key` or `label=\"key=value\"`\n- `name=\u003ctask name\u003e`\n- `node=\u003cnode id or name\u003e`\n- `service=\u003cservice name\u003e`\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"array","items":{"$ref":"#/definitions/Task"},"example":[{"CreatedAt":"2016-06-07T21:07:31.171892745Z","DesiredState":"running","ID":"0kzzo1i0y4jz6027t0k7aezc7","NetworksAttachments":[{"Addresses":["10.255.0.10/16"],"Network":{"CreatedAt":"2016-06-07T20:31:11.912919752Z","DriverState":{"Name":"overlay","Options":{"com.docker.network.driver.overlay.vxlanid_list":"256"}},"ID":"4qvuz4ko70xaltuqbt8956gd1","IPAMOptions":{"Configs":[{"Gateway":"10.255.0.1","Subnet":"10.255.0.0/16"}],"Driver":{"Name":"default"}},"Spec":{"DriverConfiguration":{},"IPAMOptions":{"Configs":[{"Gateway":"10.255.0.1","Subnet":"10.255.0.0/16"}],"Driver":{}},"Labels":{"com.docker.swarm.internal":"true"},"Name":"ingress"},"UpdatedAt":"2016-06-07T21:07:29.955277358Z","Version":{"Index":18}}}],"NodeID":"60gvrl6tm78dmak4yl7srz94v","ServiceID":"9mnpnzenvg8p8tdbtq4wvbkcz","Slot":1,"Spec":{"ContainerSpec":{"Image":"redis"},"Placement":{},"Resources":{"Limits":{},"Reservations":{}},"RestartPolicy":{"Condition":"any","MaxAttempts":0}},"Status":{"ContainerStatus":{"ContainerID":"e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035","PID":677},"Message":"started","State":"running","Timestamp":"2016-06-07T21:07:31.290032978Z"},"UpdatedAt":"2016-06-07T21:07:31.376370513Z","Version":{"Index":71}},{"CreatedAt":"2016-06-07T21:07:30.019104782Z","DesiredState":"shutdown","ID":"1yljwbmlr8er2waf8orvqpwms","Name":"hopeful_cori","NetworksAttachments":[{"Addresses":["10.255.0.5/16"],"Network":{"CreatedAt":"2016-06-07T20:31:11.912919752Z","DriverState":{"Name":"overlay","Options":{"com.docker.network.driver.overlay.vxlanid_list":"256"}},"ID":"4qvuz4ko70xaltuqbt8956gd1","IPAMOptions":{"Configs":[{"Gateway":"10.255.0.1","Subnet":"10.255.0.0/16"}],"Driver":{"Name":"default"}},"Spec":{"DriverConfiguration":{},"IPAMOptions":{"Configs":[{"Gateway":"10.255.0.1","Subnet":"10.255.0.0/16"}],"Driver":{}},"Labels":{"com.docker.swarm.internal":"true"},"Name":"ingress"},"UpdatedAt":"2016-06-07T21:07:29.955277358Z","Version":{"Index":18}}}],"NodeID":"60gvrl6tm78dmak4yl7srz94v","ServiceID":"9mnpnzenvg8p8tdbtq4wvbkcz","Slot":1,"Spec":{"ContainerSpec":{"Image":"redis"},"Placement":{},"Resources":{"Limits":{},"Reservations":{}},"RestartPolicy":{"Condition":"any","MaxAttempts":0}},"Status":{"ContainerStatus":{"ContainerID":"1cf8d63d18e79668b0004a4be4c6ee58cddfad2dae29506d8781581d0688a213"},"Message":"shutdown","State":"shutdown","Timestamp":"2016-06-07T21:07:30.202183143Z"},"UpdatedAt":"2016-06-07T21:07:30.231958098Z","Version":{"Index":30}}]}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/tasks/{id}":{"get":{"produces":["application/json"],"tags":["Task"],"summary":"Inspect a task","operationId":"TaskInspect","parameters":[{"type":"string","description":"ID of the task","name":"id","in":"path","required":true}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/Task"}},"404":{"description":"no such task","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/tasks/{id}/logs":{"get":{"description":"Get `stdout` and `stderr` logs from a task.\n\n**Note**: This endpoint works only for services with the `json-file` or `journald` logging drivers.\n","produces":["application/vnd.docker.raw-stream","application/json"],"tags":["UCP"],"summary":"Get task logs","operationId":"TaskLogs","parameters":[{"type":"string","description":"ID of the task","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Show task context and extra details provided to logs.","name":"details","in":"query"},{"type":"boolean","default":false,"description":"Return the logs as a stream.\n\nThis will return a `101` HTTP response with a `Connection: upgrade` header, then hijack the HTTP connection to send raw output. For more information about hijacking and the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).\n","name":"follow","in":"query"},{"type":"boolean","default":false,"description":"Return logs from `stdout`","name":"stdout","in":"query"},{"type":"boolean","default":false,"description":"Return logs from `stderr`","name":"stderr","in":"query"},{"type":"integer","default":0,"description":"Only return logs since this time, as a UNIX timestamp","name":"since","in":"query"},{"type":"boolean","default":false,"description":"Add timestamps to every log line","name":"timestamps","in":"query"},{"type":"string","default":"all","description":"Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines.","name":"tail","in":"query"}],"responses":{"101":{"description":"logs returned as a stream","schema":{"type":"string","format":"binary"}},"200":{"description":"logs returned as a string in response body","schema":{"type":"string"}},"404":{"description":"no such task","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such task: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/totalRole":{"get":{"description":"Returns a role with all operations that a user can perform against at least one collection in the system.","produces":["application/json"],"tags":["UCP"],"summary":"Returns a role with all operations that a user can perform against at least one collection in the system.","operationId":"TotalRole","responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/role.Role"}}},"default":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/role.Role"}}}}}},"/version":{"get":{"description":"Returns the version of Docker that is running and various information about the system that Docker is running on.","produces":["application/json"],"tags":["System"],"summary":"Get version","operationId":"SystemVersion","responses":{"200":{"description":"no error","schema":{"type":"object","properties":{"ApiVersion":{"type":"string"},"Arch":{"type":"string"},"BuildTime":{"type":"string"},"Experimental":{"type":"boolean"},"GitCommit":{"type":"string"},"GoVersion":{"type":"string"},"KernelVersion":{"type":"string"},"MinAPIVersion":{"type":"string"},"Os":{"type":"string"},"Version":{"type":"string"}}},"examples":{"application/json":{"ApiVersion":"1.27","Arch":"amd64","BuildTime":"2016-06-14T07:09:13.444803460+00:00","Experimental":true,"GitCommit":"deadbee","GoVersion":"go1.7.5","KernelVersion":"3.19.0-23-generic","MinAPIVersion":"1.12","Os":"linux","Version":"17.04.0"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/volumes":{"get":{"description":"If the name is prefixed with the name of a node, the request is sent to the specified node. Use the '/' character to distinguish the node name, like `testnode/testvolume`.","produces":["application/json"],"tags":["Volume"],"summary":"List volumes","operationId":"VolumeList","parameters":[{"type":"string","format":"json","description":"JSON encoded value of the filters (a `map[string][]string`) to\nprocess on the volumes list. Available filters:\n\n- `dangling=\u003cboolean\u003e` When set to `true` (or `1`), returns all\n volumes that are not in use by a container. When set to `false`\n (or `0`), only volumes that are in use by one or more\n containers are returned.\n- `driver=\u003cvolume-driver-name\u003e` Matches volumes based on their driver.\n- `label=\u003ckey\u003e` or `label=\u003ckey\u003e:\u003cvalue\u003e` Matches volumes based on\n the presence of a `label` alone or a `label` and a value.\n- `name=\u003cvolume-name\u003e` Matches all or part of a volume name.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"Summary volume data that matches the query","schema":{"type":"object","required":["Volumes","Warnings"],"properties":{"Volumes":{"description":"List of volumes","type":"array","items":{"$ref":"#/definitions/Volume"},"x-nullable":false},"Warnings":{"description":"Warnings that occurred when fetching the list of volumes","type":"array","items":{"type":"string"},"x-nullable":false}}},"examples":{"application/json":{"Volumes":[{"Driver":"local","Labels":{"com.example.some-label":"some-value","com.example.some-other-label":"some-other-value"},"Mountpoint":"/var/lib/docker/volumes/tardis","Name":"tardis","Options":{"device":"tmpfs","o":"size=100m,uid=1000","type":"tmpfs"},"Scope":"local"}],"Warnings":[]}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/volumes/create":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["Volume"],"summary":"Create a volume","operationId":"VolumeCreate","parameters":[{"description":"Volume configuration","name":"volumeConfig","in":"body","required":true,"schema":{"type":"object","properties":{"Driver":{"description":"Name of the volume driver to use.","type":"string","default":"local","x-nullable":false},"DriverOpts":{"description":"A mapping of driver options and values. These options are passed directly to the driver and are driver specific.","type":"object","additionalProperties":{"type":"string"}},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"The new volume's name. If not specified, Docker generates a name.","type":"string","x-nullable":false}},"example":{"Driver":"custom","Labels":{"com.example.some-label":"some-value","com.example.some-other-label":"some-other-value"},"Name":"tardis"}}}],"responses":{"201":{"description":"The volume was created successfully","schema":{"$ref":"#/definitions/Volume"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/volumes/prune":{"post":{"produces":["application/json"],"tags":["Volume"],"summary":"Delete unused volumes","operationId":"VolumePrune","parameters":[{"type":"string","description":"Filters to process on the prune list, encoded as JSON (a `map[string][]string`).\n\nAvailable filters:\n- `label` (`label=\u003ckey\u003e`, `label=\u003ckey\u003e=\u003cvalue\u003e`, `label!=\u003ckey\u003e`, or `label!=\u003ckey\u003e=\u003cvalue\u003e`) Prune volumes with (or without, in case `label!=...` is used) the specified labels.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"object","properties":{"SpaceReclaimed":{"description":"Disk space reclaimed in bytes","type":"integer","format":"int64"},"VolumesDeleted":{"description":"Volumes that were deleted","type":"array","items":{"type":"string"}}}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/volumes/{name}":{"get":{"description":"If the name is prefixed with the name of a node, the request is sent to the specified node. Use the '/' character to distinguish the node name, like `testnode/testvolume`.","produces":["application/json"],"tags":["Volume"],"summary":"Inspect a volume","operationId":"VolumeInspect","parameters":[{"type":"string","description":"Volume name or ID","name":"name","in":"path","required":true}],"responses":{"200":{"description":"No error","schema":{"$ref":"#/definitions/Volume"}},"404":{"description":"No such volume","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"description":"Instruct the driver to remove the volume.","tags":["Volume"],"summary":"Remove a volume","operationId":"VolumeDelete","parameters":[{"type":"string","description":"Volume name or ID","name":"name","in":"path","required":true},{"type":"boolean","default":false,"description":"Force the removal of the volume","name":"force","in":"query"}],"responses":{"204":{"description":"The volume was removed"},"404":{"description":"No such volume or volume driver","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"Volume is in use and cannot be removed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}}},"definitions":{"AuthConfig":{"type":"object","properties":{"email":{"type":"string"},"password":{"type":"string"},"serveraddress":{"type":"string"},"username":{"type":"string"}},"example":{"password":"xxxx","serveraddress":"https://index.docker.io/v1/","username":"hannibal"}},"BuildInfo":{"type":"object","properties":{"error":{"type":"string"},"errorDetail":{"$ref":"#/definitions/ErrorDetail"},"id":{"type":"string"},"progress":{"type":"string"},"progressDetail":{"$ref":"#/definitions/ProgressDetail"},"status":{"type":"string"},"stream":{"type":"string"}}},"ClusterInfo":{"type":"object","properties":{"CreatedAt":{"type":"string","format":"dateTime"},"ID":{"description":"The ID of the swarm.","type":"string"},"RootRotationInProgress":{"description":"Whether there is currently a root CA rotation in progress for the swarm","type":"boolean"},"Spec":{"$ref":"#/definitions/SwarmSpec"},"TLSInfo":{"$ref":"#/definitions/TLSInfo"},"UpdatedAt":{"type":"string","format":"dateTime"},"Version":{"$ref":"#/definitions/ObjectVersion"}}},"Config":{"type":"object","properties":{"CreatedAt":{"type":"string","format":"dateTime"},"ID":{"type":"string"},"Spec":{"$ref":"#/definitions/ConfigSpec"},"UpdatedAt":{"type":"string","format":"dateTime"},"Version":{"$ref":"#/definitions/ObjectVersion"}}},"ConfigSpec":{"type":"object","properties":{"Data":{"description":"Base64-url-safe-encoded config data","type":"array","items":{"type":"string"}},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"User-defined name of the config.","type":"string"}}},"ContainerConfig":{"description":"Configuration for a container that is portable between hosts","type":"object","properties":{"ArgsEscaped":{"description":"Command is already escaped (Windows only)","type":"boolean"},"AttachStderr":{"description":"Whether to attach to `stderr`.","type":"boolean","default":true},"AttachStdin":{"description":"Whether to attach to `stdin`.","type":"boolean","default":false},"AttachStdout":{"description":"Whether to attach to `stdout`.","type":"boolean","default":true},"Cmd":{"description":"Command to run specified as a string or an array of strings.","type":["array","string"],"items":{"type":"string"}},"Domainname":{"description":"The domain name to use for the container.","type":"string"},"Entrypoint":{"description":"The entry point for the container as a string or an array of strings.\n\nIf the array consists of exactly one empty string (`[\"\"]`) then the entry point is reset to system default (i.e., the entry point used by docker when there is no `ENTRYPOINT` instruction in the `Dockerfile`).\n","type":["array","string"],"items":{"type":"string"}},"Env":{"description":"A list of environment variables to set inside the container in the form `[\"VAR=value\", ...]`. A variable without `=` is removed from the environment, rather than to have an empty value.\n","type":"array","items":{"type":"string"}},"ExposedPorts":{"description":"An object mapping ports to an empty object in the form:\n\n`{\"\u003cport\u003e/\u003ctcp|udp\u003e\": {}}`\n","type":"object","additionalProperties":{"type":"object","default":{},"enum":[{}]}},"Healthcheck":{"$ref":"#/definitions/HealthConfig"},"Hostname":{"description":"The hostname to use for the container, as a valid RFC 1123 hostname.","type":"string"},"Image":{"description":"The name of the image to use when creating the container","type":"string"},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"MacAddress":{"description":"MAC address of the container.","type":"string"},"NetworkDisabled":{"description":"Disable networking for the container.","type":"boolean"},"OnBuild":{"description":"`ONBUILD` metadata that were defined in the image's `Dockerfile`.","type":"array","items":{"type":"string"}},"OpenStdin":{"description":"Open `stdin`","type":"boolean","default":false},"Shell":{"description":"Shell for when `RUN`, `CMD`, and `ENTRYPOINT` uses a shell.","type":"array","items":{"type":"string"}},"StdinOnce":{"description":"Close `stdin` after one attached client disconnects","type":"boolean","default":false},"StopSignal":{"description":"Signal to stop a container as a string or unsigned integer.","type":"string","default":"SIGTERM"},"StopTimeout":{"description":"Timeout to stop a container in seconds.","type":"integer","default":10},"Tty":{"description":"Attach standard streams to a TTY, including `stdin` if it is not closed.","type":"boolean","default":false},"User":{"description":"The user that commands are run as inside the container.","type":"string"},"Volumes":{"description":"An object mapping mount point paths inside the container to empty objects.","type":"object","properties":{"additionalProperties":{"type":"object","default":{},"enum":[{}]}}},"WorkingDir":{"description":"The working directory for commands to run in.","type":"string"}}},"ContainerSummary":{"type":"array","items":{"type":"object","properties":{"Command":{"description":"Command to run when starting the container","type":"string"},"Created":{"description":"When the container was created","type":"integer","format":"int64"},"HostConfig":{"type":"object","properties":{"NetworkMode":{"type":"string"}}},"Id":{"description":"The ID of this container","type":"string","x-go-name":"ID"},"Image":{"description":"The name of the image used when creating this container","type":"string"},"ImageID":{"description":"The ID of the image that this container was created from","type":"string"},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Mounts":{"type":"array","items":{"$ref":"#/definitions/Mount"}},"Names":{"description":"The names that this container has been given","type":"array","items":{"type":"string"}},"NetworkSettings":{"description":"A summary of the container's network settings","type":"object","properties":{"Networks":{"type":"object","additionalProperties":{"$ref":"#/definitions/EndpointSettings"}}}},"Ports":{"description":"The ports exposed by this container","type":"array","items":{"$ref":"#/definitions/Port"}},"SizeRootFs":{"description":"The total size of all the files in this container","type":"integer","format":"int64"},"SizeRw":{"description":"The size of files that have been created or changed by this container","type":"integer","format":"int64"},"State":{"description":"The state of this container (e.g. `Exited`)","type":"string"},"Status":{"description":"Additional human-readable status of this container (e.g. `Exit 0`)","type":"string"}}}},"CreateImageInfo":{"type":"object","properties":{"error":{"type":"string"},"progress":{"type":"string"},"progressDetail":{"$ref":"#/definitions/ProgressDetail"},"status":{"type":"string"}}},"DeviceMapping":{"description":"A device mapping between the host and container","type":"object","properties":{"CgroupPermissions":{"type":"string"},"PathInContainer":{"type":"string"},"PathOnHost":{"type":"string"}},"example":{"CgroupPermissions":"mrw","PathInContainer":"/dev/deviceName","PathOnHost":"/dev/deviceName"}},"EndpointPortConfig":{"type":"object","properties":{"Name":{"type":"string"},"Protocol":{"type":"string","enum":["tcp","udp"]},"PublishedPort":{"description":"The port on the swarm hosts.","type":"integer"},"TargetPort":{"description":"The port inside the container.","type":"integer"}}},"EndpointSettings":{"description":"Configuration for a network endpoint.","type":"object","properties":{"Aliases":{"type":"array","items":{"type":"string"}},"EndpointID":{"type":"string"},"Gateway":{"type":"string"},"GlobalIPv6Address":{"type":"string"},"GlobalIPv6PrefixLen":{"type":"integer","format":"int64"},"IPAMConfig":{"description":"IPAM configurations for the endpoint","type":"object","properties":{"IPv4Address":{"type":"string"},"IPv6Address":{"type":"string"},"LinkLocalIPs":{"type":"array","items":{"type":"string"}}}},"IPAddress":{"type":"string"},"IPPrefixLen":{"type":"integer"},"IPv6Gateway":{"type":"string"},"Links":{"type":"array","items":{"type":"string"}},"MacAddress":{"type":"string"},"NetworkID":{"type":"string"}}},"EndpointSpec":{"description":"Properties that can be configured to access and load balance a service.","type":"object","properties":{"Mode":{"description":"The mode of resolution to use for internal load balancing between tasks.","type":"string","default":"vip","enum":["vip","dnsrr"]},"Ports":{"description":"List of exposed ports that this service is accessible on from the outside. Ports can only be provided if `vip` resolution mode is used.","type":"array","items":{"$ref":"#/definitions/EndpointPortConfig"}}}},"ErrorDetail":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}},"ErrorResponse":{"description":"Represents an error.","type":"object","required":["message"],"properties":{"message":{"description":"The error message.","type":"string","x-nullable":false}},"example":{"message":"Something went wrong."}},"GraphDriverData":{"description":"Information about a container's graph driver.","type":"object","required":["Name","Data"],"properties":{"Data":{"type":"object","additionalProperties":{"type":"string"},"x-nullable":false},"Name":{"type":"string","x-nullable":false}}},"HealthConfig":{"description":"A test to perform to check that the container is healthy.","type":"object","properties":{"Interval":{"description":"The time to wait between checks in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means inherit.","type":"integer"},"Retries":{"description":"The number of consecutive failures needed to consider a container as unhealthy. 0 means inherit.","type":"integer"},"StartPeriod":{"description":"Start period for the container to initialize before starting health-retries countdown in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means inherit.","type":"integer"},"Test":{"description":"The test to perform. Possible values are:\n\n- `[]` inherit healthcheck from image or parent image\n- `[\"NONE\"]` disable healthcheck\n- `[\"CMD\", args...]` exec arguments directly\n- `[\"CMD-SHELL\", command]` run command with system's default shell\n","type":"array","items":{"type":"string"}},"Timeout":{"description":"The time to wait before considering the check to have hung. It should be 0 or at least 1000000 (1 ms). 0 means inherit.","type":"integer"}}},"HostConfig":{"description":"Container configuration that depends on the host we are running on","allOf":[{"$ref":"#/definitions/Resources"},{"type":"object","properties":{"AutoRemove":{"description":"Automatically remove the container when the container's process exits. This has no effect if `RestartPolicy` is set.","type":"boolean"},"Binds":{"description":"A list of volume bindings for this container. Each volume binding is a string in one of these forms:\n\n- `host-src:container-dest` to bind-mount a host path into the container. Both `host-src`, and `container-dest` must be an _absolute_ path.\n- `host-src:container-dest:ro` to make the bind-mount read-only inside the container. Both `host-src`, and `container-dest` must be an _absolute_ path.\n- `volume-name:container-dest` to bind-mount a volume managed by a volume driver into the container. `container-dest` must be an _absolute_ path.\n- `volume-name:container-dest:ro` to mount the volume read-only inside the container. `container-dest` must be an _absolute_ path.\n","type":"array","items":{"type":"string"}},"CapAdd":{"description":"A list of kernel capabilities to add to the container.","type":"array","items":{"type":"string"}},"CapDrop":{"description":"A list of kernel capabilities to drop from the container.","type":"array","items":{"type":"string"}},"Cgroup":{"description":"Cgroup to use for the container.","type":"string"},"ConsoleSize":{"description":"Initial console size, as an `[height, width]` array. (Windows only)","type":"array","maxItems":2,"minItems":2,"items":{"type":"integer","minimum":0}},"ContainerIDFile":{"description":"Path to a file where the container ID is written","type":"string"},"Dns":{"description":"A list of DNS servers for the container to use.","type":"array","items":{"type":"string"}},"DnsOptions":{"description":"A list of DNS options.","type":"array","items":{"type":"string"}},"DnsSearch":{"description":"A list of DNS search domains.","type":"array","items":{"type":"string"}},"ExtraHosts":{"description":"A list of hostnames/IP mappings to add to the container's `/etc/hosts` file. Specified in the form `[\"hostname:IP\"]`.\n","type":"array","items":{"type":"string"}},"GroupAdd":{"description":"A list of additional groups that the container process will run as.","type":"array","items":{"type":"string"}},"IpcMode":{"description":"IPC namespace to use for the container.","type":"string"},"Isolation":{"description":"Isolation technology of the container. (Windows only)","type":"string","enum":["default","process","hyperv"]},"Links":{"description":"A list of links for the container in the form `container_name:alias`.","type":"array","items":{"type":"string"}},"LogConfig":{"description":"The logging configuration for this container","type":"object","properties":{"Config":{"type":"object","additionalProperties":{"type":"string"}},"Type":{"type":"string","enum":["json-file","syslog","journald","gelf","fluentd","awslogs","splunk","etwlogs","none"]}}},"Mounts":{"description":"Specification for mounts to be added to the container.","type":"array","items":{"$ref":"#/definitions/Mount"}},"NetworkMode":{"description":"Network mode to use for this container. Supported standard values are: `bridge`, `host`, `none`, and `container:\u003cname|id\u003e`. Any other value is taken as a custom network's name to which this container should connect to.","type":"string"},"OomScoreAdj":{"description":"An integer value containing the score given to the container in order to tune OOM killer preferences.","type":"integer"},"PidMode":{"description":"Set the PID (Process) Namespace mode for the container. It can be either:\n\n- `\"container:\u003cname|id\u003e\"`: joins another container's PID namespace\n- `\"host\"`: use the host's PID namespace inside the container\n","type":"string"},"PortBindings":{"description":"A map of exposed container ports and the host port they should map to.","type":"object","additionalProperties":{"type":"object","properties":{"HostIp":{"description":"The host IP address","type":"string"},"HostPort":{"description":"The host port number, as a string","type":"string"}}}},"Privileged":{"description":"Gives the container full access to the host.","type":"boolean"},"PublishAllPorts":{"description":"Allocates a random host port for all of a container's exposed ports.","type":"boolean"},"ReadonlyRootfs":{"description":"Mount the container's root filesystem as read only.","type":"boolean"},"RestartPolicy":{"$ref":"#/definitions/RestartPolicy"},"Runtime":{"description":"Runtime to use with this container.","type":"string"},"SecurityOpt":{"description":"A list of string values to customize labels for MLS systems, such as SELinux.","type":"array","items":{"type":"string"}},"ShmSize":{"description":"Size of `/dev/shm` in bytes. If omitted, the system uses 64MB.","type":"integer","minimum":0},"StorageOpt":{"description":"Storage driver options for this container, in the form `{\"size\": \"120G\"}`.\n","type":"object","additionalProperties":{"type":"string"}},"Sysctls":{"description":"A list of kernel parameters (sysctls) to set in the container. For example: `{\"net.ipv4.ip_forward\": \"1\"}`\n","type":"object","additionalProperties":{"type":"string"}},"Tmpfs":{"description":"A map of container directories which should be replaced by tmpfs mounts, and their corresponding mount options. For example: `{ \"/run\": \"rw,noexec,nosuid,size=65536k\" }`.\n","type":"object","additionalProperties":{"type":"string"}},"UTSMode":{"description":"UTS namespace to use for the container.","type":"string"},"UsernsMode":{"description":"Sets the usernamespace mode for the container when usernamespace remapping option is enabled.","type":"string"},"VolumeDriver":{"description":"Driver that this container uses to mount volumes.","type":"string"},"VolumesFrom":{"description":"A list of volumes to inherit from another container, specified in the form `\u003ccontainer name\u003e[:\u003cro|rw\u003e]`.","type":"array","items":{"type":"string"}}}}]},"IPAM":{"type":"object","properties":{"Config":{"description":"List of IPAM configuration options, specified as a map: `{\"Subnet\": \u003cCIDR\u003e, \"IPRange\": \u003cCIDR\u003e, \"Gateway\": \u003cIP address\u003e, \"AuxAddress\": \u003cdevice_name:IP address\u003e}`","type":"array","items":{"type":"object","additionalProperties":{"type":"string"}}},"Driver":{"description":"Name of the IPAM driver to use.","type":"string","default":"default"},"Options":{"description":"Driver-specific options, specified as a map.","type":"array","items":{"type":"object","additionalProperties":{"type":"string"}}}}},"IdResponse":{"description":"Response to an API call that returns just an Id","type":"object","required":["Id"],"properties":{"Id":{"description":"The id of the newly created object.","type":"string","x-nullable":false}}},"Image":{"type":"object","required":["Id","Parent","Comment","Created","Container","DockerVersion","Author","Architecture","Os","Size","VirtualSize","GraphDriver","RootFS"],"properties":{"Architecture":{"type":"string","x-nullable":false},"Author":{"type":"string","x-nullable":false},"Comment":{"type":"string","x-nullable":false},"Config":{"$ref":"#/definitions/ContainerConfig"},"Container":{"type":"string","x-nullable":false},"ContainerConfig":{"$ref":"#/definitions/ContainerConfig"},"Created":{"type":"string","x-nullable":false},"DockerVersion":{"type":"string","x-nullable":false},"GraphDriver":{"$ref":"#/definitions/GraphDriverData"},"Id":{"type":"string","x-nullable":false},"Os":{"type":"string","x-nullable":false},"OsVersion":{"type":"string"},"Parent":{"type":"string","x-nullable":false},"RepoDigests":{"type":"array","items":{"type":"string"}},"RepoTags":{"type":"array","items":{"type":"string"}},"RootFS":{"type":"object","required":["Type"],"properties":{"BaseLayer":{"type":"string"},"Layers":{"type":"array","items":{"type":"string"}},"Type":{"type":"string","x-nullable":false}}},"Size":{"type":"integer","format":"int64","x-nullable":false},"VirtualSize":{"type":"integer","format":"int64","x-nullable":false}}},"ImageDeleteResponseItem":{"type":"object","properties":{"Deleted":{"description":"The image ID of an image that was deleted","type":"string"},"Untagged":{"description":"The image ID of an image that was untagged","type":"string"}}},"ImageSummary":{"type":"object","required":["Id","ParentId","RepoTags","RepoDigests","Created","Size","SharedSize","VirtualSize","Labels","Containers"],"properties":{"Containers":{"type":"integer","x-nullable":false},"Created":{"type":"integer","x-nullable":false},"Id":{"type":"string","x-nullable":false},"Labels":{"type":"object","additionalProperties":{"type":"string"},"x-nullable":false},"ParentId":{"type":"string","x-nullable":false},"RepoDigests":{"type":"array","items":{"type":"string"},"x-nullable":false},"RepoTags":{"type":"array","items":{"type":"string"},"x-nullable":false},"SharedSize":{"type":"integer","x-nullable":false},"Size":{"type":"integer","x-nullable":false},"VirtualSize":{"type":"integer","x-nullable":false}}},"Mount":{"type":"object","properties":{"BindOptions":{"description":"Optional configuration for the `bind` type.","type":"object","properties":{"Propagation":{"description":"A propagation mode with the value `[r]private`, `[r]shared`, or `[r]slave`.","enum":["private","rprivate","shared","rshared","slave","rslave"]}}},"Consistency":{"description":"The consistency requirement for the mount: `default`, `consistent`, `cached`, or `delegated`.","type":"string"},"ReadOnly":{"description":"Whether the mount should be read-only.","type":"boolean"},"Source":{"description":"Mount source (e.g. a volume name, a host path).","type":"string"},"Target":{"description":"Container path.","type":"string"},"TmpfsOptions":{"description":"Optional configuration for the `tmpfs` type.","type":"object","properties":{"Mode":{"description":"The permission mode for the tmpfs mount in an integer.","type":"integer"},"SizeBytes":{"description":"The size for the tmpfs mount in bytes.","type":"integer","format":"int64"}}},"Type":{"description":"The mount type. Available types:\n\n- `bind` Mounts a file or directory from the host into the container. Must exist prior to creating the container.\n- `volume` Creates a volume with the given name and options (or uses a pre-existing volume with the same name and options). These are **not** removed when the container is removed.\n- `tmpfs` Create a tmpfs with the given options. The mount source cannot be specified for tmpfs.\n","type":"string","enum":["bind","volume","tmpfs"]},"VolumeOptions":{"description":"Optional configuration for the `volume` type.","type":"object","properties":{"DriverConfig":{"description":"Map of driver specific options","type":"object","properties":{"Name":{"description":"Name of the driver to use to create the volume.","type":"string"},"Options":{"description":"key/value map of driver specific options.","type":"object","additionalProperties":{"type":"string"}}}},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"NoCopy":{"description":"Populate volume with data from the target.","type":"boolean","default":false}}}}},"MountPoint":{"description":"A mount point inside a container","type":"object","properties":{"Destination":{"type":"string"},"Driver":{"type":"string"},"Mode":{"type":"string"},"Name":{"type":"string"},"Propagation":{"type":"string"},"RW":{"type":"boolean"},"Source":{"type":"string"},"Type":{"type":"string"}}},"Network":{"type":"object","properties":{"Attachable":{"type":"boolean"},"Containers":{"type":"object","additionalProperties":{"$ref":"#/definitions/NetworkContainer"}},"Created":{"type":"string","format":"dateTime"},"Driver":{"type":"string"},"EnableIPv6":{"type":"boolean"},"IPAM":{"$ref":"#/definitions/IPAM"},"Id":{"type":"string"},"Ingress":{"type":"boolean"},"Internal":{"type":"boolean"},"Labels":{"type":"object","additionalProperties":{"type":"string"}},"Name":{"type":"string"},"Options":{"type":"object","additionalProperties":{"type":"string"}},"Scope":{"type":"string"}},"example":{"Attachable":false,"Containers":{"19a4d5d687db25203351ed79d478946f861258f018fe384f229f2efa4b23513c":{"EndpointID":"628cadb8bcb92de107b2a1e516cbffe463e321f548feb37697cce00ad694f21a","IPv4Address":"172.19.0.2/16","IPv6Address":"","MacAddress":"02:42:ac:13:00:02","Name":"test"}},"Created":"2016-10-19T04:33:30.360899459Z","Driver":"bridge","EnableIPv6":false,"IPAM":{"Config":[{"Gateway":"172.19.0.1","Subnet":"172.19.0.0/16"}],"Driver":"default","Options":{"foo":"bar"}},"Id":"7d86d31b1478e7cca9ebed7e73aa0fdeec46c5ca29497431d3007d2d9e15ed99","Ingress":false,"Internal":false,"Labels":{"com.example.some-label":"some-value","com.example.some-other-label":"some-other-value"},"Name":"net01","Options":{"com.docker.network.bridge.default_bridge":"true","com.docker.network.bridge.enable_icc":"true","com.docker.network.bridge.enable_ip_masquerade":"true","com.docker.network.bridge.host_binding_ipv4":"0.0.0.0","com.docker.network.bridge.name":"docker0","com.docker.network.driver.mtu":"1500"},"Scope":"local"}},"NetworkConfig":{"description":"TODO: check is correct","type":"object","properties":{"Address":{"type":"string"},"Bridge":{"type":"string"},"Gateway":{"type":"string"},"IPPrefixLen":{"type":"integer"},"MacAddress":{"type":"string"},"PortMapping":{"type":"string"},"Ports":{"type":"array","items":{"$ref":"#/definitions/Port"}}}},"NetworkContainer":{"type":"object","properties":{"EndpointID":{"type":"string"},"IPv4Address":{"type":"string"},"IPv6Address":{"type":"string"},"MacAddress":{"type":"string"},"Name":{"type":"string"}}},"Node":{"type":"object","properties":{"CreatedAt":{"type":"string","format":"dateTime"},"Description":{"type":"object","properties":{"Engine":{"type":"object","properties":{"EngineVersion":{"type":"string"},"Labels":{"type":"object","additionalProperties":{"type":"string"}},"Plugins":{"type":"array","items":{"type":"object","properties":{"Name":{"type":"string"},"Type":{"type":"string"}}}}}},"Hostname":{"type":"string"},"Platform":{"type":"object","properties":{"Architecture":{"type":"string"},"OS":{"type":"string"}}},"Resources":{"type":"object","properties":{"MemoryBytes":{"type":"integer","format":"int64"},"NanoCPUs":{"type":"integer","format":"int64"}}},"TLSInfo":{"$ref":"#/definitions/SwarmSpec"}}},"ID":{"type":"string"},"Spec":{"$ref":"#/definitions/NodeSpec"},"UpdatedAt":{"type":"string","format":"dateTime"},"Version":{"$ref":"#/definitions/ObjectVersion"}},"example":{"CreatedAt":"2016-06-07T20:31:11.853781916Z","Description":{"Engine":{"EngineVersion":"17.04.0","Labels":{"foo":"bar"},"Plugins":[{"Name":"local","Type":"Volume"},{"Name":"bridge","Type":"Network"},{"Name":"null","Type":"Network"},{"Name":"overlay","Type":"Network"}]},"Hostname":"bf3067039e47","Platform":{"Architecture":"x86_64","OS":"linux"},"Resources":{"MemoryBytes":8272408576,"NanoCPUs":4000000000}},"ID":"24ifsmvkjbyhk","ManagerStatus":{"Addr":"172.17.0.2:2377","Leader":true,"Reachability":"reachable"},"Spec":{"Availability":"active","Labels":{"foo":"bar"},"Name":"my-node","Role":"manager"},"Status":{"Addr":"172.17.0.2","State":"ready"},"TLSInfo":{"CertIssuerPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A==","CertIssuerSubject":"MBMxETAPBgNVBAMTCHN3YXJtLWNh","TrustRoot":"-----BEGIN CERTIFICATE-----\nMIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw\nEzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0\nMzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH\nA0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf\n3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB\nAf8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO\nPQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz\npxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H\n-----END CERTIFICATE-----\n"},"UpdatedAt":"2016-06-07T20:31:11.999868824Z","Version":{"Index":8}}},"NodeSpec":{"type":"object","properties":{"Availability":{"description":"Availability of the node.","type":"string","enum":["active","pause","drain"]},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"Name for the node.","type":"string"},"Role":{"description":"Role of the node.","type":"string","enum":["worker","manager"]}},"example":{"Availability":"active","Labels":{"foo":"bar"},"Name":"node-name","Role":"manager"}},"ObjectVersion":{"description":"The version number of the object such as node, service, etc. This is needed to avoid conflicting writes.\nThe client must send the version number along with the modified specification when updating these objects.\nThis approach ensures safe concurrency and determinism in that the change on the object\nmay not be applied if the version number has changed from the last read. In other words,\nif two update requests specify the same base version, only one of the requests can succeed.\nAs a result, two separate update requests that happen at the same time will not\nunintentially overwrite each other.\n","type":"object","properties":{"Index":{"type":"integer","format":"int64"}}},"Plugin":{"description":"A plugin for the Engine API","type":"object","required":["Settings","Enabled","Config","Name"],"properties":{"Config":{"description":"The config of a plugin.","type":"object","required":["Description","Documentation","Interface","Entrypoint","WorkDir","Network","Linux","PidHost","PropagatedMount","IpcHost","Mounts","Env","Args"],"properties":{"Args":{"type":"object","required":["Name","Description","Settable","Value"],"properties":{"Description":{"type":"string","x-nullable":false},"Name":{"type":"string","x-nullable":false},"Settable":{"type":"array","items":{"type":"string"}},"Value":{"type":"array","items":{"type":"string"}}},"x-nullable":false},"Description":{"type":"string","x-nullable":false},"DockerVersion":{"description":"Docker Version used to create the plugin","type":"string","x-nullable":false},"Documentation":{"type":"string","x-nullable":false},"Entrypoint":{"type":"array","items":{"type":"string"}},"Env":{"type":"array","items":{"$ref":"#/definitions/PluginEnv"}},"Interface":{"description":"The interface between Docker and the plugin","type":"object","required":["Types","Socket"],"properties":{"Socket":{"type":"string","x-nullable":false},"Types":{"type":"array","items":{"$ref":"#/definitions/PluginInterfaceType"}}},"x-nullable":false},"IpcHost":{"type":"boolean","x-nullable":false},"Linux":{"type":"object","required":["Capabilities","AllowAllDevices","Devices"],"properties":{"AllowAllDevices":{"type":"boolean","x-nullable":false},"Capabilities":{"type":"array","items":{"type":"string"}},"Devices":{"type":"array","items":{"$ref":"#/definitions/PluginDevice"}}},"x-nullable":false},"Mounts":{"type":"array","items":{"$ref":"#/definitions/PluginMount"}},"Network":{"type":"object","required":["Type"],"properties":{"Type":{"type":"string","x-nullable":false}},"x-nullable":false},"PidHost":{"type":"boolean","x-nullable":false},"PropagatedMount":{"type":"string","x-nullable":false},"User":{"type":"object","properties":{"GID":{"type":"integer","format":"uint32"},"UID":{"type":"integer","format":"uint32"}},"x-nullable":false},"WorkDir":{"type":"string","x-nullable":false},"rootfs":{"type":"object","properties":{"diff_ids":{"type":"array","items":{"type":"string"}},"type":{"type":"string"}}}},"x-nullable":false},"Enabled":{"description":"True when the plugin is running. False when the plugin is not running, only installed.","type":"boolean","x-nullable":false},"Id":{"type":"string"},"Name":{"type":"string","x-nullable":false},"PluginReference":{"description":"plugin remote reference used to push/pull the plugin","type":"string","x-nullable":false},"Settings":{"description":"Settings that can be modified by users.","type":"object","required":["Args","Devices","Env","Mounts"],"properties":{"Args":{"type":"array","items":{"type":"string"}},"Devices":{"type":"array","items":{"$ref":"#/definitions/PluginDevice"}},"Env":{"type":"array","items":{"type":"string"}},"Mounts":{"type":"array","items":{"$ref":"#/definitions/PluginMount"}}},"x-nullable":false}},"example":{"Active":true,"Config":{"Args":{"Description":"command line arguments","Name":"args","Settable":"","Value":[]},"Description":"A sample volume plugin for Docker","Documentation":"https://docs.docker.com/engine/extend/plugins/","Entrypoint":["/usr/bin/sample-volume-plugin","/data"],"Env":[{"Description":"If set, prints debug messages","Name":"DEBUG","Settable":"","Value":"0"}],"Interface":{"Socket":"plugins.sock","Types":["docker.volumedriver/1.0"]},"Linux":{"AllowAllDevices":false,"Capabilities":"","Devices":""},"Mounts":"","Network":{"Type":""},"PropagatedMount":"/data","User":{},"WorkDir":""},"Id":"5724e2c8652da337ab2eedd19fc6fc0ec908e4bd907c7421bf6a8dfc70c4c078","Name":"tiborvass/sample-volume-plugin","Settings":{"Args":"","Devices":"","Env":["DEBUG=0"]},"Tag":"latest"}},"PluginDevice":{"type":"object","required":["Name","Description","Settable","Path"],"properties":{"Description":{"type":"string","x-nullable":false},"Name":{"type":"string","x-nullable":false},"Path":{"type":"string"},"Settable":{"type":"array","items":{"type":"string"}}},"x-nullable":false},"PluginEnv":{"type":"object","required":["Name","Description","Settable","Value"],"properties":{"Description":{"type":"string","x-nullable":false},"Name":{"type":"string","x-nullable":false},"Settable":{"type":"array","items":{"type":"string"}},"Value":{"type":"string"}},"x-nullable":false},"PluginInterfaceType":{"type":"object","required":["Prefix","Capability","Version"],"properties":{"Capability":{"type":"string","x-nullable":false},"Prefix":{"type":"string","x-nullable":false},"Version":{"type":"string","x-nullable":false}},"x-nullable":false},"PluginMount":{"type":"object","required":["Name","Description","Settable","Source","Destination","Type","Options"],"properties":{"Description":{"type":"string","x-nullable":false},"Destination":{"type":"string","x-nullable":false},"Name":{"type":"string","x-nullable":false},"Options":{"type":"array","items":{"type":"string"}},"Settable":{"type":"array","items":{"type":"string"}},"Source":{"type":"string"},"Type":{"type":"string","x-nullable":false}},"x-nullable":false},"Port":{"description":"An open port on a container","type":"object","required":["PrivatePort","Type"],"properties":{"IP":{"type":"string","format":"ip-address"},"PrivatePort":{"description":"Port on the container","type":"integer","format":"uint16","x-nullable":false},"PublicPort":{"description":"Port exposed on the host","type":"integer","format":"uint16"},"Type":{"type":"string","enum":["tcp","udp"],"x-nullable":false}},"example":{"PrivatePort":8080,"PublicPort":80,"Type":"tcp"}},"ProcessConfig":{"type":"object","properties":{"arguments":{"type":"array","items":{"type":"string"}},"entrypoint":{"type":"string"},"privileged":{"type":"boolean"},"tty":{"type":"boolean"},"user":{"type":"string"}}},"ProgressDetail":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"integer"}}},"PushImageInfo":{"type":"object","properties":{"error":{"type":"string"},"progress":{"type":"string"},"progressDetail":{"$ref":"#/definitions/ProgressDetail"},"status":{"type":"string"}}},"Resources":{"description":"A container's resources (cgroups config, ulimits, etc)","type":"object","properties":{"BlkioDeviceReadBps":{"description":"Limit read rate (bytes per second) from a device, in the form `[{\"Path\": \"device_path\", \"Rate\": rate}]`.\n","type":"array","items":{"$ref":"#/definitions/ThrottleDevice"}},"BlkioDeviceReadIOps":{"description":"Limit read rate (IO per second) from a device, in the form `[{\"Path\": \"device_path\", \"Rate\": rate}]`.\n","type":"array","items":{"$ref":"#/definitions/ThrottleDevice"}},"BlkioDeviceWriteBps":{"description":"Limit write rate (bytes per second) to a device, in the form `[{\"Path\": \"device_path\", \"Rate\": rate}]`.\n","type":"array","items":{"$ref":"#/definitions/ThrottleDevice"}},"BlkioDeviceWriteIOps":{"description":"Limit write rate (IO per second) to a device, in the form `[{\"Path\": \"device_path\", \"Rate\": rate}]`.\n","type":"array","items":{"$ref":"#/definitions/ThrottleDevice"}},"BlkioWeight":{"description":"Block IO weight (relative weight).","type":"integer","maximum":1000,"minimum":0},"BlkioWeightDevice":{"description":"Block IO weight (relative device weight) in the form `[{\"Path\": \"device_path\", \"Weight\": weight}]`.\n","type":"array","items":{"type":"object","properties":{"Path":{"type":"string"},"Weight":{"type":"integer","minimum":0}}}},"CgroupParent":{"description":"Path to `cgroups` under which the container's `cgroup` is created. If the path is not absolute, the path is considered to be relative to the `cgroups` path of the init process. Cgroups are created if they do not already exist.","type":"string"},"CpuCount":{"description":"The number of usable CPUs (Windows only).\n\nOn Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last.\n","type":"integer","format":"int64"},"CpuPercent":{"description":"The usable percentage of the available CPUs (Windows only).\n\nOn Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last.\n","type":"integer","format":"int64"},"CpuPeriod":{"description":"The length of a CPU period in microseconds.","type":"integer","format":"int64"},"CpuQuota":{"description":"Microseconds of CPU time that the container can get in a CPU period.","type":"integer","format":"int64"},"CpuRealtimePeriod":{"description":"The length of a CPU real-time period in microseconds. Set to 0 to allocate no time allocated to real-time tasks.","type":"integer","format":"int64"},"CpuRealtimeRuntime":{"description":"The length of a CPU real-time runtime in microseconds. Set to 0 to allocate no time allocated to real-time tasks.","type":"integer","format":"int64"},"CpuShares":{"description":"An integer value representing this container's relative CPU weight versus other containers.","type":"integer"},"CpusetCpus":{"description":"CPUs in which to allow execution (e.g., `0-3`, `0,1`)","type":"string"},"CpusetMems":{"description":"Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only effective on NUMA systems.","type":"string"},"DeviceCgroupRules":{"description":"a list of cgroup rules to apply to the container","type":"array","items":{"type":"string","example":"c 13:* rwm"}},"Devices":{"description":"A list of devices to add to the container.","type":"array","items":{"$ref":"#/definitions/DeviceMapping"}},"DiskQuota":{"description":"Disk limit (in bytes).","type":"integer","format":"int64"},"IOMaximumBandwidth":{"description":"Maximum IO in bytes per second for the container system drive (Windows only)","type":"integer","format":"int64"},"IOMaximumIOps":{"description":"Maximum IOps for the container system drive (Windows only)","type":"integer","format":"int64"},"KernelMemory":{"description":"Kernel memory limit in bytes.","type":"integer","format":"int64"},"Memory":{"description":"Memory limit in bytes.","type":"integer","default":0},"MemoryReservation":{"description":"Memory soft limit in bytes.","type":"integer","format":"int64"},"MemorySwap":{"description":"Total memory limit (memory + swap). Set as `-1` to enable unlimited swap.","type":"integer","format":"int64"},"MemorySwappiness":{"description":"Tune a container's memory swappiness behavior. Accepts an integer between 0 and 100.","type":"integer","format":"int64","maximum":100,"minimum":0},"NanoCPUs":{"description":"CPU quota in units of 10\u003csup\u003e-9\u003c/sup\u003e CPUs.","type":"integer","format":"int64"},"OomKillDisable":{"description":"Disable OOM Killer for the container.","type":"boolean"},"PidsLimit":{"description":"Tune a container's pids limit. Set -1 for unlimited.","type":"integer","format":"int64"},"Ulimits":{"description":"A list of resource limits to set in the container. For example: `{\"Name\": \"nofile\", \"Soft\": 1024, \"Hard\": 2048}`\"\n","type":"array","items":{"type":"object","properties":{"Hard":{"description":"Hard limit","type":"integer"},"Name":{"description":"Name of ulimit","type":"string"},"Soft":{"description":"Soft limit","type":"integer"}}}}}},"RestartPolicy":{"description":"The behavior to apply when the container exits. The default is not to restart.\n\nAn ever increasing delay (double the previous delay, starting at 100ms) is added before each restart to prevent flooding the server.\n","type":"object","default":{},"properties":{"MaximumRetryCount":{"description":"If `on-failure` is used, the number of times to retry before giving up","type":"integer"},"Name":{"description":"- Empty string means not to restart\n- `always` Always restart\n- `unless-stopped` Restart always except when the user has manually stopped the container\n- `on-failure` Restart only when the container exit code is non-zero\n","type":"string","enum":["","always","unless-stopped","on-failure"]}}},"Secret":{"type":"object","properties":{"CreatedAt":{"type":"string","format":"dateTime"},"ID":{"type":"string"},"Spec":{"$ref":"#/definitions/SecretSpec"},"UpdatedAt":{"type":"string","format":"dateTime"},"Version":{"$ref":"#/definitions/ObjectVersion"}}},"SecretSpec":{"type":"object","properties":{"Data":{"description":"Base64-url-safe-encoded secret data","type":"array","items":{"type":"string"}},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"User-defined name of the secret.","type":"string"}}},"Service":{"type":"object","properties":{"CreatedAt":{"type":"string","format":"dateTime"},"Endpoint":{"type":"object","properties":{"Ports":{"type":"array","items":{"$ref":"#/definitions/EndpointPortConfig"}},"Spec":{"$ref":"#/definitions/EndpointSpec"},"VirtualIPs":{"type":"array","items":{"type":"object","properties":{"Addr":{"type":"string"},"NetworkID":{"type":"string"}}}}}},"ID":{"type":"string"},"Spec":{"$ref":"#/definitions/ServiceSpec"},"UpdateStatus":{"description":"The status of a service update.","type":"object","properties":{"CompletedAt":{"type":"string","format":"dateTime"},"Message":{"type":"string"},"StartedAt":{"type":"string","format":"dateTime"},"State":{"type":"string","enum":["updating","paused","completed"]}}},"UpdatedAt":{"type":"string","format":"dateTime"},"Version":{"$ref":"#/definitions/ObjectVersion"}},"example":{"CreatedAt":"2016-06-07T21:05:51.880065305Z","Endpoint":{"Ports":[{"Protocol":"tcp","PublishedPort":30001,"TargetPort":6379}],"Spec":{"Mode":"vip","Ports":[{"Protocol":"tcp","PublishedPort":30001,"TargetPort":6379}]},"VirtualIPs":[{"Addr":"10.255.0.2/16","NetworkID":"4qvuz4ko70xaltuqbt8956gd1"},{"Addr":"10.255.0.3/16","NetworkID":"4qvuz4ko70xaltuqbt8956gd1"}]},"ID":"9mnpnzenvg8p8tdbtq4wvbkcz","Spec":{"EndpointSpec":{"Mode":"vip","Ports":[{"Protocol":"tcp","PublishedPort":30001,"TargetPort":6379}]},"Mode":{"Replicated":{"Replicas":1}},"Name":"hopeful_cori","RollbackConfig":{"Delay":1000000000,"FailureAction":"pause","MaxFailureRatio":0.15,"Monitor":15000000000,"Parallelism":1},"TaskTemplate":{"ContainerSpec":{"Image":"redis"},"ForceUpdate":0,"Placement":{},"Resources":{"Limits":{},"Reservations":{}},"RestartPolicy":{"Condition":"any","MaxAttempts":0}},"UpdateConfig":{"Delay":1000000000,"FailureAction":"pause","MaxFailureRatio":0.15,"Monitor":15000000000,"Parallelism":1}},"UpdatedAt":"2016-06-07T21:07:29.962229872Z","Version":{"Index":19}}},"ServiceSpec":{"description":"User modifiable configuration for a service.","properties":{"EndpointSpec":{"$ref":"#/definitions/EndpointSpec"},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Mode":{"description":"Scheduling mode for the service.","type":"object","properties":{"Global":{"type":"object"},"Replicated":{"type":"object","properties":{"Replicas":{"type":"integer","format":"int64"}}}}},"Name":{"description":"Name of the service.","type":"string"},"Networks":{"description":"Array of network names or IDs to attach the service to.","type":"array","items":{"type":"object","properties":{"Aliases":{"type":"array","items":{"type":"string"}},"Target":{"type":"string"}}}},"RollbackConfig":{"description":"Specification for the rollback strategy of the service.","type":"object","properties":{"Delay":{"description":"Amount of time between rollback iterations, in nanoseconds.","type":"integer","format":"int64"},"FailureAction":{"description":"Action to take if an rolled back task fails to run, or stops running during the rollback.","type":"string","enum":["continue","pause"]},"MaxFailureRatio":{"description":"The fraction of tasks that may fail during a rollback before the failure action is invoked, specified as a floating point number between 0 and 1.","type":"number","default":0},"Monitor":{"description":"Amount of time to monitor each rolled back task for failures, in nanoseconds.","type":"integer","format":"int64"},"Order":{"description":"The order of operations when rolling back a task. Either the old task is shut down before the new task is started, or the new task is started before the old task is shut down.","type":"string","enum":["stop-first","start-first"]},"Parallelism":{"description":"Maximum number of tasks to be rolled back in one iteration (0 means unlimited parallelism).","type":"integer","format":"int64"}}},"TaskTemplate":{"$ref":"#/definitions/TaskSpec"},"UpdateConfig":{"description":"Specification for the update strategy of the service.","type":"object","properties":{"Delay":{"description":"Amount of time between updates, in nanoseconds.","type":"integer","format":"int64"},"FailureAction":{"description":"Action to take if an updated task fails to run, or stops running during the update.","type":"string","enum":["continue","pause","rollback"]},"MaxFailureRatio":{"description":"The fraction of tasks that may fail during an update before the failure action is invoked, specified as a floating point number between 0 and 1.","type":"number","default":0},"Monitor":{"description":"Amount of time to monitor each updated task for failures, in nanoseconds.","type":"integer","format":"int64"},"Order":{"description":"The order of operations when rolling out an updated task. Either the old task is shut down before the new task is started, or the new task is started before the old task is shut down.","type":"string","enum":["stop-first","start-first"]},"Parallelism":{"description":"Maximum number of tasks to be updated in one iteration (0 means unlimited parallelism).","type":"integer","format":"int64"}}}}},"ServiceUpdateResponse":{"type":"object","properties":{"Warnings":{"description":"Optional warning messages","type":"array","items":{"type":"string"}}},"example":{"Warning":"unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found"}},"SwarmSpec":{"description":"User modifiable swarm configuration.","type":"object","properties":{"CAConfig":{"description":"CA configuration.","type":"object","properties":{"ExternalCAs":{"description":"Configuration for forwarding signing requests to an external certificate authority.","type":"array","items":{"type":"object","properties":{"CACert":{"description":"The root CA certificate (in PEM format) this external CA uses to issue TLS certificates (assumed to be to the current swarm root CA certificate if not provided).","type":"string"},"Options":{"description":"An object with key/value pairs that are interpreted as protocol-specific options for the external CA driver.","type":"object","additionalProperties":{"type":"string"}},"Protocol":{"description":"Protocol for communication with the external CA (currently only `cfssl` is supported).","type":"string","default":"cfssl","enum":["cfssl"]},"URL":{"description":"URL where certificate signing requests should be sent.","type":"string"}}}},"ForceRotate":{"description":"An integer whose purpose is to force swarm to generate a new signing CA certificate and key, if none have been specified in `SigningCACert` and `SigningCAKey`"},"NodeCertExpiry":{"description":"The duration node certificates are issued for.","type":"integer","format":"int64"},"SigningCACert":{"description":"The desired signing CA certificate for all swarm node TLS leaf certificates, in PEM format.","type":"string"},"SigningCAKey":{"description":"The desired signing CA key for all swarm node TLS leaf certificates, in PEM format.","type":"string"}}},"Dispatcher":{"description":"Dispatcher configuration.","type":"object","properties":{"HeartbeatPeriod":{"description":"The delay for an agent to send a heartbeat to the dispatcher.","type":"integer","format":"int64"}}},"EncryptionConfig":{"description":"Parameters related to encryption-at-rest.","type":"object","properties":{"AutoLockManagers":{"description":"If set, generate a key and use it to lock data stored on the managers.","type":"boolean"}}},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"Name of the swarm.","type":"string"},"Orchestration":{"description":"Orchestration configuration.","type":"object","properties":{"TaskHistoryRetentionLimit":{"description":"The number of historic tasks to keep per instance or node. If negative, never remove completed or failed tasks.","type":"integer","format":"int64"}}},"Raft":{"description":"Raft configuration.","type":"object","properties":{"ElectionTick":{"description":"The number of ticks that a follower will wait for a message from the leader before becoming a candidate and starting an election. `ElectionTick` must be greater than `HeartbeatTick`.\n\nA tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.\n","type":"integer"},"HeartbeatTick":{"description":"The number of ticks between heartbeats. Every HeartbeatTick ticks, the leader will send a heartbeat to the followers.\n\nA tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.\n","type":"integer"},"KeepOldSnapshots":{"description":"The number of snapshots to keep beyond the current snapshot.","type":"integer","format":"int64"},"LogEntriesForSlowFollowers":{"description":"The number of log entries to keep around to sync up slow followers after a snapshot is created.","type":"integer","format":"int64"},"SnapshotInterval":{"description":"The number of log entries between snapshots.","type":"integer","format":"int64"}}},"TaskDefaults":{"description":"Defaults for creating tasks in this cluster.","type":"object","properties":{"LogDriver":{"description":"The log driver to use for tasks created in the orchestrator if unspecified by a service.\n\nUpdating this value will only have an affect on new tasks. Old tasks will continue use their previously configured log driver until recreated.\n","type":"object","properties":{"Name":{"type":"string"},"Options":{"type":"object","additionalProperties":{"type":"string"}}}}}}},"example":{"CAConfig":{"NodeCertExpiry":7776000000000000},"Dispatcher":{"HeartbeatPeriod":5000000000},"EncryptionConfig":{"AutoLockManagers":false},"JoinTokens":{"Manager":"SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2","Worker":"SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx"},"Name":"default","Orchestration":{"TaskHistoryRetentionLimit":10},"Raft":{"ElectionTick":3,"HeartbeatTick":1,"LogEntriesForSlowFollowers":500,"SnapshotInterval":10000}}},"TLSInfo":{"description":"Information about the issuer of leaf TLS certificates and the trusted root CA certificate","type":"object","properties":{"CertIssuerPublicKey":{"description":"The base64-url-safe-encoded raw public key bytes of the issuer","type":"string"},"CertIssuerSubject":{"description":"The base64-url-safe-encoded raw subject bytes of the issuer","type":"string"},"TrustRoot":{"description":"The root CA certificate(s) that are used to validate leaf TLS certificates","type":"string"}},"example":{"CertIssuerPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A==","CertIssuerSubject":"MBMxETAPBgNVBAMTCHN3YXJtLWNh","TrustRoot":"-----BEGIN CERTIFICATE-----\nMIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw\nEzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0\nMzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH\nA0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf\n3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB\nAf8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO\nPQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz\npxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H\n-----END CERTIFICATE-----\n"}},"Task":{"type":"object","properties":{"CreatedAt":{"type":"string","format":"dateTime"},"DesiredState":{"$ref":"#/definitions/TaskState"},"ID":{"description":"The ID of the task.","type":"string"},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"Name of the task.","type":"string"},"NodeID":{"description":"The ID of the node that this task is on.","type":"string"},"ServiceID":{"description":"The ID of the service this task is part of.","type":"string"},"Slot":{"type":"integer"},"Spec":{"$ref":"#/definitions/TaskSpec"},"Status":{"type":"object","properties":{"ContainerStatus":{"type":"object","properties":{"ContainerID":{"type":"string"},"ExitCode":{"type":"integer"},"PID":{"type":"integer"}}},"Err":{"type":"string"},"Message":{"type":"string"},"State":{"$ref":"#/definitions/TaskState"},"Timestamp":{"type":"string","format":"dateTime"}}},"UpdatedAt":{"type":"string","format":"dateTime"},"Version":{"$ref":"#/definitions/ObjectVersion"}},"example":{"CreatedAt":"2016-06-07T21:07:31.171892745Z","DesiredState":"running","ID":"0kzzo1i0y4jz6027t0k7aezc7","NetworksAttachments":[{"Addresses":["10.255.0.10/16"],"Network":{"CreatedAt":"2016-06-07T20:31:11.912919752Z","DriverState":{"Name":"overlay","Options":{"com.docker.network.driver.overlay.vxlanid_list":"256"}},"ID":"4qvuz4ko70xaltuqbt8956gd1","IPAMOptions":{"Configs":[{"Gateway":"10.255.0.1","Subnet":"10.255.0.0/16"}],"Driver":{"Name":"default"}},"Spec":{"DriverConfiguration":{},"IPAMOptions":{"Configs":[{"Gateway":"10.255.0.1","Subnet":"10.255.0.0/16"}],"Driver":{}},"Labels":{"com.docker.swarm.internal":"true"},"Name":"ingress"},"UpdatedAt":"2016-06-07T21:07:29.955277358Z","Version":{"Index":18}}}],"NodeID":"60gvrl6tm78dmak4yl7srz94v","ServiceID":"9mnpnzenvg8p8tdbtq4wvbkcz","Slot":1,"Spec":{"ContainerSpec":{"Image":"redis"},"Placement":{},"Resources":{"Limits":{},"Reservations":{}},"RestartPolicy":{"Condition":"any","MaxAttempts":0}},"Status":{"ContainerStatus":{"ContainerID":"e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035","PID":677},"Message":"started","State":"running","Timestamp":"2016-06-07T21:07:31.290032978Z"},"UpdatedAt":"2016-06-07T21:07:31.376370513Z","Version":{"Index":71}}},"TaskSpec":{"description":"User modifiable task configuration.","type":"object","properties":{"ContainerSpec":{"type":"object","properties":{"Args":{"description":"Arguments to the command.","type":"array","items":{"type":"string"}},"Command":{"description":"The command to be run in the image.","type":"array","items":{"type":"string"}},"Configs":{"description":"Configs contains references to zero or more configs that will be exposed to the service.","type":"array","items":{"type":"object","properties":{"ConfigID":{"description":"ConfigID represents the ID of the specific config that we're referencing.","type":"string"},"ConfigName":{"description":"ConfigName is the name of the config that this references, but this is just provided for\nlookup/display purposes. The config in the reference will be identified by its ID.\n","type":"string"},"File":{"description":"File represents a specific target that is backed by a file.","type":"object","properties":{"GID":{"description":"GID represents the file GID.","type":"string"},"Mode":{"description":"Mode represents the FileMode of the file.","type":"integer","format":"uint32"},"Name":{"description":"Name represents the final filename in the filesystem.","type":"string"},"UID":{"description":"UID represents the file UID.","type":"string"}}}}}},"DNSConfig":{"description":"Specification for DNS related configurations in resolver configuration file (`resolv.conf`).","type":"object","properties":{"Nameservers":{"description":"The IP addresses of the name servers.","type":"array","items":{"type":"string"}},"Options":{"description":"A list of internal resolver variables to be modified (e.g., `debug`, `ndots:3`, etc.).","type":"array","items":{"type":"string"}},"Search":{"description":"A search list for host-name lookup.","type":"array","items":{"type":"string"}}}},"Dir":{"description":"The working directory for commands to run in.","type":"string"},"Env":{"description":"A list of environment variables in the form `VAR=value`.","type":"array","items":{"type":"string"}},"Groups":{"description":"A list of additional groups that the container process will run as.","type":"array","items":{"type":"string"}},"HealthCheck":{"$ref":"#/definitions/HealthConfig"},"Hostname":{"description":"The hostname to use for the container, as a valid RFC 1123 hostname.","type":"string"},"Hosts":{"description":"A list of hostnames/IP mappings to add to the container's `/etc/hosts` file.\nThe format of extra hosts on swarmkit is specified in:\nhttp://man7.org/linux/man-pages/man5/hosts.5.html\n IP_address canonical_hostname [aliases...]\n","type":"array","items":{"type":"string"}},"Image":{"description":"The image name to use for the container.","type":"string"},"Labels":{"description":"User-defined key/value data.","type":"object","additionalProperties":{"type":"string"}},"Mounts":{"description":"Specification for mounts to be added to containers created as part of the service.","type":"array","items":{"$ref":"#/definitions/Mount"}},"OpenStdin":{"description":"Open `stdin`","type":"boolean"},"Privileges":{"description":"Security options for the container","type":"object","properties":{"CredentialSpec":{"description":"CredentialSpec for managed service account (Windows only)","type":"object","properties":{"File":{"description":"Load credential spec from this file. The file is read by the daemon, and must be present in the\n`CredentialSpecs` subdirectory in the docker data directory, which defaults to\n`C:\\ProgramData\\Docker\\` on Windows.\n\nFor example, specifying `spec.json` loads `C:\\ProgramData\\Docker\\CredentialSpecs\\spec.json`.\n\n\u003cp\u003e\u003cbr /\u003e\u003c/p\u003e\n\n\u003e **Note**: `CredentialSpec.File` and `CredentialSpec.Registry` are mutually exclusive.\n","type":"string"},"Registry":{"description":"Load credential spec from this value in the Windows registry. The specified registry value must be\nlocated in:\n\n`HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Virtualization\\Containers\\CredentialSpecs`\n\n\u003cp\u003e\u003cbr /\u003e\u003c/p\u003e\n\n\n\u003e **Note**: `CredentialSpec.File` and `CredentialSpec.Registry` are mutually exclusive.\n","type":"string"}}},"SELinuxContext":{"description":"SELinux labels of the container","type":"object","properties":{"Disable":{"description":"Disable SELinux","type":"boolean"},"Level":{"description":"SELinux level label","type":"string"},"Role":{"description":"SELinux role label","type":"string"},"Type":{"description":"SELinux type label","type":"string"},"User":{"description":"SELinux user label","type":"string"}}}}},"ReadOnly":{"description":"Mount the container's root filesystem as read only.","type":"boolean"},"Secrets":{"description":"Secrets contains references to zero or more secrets that will be exposed to the service.","type":"array","items":{"type":"object","properties":{"File":{"description":"File represents a specific target that is backed by a file.","type":"object","properties":{"GID":{"description":"GID represents the file GID.","type":"string"},"Mode":{"description":"Mode represents the FileMode of the file.","type":"integer","format":"uint32"},"Name":{"description":"Name represents the final filename in the filesystem.","type":"string"},"UID":{"description":"UID represents the file UID.","type":"string"}}},"SecretID":{"description":"SecretID represents the ID of the specific secret that we're referencing.","type":"string"},"SecretName":{"description":"SecretName is the name of the secret that this references, but this is just provided for\nlookup/display purposes. The secret in the reference will be identified by its ID.\n","type":"string"}}}},"StopGracePeriod":{"description":"Amount of time to wait for the container to terminate before forcefully killing it.","type":"integer","format":"int64"},"StopSignal":{"description":"Signal to stop the container.","type":"string"},"TTY":{"description":"Whether a pseudo-TTY should be allocated.","type":"boolean"},"User":{"description":"The user inside the container.","type":"string"}}},"ForceUpdate":{"description":"A counter that triggers an update even if no relevant parameters have been changed.","type":"integer"},"LogDriver":{"description":"Specifies the log driver to use for tasks created from this spec. If not present, the default one for the swarm will be used, finally falling back to the engine default if not specified.","type":"object","properties":{"Name":{"type":"string"},"Options":{"type":"object","additionalProperties":{"type":"string"}}}},"Networks":{"type":"array","items":{"type":"object","properties":{"Aliases":{"type":"array","items":{"type":"string"}},"Target":{"type":"string"}}}},"Placement":{"type":"object","properties":{"Constraints":{"description":"An array of constraints.","type":"array","items":{"type":"string"}},"Platforms":{"description":"An array of supported platforms.","type":"array","items":{"type":"object","properties":{"Architecture":{"type":"string"},"OS":{"type":"string"}}}},"Preferences":{"description":"Preferences provide a way to make the scheduler aware of factors such as topology. They are provided in order from highest to lowest precedence.","type":"array","items":{"type":"object","properties":{"Spread":{"type":"object","properties":{"SpreadDescriptor":{"description":"label descriptor, such as engine.labels.az","type":"string"}}}}}}}},"Resources":{"description":"Resource requirements which apply to each individual container created as part of the service.","type":"object","properties":{"Limits":{"description":"Define resources limits.","type":"object","properties":{"MemoryBytes":{"description":"Memory limit in Bytes.","type":"integer","format":"int64"},"NanoCPUs":{"description":"CPU limit in units of 10\u003csup\u003e-9\u003c/sup\u003e CPU shares.","type":"integer","format":"int64"}}},"Reservation":{"description":"Define resources reservation.","properties":{"MemoryBytes":{"description":"Memory reservation in Bytes.","type":"integer","format":"int64"},"NanoCPUs":{"description":"CPU reservation in units of 10\u003csup\u003e-9\u003c/sup\u003e CPU shares.","type":"integer","format":"int64"}}}}},"RestartPolicy":{"description":"Specification for the restart policy which applies to containers created as part of this service.","type":"object","properties":{"Condition":{"description":"Condition for restart.","type":"string","enum":["none","on-failure","any"]},"Delay":{"description":"Delay between restart attempts.","type":"integer","format":"int64"},"MaxAttempts":{"description":"Maximum attempts to restart a given container before giving up (default value is 0, which is ignored).","type":"integer","format":"int64","default":0},"Window":{"description":"Windows is the time window used to evaluate the restart policy (default value is 0, which is unbounded).","type":"integer","format":"int64","default":0}}},"Runtime":{"description":"Runtime is the type of runtime specified for the task executor.","type":"string"}}},"TaskState":{"type":"string","enum":["new","allocated","pending","assigned","accepted","preparing","ready","starting","running","complete","shutdown","failed","rejected"]},"ThrottleDevice":{"type":"object","properties":{"Path":{"description":"Device path","type":"string"},"Rate":{"description":"Rate","type":"integer","format":"int64","minimum":0}}},"Volume":{"type":"object","required":["Name","Driver","Mountpoint","Labels","Scope","Options"],"properties":{"Driver":{"description":"Name of the volume driver used by the volume.","type":"string","x-nullable":false},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"},"x-nullable":false},"Mountpoint":{"description":"Mount path of the volume on the host.","type":"string","x-nullable":false},"Name":{"description":"Name of the volume.","type":"string","x-nullable":false},"Options":{"description":"The driver specific options used when creating the volume.","type":"object","additionalProperties":{"type":"string"}},"Scope":{"description":"The level at which the volume exists. Either `global` for cluster-wide, or `local` for machine level.","type":"string","default":"local","enum":["local","global"],"x-nullable":false},"Status":{"description":"Low-level details about the volume, provided by the volume driver.\nDetails are returned as a map with key/value pairs:\n`{\"key\":\"value\",\"key2\":\"value2\"}`.\n\nThe `Status` field is optional, and is omitted if the volume driver\ndoes not support this feature.\n","type":"object","additionalProperties":{"type":"object"}},"UsageData":{"description":"Usage details about the volume. This information is used by the\n`GET /system/df` endpoint, and omitted in other endpoints.\n","type":"object","required":["Size","RefCount"],"properties":{"RefCount":{"description":"The number of containers referencing this volume. This field\nis set to `-1` if the reference-count is not available.\n","type":"integer","default":-1,"x-nullable":false},"Size":{"description":"Amount of disk space used by the volume (in bytes). This information\nis only available for volumes created with the `\"local\"` volume\ndriver. For volumes created with other volume drivers, this field\nis set to `-1` (\"not available\")\n","type":"integer","default":-1,"x-nullable":false}},"x-nullable":true}},"example":{"Driver":"custom","Labels":{"com.example.some-label":"some-value","com.example.some-other-label":"some-other-value"},"Mountpoint":"/var/lib/docker/volumes/tardis","Name":"tardis","Scope":"local","Status":{"hello":"world"}}},"authz.Collection":{"id":"authz.Collection","required":["name","path","id","parent_ids","label_constraints","legacylabelkey","legacylabelvalue","created_at","updated_at"],"properties":{"created_at":{"description":"When the collection was created","type":"string","format":"date-time"},"id":{"description":"A unique ID for this collection","type":"string"},"label_constraints":{"description":"A set of label constraints to be applied to any service or container created in this collection","type":"array","items":{"$ref":"#/definitions/authz.LabelConstraint"}},"legacylabelkey":{"description":"The key of the legacy authorization label for this collection","type":"string"},"legacylabelvalue":{"description":"The value of the legacy authorization label for this collection","type":"string"},"name":{"description":"The name of the collection","type":"string"},"parent_ids":{"description":"A list of collection IDs of parent collections","type":"array","items":{"type":"string"}},"path":{"description":"The full path of the collection","type":"string"},"updated_at":{"description":"When the collection was updated","type":"string","format":"date-time"}}},"authz.CollectionCreate":{"id":"authz.CollectionCreate","required":["name","parent_id","label_constraints","legacy_label_key","legacy_label_value"],"properties":{"label_constraints":{"type":"array","items":{"$ref":"#/definitions/authz.LabelConstraint"}},"legacy_label_key":{"type":"string"},"legacy_label_value":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"string"}}},"authz.CollectionCreateResponse":{"id":"authz.CollectionCreateResponse","required":["id"],"properties":{"id":{"type":"string"}}},"authz.CollectionID":{"id":"authz.CollectionID","required":["id"],"properties":{"id":{"type":"string"}}},"authz.CollectionUpdate":{"id":"authz.CollectionUpdate","required":["label_constraints"],"properties":{"label_constraints":{"type":"array","items":{"$ref":"#/definitions/authz.LabelConstraint"}}}},"authz.LabelConstraint":{"id":"authz.LabelConstraint","required":["type","label_key","label_value","equality"],"properties":{"equality":{"type":"boolean"},"label_key":{"type":"string"},"label_value":{"type":"string"},"type":{"type":"string"}}},"authz.RoleCreateResponse":{"id":"authz.RoleCreateResponse","required":["id"],"properties":{"id":{"description":"The ID of the newly created role","type":"string"}}},"errors.APIError":{"id":"errors.APIError","required":["code","message"],"properties":{"code":{"type":"string"},"detail":{"$ref":"#/definitions/errors.APIError.detail"},"message":{"type":"string"}}},"errors.APIError.detail":{"id":"errors.APIError.detail"},"forms.BulkOperation":{"id":"forms.BulkOperation","required":["op"],"properties":{"op":{"description":"The operation to perform","type":"string"},"ref":{"description":"An identifier referencing the object on which to perform the operation, if applicable","type":"string"},"value":{"description":"The form value to submit for the operation, if applicable","type":"string"}}},"forms.BulkOperations":{"id":"forms.BulkOperations","required":["operations"],"properties":{"operations":{"type":"array","items":{"$ref":"#/definitions/forms.BulkOperation"}}}},"forms.Certificate":{"id":"forms.Certificate","required":["label","cert"],"properties":{"cert":{"description":"Encoded PEM for the cert","type":"string"},"label":{"description":"Label for the certificate","type":"string"}}},"forms.ChangePassword":{"id":"forms.ChangePassword","required":["oldPassword","newPassword"],"properties":{"newPassword":{"description":"User's new password","type":"string"},"oldPassword":{"description":"User's current password. Required if the client is changing their own password. May be omitted if an admin is changing another user's password","type":"string"}}},"forms.CreateAccount":{"id":"forms.CreateAccount","required":["name","fullName","searchLDAP"],"properties":{"fullName":{"description":"Full name of account","type":"string"},"isActive":{"description":"Whether the user is active and can login (users only)","type":"boolean"},"isAdmin":{"description":"Whether the user is an admin (users only)","type":"boolean"},"isOrg":{"description":"Whether the account is an organization","type":"boolean"},"name":{"description":"Name of account","type":"string"},"password":{"description":"Password for the user (users only)","type":"string"},"searchLDAP":{"type":"boolean"}}},"forms.CreateAccountPublicKey":{"id":"forms.CreateAccountPublicKey","required":["publicKey"],"properties":{"certificates":{"description":"certificates for the public key","type":"array","items":{"$ref":"#/definitions/forms.Certificate"}},"label":{"description":"Label or description for the key","type":"string"},"publicKey":{"description":"Encoded PEM for the public key","type":"string"}}},"forms.CreateTeam":{"id":"forms.CreateTeam","required":["name"],"properties":{"description":{"description":"Description of the team","type":"string"},"name":{"description":"Name of the team","type":"string"}}},"forms.Login":{"id":"forms.Login","required":["username","password"],"properties":{"password":{"description":"the password for the user account","type":"string"},"username":{"description":"the username of the account to login as","type":"string"}}},"forms.MemberSyncOpts":{"id":"forms.MemberSyncOpts","required":["enableSync","selectGroupMembers","groupDN","groupMemberAttr","searchBaseDN","searchScopeSubtree","searchFilter"],"properties":{"enableSync":{"description":"Whether to enable LDAP syncing. If false, all other fields are ignored","type":"boolean"},"groupDN":{"description":"The distinguished name of the LDAP group. Required if selectGroupMembers is true, ignored otherwise","type":"string"},"groupMemberAttr":{"description":"The name of the LDAP group entry attribute which corresponds to distinguished names of members. Required if selectGroupMembers is true, ignored otherwise","type":"string"},"searchBaseDN":{"description":"The distinguished name of the element from which the LDAP server will search for users. Required if selectGroupMembers is false, ignored otherwise","type":"string"},"searchFilter":{"description":"The LDAP search filter used to select users if selectGroupMembers is false, may be left blank","type":"string"},"searchScopeSubtree":{"description":"Whether to search for users in the entire subtree of the base DN or to only search one level under the base DN (if false). Required if selectGroupMembers is false, ignored otherwise","type":"boolean"},"selectGroupMembers":{"description":"Whether to sync using a group DN and member attribute selection or to use a search filter (if false)","type":"boolean"}}},"forms.SetMembership":{"id":"forms.SetMembership","properties":{"isAdmin":{"description":"Whether the member should be an admin of the organization or team (default false), unchanged if nil or omitted","type":"boolean"}}},"forms.UpdateAccount":{"id":"forms.UpdateAccount","properties":{"fullName":{"description":"Full name of account, unchanged if null or omitted","type":"string"},"isActive":{"description":"Whether the user is active and can login (users only), unchanged if null or omitted","type":"boolean"},"isAdmin":{"description":"Whether the user is an admin (users only), unchanged if null or omitted","type":"boolean"}}},"forms.UpdateAccountPublicKey":{"id":"forms.UpdateAccountPublicKey","properties":{"certificates":{"description":"certificates for the public key","type":"array","items":{"$ref":"#/definitions/forms.Certificate"}},"label":{"type":"string"}}},"forms.UpdateTeam":{"id":"forms.UpdateTeam","properties":{"description":{"description":"Description of the team, unchanged if nil or omitted","type":"string"},"name":{"description":"Name of the team, unchanged if nil or omitted","type":"string"}}},"responses.Account":{"id":"responses.Account","required":["name","id","fullName","isOrg","isImported"],"properties":{"fullName":{"description":"Full Name of the account","type":"string"},"id":{"description":"ID of the account","type":"string"},"isActive":{"description":"Whether the user is active and can login (users only)","type":"boolean"},"isAdmin":{"description":"Whether the user is a system admin (users only)","type":"boolean"},"isImported":{"type":"boolean"},"isOrg":{"description":"Whether the account is an organization (or user)","type":"boolean"},"membersCount":{"description":"The number of members of the organization","type":"integer","format":"int32"},"name":{"description":"Name of the account","type":"string"}}},"responses.AccountPublicKey":{"id":"responses.AccountPublicKey","required":["id","accountID","publicKey","label"],"properties":{"accountID":{"description":"the ID of the account","type":"string"},"certificates":{"description":"certificates for the public key","type":"array","items":{"$ref":"#/definitions/responses.Certificate"}},"id":{"description":"the hash of the public key's DER bytes","type":"string"},"label":{"description":"the label or description for the key","type":"string"},"publicKey":{"description":"the encoded PEM of the public key","type":"string"}}},"responses.AccountPublicKeys":{"id":"responses.AccountPublicKeys","required":["accountPublicKeys"],"properties":{"accountPublicKeys":{"type":"array","items":{"$ref":"#/definitions/responses.AccountPublicKey"}}}},"responses.Accounts":{"id":"responses.Accounts","required":["accounts"],"properties":{"accounts":{"type":"array","items":{"$ref":"#/definitions/responses.Account"}}}},"responses.BulkResult":{"id":"responses.BulkResult","required":["op","success"],"properties":{"error":{"description":"If not successful, the error encountered when performing the operation on this resource","$ref":"#/definitions/errors.APIError"},"op":{"description":"The operation which was perfomed","type":"string"},"ref":{"description":"The corresponding identifier in the bulk operation request","type":"string"},"success":{"description":"Whether the bulk operation was successful for this resource","type":"boolean"}}},"responses.BulkResults":{"id":"responses.BulkResults","required":["results"],"properties":{"results":{"description":"List of results for the bulk operation. The index of a bulk result corresponds to the index of the resource in the bulk request if result identifiers are omitted","type":"array","items":{"$ref":"#/definitions/responses.BulkResult"}}}},"responses.Certificate":{"id":"responses.Certificate","required":["label","cert"],"properties":{"cert":{"description":"Encoded PEM for the cert","type":"string"},"label":{"description":"Label for the certificate","type":"string"}}},"responses.Grant":{"id":"responses.Grant","required":["subjectID","objectID","roleID"],"properties":{"objectID":{"description":"ID of the object managed by the service","type":"string"},"roleID":{"description":"ID of the role managed by the service","type":"string"},"subjectID":{"description":"ID of the subject of this grant","type":"string"}}},"responses.GrantSubject":{"id":"responses.GrantSubject","required":["id","subject_type"],"properties":{"account":{"description":"The account associated with this subject, if any","$ref":"#/definitions/responses.Account"},"id":{"description":"ID of this subject","type":"string"},"subject_type":{"description":"The type of this subject (anonymous, authenticated, user, team, org)","type":"string"},"team":{"description":"The team associated with this subject, if any","$ref":"#/definitions/responses.Team"}}},"responses.Grants":{"id":"responses.Grants","required":["grants","subjects"],"properties":{"grants":{"type":"array","items":{"$ref":"#/definitions/responses.Grant"}},"subjects":{"type":"array","items":{"$ref":"#/definitions/responses.GrantSubject"}}}},"responses.LoginSession":{"id":"responses.LoginSession","required":["account","sessionToken"],"properties":{"account":{"description":"the authenticated user account","$ref":"#/definitions/responses.Account"},"sessionToken":{"description":"the session token created by the login","type":"string"}}},"responses.Member":{"id":"responses.Member","required":["member","isAdmin"],"properties":{"isAdmin":{"description":"Whether the member is an admin of the organization or team","type":"boolean"},"member":{"description":"The user which is a member of the organization or team","$ref":"#/definitions/responses.Account"}}},"responses.MemberOrg":{"id":"responses.MemberOrg","required":["org","isAdmin"],"properties":{"isAdmin":{"description":"Whether the user is an admin of the organization","type":"boolean"},"org":{"description":"The organization which the user is a member of","$ref":"#/definitions/responses.Account"}}},"responses.MemberOrgs":{"id":"responses.MemberOrgs","required":["memberOrgs"],"properties":{"memberOrgs":{"type":"array","items":{"$ref":"#/definitions/responses.MemberOrg"}}}},"responses.MemberSyncOpts":{"id":"responses.MemberSyncOpts","required":["enableSync","selectGroupMembers","groupDN","groupMemberAttr","searchBaseDN","searchScopeSubtree","searchFilter"],"properties":{"enableSync":{"description":"Whether to enable LDAP syncing. If false, all other fields are ignored","type":"boolean"},"groupDN":{"description":"The distinguished name of the LDAP group. Applicable only if selectGroupMembers is true, ignored otherwise","type":"string"},"groupMemberAttr":{"description":"The name of the LDAP group entry attribute which corresponds to distinguished names of members. Applicable only if selectGroupMembers is true, ignored otherwise","type":"string"},"searchBaseDN":{"description":"The distinguished name of the element from which the LDAP server will search for users. Applicable only if selectGroupMembers is false, ignored otherwise","type":"string"},"searchFilter":{"description":"The LDAP search filter used to select users if selectGroupMembers is false, may be left blank","type":"string"},"searchScopeSubtree":{"description":"Whether to search for users in the entire subtree of the base DN or to only search one level under the base DN (if false). Applicable only if selectGroupMembers is false, ignored otherwise","type":"boolean"},"selectGroupMembers":{"description":"Whether to sync using a group DN and member attribute selection or to use a search filter (if false)","type":"boolean"}}},"responses.MemberTeam":{"id":"responses.MemberTeam","required":["team","isAdmin"],"properties":{"isAdmin":{"description":"Whether the user is an admin of the team","type":"boolean"},"team":{"description":"The team which the user is a member of","$ref":"#/definitions/responses.Team"}}},"responses.MemberTeams":{"id":"responses.MemberTeams","required":["memberTeams"],"properties":{"memberTeams":{"type":"array","items":{"$ref":"#/definitions/responses.MemberTeam"}}}},"responses.Members":{"id":"responses.Members","required":["members"],"properties":{"members":{"type":"array","items":{"$ref":"#/definitions/responses.Member"}}}},"responses.Team":{"id":"responses.Team","required":["orgID","name","id","description","membersCount"],"properties":{"description":{"description":"Description of the team","type":"string"},"id":{"description":"ID of the team","type":"string"},"membersCount":{"description":"The number of members of the team","type":"integer","format":"int32"},"name":{"description":"Name of the team","type":"string"},"orgID":{"description":"ID of the organizaiton to which this team belongs","type":"string"}}},"responses.Teams":{"id":"responses.Teams","required":["teams"],"properties":{"teams":{"type":"array","items":{"$ref":"#/definitions/responses.Team"}}}},"role.Role":{"id":"role.Role","required":["id","name","system_role","operations"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"operations":{"type":"object"},"system_role":{"type":"boolean"}}},"||authz.Collection":{"id":"||authz.Collection"},"||authz.RoleCreateResponse":{"id":"||authz.RoleCreateResponse"},"||role.Role":{"id":"||role.Role"}},"securityDefinitions":{"JWT":{"type":"apiKey","name":"Authorization","in":"header"}},"security":[{"JWT":[]}],"tags":[{"description":"Create and manage containers.\n","name":"Container","x-displayName":"Containers"},{"name":"Image","x-displayName":"Images"},{"description":"Networks are user-defined networks that containers can be attached to. See the [networking documentation](https://docs.docker.com/engine/userguide/networking/) for more information.\n","name":"Network","x-displayName":"Networks"},{"description":"Create and manage persistent storage that can be attached to containers.\n","name":"Volume","x-displayName":"Volumes"},{"description":"Run new commands inside running containers. See the [command-line reference](https://docs.docker.com/engine/reference/commandline/exec/) for more information.\n\nTo exec a command in a container, you first need to create an exec instance, then start it. These two API endpoints are wrapped up in a single command-line command, `docker exec`.\n","name":"Exec","x-displayName":"Exec"},{"description":"Engines can be clustered together in a swarm. See [the swarm mode documentation](https://docs.docker.com/engine/swarm/) for more information.\n","name":"Swarm","x-displayName":"Swarm"},{"description":"Nodes are instances of the Engine participating in a swarm. Swarm mode must be enabled for these endpoints to work.\n","name":"Node","x-displayName":"Nodes"},{"description":"Services are the definitions of tasks to run on a swarm. Swarm mode must be enabled for these endpoints to work.\n","name":"Service","x-displayName":"Services"},{"description":"A task is a container running on a swarm. It is the atomic scheduling unit of swarm. Swarm mode must be enabled for these endpoints to work.\n","name":"Task","x-displayName":"Tasks"},{"description":"Secrets are sensitive data that can be used by services. Swarm mode must be enabled for these endpoints to work.\n","name":"Secret","x-displayName":"Secrets"},{"name":"Plugin","x-displayName":"Plugins"},{"name":"System","x-displayName":"System"},{"description":"API endpoints which are specific to UCP","name":"UCP"}]}// JavaScript source code + {"swagger":"2.0","info":{"description":"The Universal Control Plane API is a REST API, available using HTTPS, that enables programmatic access to swarm resources that are managed by UCP. UCP exposes the full Docker Engine API, so you can extend your existing code with UCP features. The API is secured with role-based access control so that only authorized users can make changes and deploy applications to your Docker swarm.\n\nThe UCP API is accessible in the same IP addresses and domain names that you use to access the web UI. It's the same API that the UCP web UI uses, so everything you can do on the UCP web UI from your browser, you can also do programmatically.\n\nThe system manages swarm resources by using collections, which you access through the `/collection` endpoint. For example, `GET /defaultCollection/\u003cuserID\u003e` retrieves the default collection for a user. [Learn more about resource collections](https://www.docker.com/ddc-33).\n\n- The `/roles` endpoint lets you enumerate and create custom permissions for accessing collections.\n\n- The `/accounts` endpoint enables managing users, teams, and organizations.\n\n- The `/configs` endpoint gives you access to the swarm's configuration.","title":"UCP API Documentation","version":"1.30"},"paths":{"/_ping":{"get":{"description":"Check the health of a UCP manager.\nUse the `_ping` endpoint to check the health of a single UCP manager node. The UCP manager validates that all of its internal components are working, and it returns either 200, if all components are healthy, or 500, if any aren't healthy.\n\nIf you’re accessing the `_ping` endpoint through a load balancer, you have no way of knowing which UCP manager node isn't healthy, because any manager node may be serving your request. Make sure you’re connecting directly to the URL of a manager node, and not a load balancer.","tags":["UCP"],"summary":"Check the health of a UCP manager.","operationId":"Ping","responses":{"200":{"description":"Success, manager healthy"},"500":{"description":"Failure, manager unhealthy"},"default":{"description":"Success, manager healthy"}}}},"/accounts/":{"get":{"description":"List user and organization accounts.\nLists information about user and organization accounts. Supports sorting and\nfiltering.\nRequires authentication and authorization as any user.","consumes":["application/json"],"produces":["application/json"],"tags":["Accounts"],"summary":"List user and organization accounts.","operationId":"ListAccounts","parameters":[{"type":"string","default":"all","description":"Filter accounts by type or attribute - either \"users\", \"orgs\", \"admins\", \"non-admins\", \"active-users\", \"inactive-users\", or \"all\" (default). These filters cannot be combined in any way.","name":"filter","in":"query"},{"type":"string","default":"","description":"Specifies the ordering of the results - either \"name\" (default) or \"fullName\". Prefix with \"+\" (default) or \"-\" to specify ascending or descending order, respectively.","name":"order","in":"query"},{"type":"string","default":"","description":"Only return accounts with an order marker starting from this value.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of accounts per page of results.","name":"limit","in":"query"},{"type":"string","default":"","description":"Additionally filter results to those which have either a name or full name which contains this case insensitive string","name":"contains","in":"query"}],"responses":{"200":{"description":"Success, page of accounts listed.","schema":{"$ref":"#/definitions/responses.Accounts"}},"default":{"description":"Success, page of accounts listed.","schema":{"$ref":"#/definitions/responses.Accounts"}}}},"post":{"description":"Create a user or organization account.\nTo search for and import a user from an LDAP directory, the system must be\nconfigured with LDAP integration.\nRequires authentication and authorization as an admin user.","consumes":["application/json"],"produces":["application/json"],"tags":["Accounts"],"summary":"Create a user or organization account.","operationId":"CreateAccount","parameters":[{"type":"forms.CreateAccount","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateAccount"}}],"responses":{"201":{"description":"Success, account created.","schema":{"$ref":"#/definitions/responses.Account"}}}},"patch":{"description":"Update information about user accounts or organizations, in bulk.\nRequires authentication and authorization as an admin user.","consumes":["application/json"],"produces":["application/json"],"tags":["Accounts"],"summary":"Update information about user accounts or organizations, in bulk.","operationId":"BulkAccountOps","parameters":[{"type":"forms.BulkOperations","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.BulkOperations"}}],"responses":{"200":{"description":"Success, bulk operations performed. Any errors encountered for an operation are returned.","schema":{"$ref":"#/definitions/responses.BulkResults"}},"default":{"description":"Success, bulk operations performed. Any errors encountered for an operation are returned.","schema":{"$ref":"#/definitions/responses.BulkResults"}}}}},"/accounts/{accountNameOrID}":{"get":{"description":"Details for a user or organization account.\nRequires authentication and authorization as any user.","consumes":["application/json"],"produces":["application/json"],"tags":["Accounts"],"summary":"Details for a user or organization account.","operationId":"GetAccount","parameters":[{"type":"string","default":"","description":"Name or id of account to fetch","name":"accountNameOrID","in":"path","required":true}],"responses":{"200":{"description":"Success, account returned.","schema":{"$ref":"#/definitions/responses.Account"}},"default":{"description":"Success, account returned.","schema":{"$ref":"#/definitions/responses.Account"}}}},"delete":{"description":"Delete a user or organization account.\nIf the system is configured to import users from an LDAP directory, the user\nmay be created again if they still match the current LDAP search config.\nRequires authentication and authorization as an admin user.","consumes":["application/json"],"produces":["application/json"],"tags":["Accounts"],"summary":"Delete a user or organization account.","operationId":"DeleteAccount","parameters":[{"type":"string","default":"","description":"Name or id of account to delete","name":"accountNameOrID","in":"path","required":true}],"responses":{"204":{"description":"Success, account deleted."}}},"patch":{"description":"Update details for a user or organization account.\nRequires authentication and authorization as an admin user, the target user (if\na user), or an admin member of the target organization (if an organization).","consumes":["application/json"],"produces":["application/json"],"tags":["Accounts"],"summary":"Update details for a user or organization account.","operationId":"UpdateAccount","parameters":[{"type":"string","default":"","description":"Name or id of account to update","name":"accountNameOrID","in":"path","required":true},{"type":"forms.UpdateAccount","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateAccount"}}],"responses":{"200":{"description":"Success, account updated.","schema":{"$ref":"#/definitions/responses.Account"}},"default":{"description":"Success, account updated.","schema":{"$ref":"#/definitions/responses.Account"}}}}},"/accounts/{accountNameOrID}/publicKeys":{"get":{"description":"List accountPublicKeys in an account.\nLists accountPublicKeys in ascending order by key ID.\nRequires authentication and authorization as any user.","consumes":["application/json"],"produces":["application/json"],"tags":["Account Public Keys","Accounts"],"summary":"List accountPublicKeys in an account.","operationId":"ListAccountPublicKeys","parameters":[{"type":"string","default":"","description":"Name or id of the account whose accountPublicKeys will be listed","name":"accountNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Only return accountPublicKeys with a key ID greater than or equal to this name.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of accountPublicKeys per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, page of accountPublicKeys listed.","schema":{"$ref":"#/definitions/responses.AccountPublicKeys"}},"default":{"description":"Success, page of accountPublicKeys listed.","schema":{"$ref":"#/definitions/responses.AccountPublicKeys"}}}},"post":{"description":"Create a public key for an account.\nRequires authentication and authorization as an admin user, the target user (if\na user), or an admin member of the target organization (if an organization).","consumes":["application/json"],"produces":["application/json"],"tags":["Account Public Keys","Accounts"],"summary":"Create a public key for an account.","operationId":"CreateAccountPublicKey","parameters":[{"type":"string","default":"","description":"Name or id of account to fetch","name":"accountNameOrID","in":"path","required":true},{"type":"forms.CreateAccountPublicKey","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateAccountPublicKey"}}],"responses":{"201":{"description":"Success, account public key created.","schema":{"$ref":"#/definitions/responses.AccountPublicKey"}}}}},"/accounts/{accountNameOrID}/publicKeys/{keyID}":{"delete":{"description":"Remove an account public key.\nRequires authentication and authorization as an admin user, the target user (if\na user), or an admin member of the target organization (if an organization).","consumes":["application/json"],"produces":["application/json"],"tags":["Account Public Keys","Accounts"],"summary":"Remove an account public key.","operationId":"DeleteAccountPublicKey","parameters":[{"type":"string","default":"","description":"Name or id of the account","name":"accountNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Public key id of the account","name":"keyID","in":"path","required":true}],"responses":{"204":{"description":"Success, account public key removed."}}},"patch":{"description":"Update details for an account public key.\nRequires authentication and authorization as an admin user, the target user (if\na user), or an admin member of the target organization (if an organization).","consumes":["application/json"],"produces":["application/json"],"tags":["Account Public Keys","Accounts"],"summary":"Update details for an account public key.","operationId":"UpdateAccountPublicKey","parameters":[{"type":"string","default":"","description":"Name or id of the account","name":"accountNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Public key id of the account","name":"keyID","in":"path","required":true},{"type":"forms.UpdateAccountPublicKey","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateAccountPublicKey"}}],"responses":{"200":{"description":"Success, account public key updated.","schema":{"$ref":"#/definitions/responses.AccountPublicKey"}},"default":{"description":"Success, account public key updated.","schema":{"$ref":"#/definitions/responses.AccountPublicKey"}}}}},"/accounts/{orgNameOrID}/adminMemberSyncConfig":{"get":{"description":"Get options for syncing admin members of an organization.\nRequires authentication and authorization as an admin user or an admin member\nof the organization.","consumes":["application/json"],"produces":["application/json"],"tags":["Organization Membership","Organizations","Accounts"],"summary":"Get options for syncing admin members of an organization.","operationId":"GetOrganizationAdminSyncConfig","parameters":[{"type":"string","default":"","description":"Name or id of organization whose LDAP sync options to be retrieved","name":"orgNameOrID","in":"path","required":true}],"responses":{"200":{"description":"Success, LDAP sync options retrieved.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}},"default":{"description":"Success, LDAP sync options retrieved.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}}}},"put":{"description":"Set options for syncing admin members of an organization.\nEnabling sync of organization admin members will disable the ability to\ndirectly manage organization membership for any users imported from an LDAP\ndirectory. Their organization membership is instead set by being synced as an\nadmin member of the organization or by being a member of any team within the\norganization.\nRequires authentication and authorization as an admin user or an admin member\nof the organization.","consumes":["application/json"],"produces":["application/json"],"tags":["Organization Membership","Organizations","Accounts"],"summary":"Set options for syncing admin members of an organization.","operationId":"SetOrganizationAdminSyncConfig","parameters":[{"type":"string","default":"","description":"Name or id of organization whose LDAP sync options to set","name":"orgNameOrID","in":"path","required":true},{"type":"forms.MemberSyncOpts","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.MemberSyncOpts"}}],"responses":{"200":{"description":"Success, LDAP sync options set.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}},"default":{"description":"Success, LDAP sync options set.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}}}}},"/accounts/{orgNameOrID}/members":{"get":{"description":"List members of an organization.\nLists memberships in ascending order by user ID.\nRequires authentication and authorization as an admin user or a member of the\norganization.","consumes":["application/json"],"produces":["application/json"],"tags":["Organization Membership","Organizations","Accounts"],"summary":"List members of an organization.","operationId":"ListOrganizationMembers","parameters":[{"type":"string","default":"","description":"Name or id of organization whose members will be listed","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"all","description":"Filter members by type - either 'admins', 'non-admins', or 'all' (default).","name":"filter","in":"query"},{"type":"string","default":"","description":"Only return members with a user ID greater than or equal to this ID.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of members per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, page of organization members listed.","schema":{"$ref":"#/definitions/responses.Members"}},"default":{"description":"Success, page of organization members listed.","schema":{"$ref":"#/definitions/responses.Members"}}}}},"/accounts/{orgNameOrID}/members/{memberNameOrID}":{"get":{"description":"Details of a user's membership in an organization.\nRequires authentication and authorization as an admin user, a member of the\norganization, or the target user.","consumes":["application/json"],"produces":["application/json"],"tags":["Organization Membership","Organizations","Accounts"],"summary":"Details of a user's membership in an organization.","operationId":"GetOrganizationMembership","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the membership will be retrieved","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user whose membership will be retrieved","name":"memberNameOrID","in":"path","required":true}],"responses":{"200":{"description":"Success, membership returned.","schema":{"$ref":"#/definitions/responses.Member"}},"default":{"description":"Success, membership returned.","schema":{"$ref":"#/definitions/responses.Member"}}}},"put":{"description":"Add a user to an organization.\nIf organization admin members are configured to be synced with LDAP, users\nwhich are imported from LDAP cannot be manually added as members of the\norganization and must be either synced as an organization admin member or be\nadded as a member of team within the organization.\nRequires authentication and authorization as an admin user or an admin member\nof the organization","consumes":["application/json"],"produces":["application/json"],"tags":["Organization Membership","Organizations","Accounts"],"summary":"Add a user to an organization.","operationId":"AddOrganizationMember","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the membership will be added","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user which will be added as a member","name":"memberNameOrID","in":"path","required":true},{"type":"forms.SetMembership","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.SetMembership"}}],"responses":{"200":{"description":"Success, membership set.","schema":{"$ref":"#/definitions/responses.Member"}},"default":{"description":"Success, membership set.","schema":{"$ref":"#/definitions/responses.Member"}}}},"delete":{"description":"Remove a user from an organization.\nRemoving a member of the organization will also remove them from any teams in\nthe organization. If organization admin members are configured to be synced\nwith LDAP, users which are imported from LDAP cannot be manually removed as\nmembers of the organization and must be either synced as an organization admin\nmember or removed as a member of all teams within the organization.\nRequires authentication and authorization as an admin user or an admin member\nof the organization.","consumes":["application/json"],"produces":["application/json"],"tags":["Organization Membership","Organizations","Accounts"],"summary":"Remove a user from an organization.","operationId":"DeleteOrganizationMember","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the membership will be deleted","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user whose membership will be deleted","name":"memberNameOrID","in":"path","required":true}],"responses":{"204":{"description":"Success, membership removed."}}}},"/accounts/{orgNameOrID}/members/{memberNameOrID}/teams":{"get":{"description":"List a user's team membership in an organization.\nLists team memberships in ascending order by team ID.\nRequires authentication and authorization as an admin user or a member of the\norganization.","consumes":["application/json"],"produces":["application/json"],"tags":["Organization Membership","Organizations","Accounts"],"summary":"List a user's team membership in an organization.","operationId":"ListOrganizationMemberTeams","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the member's team memberships will be listed","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user whose memberships will be listed","name":"memberNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Only return team memberships with a team ID greater than or equal to this ID.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of team memberships per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, page of member's teams listed.","schema":{"$ref":"#/definitions/responses.MemberTeams"}},"default":{"description":"Success, page of member's teams listed.","schema":{"$ref":"#/definitions/responses.MemberTeams"}}}}},"/accounts/{orgNameOrID}/teams":{"get":{"description":"List teams in an organization.\nLists teams in ascending order by name.\nRequires authentication and authorization as an admin user or a member of the\norganization.","consumes":["application/json"],"produces":["application/json"],"tags":["Teams","Organizations","Accounts"],"summary":"List teams in an organization.","operationId":"ListTeams","parameters":[{"type":"string","default":"","description":"Name or id of organization whose teams will be listed","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Only return teams with a name greater than or equal to this name.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of teams per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, page of teams listed.","schema":{"$ref":"#/definitions/responses.Teams"}},"default":{"description":"Success, page of teams listed.","schema":{"$ref":"#/definitions/responses.Teams"}}}},"post":{"description":"Create a team.\nRequires authentication and authorization as an admin user or an admin member\nof the organization.","consumes":["application/json"],"produces":["application/json"],"tags":["Teams","Organizations","Accounts"],"summary":"Create a team.","operationId":"CreateTeam","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team will be created","name":"orgNameOrID","in":"path","required":true},{"type":"forms.CreateTeam","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateTeam"}}],"responses":{"201":{"description":"Success, team created.","schema":{"$ref":"#/definitions/responses.Team"}}}}},"/accounts/{orgNameOrID}/teams/{teamNameOrID}":{"get":{"description":"Details for a team.\nRequires authentication and authorization as an admin user or a member of the\norganization.","consumes":["application/json"],"produces":["application/json"],"tags":["Teams","Organizations","Accounts"],"summary":"Details for a team.","operationId":"GetTeam","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team will be retrieved","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of team which will be retrieved","name":"teamNameOrID","in":"path","required":true}],"responses":{"200":{"description":"Success, team returned.","schema":{"$ref":"#/definitions/responses.Team"}},"default":{"description":"Success, team returned.","schema":{"$ref":"#/definitions/responses.Team"}}}},"delete":{"description":"Delete a team.\nRequires authentication and authorization as an admin user or an admin member\nof the organization.","consumes":["application/json"],"produces":["application/json"],"tags":["Teams","Organizations","Accounts"],"summary":"Delete a team.","operationId":"DeleteTeam","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team will be deleted","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of team which will be deleted","name":"teamNameOrID","in":"path","required":true}],"responses":{"204":{"description":"Success, team deleted."}}},"patch":{"description":"Update details for a team.\nRequires authentication and authorization as an admin user, an admin member of\nthe organization, or an admin member of the team.","consumes":["application/json"],"produces":["application/json"],"tags":["Teams","Organizations","Accounts"],"summary":"Update details for a team.","operationId":"UpdateTeam","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team will be updated","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of team which will be updated","name":"teamNameOrID","in":"path","required":true},{"type":"forms.UpdateTeam","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateTeam"}}],"responses":{"200":{"description":"Success, team updated.","schema":{"$ref":"#/definitions/responses.Team"}},"default":{"description":"Success, team updated.","schema":{"$ref":"#/definitions/responses.Team"}}}}},"/accounts/{orgNameOrID}/teams/{teamNameOrID}/memberSyncConfig":{"get":{"description":"Get options for syncing members of a team.\nRequires authentication and authorization as an admin user, an admin member of\nthe organization, or an admin member of the team.","consumes":["application/json"],"produces":["application/json"],"tags":["Team Membership","Teams","Organizations","Accounts"],"summary":"Get options for syncing members of a team.","operationId":"GetTeamMemberSyncConfig","parameters":[{"type":"string","default":"","description":"Name or id of organization to which the team belongs","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of team whose LDAP sync config will be retrieved","name":"teamNameOrID","in":"path","required":true}],"responses":{"200":{"description":"Success, LDAP sync options retrieved.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}},"default":{"description":"Success, LDAP sync options retrieved.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}}}},"put":{"description":"Set options for syncing members of a team.\nEnabling sync of team members will disable the ability to manually manage team\nmembership for any users imported from LDAP. Their team membership is instead\nmanaged by the LDAP sync.\nRequires authentication and authorization as an admin user, an admin member of\nthe organization, or an admin member of the team.","consumes":["application/json"],"produces":["application/json"],"tags":["Team Membership","Teams","Organizations","Accounts"],"summary":"Set options for syncing members of a team.","operationId":"SetTeamMemberSyncConfig","parameters":[{"type":"string","default":"","description":"Name or id of organization to which the team belongs","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of team whose LDAP sync config will be set","name":"teamNameOrID","in":"path","required":true},{"type":"forms.MemberSyncOpts","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.MemberSyncOpts"}}],"responses":{"200":{"description":"Success, LDAP sync options set.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}},"default":{"description":"Success, LDAP sync options set.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}}}}},"/accounts/{orgNameOrID}/teams/{teamNameOrID}/members":{"get":{"description":"List members of a team.\nLists memberships in ascending order by user ID.\nRequires authentication and authorization as an admin user or a member of the\norganization.","consumes":["application/json"],"produces":["application/json"],"tags":["Team Membership","Teams","Organizations","Accounts"],"summary":"List members of a team.","operationId":"ListTeamMembers","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team's members will be listed'","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of team whose members will be listed","name":"teamNameOrID","in":"path","required":true},{"type":"string","default":"all","description":"Filter members by type - either 'admins', 'non-admins', or 'all' (default).","name":"filter","in":"query"},{"type":"string","default":"","description":"Only return members with a user ID greater than or equal to this ID.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of members per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, page of team members listed.","schema":{"$ref":"#/definitions/responses.Members"}},"default":{"description":"Success, page of team members listed.","schema":{"$ref":"#/definitions/responses.Members"}}}}},"/accounts/{orgNameOrID}/teams/{teamNameOrID}/members/{memberNameOrID}":{"get":{"description":"Details of a user's membership in a team.\nRequires authentication and authorization as an admin user or a member of the\norganization.","consumes":["application/json"],"produces":["application/json"],"tags":["Team Membership","Teams","Organizations","Accounts"],"summary":"Details of a user's membership in a team.","operationId":"GetTeamMembership","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team membership will be retrieved","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of the team in which the membership will be retrieved","name":"teamNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user whose team membership will be retrieved","name":"memberNameOrID","in":"path","required":true}],"responses":{"200":{"description":"Success, team membership returned.","schema":{"$ref":"#/definitions/responses.Member"}},"default":{"description":"Success, team membership returned.","schema":{"$ref":"#/definitions/responses.Member"}}}},"put":{"description":"Add a user to a team.\nThe user will be added as a member of the organization if they are not already.\nIf team members are configured to be synced with LDAP, users which are imported\nfrom LDAP cannot be manually added as members of the team and must be synced\nwith LDAP.\nRequires authentication and authorization as an admin user, an admin member of\nthe organization, or an admin member of the team.","consumes":["application/json"],"produces":["application/json"],"tags":["Team Membership","Teams","Organizations","Accounts"],"summary":"Add a user to a team.","operationId":"AddTeamMember","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team membership will be added","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of the team in which the membership will be added","name":"teamNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user which will be added as a member","name":"memberNameOrID","in":"path","required":true},{"type":"forms.SetMembership","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.SetMembership"}}],"responses":{"200":{"description":"Success, team membership set.","schema":{"$ref":"#/definitions/responses.Member"}},"default":{"description":"Success, team membership set.","schema":{"$ref":"#/definitions/responses.Member"}}}},"delete":{"description":"Remove a member from a team.\nThe user will remain a member of the organization. If team members are\nconfigured to be synced with LDAP, users which are imported from LDAP cannot be\nmanually removed as members of the team and must be synced with LDAP.\nRequires authentication and authorization as an admin user, an admin member of\nthe organization, or an admin member of the team.","consumes":["application/json"],"produces":["application/json"],"tags":["Team Membership","Teams","Organizations","Accounts"],"summary":"Remove a member from a team.","operationId":"DeleteTeamMember","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team membership will be deleted","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of the team in which the membership will be deleted","name":"teamNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user whose team membership will be deleted","name":"memberNameOrID","in":"path","required":true}],"responses":{"204":{"description":"Success, team membership deleted."}}}},"/accounts/{userNameOrID}/changePassword":{"post":{"description":"Change a user's password.\nRequires authentication and authorization as an admin user or the target user.","consumes":["application/json"],"produces":["application/json"],"tags":["User Accounts","Accounts"],"summary":"Change a user's password.","operationId":"ChangePassword","parameters":[{"type":"string","default":"","description":"Username or id of user whose password is to be changed","name":"userNameOrID","in":"path","required":true},{"type":"forms.ChangePassword","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.ChangePassword"}}],"responses":{"200":{"description":"Success, password changed.","schema":{"$ref":"#/definitions/responses.Account"}},"default":{"description":"Success, password changed.","schema":{"$ref":"#/definitions/responses.Account"}}}}},"/accounts/{userNameOrID}/organizations":{"get":{"description":"List a user's organization memberships.\nLists organization memberships in ascending order by organization ID.\nRequires authentication and authorization as an admin user or the target user.","consumes":["application/json"],"produces":["application/json"],"tags":["User Accounts","Accounts"],"summary":"List a user's organization memberships.","operationId":"ListUserOrganizations","parameters":[{"type":"string","default":"","description":"Name or id of user to whose organizations will be listed","name":"userNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Only return memberships with an org ID greater than or equal to this ID.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of organizations per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, page of user's organizations listed.","schema":{"$ref":"#/definitions/responses.MemberOrgs"}},"default":{"description":"Success, page of user's organizations listed.","schema":{"$ref":"#/definitions/responses.MemberOrgs"}}}}},"/api/composehelper":{"get":{"tags":["UCP"],"summary":"/api/composehelper","operationId":"restfulNoop","responses":{}}},"/auth":{"post":{"description":"Validate credentials for a registry and, if available, get an identity token for accessing the registry without password.","consumes":["application/json"],"produces":["application/json"],"tags":["System"],"summary":"Check auth configuration","operationId":"SystemAuth","parameters":[{"description":"Authentication to check","name":"authConfig","in":"body","schema":{"$ref":"#/definitions/AuthConfig"}}],"responses":{"200":{"description":"An identity token was generated successfully.","schema":{"type":"object","required":["Status"],"properties":{"IdentityToken":{"description":"An opaque token used to authenticate a user after a successful login","type":"string","x-nullable":false},"Status":{"description":"The status of the authentication","type":"string","x-nullable":false}}},"examples":{"application/json":{"IdentityToken":"9cbaf023786cd7...","Status":"Login Succeeded"}}},"204":{"description":"No error"},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/build":{"post":{"description":"Build an image from a tar archive with a `Dockerfile` in it.\n\nThe `Dockerfile` specifies how the image is built from the tar archive. It is typically in the archive's root, but can be at a different path or have a different name by specifying the `dockerfile` parameter. [See the `Dockerfile` reference for more information](https://docs.docker.com/engine/reference/builder/).\n\nThe Docker daemon performs a preliminary validation of the `Dockerfile` before starting the build, and returns an error if the syntax is incorrect. After that, each instruction is run one-by-one until the ID of the new image is output.\n\nThe build is canceled if the client drops the connection by quitting or being killed.\n","consumes":["application/octet-stream"],"produces":["application/json"],"tags":["Image"],"summary":"Build an image","operationId":"ImageBuild","parameters":[{"description":"A tar archive compressed with one of the following algorithms: identity (no compression), gzip, bzip2, xz.","name":"inputStream","in":"body","schema":{"type":"string","format":"binary"}},{"type":"string","default":"Dockerfile","description":"Path within the build context to the `Dockerfile`. This is ignored if `remote` is specified and points to an external `Dockerfile`.","name":"dockerfile","in":"query"},{"type":"string","description":"A name and optional tag to apply to the image in the `name:tag` format. If you omit the tag the default `latest` value is assumed. You can provide several `t` parameters.","name":"t","in":"query"},{"type":"string","description":"Extra hosts to add to /etc/hosts","name":"extrahosts","in":"query"},{"type":"string","description":"A Git repository URI or HTTP/HTTPS context URI. If the URI points to a single text file, the file’s contents are placed into a file called `Dockerfile` and the image is built from that file. If the URI points to a tarball, the file is downloaded by the daemon and the contents therein used as the context for the build. If the URI points to a tarball and the `dockerfile` parameter is also specified, there must be a file with the corresponding path inside the tarball.","name":"remote","in":"query"},{"type":"boolean","default":false,"description":"Suppress verbose build output.","name":"q","in":"query"},{"type":"boolean","default":false,"description":"Do not use the cache when building the image.","name":"nocache","in":"query"},{"type":"string","description":"JSON array of images used for build cache resolution.","name":"cachefrom","in":"query"},{"type":"string","description":"Attempt to pull the image even if an older image exists locally.","name":"pull","in":"query"},{"type":"boolean","default":true,"description":"Remove intermediate containers after a successful build.","name":"rm","in":"query"},{"type":"boolean","default":false,"description":"Always remove intermediate containers, even upon failure.","name":"forcerm","in":"query"},{"type":"integer","description":"Set memory limit for build.","name":"memory","in":"query"},{"type":"integer","description":"Total memory (memory + swap). Set as `-1` to disable swap.","name":"memswap","in":"query"},{"type":"integer","description":"CPU shares (relative weight).","name":"cpushares","in":"query"},{"type":"string","description":"CPUs in which to allow execution (e.g., `0-3`, `0,1`).","name":"cpusetcpus","in":"query"},{"type":"integer","description":"The length of a CPU period in microseconds.","name":"cpuperiod","in":"query"},{"type":"integer","description":"Microseconds of CPU time that the container can get in a CPU period.","name":"cpuquota","in":"query"},{"type":"integer","description":"JSON map of string pairs for build-time variables. Users pass these values at build-time. Docker uses the buildargs as the environment context for commands run via the `Dockerfile` RUN instruction, or for variable expansion in other `Dockerfile` instructions. This is not meant for passing secret values. [Read more about the buildargs instruction.](https://docs.docker.com/engine/reference/builder/#arg)","name":"buildargs","in":"query"},{"type":"integer","description":"Size of `/dev/shm` in bytes. The size must be greater than 0. If omitted the system uses 64MB.","name":"shmsize","in":"query"},{"type":"boolean","description":"Squash the resulting images layers into a single layer. *(Experimental release only.)*","name":"squash","in":"query"},{"type":"string","description":"Arbitrary key/value labels to set on the image, as a JSON map of string pairs.","name":"labels","in":"query"},{"type":"string","description":"Sets the networking mode for the run commands during build. Supported standard values are: `bridge`, `host`, `none`, and `container:\u003cname|id\u003e`. Any other value is taken as a custom network's name to which this container should connect to.","name":"networkmode","in":"query"},{"enum":["application/x-tar"],"type":"string","default":"application/x-tar","name":"Content-type","in":"header"},{"type":"string","description":"This is a base64-encoded JSON object with auth configurations for multiple registries that a build may refer to.\n\nThe key is a registry URL, and the value is an auth configuration object, [as described in the authentication section](#section/Authentication). For example:\n\n```\n{\n \"docker.example.com\": {\n \"username\": \"janedoe\",\n \"password\": \"hunter2\"\n },\n \"https://index.docker.io/v1/\": {\n \"username\": \"mobydock\",\n \"password\": \"conta1n3rize14\"\n }\n}\n```\n\nOnly the registry domain name (and port if not the default 443) are required. However, for legacy reasons, the Docker Hub registry must be specified with both a `https://` prefix and a `/v1/` suffix even though Docker will prefer to use the v2 registry API.\n","name":"X-Registry-Config","in":"header"}],"responses":{"200":{"description":"no error"},"400":{"description":"Bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/collectionByPath":{"get":{"description":"Retrieve a single collection by path.","produces":["application/json"],"tags":["UCP"],"summary":"Retrieve a single collection by path.","operationId":"Get Collection by path","parameters":[{"type":"string","default":"","description":"Path of the collection to get.","name":"path","in":"query"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/authz.Collection"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/authz.Collection"}}}}},"/collectionGrants":{"get":{"description":"Lists all collection grants","produces":["application/json"],"tags":["UCP"],"summary":"Lists all collection grants","operationId":"ListGrants","parameters":[{"type":"string","default":"","description":"Filter grants by subjectID. Only a single value may be specified for this query parameter. A subjectID may be an account ID for a user or organization, or a team ID.","name":"subjectID","in":"query"},{"type":"string","default":"","description":"Filter grants by collection ID. Only a single value may be specified for this query parameter.","name":"objectID","in":"query"},{"type":"string","default":"","description":"Filter grants by roleID. Only a single value may be specified for this query parameter.","name":"roleID","in":"query"},{"type":"string","default":"all","description":"Filter grants by a subject type - either \"anonymous\", \"authenticated\", \"org\", \"team\", \"user\", or \"all\" (default). These filters cannot be combined in any way.","name":"subjectType","in":"query"},{"type":"boolean","default":"false","description":"Expands the subject into a list of subjects that it belongs to.","name":"expandUser","in":"query"},{"type":"boolean","default":"false","description":"Include the collection paths in the response.","name":"showPaths","in":"query"},{"type":"string","default":"","description":"Only return grants with an order marker starting from this value.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of grants per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/responses.Grants"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/responses.Grants"}}}}},"/collectionGrants/{subjectID}/{objectID}/{roleID}":{"put":{"description":"Creates a collection grant","tags":["UCP"],"summary":"Creates a collection grant","operationId":"CreateGrant","parameters":[{"type":"string","default":"","description":"SubjectID of grant to create","name":"subjectID","in":"path","required":true},{"type":"string","default":"","description":"ObjectID of grant to create","name":"objectID","in":"path","required":true},{"type":"string","default":"","description":"RoleID of grant to create","name":"roleID","in":"path","required":true},{"type":"string","default":"","description":"The type of the object for this grant. Can be 'collection', 'namespace', or 'grantobject'. If not specified, the default is 'collection'. 'grantobject' is only used for creating grants against the `kubernetesnamespaces` target, which is used to give grants against all Kubernetes namespaces.","name":"type","in":"query"}],"responses":{"201":{"description":"Success"}}},"delete":{"description":"Deletes a collection grant.","tags":["UCP"],"summary":"Deletes a collection grant.","operationId":"DeleteGrant","parameters":[{"type":"string","default":"","description":"RoleID of grant to delete","name":"roleID","in":"path","required":true},{"type":"string","default":"","description":"SubjectID of grant to delete","name":"subjectID","in":"path","required":true},{"type":"string","default":"","description":"ObjectID of grant to delete","name":"objectID","in":"path","required":true}],"responses":{"204":{"description":"Success"}}}},"/collections":{"get":{"description":"List all visible collections.","produces":["application/json"],"tags":["UCP"],"summary":"List all visible collections.","operationId":"List collections","parameters":[{"type":"string","default":"","description":"Only return collections with an order marker starting from this value.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of collections per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/authz.Collection"}}},"default":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/authz.Collection"}}}}},"post":{"description":"Create a new collection of resources that share mutual authorization settings.","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Create a new collection of resources that share mutual authorization settings.","operationId":"Create Collection","parameters":[{"type":"authz.CollectionCreate","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/authz.CollectionCreate"}}],"responses":{"201":{"description":"Success","schema":{"$ref":"#/definitions/authz.CollectionCreateResponse"}}}}},"/collections/{id}":{"get":{"description":"Retrieve a single collection by ID.","produces":["application/json"],"tags":["UCP"],"summary":"Retrieve a single collection by ID.","operationId":"Get Collection","parameters":[{"type":"string","default":"","description":"ID of the collection to get","name":"id","in":"path","required":true}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/authz.Collection"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/authz.Collection"}}}},"delete":{"description":"Delete a single collection by ID.","tags":["UCP"],"summary":"Delete a single collection by ID.","operationId":"Delete Collection","parameters":[{"type":"string","default":"","description":"ID of the collection to delete.","name":"id","in":"path","required":true}],"responses":{"204":{"description":"Success"}}},"patch":{"description":"Updates an existing collection","consumes":["application/json"],"tags":["UCP"],"summary":"Updates an existing collection","operationId":"Update Collection","parameters":[{"type":"string","default":"","description":"ID of the collection to update.","name":"id","in":"path","required":true},{"type":"authz.CollectionUpdate","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/authz.CollectionUpdate"}}],"responses":{"200":{"description":"Success"},"default":{"description":"Success"}}}},"/collections/{id}/children":{"get":{"description":"Retrieve all children collection to a specific collection.","produces":["application/json"],"tags":["UCP"],"summary":"Retrieve all children collection to a specific collection.","operationId":"Get Collection Children","parameters":[{"type":"string","default":"","description":"ID of the collection whose children will be returned","name":"id","in":"path","required":true},{"type":"string","default":"","description":"Only return collections with an order marker starting from this value.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of collections per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/authz.Collection"}}},"default":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/authz.Collection"}}}}}},"/commit":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["Image"],"summary":"Create a new image from a container","operationId":"ImageCommit","parameters":[{"description":"The container configuration","name":"containerConfig","in":"body","schema":{"$ref":"#/definitions/ContainerConfig"}},{"type":"string","description":"The ID or name of the container to commit","name":"container","in":"query"},{"type":"string","description":"Repository name for the created image","name":"repo","in":"query"},{"type":"string","description":"Tag name for the create image","name":"tag","in":"query"},{"type":"string","description":"Commit message","name":"comment","in":"query"},{"type":"string","description":"Author of the image (e.g., `John Hannibal Smith \u003channibal@a-team.com\u003e`)","name":"author","in":"query"},{"type":"boolean","default":true,"description":"Whether to pause the container before committing","name":"pause","in":"query"},{"type":"string","description":"`Dockerfile` instructions to apply while committing","name":"changes","in":"query"}],"responses":{"201":{"description":"no error","schema":{"$ref":"#/definitions/IdResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/configs":{"get":{"produces":["application/json"],"tags":["Config"],"summary":"List configs","operationId":"ConfigList","parameters":[{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the configs list. Available filters:\n\n- `id=\u003cconfig id\u003e`\n- `label=\u003ckey\u003e or label=\u003ckey\u003e=value`\n- `name=\u003cconfig name\u003e`\n- `names=\u003cconfig name\u003e`\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"array","items":{"$ref":"#/definitions/Config"},"example":[{"CreatedAt":"2016-11-05T01:20:17.327670065Z","ID":"ktnbjxoalbkvbvedmg1urrz8h","Spec":{"Name":"server.conf"},"UpdatedAt":"2016-11-05T01:20:17.327670065Z","Version":{"Index":11}}]}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/configs/create":{"post":{"description":"If you create a UCP config with a name that starts with `com.docker.ucp.config`, UCP verifies that the config is valid before saving it. Also, UCP validates any licenses with names that start with `com.docker.license`.","consumes":["application/json"],"produces":["application/json"],"tags":["Config"],"summary":"Create a config","operationId":"ConfigCreate","parameters":[{"name":"body","in":"body","schema":{"allOf":[{"$ref":"#/definitions/ConfigSpec"},{"type":"object","example":{"Data":"VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg==","Labels":{"foo":"bar"},"Name":"server.conf"}}]}}],"responses":{"201":{"description":"no error","schema":{"type":"object","properties":{"ID":{"description":"The ID of the created config.","type":"string"}},"example":{"ID":"ktnbjxoalbkvbvedmg1urrz8h"}}},"409":{"description":"name conflicts with an existing object","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/configs/{id}":{"get":{"produces":["application/json"],"tags":["Config"],"summary":"Inspect a config","operationId":"ConfigInspect","parameters":[{"type":"string","description":"ID of the config","name":"id","in":"path","required":true}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/Config"},"examples":{"application/json":{"CreatedAt":"2016-11-05T01:20:17.327670065Z","ID":"ktnbjxoalbkvbvedmg1urrz8h","Spec":{"Name":"app-dev.crt"},"UpdatedAt":"2016-11-05T01:20:17.327670065Z","Version":{"Index":11}}}},"404":{"description":"config not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"produces":["application/json"],"tags":["Config"],"summary":"Delete a config","operationId":"ConfigDelete","parameters":[{"type":"string","description":"ID of the config","name":"id","in":"path","required":true}],"responses":{"204":{"description":"no error"},"404":{"description":"config not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/configs/{id}/update":{"post":{"tags":["Config"],"summary":"Update a Config","operationId":"ConfigUpdate","parameters":[{"type":"string","description":"The ID or name of the config","name":"id","in":"path","required":true},{"description":"The spec of the config to update. Currently, only the Labels field can be updated. All other fields must remain unchanged from the [ConfigInspect endpoint](#operation/ConfigInspect) response values.","name":"body","in":"body","schema":{"$ref":"#/definitions/ConfigSpec"}},{"type":"integer","format":"int64","description":"The version number of the config object being updated. This is required to avoid conflicting writes.","name":"version","in":"query","required":true}],"responses":{"200":{"description":"no error"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such config","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/create":{"post":{"consumes":["application/json","application/octet-stream"],"produces":["application/json"],"tags":["Container"],"summary":"Create a container","operationId":"ContainerCreate","parameters":[{"pattern":"/?[a-zA-Z0-9_-]+","type":"string","description":"Assign the specified name to the container. Must match `/?[a-zA-Z0-9_-]+`.","name":"name","in":"query"},{"description":"Container to create","name":"body","in":"body","required":true,"schema":{"allOf":[{"$ref":"#/definitions/ContainerConfig","example":{"AttachStderr":true,"AttachStdin":false,"AttachStdout":true,"Cmd":["date"],"Domainname":"","Entrypoint":"","Env":["FOO=bar","BAZ=quux"],"ExposedPorts":{"22/tcp":{}},"HostConfig":{"AutoRemove":true,"Binds":["/tmp:/tmp"],"BlkioDeviceReadBps":[{}],"BlkioDeviceReadIOps":[{}],"BlkioDeviceWriteBps":[{}],"BlkioDeviceWriteIOps":[{}],"BlkioWeight":300,"BlkioWeightDevice":[{}],"CapAdd":["NET_ADMIN"],"CapDrop":["MKNOD"],"CgroupParent":"","CpuPercent":80,"CpuPeriod":100000,"CpuQuota":50000,"CpuRealtimePeriod":1000000,"CpuRealtimeRuntime":10000,"CpuShares":512,"CpusetCpus":"0,1","CpusetMems":"0,1","Devices":[],"Dns":["8.8.8.8"],"DnsOptions":[""],"DnsSearch":[""],"GroupAdd":["newgroup"],"KernelMemory":0,"Links":["redis3:redis"],"LogConfig":{"Config":{},"Type":"json-file"},"MaximumIOBps":0,"MaximumIOps":0,"Memory":0,"MemoryReservation":0,"MemorySwap":0,"MemorySwappiness":60,"NanoCPUs":500000,"NetworkMode":"bridge","OomKillDisable":false,"OomScoreAdj":500,"PidMode":"","PidsLimit":-1,"PortBindings":{"22/tcp":[{"HostPort":"11022"}]},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":[],"ShmSize":67108864,"StorageOpt":{},"Ulimits":[{}],"VolumeDriver":"","VolumesFrom":["parent","other:ro"]},"Hostname":"","Image":"ubuntu","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"MacAddress":"12:34:56:78:9a:bc","NetworkDisabled":false,"NetworkingConfig":{"EndpointsConfig":{"isolated_nw":{"Aliases":["server_x","server_y"],"IPAMConfig":{"IPv4Address":"172.20.30.33","IPv6Address":"2001:db8:abcd::3033","LinkLocalIPs":["169.254.34.68","fe80::3468"]},"Links":["container_1","container_2"]}}},"OpenStdin":false,"StdinOnce":false,"StopSignal":"SIGTERM","StopTimeout":10,"Tty":false,"User":"","Volumes":{"/volumes/data":{}},"WorkingDir":""}},{"type":"object","properties":{"HostConfig":{"$ref":"#/definitions/HostConfig"},"NetworkingConfig":{"description":"This container's networking configuration.","type":"object","properties":{"EndpointsConfig":{"description":"A mapping of network name to endpoint configuration for that network.","type":"object","additionalProperties":{"$ref":"#/definitions/EndpointSettings"}}}}},"example":{"AttachStderr":true,"AttachStdin":false,"AttachStdout":true,"Cmd":["date"],"Domainname":"","Entrypoint":"","Env":["FOO=bar","BAZ=quux"],"ExposedPorts":{"22/tcp":{}},"HostConfig":{"AutoRemove":true,"Binds":["/tmp:/tmp"],"BlkioDeviceReadBps":[{}],"BlkioDeviceReadIOps":[{}],"BlkioDeviceWriteBps":[{}],"BlkioDeviceWriteIOps":[{}],"BlkioWeight":300,"BlkioWeightDevice":[{}],"CapAdd":["NET_ADMIN"],"CapDrop":["MKNOD"],"CgroupParent":"","CpuPercent":80,"CpuPeriod":100000,"CpuQuota":50000,"CpuRealtimePeriod":1000000,"CpuRealtimeRuntime":10000,"CpuShares":512,"CpusetCpus":"0,1","CpusetMems":"0,1","Devices":[],"Dns":["8.8.8.8"],"DnsOptions":[""],"DnsSearch":[""],"GroupAdd":["newgroup"],"KernelMemory":0,"Links":["redis3:redis"],"LogConfig":{"Config":{},"Type":"json-file"},"MaximumIOBps":0,"MaximumIOps":0,"Memory":0,"MemoryReservation":0,"MemorySwap":0,"MemorySwappiness":60,"NanoCPUs":500000,"NetworkMode":"bridge","OomKillDisable":false,"OomScoreAdj":500,"PidMode":"","PidsLimit":-1,"PortBindings":{"22/tcp":[{"HostPort":"11022"}]},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":[],"ShmSize":67108864,"StorageOpt":{},"Ulimits":[{}],"VolumeDriver":"","VolumesFrom":["parent","other:ro"]},"Hostname":"","Image":"ubuntu","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"MacAddress":"12:34:56:78:9a:bc","NetworkDisabled":false,"NetworkingConfig":{"EndpointsConfig":{"isolated_nw":{"Aliases":["server_x","server_y"],"IPAMConfig":{"IPv4Address":"172.20.30.33","IPv6Address":"2001:db8:abcd::3033","LinkLocalIPs":["169.254.34.68","fe80::3468"]},"Links":["container_1","container_2"]}}},"OpenStdin":false,"StdinOnce":false,"StopSignal":"SIGTERM","StopTimeout":10,"Tty":false,"User":"","Volumes":{"/volumes/data":{}},"WorkingDir":""}}],"example":{"AttachStderr":true,"AttachStdin":false,"AttachStdout":true,"Cmd":["date"],"Domainname":"","Entrypoint":"","Env":["FOO=bar","BAZ=quux"],"ExposedPorts":{"22/tcp":{}},"HostConfig":{"AutoRemove":true,"Binds":["/tmp:/tmp"],"BlkioDeviceReadBps":[{}],"BlkioDeviceReadIOps":[{}],"BlkioDeviceWriteBps":[{}],"BlkioDeviceWriteIOps":[{}],"BlkioWeight":300,"BlkioWeightDevice":[{}],"CapAdd":["NET_ADMIN"],"CapDrop":["MKNOD"],"CgroupParent":"","CpuPercent":80,"CpuPeriod":100000,"CpuQuota":50000,"CpuRealtimePeriod":1000000,"CpuRealtimeRuntime":10000,"CpuShares":512,"CpusetCpus":"0,1","CpusetMems":"0,1","Devices":[],"Dns":["8.8.8.8"],"DnsOptions":[""],"DnsSearch":[""],"GroupAdd":["newgroup"],"KernelMemory":0,"Links":["redis3:redis"],"LogConfig":{"Config":{},"Type":"json-file"},"MaximumIOBps":0,"MaximumIOps":0,"Memory":0,"MemoryReservation":0,"MemorySwap":0,"MemorySwappiness":60,"NanoCPUs":500000,"NetworkMode":"bridge","OomKillDisable":false,"OomScoreAdj":500,"PidMode":"","PidsLimit":-1,"PortBindings":{"22/tcp":[{"HostPort":"11022"}]},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":[],"ShmSize":67108864,"StorageOpt":{},"Ulimits":[{}],"VolumeDriver":"","VolumesFrom":["parent","other:ro"]},"Hostname":"","Image":"ubuntu","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"MacAddress":"12:34:56:78:9a:bc","NetworkDisabled":false,"NetworkingConfig":{"EndpointsConfig":{"isolated_nw":{"Aliases":["server_x","server_y"],"IPAMConfig":{"IPv4Address":"172.20.30.33","IPv6Address":"2001:db8:abcd::3033","LinkLocalIPs":["169.254.34.68","fe80::3468"]},"Links":["container_1","container_2"]}}},"OpenStdin":false,"StdinOnce":false,"StopSignal":"SIGTERM","StopTimeout":10,"Tty":false,"User":"","Volumes":{"/volumes/data":{}},"WorkingDir":""}}}],"responses":{"201":{"description":"Container created successfully","schema":{"type":"object","required":["Id","Warnings"],"properties":{"Id":{"description":"The ID of the created container","type":"string","x-nullable":false},"Warnings":{"description":"Warnings encountered when creating the container","type":"array","items":{"type":"string"},"x-nullable":false}}},"examples":{"application/json":{"Id":"e90e34656806","Warnings":[]}}},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"406":{"description":"impossible to attach","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"conflict","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/json":{"get":{"produces":["application/json"],"tags":["Container"],"summary":"List containers","operationId":"ContainerList","parameters":[{"type":"boolean","default":false,"description":"Return all containers. By default, only running containers are shown","name":"all","in":"query"},{"type":"integer","description":"Return this number of most recently created containers, including non-running ones.","name":"limit","in":"query"},{"type":"boolean","default":false,"description":"Return the size of container as fields `SizeRw` and `SizeRootFs`.","name":"size","in":"query"},{"type":"string","description":"Filters to process on the container list, encoded as JSON (a `map[string][]string`). For example, `{\"status\": [\"paused\"]}` will only return paused containers. Available filters:\n\n- `ancestor`=(`\u003cimage-name\u003e[:\u003ctag\u003e]`, `\u003cimage id\u003e`, or `\u003cimage@digest\u003e`)\n- `before`=(`\u003ccontainer id\u003e` or `\u003ccontainer name\u003e`)\n- `expose`=(`\u003cport\u003e[/\u003cproto\u003e]`|`\u003cstartport-endport\u003e/[\u003cproto\u003e]`)\n- `exited=\u003cint\u003e` containers with exit code of `\u003cint\u003e`\n- `health`=(`starting`|`healthy`|`unhealthy`|`none`)\n- `id=\u003cID\u003e` a container's ID\n- `isolation=`(`default`|`process`|`hyperv`) (Windows daemon only)\n- `is-task=`(`true`|`false`)\n- `label=key` or `label=\"key=value\"` of a container label\n- `name=\u003cname\u003e` a container's name\n- `network`=(`\u003cnetwork id\u003e` or `\u003cnetwork name\u003e`)\n- `publish`=(`\u003cport\u003e[/\u003cproto\u003e]`|`\u003cstartport-endport\u003e/[\u003cproto\u003e]`)\n- `since`=(`\u003ccontainer id\u003e` or `\u003ccontainer name\u003e`)\n- `status=`(`created`|`restarting`|`running`|`removing`|`paused`|`exited`|`dead`)\n- `volume`=(`\u003cvolume name\u003e` or `\u003cmount point destination\u003e`)\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/ContainerSummary"},"examples":{"application/json":[{"Command":"echo 1","Created":1367854155,"HostConfig":{"NetworkMode":"default"},"Id":"8dfafdbc3a40","Image":"ubuntu:latest","ImageID":"d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"Mounts":[{"Destination":"/data","Driver":"local","Mode":"ro,Z","Name":"fac362...80535","Propagation":"","RW":false,"Source":"/data"}],"Names":["/boring_feynman"],"NetworkSettings":{"Networks":{"bridge":{"EndpointID":"2cdc4edb1ded3631c81f57966563e5c8525b81121bb3706a9a9a3ae102711f3f","Gateway":"172.17.0.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.2","IPPrefixLen":16,"IPv6Gateway":"","MacAddress":"02:42:ac:11:00:02","NetworkID":"7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"}}},"Ports":[{"PrivatePort":2222,"PublicPort":3333,"Type":"tcp"}],"SizeRootFs":0,"SizeRw":12288,"State":"Exited","Status":"Exit 0"},{"Command":"echo 222222","Created":1367854155,"HostConfig":{"NetworkMode":"default"},"Id":"9cd87474be90","Image":"ubuntu:latest","ImageID":"d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82","Labels":{},"Mounts":[],"Names":["/coolName"],"NetworkSettings":{"Networks":{"bridge":{"EndpointID":"88eaed7b37b38c2a3f0c4bc796494fdf51b270c2d22656412a2ca5d559a64d7a","Gateway":"172.17.0.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.8","IPPrefixLen":16,"IPv6Gateway":"","MacAddress":"02:42:ac:11:00:08","NetworkID":"7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"}}},"Ports":[],"SizeRootFs":0,"SizeRw":12288,"State":"Exited","Status":"Exit 0"},{"Command":"echo 3333333333333333","Created":1367854154,"HostConfig":{"NetworkMode":"default"},"Id":"3176a2479c92","Image":"ubuntu:latest","ImageID":"d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82","Labels":{},"Mounts":[],"Names":["/sleepy_dog"],"NetworkSettings":{"Networks":{"bridge":{"EndpointID":"8b27c041c30326d59cd6e6f510d4f8d1d570a228466f956edf7815508f78e30d","Gateway":"172.17.0.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.6","IPPrefixLen":16,"IPv6Gateway":"","MacAddress":"02:42:ac:11:00:06","NetworkID":"7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"}}},"Ports":[],"SizeRootFs":0,"SizeRw":12288,"State":"Exited","Status":"Exit 0"},{"Command":"echo 444444444444444444444444444444444","Created":1367854152,"HostConfig":{"NetworkMode":"default"},"Id":"4cb07b47f9fb","Image":"ubuntu:latest","ImageID":"d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82","Labels":{},"Mounts":[],"Names":["/running_cat"],"NetworkSettings":{"Networks":{"bridge":{"EndpointID":"d91c7b2f0644403d7ef3095985ea0e2370325cd2332ff3a3225c4247328e66e9","Gateway":"172.17.0.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.5","IPPrefixLen":16,"IPv6Gateway":"","MacAddress":"02:42:ac:11:00:05","NetworkID":"7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"}}},"Ports":[],"SizeRootFs":0,"SizeRw":12288,"State":"Exited","Status":"Exit 0"}]}},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/prune":{"post":{"produces":["application/json"],"tags":["Container"],"summary":"Delete stopped containers","operationId":"ContainerPrune","parameters":[{"type":"string","description":"Filters to process on the prune list, encoded as JSON (a `map[string][]string`).\n\nAvailable filters:\n- `until=\u003ctimestamp\u003e` Prune containers created before this timestamp. The `\u003ctimestamp\u003e` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time.\n- `label` (`label=\u003ckey\u003e`, `label=\u003ckey\u003e=\u003cvalue\u003e`, `label!=\u003ckey\u003e`, or `label!=\u003ckey\u003e=\u003cvalue\u003e`) Prune containers with (or without, in case `label!=...` is used) the specified labels.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"object","properties":{"ContainersDeleted":{"description":"Container IDs that were deleted","type":"array","items":{"type":"string"}},"SpaceReclaimed":{"description":"Disk space reclaimed in bytes","type":"integer","format":"int64"}}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}":{"delete":{"tags":["Container"],"summary":"Remove a container","operationId":"ContainerDelete","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Remove the volumes associated with the container.","name":"v","in":"query"},{"type":"boolean","default":false,"description":"If the container is running, kill it before removing it.","name":"force","in":"query"},{"type":"boolean","default":false,"description":"Remove the specified link associated with the container.","name":"link","in":"query"}],"responses":{"204":{"description":"no error"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"409":{"description":"conflict","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"You cannot remove a running container: c2ada9df5af8. Stop the container before attempting removal or force remove"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/archive":{"get":{"description":"Get a tar archive of a resource in the filesystem of container id.","produces":["application/x-tar"],"tags":["Container"],"summary":"Get an archive of a filesystem resource in a container","operationId":"ContainerArchive","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","description":"Resource in the container’s filesystem to archive.","name":"path","in":"query","required":true}],"responses":{"200":{"description":"no error"},"400":{"description":"Bad parameter","schema":{"allOf":[{"$ref":"#/definitions/ErrorResponse"},{"type":"object","properties":{"message":{"description":"The error message. Either \"must specify path parameter\" (path cannot be empty) or \"not a directory\" (path was asserted to be a directory but exists as a file).","type":"string","x-nullable":false}}}]}},"404":{"description":"Container or path does not exist","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"put":{"description":"Upload a tar archive to be extracted to a path in the filesystem of container id.","consumes":["application/x-tar","application/octet-stream"],"tags":["Container"],"summary":"Extract an archive of files or folders to a directory in a container","operationId":"PutContainerArchive","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","description":"Path to a directory in the container to extract the archive’s contents into. ","name":"path","in":"query","required":true},{"type":"string","description":"If “1”, “true”, or “True” then it will be an error if unpacking the given content would cause an existing directory to be replaced with a non-directory and vice versa.","name":"noOverwriteDirNonDir","in":"query"},{"description":"The input stream must be a tar archive compressed with one of the following algorithms: identity (no compression), gzip, bzip2, xz.","name":"inputStream","in":"body","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The content was extracted successfully"},"400":{"description":"Bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Permission denied, the volume or container rootfs is marked as read-only.","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"No such container or path does not exist inside the container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"head":{"description":"A response header `X-Docker-Container-Path-Stat` is return containing a base64 - encoded JSON object with some filesystem header information about the path.","tags":["Container"],"summary":"Get information about files in a container","operationId":"ContainerArchiveInfo","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","description":"Resource in the container’s filesystem to archive.","name":"path","in":"query","required":true}],"responses":{"200":{"description":"no error","headers":{"X-Docker-Container-Path-Stat":{"type":"string","description":"TODO"}}},"400":{"description":"Bad parameter","schema":{"allOf":[{"$ref":"#/definitions/ErrorResponse"},{"type":"object","properties":{"message":{"description":"The error message. Either \"must specify path parameter\" (path cannot be empty) or \"not a directory\" (path was asserted to be a directory but exists as a file).","type":"string","x-nullable":false}}}]}},"404":{"description":"Container or path does not exist","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/attach":{"post":{"description":"Attach to a container to read its output or send it input. You can attach to the same container multiple times and you can reattach to containers that have been detached.\n\nEither the `stream` or `logs` parameter must be `true` for this endpoint to do anything.\n\nSee [the documentation for the `docker attach` command](https://docs.docker.com/engine/reference/commandline/attach/) for more details.\n\n### Hijacking\n\nThis endpoint hijacks the HTTP connection to transport `stdin`, `stdout`, and `stderr` on the same socket.\n\nThis is the response from the daemon for an attach request:\n\n```\nHTTP/1.1 200 OK\nContent-Type: application/vnd.docker.raw-stream\n\n[STREAM]\n```\n\nAfter the headers and two new lines, the TCP connection can now be used for raw, bidirectional communication between the client and server.\n\nTo hint potential proxies about connection hijacking, the Docker client can also optionally send connection upgrade headers.\n\nFor example, the client sends this request to upgrade the connection:\n\n```\nPOST /containers/16253994b7c4/attach?stream=1\u0026stdout=1 HTTP/1.1\nUpgrade: tcp\nConnection: Upgrade\n```\n\nThe Docker daemon will respond with a `101 UPGRADED` response, and will similarly follow with the raw stream:\n\n```\nHTTP/1.1 101 UPGRADED\nContent-Type: application/vnd.docker.raw-stream\nConnection: Upgrade\nUpgrade: tcp\n\n[STREAM]\n```\n\n### Stream format\n\nWhen the TTY setting is disabled in [`POST /containers/create`](#operation/ContainerCreate), the stream over the hijacked connected is multiplexed to separate out `stdout` and `stderr`. The stream consists of a series of frames, each containing a header and a payload.\n\nThe header contains the information which the stream writes (`stdout` or `stderr`). It also contains the size of the associated frame encoded in the last four bytes (`uint32`).\n\nIt is encoded on the first eight bytes like this:\n\n```go\nheader := [8]byte{STREAM_TYPE, 0, 0, 0, SIZE1, SIZE2, SIZE3, SIZE4}\n```\n\n`STREAM_TYPE` can be:\n\n- 0: `stdin` (is written on `stdout`)\n- 1: `stdout`\n- 2: `stderr`\n\n`SIZE1, SIZE2, SIZE3, SIZE4` are the four bytes of the `uint32` size encoded as big endian.\n\nFollowing the header is the payload, which is the specified number of bytes of `STREAM_TYPE`.\n\nThe simplest way to implement this protocol is the following:\n\n1. Read 8 bytes.\n2. Choose `stdout` or `stderr` depending on the first byte.\n3. Extract the frame size from the last four bytes.\n4. Read the extracted size and output it on the correct output.\n5. Goto 1.\n\n### Stream format when using a TTY\n\nWhen the TTY setting is enabled in [`POST /containers/create`](#operation/ContainerCreate), the stream is not multiplexed. The data exchanged over the hijacked connection is simply the raw data from the process PTY and client's `stdin`.\n","produces":["application/vnd.docker.raw-stream"],"tags":["Container"],"summary":"Attach to a container","operationId":"ContainerAttach","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","description":"Override the key sequence for detaching a container.Format is a single character `[a-Z]` or `ctrl-\u003cvalue\u003e` where `\u003cvalue\u003e` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`.","name":"detachKeys","in":"query"},{"type":"boolean","default":false,"description":"Replay previous logs from the container.\n\nThis is useful for attaching to a container that has started and you want to output everything since the container started.\n\nIf `stream` is also enabled, once all the previous output has been returned, it will seamlessly transition into streaming current output.\n","name":"logs","in":"query"},{"type":"boolean","default":false,"description":"Stream attached streams from the time the request was made onwards","name":"stream","in":"query"},{"type":"boolean","default":false,"description":"Attach to `stdin`","name":"stdin","in":"query"},{"type":"boolean","default":false,"description":"Attach to `stdout`","name":"stdout","in":"query"},{"type":"boolean","default":false,"description":"Attach to `stderr`","name":"stderr","in":"query"}],"responses":{"101":{"description":"no error, hints proxy about hijacking"},"200":{"description":"no error, no upgrade header found"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/changes":{"get":{"description":"Returns which files in a container's filesystem have been added, deleted,\nor modified. The `Kind` of modification can be one of:\n\n- `0`: Modified\n- `1`: Added\n- `2`: Deleted\n","produces":["application/json"],"tags":["Container"],"summary":"Get changes on a container’s filesystem","operationId":"ContainerChanges","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true}],"responses":{"200":{"description":"The list of changes","schema":{"type":"array","items":{"type":"object","required":["Path","Kind"],"properties":{"Kind":{"description":"Kind of change","type":"integer","format":"uint8","enum":[0,1,2],"x-nullable":false},"Path":{"description":"Path to file that has changed","type":"string","x-nullable":false}},"x-go-name":"ContainerChangeResponseItem"}},"examples":{"application/json":[{"Kind":0,"Path":"/dev"},{"Kind":1,"Path":"/dev/kmsg"},{"Kind":1,"Path":"/test"}]}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/exec":{"post":{"description":"Run a command inside a running container.","consumes":["application/json"],"produces":["application/json"],"tags":["Exec"],"summary":"Create an exec instance","operationId":"ContainerExec","parameters":[{"description":"Exec configuration","name":"execConfig","in":"body","required":true,"schema":{"type":"object","properties":{"AttachStderr":{"description":"Attach to `stderr` of the exec command.","type":"boolean"},"AttachStdin":{"description":"Attach to `stdin` of the exec command.","type":"boolean"},"AttachStdout":{"description":"Attach to `stdout` of the exec command.","type":"boolean"},"Cmd":{"description":"Command to run, as a string or array of strings.","type":"array","items":{"type":"string"}},"DetachKeys":{"description":"Override the key sequence for detaching a container. Format is a single character `[a-Z]` or `ctrl-\u003cvalue\u003e` where `\u003cvalue\u003e` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`.","type":"string"},"Env":{"description":"A list of environment variables in the form `[\"VAR=value\", ...]`.","type":"array","items":{"type":"string"}},"Privileged":{"description":"Runs the exec process with extended privileges.","type":"boolean","default":false},"Tty":{"description":"Allocate a pseudo-TTY.","type":"boolean"},"User":{"description":"The user, and optionally, group to run the exec process inside the container. Format is one of: `user`, `user:group`, `uid`, or `uid:gid`.","type":"string"}},"example":{"AttachStderr":true,"AttachStdin":false,"AttachStdout":true,"Cmd":["date"],"DetachKeys":"ctrl-p,ctrl-q","Env":["FOO=bar","BAZ=quux"],"Tty":false}}},{"type":"string","description":"ID or name of container","name":"id","in":"path","required":true}],"responses":{"201":{"description":"no error","schema":{"$ref":"#/definitions/IdResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"409":{"description":"container is paused","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/export":{"get":{"description":"Export the contents of a container as a tarball.","produces":["application/octet-stream"],"tags":["Container"],"summary":"Export a container","operationId":"ContainerExport","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true}],"responses":{"200":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/json":{"get":{"description":"Return low-level information about a container.","produces":["application/json"],"tags":["Container"],"summary":"Inspect a container","operationId":"ContainerInspect","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Return the size of container as fields `SizeRw` and `SizeRootFs`","name":"size","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"object","properties":{"AppArmorProfile":{"type":"string"},"Args":{"description":"The arguments to the command being run","type":"array","items":{"type":"string"}},"Config":{"$ref":"#/definitions/ContainerConfig"},"Created":{"description":"The time the container was created","type":"string"},"Driver":{"type":"string"},"ExecIDs":{"type":"string"},"GraphDriver":{"$ref":"#/definitions/GraphDriverData"},"HostConfig":{"$ref":"#/definitions/HostConfig"},"HostnamePath":{"type":"string"},"HostsPath":{"type":"string"},"Id":{"description":"The ID of the container","type":"string"},"Image":{"description":"The container's image","type":"string"},"LogPath":{"type":"string"},"MountLabel":{"type":"string"},"Mounts":{"type":"array","items":{"$ref":"#/definitions/MountPoint"}},"Name":{"type":"string"},"NetworkSettings":{"$ref":"#/definitions/NetworkConfig"},"Node":{"description":"TODO","type":"object"},"Path":{"description":"The path to the command being run","type":"string"},"ProcessLabel":{"type":"string"},"ResolvConfPath":{"type":"string"},"RestartCount":{"type":"integer"},"SizeRootFs":{"description":"The total size of all the files in this container.","type":"integer","format":"int64"},"SizeRw":{"description":"The size of files that have been created or changed by this container.","type":"integer","format":"int64"},"State":{"description":"The state of the container.","type":"object","properties":{"Dead":{"type":"boolean"},"Error":{"type":"string"},"ExitCode":{"description":"The last exit code of this container","type":"integer"},"FinishedAt":{"description":"The time when this container last exited.","type":"string"},"OOMKilled":{"description":"Whether this container has been killed because it ran out of memory.","type":"boolean"},"Paused":{"description":"Whether this container is paused.","type":"boolean"},"Pid":{"description":"The process ID of this container","type":"integer"},"Restarting":{"description":"Whether this container is restarting.","type":"boolean"},"Running":{"description":"Whether this container is running.\n\nNote that a running container can be _paused_. The `Running` and `Paused`\nbooleans are not mutually exclusive:\n\nWhen pausing a container (on Linux), the cgroups freezer is used to suspend\nall processes in the container. Freezing the process requires the process to\nbe running. As a result, paused containers are both `Running` _and_ `Paused`.\n\nUse the `Status` field instead to determine if a container's state is \"running\".\n","type":"boolean"},"StartedAt":{"description":"The time when this container was last started.","type":"string"},"Status":{"description":"The status of the container. For example, `\"running\"` or `\"exited\"`.\n","type":"string","enum":["created","running","paused","restarting","removing","exited","dead"]}}}}},"examples":{"application/json":{"AppArmorProfile":"","Args":["-c","exit 9"],"Config":{"AttachStderr":true,"AttachStdin":false,"AttachStdout":true,"Cmd":["/bin/sh","-c","exit 9"],"Domainname":"","Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Hostname":"ba033ac44011","Image":"ubuntu","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"MacAddress":"","NetworkDisabled":false,"OpenStdin":false,"StdinOnce":false,"StopSignal":"SIGTERM","StopTimeout":10,"Tty":false,"User":"","Volumes":{"/volumes/data":{}},"WorkingDir":""},"Created":"2015-01-06T15:47:31.485331387Z","Driver":"devicemapper","HostConfig":{"BlkioDeviceReadBps":[{}],"BlkioDeviceReadIOps":[{}],"BlkioDeviceWriteBps":[{}],"BlkioDeviceWriteIOps":[{}],"BlkioWeight":0,"BlkioWeightDevice":[{}],"ContainerIDFile":"","CpuPercent":80,"CpuPeriod":100000,"CpuRealtimePeriod":1000000,"CpuRealtimeRuntime":10000,"CpuShares":0,"CpusetCpus":"","CpusetMems":"","Devices":[],"IpcMode":"","KernelMemory":0,"LogConfig":{"Type":"json-file"},"LxcConf":[],"MaximumIOBps":0,"MaximumIOps":0,"Memory":0,"MemoryReservation":0,"MemorySwap":0,"NetworkMode":"bridge","OomKillDisable":false,"OomScoreAdj":500,"PidMode":"","PortBindings":{},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":2,"Name":"on-failure"},"ShmSize":67108864,"Sysctls":{"net.ipv4.ip_forward":"1"},"Ulimits":[{}],"VolumeDriver":""},"HostnamePath":"/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/hostname","HostsPath":"/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/hosts","Id":"ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39","Image":"04c5d3b7b0656168630d3ba35d8889bd0e9caafcaeb3004d2bfbc47e7c5d35d2","LogPath":"/var/lib/docker/containers/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b-json.log","MountLabel":"","Mounts":[{"Destination":"/data","Driver":"local","Mode":"ro,Z","Name":"fac362...80535","Propagation":"","RW":false,"Source":"/data"}],"Name":"/boring_euclid","NetworkSettings":{"Bridge":"","EndpointID":"","Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"HairpinMode":false,"IPAddress":"","IPPrefixLen":0,"IPv6Gateway":"","LinkLocalIPv6Address":"","LinkLocalIPv6PrefixLen":0,"MacAddress":"","Networks":{"bridge":{"EndpointID":"7587b82f0dada3656fda26588aee72630c6fab1536d36e394b2bfbcf898c971d","Gateway":"172.17.0.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.2","IPPrefixLen":16,"IPv6Gateway":"","MacAddress":"02:42:ac:12:00:02","NetworkID":"7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"}},"SandboxID":"","SandboxKey":"","SecondaryIPAddresses":"","SecondaryIPv6Addresses":""},"Path":"/bin/sh","ProcessLabel":"","ResolvConfPath":"/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/resolv.conf","RestartCount":1,"State":{"Dead":false,"Error":"","ExitCode":9,"FinishedAt":"2015-01-06T15:47:32.080254511Z","OOMKilled":false,"Paused":false,"Pid":0,"Restarting":false,"Running":true,"StartedAt":"2015-01-06T15:47:32.072697474Z","Status":"running"}}}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/kill":{"post":{"description":"Send a POSIX signal to a container, defaulting to killing to the container.","tags":["Container"],"summary":"Kill a container","operationId":"ContainerKill","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","default":"SIGKILL","description":"Signal to send to the container as an integer or string (e.g. `SIGINT`)","name":"signal","in":"query"}],"responses":{"204":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/logs":{"get":{"description":"Get `stdout` and `stderr` logs from a container.\n\nNote: This endpoint works only for containers with the `json-file` or `journald` logging driver.\n","tags":["Container"],"summary":"Get container logs","operationId":"ContainerLogs","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Return the logs as a stream.\n\nThis will return a `101` HTTP response with a `Connection: upgrade` header, then hijack the HTTP connection to send raw output. For more information about hijacking and the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).\n","name":"follow","in":"query"},{"type":"boolean","default":false,"description":"Return logs from `stdout`","name":"stdout","in":"query"},{"type":"boolean","default":false,"description":"Return logs from `stderr`","name":"stderr","in":"query"},{"type":"integer","default":0,"description":"Only return logs since this time, as a UNIX timestamp","name":"since","in":"query"},{"type":"boolean","default":false,"description":"Add timestamps to every log line","name":"timestamps","in":"query"},{"type":"string","default":"all","description":"Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines.","name":"tail","in":"query"}],"responses":{"101":{"description":"logs returned as a stream","schema":{"type":"string","format":"binary"}},"200":{"description":"logs returned as a string in response body","schema":{"type":"string"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/pause":{"post":{"description":"Use the cgroups freezer to suspend all processes in a container.\n\nTraditionally, when suspending a process the `SIGSTOP` signal is used, which is observable by the process being suspended. With the cgroups freezer the process is unaware, and unable to capture, that it is being suspended, and subsequently resumed.\n","tags":["Container"],"summary":"Pause a container","operationId":"ContainerPause","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true}],"responses":{"204":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/rename":{"post":{"tags":["Container"],"summary":"Rename a container","operationId":"ContainerRename","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","description":"New name for the container","name":"name","in":"query","required":true}],"responses":{"204":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"409":{"description":"name already in use","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/resize":{"post":{"description":"Resize the TTY for a container. You must restart the container for the resize to take effect.","consumes":["application/octet-stream"],"produces":["text/plain"],"tags":["Container"],"summary":"Resize a container TTY","operationId":"ContainerResize","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"integer","description":"Height of the tty session in characters","name":"h","in":"query"},{"type":"integer","description":"Width of the tty session in characters","name":"w","in":"query"}],"responses":{"200":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"cannot resize container","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/restart":{"post":{"tags":["Container"],"summary":"Restart a container","operationId":"ContainerRestart","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"integer","description":"Number of seconds to wait before killing the container","name":"t","in":"query"}],"responses":{"204":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/start":{"post":{"tags":["Container"],"summary":"Start a container","operationId":"ContainerStart","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","description":"Override the key sequence for detaching a container. Format is a single character `[a-Z]` or `ctrl-\u003cvalue\u003e` where `\u003cvalue\u003e` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`.","name":"detachKeys","in":"query"}],"responses":{"204":{"description":"no error"},"304":{"description":"container already started","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/stats":{"get":{"description":"This endpoint returns a live stream of a container’s resource usage\nstatistics.\n\nThe `precpu_stats` is the CPU statistic of last read, which is used\nfor calculating the CPU usage percentage. It is not the same as the\n`cpu_stats` field.\n\nIf either `precpu_stats.online_cpus` or `cpu_stats.online_cpus` is\nnil then for compatibility with older daemons the length of the\ncorresponding `cpu_usage.percpu_usage` array should be used.\n","produces":["application/json"],"tags":["Container"],"summary":"Get container stats based on resource usage","operationId":"ContainerStats","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"boolean","default":true,"description":"Stream the output. If false, the stats will be output once and then it will disconnect.","name":"stream","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"object"},"examples":{"application/json":{"blkio_stats":{},"cpu_stats":{"cpu_usage":{"percpu_usage":[8646879,24472255,36438778,30657443],"total_usage":100215355,"usage_in_kernelmode":30000000,"usage_in_usermode":50000000},"online_cpus":4,"system_cpu_usage":739306590000000,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"failcnt":0,"limit":67108864,"max_usage":6651904,"stats":{"active_anon":6537216,"active_file":0,"cache":0,"hierarchical_memory_limit":67108864,"inactive_anon":0,"inactive_file":0,"mapped_file":0,"pgfault":964,"pgmajfault":0,"pgpgin":477,"pgpgout":414,"rss":6537216,"rss_huge":6291456,"total_active_anon":6537216,"total_active_file":0,"total_cache":0,"total_inactive_anon":0,"total_inactive_file":0,"total_mapped_file":0,"total_pgfault":964,"total_pgmajfault":0,"total_pgpgin":477,"total_pgpgout":414,"total_rss":6537216,"total_rss_huge":6291456,"total_unevictable":0,"total_writeback":0,"unevictable":0,"writeback":0},"usage":6537216},"networks":{"eth0":{"rx_bytes":5338,"rx_dropped":0,"rx_errors":0,"rx_packets":36,"tx_bytes":648,"tx_dropped":0,"tx_errors":0,"tx_packets":8},"eth5":{"rx_bytes":4641,"rx_dropped":0,"rx_errors":0,"rx_packets":26,"tx_bytes":690,"tx_dropped":0,"tx_errors":0,"tx_packets":9}},"pids_stats":{"current":3},"precpu_stats":{"cpu_usage":{"percpu_usage":[8646879,24350896,36438778,30657443],"total_usage":100093996,"usage_in_kernelmode":30000000,"usage_in_usermode":50000000},"online_cpus":4,"system_cpu_usage":9492140000000,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"read":"2015-01-08T22:57:31.547920715Z"}}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/stop":{"post":{"tags":["Container"],"summary":"Stop a container","operationId":"ContainerStop","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"integer","description":"Number of seconds to wait before killing the container","name":"t","in":"query"}],"responses":{"204":{"description":"no error"},"304":{"description":"container already stopped","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/top":{"get":{"description":"On Unix systems, this is done by running the `ps` command. This endpoint is not supported on Windows.","tags":["Container"],"summary":"List processes running inside a container","operationId":"ContainerTop","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","default":"-ef","description":"The arguments to pass to `ps`. For example, `aux`","name":"ps_args","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"object","properties":{"Processes":{"description":"Each process running in the container, where each is process is an array of values corresponding to the titles","type":"array","items":{"type":"array","items":{"type":"string"}}},"Titles":{"description":"The ps column titles","type":"array","items":{"type":"string"}}}},"examples":{"application/json":{"Processes":[["root","13642","882","0","17:03","pts/0","00:00:00","/bin/bash"],["root","13735","13642","0","17:06","pts/0","00:00:00","sleep 10"]],"Titles":["UID","PID","PPID","C","STIME","TTY","TIME","CMD"]}}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/unpause":{"post":{"description":"Resume a container which has been paused.","tags":["Container"],"summary":"Unpause a container","operationId":"ContainerUnpause","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true}],"responses":{"204":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/wait":{"post":{"description":"Block until a container stops, then returns the exit code.","produces":["application/json"],"tags":["Container"],"summary":"Wait for a container","operationId":"ContainerWait","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","default":"not-running","description":"Wait until a container state reaches the given condition, either 'not-running' (default), 'next-exit', or 'removed'.","name":"condition","in":"query"}],"responses":{"200":{"description":"The container has exit.","schema":{"type":"object","required":["StatusCode"],"properties":{"StatusCode":{"description":"Exit code of the container","type":"integer","x-nullable":false}}}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/defaultCollection/{userID}":{"get":{"description":"Retrieve a user's default collection.","produces":["application/json"],"tags":["UCP"],"summary":"Retrieve a user's default collection.","operationId":"Get user default collection","parameters":[{"type":"string","default":"","description":"ID of the user","name":"userID","in":"path","required":true}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/authz.Collection"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/authz.Collection"}}}},"put":{"description":"Set a user's default collection.","consumes":["application/json"],"tags":["UCP"],"summary":"Set a user's default collection.","operationId":"Set user default collection","parameters":[{"type":"string","default":"","description":"ID of the user","name":"userID","in":"path","required":true},{"type":"authz.CollectionID","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/authz.CollectionID"}}],"responses":{"201":{"description":"Success"}}},"delete":{"description":"Delete the default collection setting for a user","tags":["UCP"],"summary":"Delete the default collection setting for a user","operationId":"DeleteUserDefaultCollection","parameters":[{"type":"string","default":"","description":"ID of the user whose default collection mapping will be deleted","name":"userID","in":"path","required":true}],"responses":{"204":{"description":"Success"}}}},"/defaultCollectionRole":{"get":{"description":"Retrieve the role for the logged-in user's default collection.","produces":["application/json"],"tags":["UCP"],"summary":"Retrieve the role for the logged-in user's default collection.","operationId":"Get the logged-in user's role for their default collection","responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/role.Role"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/role.Role"}}}}},"/distribution/{name}/json":{"get":{"description":"Return image digest and platform information by contacting the registry.","produces":["application/json"],"tags":["Distribution"],"summary":"Get image information from the registry","operationId":"DistributionInspect","parameters":[{"type":"string","description":"Image name or id","name":"name","in":"path","required":true}],"responses":{"200":{"description":"descriptor and platform information","schema":{"type":"object","required":["Descriptor","Platforms"],"properties":{"Descriptor":{"description":"A descriptor struct containing digest, media type, and size","type":"object","properties":{"Digest":{"type":"string"},"MediaType":{"type":"string"},"Size":{"type":"integer","format":"int64"},"URLs":{"type":"array","items":{"type":"string"}}}},"Platforms":{"description":"An array containing all platforms supported by the image","type":"array","items":{"type":"object","properties":{"Architecture":{"type":"string"},"Features":{"type":"array","items":{"type":"string"}},"OS":{"type":"string"},"OSFeatures":{"type":"array","items":{"type":"string"}},"OSVersion":{"type":"string"},"Variant":{"type":"string"}}}}},"x-go-name":"DistributionInspect"},"examples":{"application/json":{"Descriptor":{"Digest":"sha256:c0537ff6a5218ef531ece93d4984efc99bbf3f7497c0a7726c88e2bb7584dc96","MediaType":"application/vnd.docker.distribution.manifest.v2+json","Size":3987495,"URLs":[""]},"Platforms":[{"Architecture":"amd64","Features":[""],"OS":"linux","OSFeatures":[""],"OSVersion":"","Variant":""}]}}},"401":{"description":"Failed authentication or no image found","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such image: someimage (tag: latest)"}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/events":{"get":{"description":"Stream real-time events from the server.\n\nVarious objects within Docker report events when something happens to them.\n\nContainers report these events: `attach`, `commit`, `copy`, `create`, `destroy`, `detach`, `die`, `exec_create`, `exec_detach`, `exec_start`, `export`, `health_status`, `kill`, `oom`, `pause`, `rename`, `resize`, `restart`, `start`, `stop`, `top`, `unpause`, and `update`\n\nImages report these events: `delete`, `import`, `load`, `pull`, `push`, `save`, `tag`, and `untag`\n\nVolumes report these events: `create`, `mount`, `unmount`, and `destroy`\n\nNetworks report these events: `create`, `connect`, `disconnect`, `destroy`, `update`, and `remove`\n\nThe Docker daemon reports these events: `reload`\n\nServices report these events: `create`, `update`, and `remove`\n\nNodes report these events: `create`, `update`, and `remove`\n\nSecrets report these events: `create`, `update`, and `remove`\n","produces":["application/json"],"tags":["System"],"summary":"Monitor events","operationId":"SystemEvents","parameters":[{"type":"string","description":"Show events created since this timestamp then stream new events.","name":"since","in":"query"},{"type":"string","description":"Show events created until this timestamp then stop streaming.","name":"until","in":"query"},{"type":"string","description":"A JSON encoded value of filters (a `map[string][]string`) to process on the event list. Available filters:\n\n- `container=\u003cstring\u003e` container name or ID\n- `daemon=\u003cstring\u003e` daemon name or ID\n- `event=\u003cstring\u003e` event type\n- `image=\u003cstring\u003e` image name or ID\n- `label=\u003cstring\u003e` image or container label\n- `network=\u003cstring\u003e` network name or ID\n- `plugin`=\u003cstring\u003e plugin name or ID\n- `scope`=\u003cstring\u003e local or swarm\n- `type=\u003cstring\u003e` object to filter by, one of `container`, `image`, `volume`, `network`, `daemon`, `plugin`, `node`, `service` or `secret`\n- `volume=\u003cstring\u003e` volume name or ID\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"object","properties":{"Action":{"description":"The type of event","type":"string"},"Actor":{"type":"object","properties":{"Attributes":{"description":"Various key/value attributes of the object, depending on its type","type":"object","additionalProperties":{"type":"string"}},"ID":{"description":"The ID of the object emitting the event","type":"string"}}},"Type":{"description":"The type of object emitting the event","type":"string"},"time":{"description":"Timestamp of event","type":"integer"},"timeNano":{"description":"Timestamp of event, with nanosecond accuracy","type":"integer","format":"int64"}}},"examples":{"application/json":{"Action":"create","Actor":{"Attributes":{"com.example.some-label":"some-label-value","image":"alpine","name":"my-container"},"ID":"ede54ee1afda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c743"},"Type":"container","time":1461943101}}},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/exec/{id}/json":{"get":{"description":"Return low-level information about an exec instance.","produces":["application/json"],"tags":["Exec"],"summary":"Inspect an exec instance","operationId":"ExecInspect","parameters":[{"type":"string","description":"Exec instance ID","name":"id","in":"path","required":true}],"responses":{"200":{"description":"No error","schema":{"type":"object","properties":{"ContainerID":{"type":"string"},"ExitCode":{"type":"integer"},"ID":{"type":"string"},"OpenStderr":{"type":"boolean"},"OpenStdin":{"type":"boolean"},"OpenStdout":{"type":"boolean"},"Pid":{"description":"The system process ID for the exec process.","type":"integer"},"ProcessConfig":{"$ref":"#/definitions/ProcessConfig"},"Running":{"type":"boolean"}}},"examples":{"application/json":{"CanRemove":false,"ContainerID":"b53ee82b53a40c7dca428523e34f741f3abc51d9f297a14ff874bf761b995126","DetachKeys":"","ExitCode":2,"ID":"f33bbfb39f5b142420f4759b2348913bd4a8d1a6d7fd56499cb41a1bb91d7b3b","OpenStderr":true,"OpenStdin":true,"OpenStdout":true,"Pid":42000,"ProcessConfig":{"arguments":["-c","exit 2"],"entrypoint":"sh","privileged":false,"tty":true,"user":"1000"},"Running":false}}},"404":{"description":"No such exec instance","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/exec/{id}/resize":{"post":{"description":"Resize the TTY session used by an exec instance. This endpoint only works if `tty` was specified as part of creating and starting the exec instance.","tags":["Exec"],"summary":"Resize an exec instance","operationId":"ExecResize","parameters":[{"type":"string","description":"Exec instance ID","name":"id","in":"path","required":true},{"type":"integer","description":"Height of the TTY session in characters","name":"h","in":"query"},{"type":"integer","description":"Width of the TTY session in characters","name":"w","in":"query"}],"responses":{"201":{"description":"No error"},"404":{"description":"No such exec instance","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/exec/{id}/start":{"post":{"description":"Starts a previously set up exec instance. If detach is true, this endpoint returns immediately after starting the command. Otherwise, it sets up an interactive session with the command.","consumes":["application/json"],"produces":["application/vnd.docker.raw-stream"],"tags":["Exec"],"summary":"Start an exec instance","operationId":"ExecStart","parameters":[{"name":"execStartConfig","in":"body","schema":{"type":"object","properties":{"Detach":{"description":"Detach from the command.","type":"boolean"},"Tty":{"description":"Allocate a pseudo-TTY.","type":"boolean"}},"example":{"Detach":false,"Tty":false}}},{"type":"string","description":"Exec instance ID","name":"id","in":"path","required":true}],"responses":{"200":{"description":"No error"},"404":{"description":"No such exec instance","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"Container is stopped or paused","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/id/":{"get":{"description":"Identify the Currently Authenticated Account.","produces":["application/json"],"tags":["Identity"],"summary":"Identify the Currently Authenticated Account.","operationId":"ID","responses":{"200":{"description":"Success, current account returned."},"default":{"description":"Success, current account returned."}}}},"/id/login":{"post":{"description":"Submit a Login Form in exchange for a Session Token","consumes":["application/json"],"produces":["application/json"],"tags":["Identity"],"summary":"Submit a Login Form in exchange for a Session Token","operationId":"Login","parameters":[{"type":"forms.Login","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Login"}}],"responses":{"200":{"description":"Success, login response returned.","schema":{"$ref":"#/definitions/responses.LoginSession"}},"default":{"description":"Success, login response returned.","schema":{"$ref":"#/definitions/responses.LoginSession"}}}}},"/id/logout":{"post":{"description":"Delete the current session is use.","produces":["application/json"],"tags":["Identity"],"summary":"Delete the current session is use.","operationId":"Logout","responses":{"204":{"description":"Success, current session deleted."}}}},"/images/create":{"post":{"description":"Create an image by either pulling it from a registry or importing it.\n\nThe `create` request pulls the image onto every node in the swarm that exists at that time and that have the right operating system. Nodes that join the swarm later or that don't have the same base OS as the image won't get the image.","consumes":["text/plain","application/octet-stream"],"produces":["application/json"],"tags":["Image"],"summary":"Create an image","operationId":"ImageCreate","parameters":[{"type":"string","description":"Name of the image to pull. The name may include a tag or digest. This parameter may only be used when pulling an image. The pull is cancelled if the HTTP connection is closed.","name":"fromImage","in":"query"},{"type":"string","description":"Source to import. The value may be a URL from which the image can be retrieved or `-` to read the image from the request body. This parameter may only be used when importing an image.","name":"fromSrc","in":"query"},{"type":"string","description":"Repository name given to an image when it is imported. The repo may include a tag. This parameter may only be used when importing an image.","name":"repo","in":"query"},{"type":"string","description":"Tag or digest. If empty when pulling an image, this causes all tags for the given image to be pulled.","name":"tag","in":"query"},{"description":"Image content if the value `-` has been specified in fromSrc query parameter","name":"inputImage","in":"body","schema":{"type":"string"}},{"type":"string","description":"A base64-encoded auth configuration. [See the authentication section for details.](#section/Authentication)","name":"X-Registry-Auth","in":"header"}],"responses":{"200":{"description":"no error"},"404":{"description":"repository does not exist or no read access","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/get":{"get":{"description":"Get a tarball containing all images and metadata for several image repositories.\n\nFor each value of the `names` parameter: if it is a specific name and tag (e.g. `ubuntu:latest`), then only that image (and its parents) are returned; if it is an image ID, similarly only that image (and its parents) are returned and there would be no names referenced in the 'repositories' file for this image ID.\n\nFor details on the format, see [the export image endpoint](#operation/ImageGet).\n","produces":["application/x-tar"],"tags":["Image"],"summary":"Export several images","operationId":"ImageGetAll","parameters":[{"type":"array","items":{"type":"string"},"description":"Image names to filter by","name":"names","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"string","format":"binary"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/json":{"get":{"description":"Returns a list of images on the server. Note that it uses a different, smaller representation of an image than inspecting a single image.\n\nThis endpoint returns the union of all images on all nodes in the cluster.","produces":["application/json"],"tags":["Image"],"summary":"List Images","operationId":"ImageList","parameters":[{"type":"boolean","default":false,"description":"Show all images. Only images from a final layer (no children) are shown by default.","name":"all","in":"query"},{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters:\n\n- `before`=(`\u003cimage-name\u003e[:\u003ctag\u003e]`, `\u003cimage id\u003e` or `\u003cimage@digest\u003e`)\n- `dangling=true`\n- `label=key` or `label=\"key=value\"` of an image label\n- `reference`=(`\u003cimage-name\u003e[:\u003ctag\u003e]`)\n- `since`=(`\u003cimage-name\u003e[:\u003ctag\u003e]`, `\u003cimage id\u003e` or `\u003cimage@digest\u003e`)\n","name":"filters","in":"query"},{"type":"boolean","default":false,"description":"Show digest information as a `RepoDigests` field on each image.","name":"digests","in":"query"}],"responses":{"200":{"description":"Summary image data for the images matching the query","schema":{"type":"array","items":{"$ref":"#/definitions/ImageSummary"}},"examples":{"application/json":[{"Containers":2,"Created":1474925151,"Id":"sha256:e216a057b1cb1efc11f8a268f37ef62083e70b1b38323ba252e25ac88904a7e8","Labels":{},"ParentId":"","RepoDigests":["ubuntu@sha256:992069aee4016783df6345315302fa59681aae51a8eeb2f889dea59290f21787"],"RepoTags":["ubuntu:12.04","ubuntu:precise"],"SharedSize":0,"Size":103579269,"VirtualSize":103579269},{"Containers":5,"Created":1403128455,"Id":"sha256:3e314f95dcace0f5e4fd37b10862fe8398e3c60ed36600bc0ca5fda78b087175","Labels":{},"ParentId":"","RepoDigests":["ubuntu@sha256:002fba3e3255af10be97ea26e476692a7ebed0bb074a9ab960b2e7a1526b15d7","ubuntu@sha256:68ea0200f0b90df725d99d823905b04cf844f6039ef60c60bf3e019915017bd3"],"RepoTags":["ubuntu:12.10","ubuntu:quantal"],"SharedSize":0,"Size":172064416,"VirtualSize":172064416}]}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/load":{"post":{"description":"Load a set of images and tags into a repository.\n\nFor details on the format, see [the export image endpoint](#operation/ImageGet).\n\n\nThe image is loaded on all nodes in the swarm that are compatible with the image's architecture. For example, Windows images aren't loaded on Linux nodes, and vice-versa.","consumes":["application/x-tar"],"produces":["application/json"],"tags":["Image"],"summary":"Import images","operationId":"ImageLoad","parameters":[{"description":"Tar archive containing images","name":"imagesTarball","in":"body","schema":{"type":"string","format":"binary"}},{"type":"boolean","default":false,"description":"Suppress progress details during load.","name":"quiet","in":"query"}],"responses":{"200":{"description":"no error"},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/prune":{"post":{"produces":["application/json"],"tags":["Image"],"summary":"Delete unused images","operationId":"ImagePrune","parameters":[{"type":"string","description":"Filters to process on the prune list, encoded as JSON (a `map[string][]string`). Available filters:\n\n- `dangling=\u003cboolean\u003e` When set to `true` (or `1`), prune only\n unused *and* untagged images. When set to `false`\n (or `0`), all unused images are pruned.\n- `until=\u003cstring\u003e` Prune images created before this timestamp. The `\u003ctimestamp\u003e` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time.\n- `label` (`label=\u003ckey\u003e`, `label=\u003ckey\u003e=\u003cvalue\u003e`, `label!=\u003ckey\u003e`, or `label!=\u003ckey\u003e=\u003cvalue\u003e`) Prune images with (or without, in case `label!=...` is used) the specified labels.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"object","properties":{"ImagesDeleted":{"description":"Images that were deleted","type":"array","items":{"$ref":"#/definitions/ImageDeleteResponseItem"}},"SpaceReclaimed":{"description":"Disk space reclaimed in bytes","type":"integer","format":"int64"}}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/search":{"get":{"description":"Search for an image on Docker Hub.","produces":["application/json"],"tags":["Image"],"summary":"Search images","operationId":"ImageSearch","parameters":[{"type":"string","description":"Term to search","name":"term","in":"query","required":true},{"type":"integer","description":"Maximum number of results to return","name":"limit","in":"query"},{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters:\n\n- `is-automated=(true|false)`\n- `is-official=(true|false)`\n- `stars=\u003cnumber\u003e` Matches images that has at least 'number' stars.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"is_automated":{"type":"boolean"},"is_official":{"type":"boolean"},"name":{"type":"string"},"star_count":{"type":"integer"}}}},"examples":{"application/json":[{"description":"","is_automated":false,"is_official":false,"name":"wma55/u1210sshd","star_count":0},{"description":"","is_automated":false,"is_official":false,"name":"jdswinbank/sshd","star_count":0},{"description":"","is_automated":false,"is_official":false,"name":"vgauthier/sshd","star_count":0}]}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/{name}":{"delete":{"description":"Remove an image, along with any untagged parent images that were\nreferenced by that image.\n\nImages can't be removed if they have descendant images, are being\nused by a running container or are being used by a build.\n","produces":["application/json"],"tags":["Image"],"summary":"Remove an image","operationId":"ImageDelete","parameters":[{"type":"string","description":"Image name or ID","name":"name","in":"path","required":true},{"type":"boolean","default":false,"description":"Remove the image even if it is being used by stopped containers or has other tags","name":"force","in":"query"},{"type":"boolean","default":false,"description":"Do not delete untagged parent images","name":"noprune","in":"query"}],"responses":{"200":{"description":"The image was deleted successfully","schema":{"type":"array","items":{"$ref":"#/definitions/ImageDeleteResponseItem"}},"examples":{"application/json":[{"Untagged":"3e2f21a89f"},{"Deleted":"3e2f21a89f"},{"Deleted":"53b4f83ac9"}]}},"404":{"description":"No such image","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"Conflict","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/{name}/get":{"get":{"description":"Get a tarball containing all images and metadata for a repository.\n\nIf `name` is a specific name and tag (e.g. `ubuntu:latest`), then only that image (and its parents) are returned. If `name` is an image ID, similarly only that image (and its parents) are returned, but with the exclusion of the `repositories` file in the tarball, as there were no image names referenced.\n\n### Image tarball format\n\nAn image tarball contains one directory per image layer (named using its long ID), each containing these files:\n\n- `VERSION`: currently `1.0` - the file format version\n- `json`: detailed layer information, similar to `docker inspect layer_id`\n- `layer.tar`: A tarfile containing the filesystem changes in this layer\n\nThe `layer.tar` file contains `aufs` style `.wh..wh.aufs` files and directories for storing attribute changes and deletions.\n\nIf the tarball defines a repository, the tarball should also include a `repositories` file at the root that contains a list of repository and tag names mapped to layer IDs.\n\n```json\n{\n \"hello-world\": {\n \"latest\": \"565a9d68a73f6706862bfe8409a7f659776d4d60a8d096eb4a3cbce6999cc2a1\"\n }\n}\n```\n","produces":["application/x-tar"],"tags":["Image"],"summary":"Export an image","operationId":"ImageGet","parameters":[{"type":"string","description":"Image name or ID","name":"name","in":"path","required":true}],"responses":{"200":{"description":"no error","schema":{"type":"string","format":"binary"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/{name}/history":{"get":{"description":"Return parent layers of an image.","produces":["application/json"],"tags":["Image"],"summary":"Get the history of an image","operationId":"ImageHistory","parameters":[{"type":"string","description":"Image name or ID","name":"name","in":"path","required":true}],"responses":{"200":{"description":"List of image layers","schema":{"type":"array","items":{"type":"object","required":["Id","Created","CreatedBy","Tags","Size","Comment"],"properties":{"Comment":{"type":"string","x-nullable":false},"Created":{"type":"integer","format":"int64","x-nullable":false},"CreatedBy":{"type":"string","x-nullable":false},"Id":{"type":"string","x-nullable":false},"Size":{"type":"integer","format":"int64","x-nullable":false},"Tags":{"type":"array","items":{"type":"string"}}},"x-go-name":"HistoryResponseItem"}},"examples":{"application/json":[{"Comment":"","Created":1398108230,"CreatedBy":"/bin/sh -c #(nop) ADD file:eb15dbd63394e063b805a3c32ca7bf0266ef64676d5a6fab4801f2e81e2a5148 in /","Id":"3db9c44f45209632d6050b35958829c3a2aa256d81b9a7be45b362ff85c54710","Size":182964289,"Tags":["ubuntu:lucid","ubuntu:10.04"]},{"Comment":"","Created":1398108222,"CreatedBy":"/bin/sh -c #(nop) MAINTAINER Tianon Gravi \u003cadmwiggin@gmail.com\u003e - mkimage-debootstrap.sh -i iproute,iputils-ping,ubuntu-minimal -t lucid.tar.xz lucid http://archive.ubuntu.com/ubuntu/","Id":"6cfa4d1f33fb861d4d114f43b25abd0ac737509268065cdfd69d544a59c85ab8","Size":0,"Tags":[]},{"Comment":"Imported from -","Created":1371157430,"CreatedBy":"","Id":"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158","Size":0,"Tags":["scratch12:latest","scratch:latest"]}]}},"404":{"description":"No such image","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/{name}/json":{"get":{"description":"Return low-level information about an image.","produces":["application/json"],"tags":["Image"],"summary":"Inspect an image","operationId":"ImageInspect","parameters":[{"type":"string","description":"Image name or id","name":"name","in":"path","required":true}],"responses":{"200":{"description":"No error","schema":{"$ref":"#/definitions/Image"},"examples":{"application/json":{"Architecture":"amd64","Author":"","Comment":"","Config":{"AttachStderr":false,"AttachStdin":false,"AttachStdout":false,"Cmd":["/bin/bash"],"Domainname":"","Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Hostname":"e611e15f9c9d","Image":"91e54dfb11794fad694460162bf0cb0a4fa710cfa3f60979c177d920813e267c","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"MacAddress":"","NetworkDisabled":false,"OnBuild":[],"OpenStdin":false,"PublishService":"","StdinOnce":false,"Tty":false,"User":"","WorkingDir":""},"Container":"cb91e48a60d01f1e27028b4fc6819f4f290b3cf12496c8176ec714d0d390984a","ContainerConfig":{"AttachStderr":false,"AttachStdin":false,"AttachStdout":false,"Cmd":["/bin/sh","-c","#(nop) LABEL com.example.vendor=Acme com.example.license=GPL com.example.version=1.0"],"Domainname":"","Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Hostname":"e611e15f9c9d","Image":"91e54dfb11794fad694460162bf0cb0a4fa710cfa3f60979c177d920813e267c","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"MacAddress":"","NetworkDisabled":false,"OnBuild":[],"OpenStdin":false,"PublishService":"","StdinOnce":false,"Tty":false,"User":"","WorkingDir":""},"Created":"2015-09-10T08:30:53.26995814Z","DockerVersion":"1.9.0-dev","GraphDriver":{"Data":{},"Name":"aufs"},"Id":"sha256:85f05633ddc1c50679be2b16a0479ab6f7637f8884e0cfe0f4d20e1ebb3d6e7c","Os":"linux","Parent":"sha256:91e54dfb11794fad694460162bf0cb0a4fa710cfa3f60979c177d920813e267c","RepoDigests":["localhost:5000/test/busybox/example@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf"],"RepoTags":["example:1.0","example:latest","example:stable"],"RootFS":{"Layers":["sha256:1834950e52ce4d5a88a1bbd131c537f4d0e56d10ff0dd69e66be3b7dfa9df7e6","sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef"],"Type":"layers"},"Size":0,"VirtualSize":188359297}}},"404":{"description":"No such image","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such image: someimage (tag: latest)"}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/{name}/push":{"post":{"description":"Push an image to a registry.\n\nIf you wish to push an image on to a private registry, that image must already have a tag which references the registry. For example, `registry.example.com/myimage:latest`.\n\nThe push is cancelled if the HTTP connection is closed.\n","consumes":["application/octet-stream"],"tags":["Image"],"summary":"Push an image","operationId":"ImagePush","parameters":[{"type":"string","description":"Image name or ID.","name":"name","in":"path","required":true},{"type":"string","description":"The tag to associate with the image on the registry.","name":"tag","in":"query"},{"type":"string","description":"A base64-encoded auth configuration. [See the authentication section for details.](#section/Authentication)","name":"X-Registry-Auth","in":"header","required":true}],"responses":{"200":{"description":"No error"},"404":{"description":"No such image","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/{name}/tag":{"post":{"description":"Tag an image so that it becomes part of a repository.","tags":["Image"],"summary":"Tag an image","operationId":"ImageTag","parameters":[{"type":"string","description":"Image name or ID to tag.","name":"name","in":"path","required":true},{"type":"string","description":"The repository to tag in. For example, `someuser/someimage`.","name":"repo","in":"query"},{"type":"string","description":"The name of the new tag.","name":"tag","in":"query"}],"responses":{"201":{"description":"No error"},"400":{"description":"Bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"No such image","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"Conflict","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/info":{"get":{"description":"UCP returns a combination of info about the swarm, including:\n\n- Swarm manager status\n\n- Swarm scheduler strategy\n\n- Swarm-manager endpoints that are useful for administrator access when troubleshooting\n\n- Engine proxy endpoints for each node in the swarm that are useful for troubleshooting\n\n- Plugins present on the current manager node\n\n- Engine information for the current manager node","produces":["application/json"],"tags":["System"],"summary":"Get system information","operationId":"SystemInfo","responses":{"200":{"description":"No error","schema":{"type":"object","properties":{"Architecture":{"type":"string"},"Containers":{"type":"integer"},"ContainersPaused":{"type":"integer"},"ContainersRunning":{"type":"integer"},"ContainersStopped":{"type":"integer"},"CpuCfsPeriod":{"type":"boolean"},"CpuCfsQuota":{"type":"boolean"},"Debug":{"type":"boolean"},"DiscoveryBackend":{"type":"string"},"DockerRootDir":{"type":"string"},"Driver":{"type":"string"},"DriverStatus":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"ExperimentalBuild":{"type":"boolean"},"HttpProxy":{"type":"string"},"HttpsProxy":{"type":"string"},"ID":{"type":"string"},"IPv4Forwarding":{"type":"boolean"},"Images":{"type":"integer"},"IndexServerAddress":{"type":"string"},"InitPath":{"type":"string"},"InitSha1":{"type":"string"},"KernelVersion":{"type":"string"},"Labels":{"type":"array","items":{"type":"string"}},"MemTotal":{"type":"integer"},"MemoryLimit":{"type":"boolean"},"NCPU":{"type":"integer"},"NEventsListener":{"type":"integer"},"NFd":{"type":"integer"},"NGoroutines":{"type":"integer"},"Name":{"type":"string"},"NoProxy":{"type":"string"},"OSType":{"type":"string"},"OomKillDisable":{"type":"boolean"},"OomScoreAdj":{"type":"integer"},"OperatingSystem":{"type":"string"},"Plugins":{"type":"object","properties":{"Log":{"type":"array","items":{"type":"string"}},"Network":{"type":"array","items":{"type":"string"}},"Volume":{"type":"array","items":{"type":"string"}}}},"RegistryConfig":{"type":"object","properties":{"IndexConfigs":{"type":"object","additionalProperties":{"type":"object","properties":{"Mirrors":{"type":"array","items":{"type":"string"}},"Name":{"type":"string"},"Official":{"type":"boolean"},"Secure":{"type":"boolean"}}}},"InsecureRegistryCIDRs":{"type":"array","items":{"type":"string"}}}},"ServerVersion":{"type":"string"},"SwapLimit":{"type":"boolean"},"SystemStatus":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"SystemTime":{"type":"string"}}},"examples":{"application/json":{"Architecture":"x86_64","CgroupDriver":"cgroupfs","ClusterStore":"etcd://localhost:2379","Containers":11,"ContainersPaused":1,"ContainersRunning":7,"ContainersStopped":3,"CpuCfsPeriod":true,"CpuCfsQuota":true,"Debug":false,"DockerRootDir":"/var/lib/docker","Driver":"btrfs","DriverStatus":[[""]],"ExperimentalBuild":false,"HttpProxy":"http://test:test@localhost:8080","HttpsProxy":"https://test:test@localhost:8080","ID":"7TRN:IPZB:QYBB:VPBQ:UMPP:KARE:6ZNR:XE6T:7EWV:PKF4:ZOJD:TPYS","IPv4Forwarding":true,"Images":16,"IndexServerAddress":"https://index.docker.io/v1/","InitPath":"/usr/bin/docker","InitSha1":"","KernelMemory":true,"KernelVersion":"3.12.0-1-amd64","Labels":["storage=ssd"],"MemTotal":2099236864,"MemoryLimit":true,"NCPU":1,"NEventsListener":0,"NFd":11,"NGoroutines":21,"Name":"prod-server-42","NoProxy":"9.81.1.160","OSType":"linux","OomKillDisable":true,"OperatingSystem":"Boot2Docker","Plugins":{"Network":["null","host","bridge"],"Volume":["local"]},"RegistryConfig":{"IndexConfigs":{"docker.io":{"Name":"docker.io","Official":true,"Secure":true}},"InsecureRegistryCIDRs":["127.0.0.0/8"]},"SecurityOptions":[{"Key":"Name","Value":"seccomp"},{"Key":"Profile","Value":"default"},{"Key":"Name","Value":"apparmor"},{"Key":"Name","Value":"selinux"},{"Key":"Name","Value":"userns"}],"ServerVersion":"1.9.0","SwapLimit":false,"SystemStatus":[["State","Healthy"]],"SystemTime":"2015-03-10T11:11:23.730591467-07:00"}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/kubernetesNamespaces":{"get":{"description":"Lists all namespaces for which a user has a grant","produces":["application/json"],"tags":["UCP"],"summary":"Lists all namespaces for which a user has a grant","operationId":"ListUserNamespaces","responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/v1.NamespaceList"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/v1.NamespaceList"}}}}},"/networks":{"get":{"description":"Returns a list of networks. For details on the format, see [the network inspect endpoint](#operation/NetworkInspect).\n\nNote that it uses a different, smaller representation of a network than inspecting a single network. For example,\nthe list of containers attached to the network is not propagated in API versions 1.28 and up.\n\n\nNode-specific networks, like those with bridge and third-party drivers, are prefixed with the node name.","produces":["application/json"],"tags":["Network"],"summary":"List networks","operationId":"NetworkList","parameters":[{"type":"string","description":"JSON encoded value of the filters (a `map[string][]string`) to process on the networks list. Available filters:\n\n- `driver=\u003cdriver-name\u003e` Matches a network's driver.\n- `id=\u003cnetwork-id\u003e` Matches all or part of a network ID.\n- `label=\u003ckey\u003e` or `label=\u003ckey\u003e=\u003cvalue\u003e` of a network label.\n- `name=\u003cnetwork-name\u003e` Matches all or part of a network name.\n- `scope=[\"swarm\"|\"global\"|\"local\"]` Filters networks by scope (`swarm`, `global`, or `local`).\n- `type=[\"custom\"|\"builtin\"]` Filters networks by type. The `custom` keyword returns all user-defined networks.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"array","items":{"$ref":"#/definitions/Network"}},"examples":{"application/json":[{"Attachable":false,"Created":"2016-10-19T06:21:00.416543526Z","Driver":"bridge","EnableIPv6":false,"IPAM":{"Config":[{"Subnet":"172.17.0.0/16"}],"Driver":"default"},"Id":"f2de39df4171b0dc801e8002d1d999b77256983dfc63041c0f34030aa3977566","Ingress":false,"Internal":false,"Name":"bridge","Options":{"com.docker.network.bridge.default_bridge":"true","com.docker.network.bridge.enable_icc":"true","com.docker.network.bridge.enable_ip_masquerade":"true","com.docker.network.bridge.host_binding_ipv4":"0.0.0.0","com.docker.network.bridge.name":"docker0","com.docker.network.driver.mtu":"1500"},"Scope":"local"},{"Attachable":false,"Containers":{},"Created":"0001-01-01T00:00:00Z","Driver":"null","EnableIPv6":false,"IPAM":{"Config":[],"Driver":"default"},"Id":"e086a3893b05ab69242d3c44e49483a3bbbd3a26b46baa8f61ab797c1088d794","Ingress":false,"Internal":false,"Name":"none","Options":{},"Scope":"local"},{"Attachable":false,"Containers":{},"Created":"0001-01-01T00:00:00Z","Driver":"host","EnableIPv6":false,"IPAM":{"Config":[],"Driver":"default"},"Id":"13e871235c677f196c4e1ecebb9dc733b9b2d2ab589e30c539efeda84a24215e","Ingress":false,"Internal":false,"Name":"host","Options":{},"Scope":"local"}]}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/networks/create":{"post":{"description":"If the name is prefixed with the name of a node, the `create` request is sent to the specified node. Use the '/' character to separate the node name, like `testnode/testnet`.","consumes":["application/json"],"produces":["application/json"],"tags":["Network"],"summary":"Create a network","operationId":"NetworkCreate","parameters":[{"description":"Network configuration","name":"networkConfig","in":"body","required":true,"schema":{"type":"object","required":["Name"],"properties":{"Attachable":{"description":"Globally scoped network is manually attachable by regular containers from workers in swarm mode.","type":"boolean"},"CheckDuplicate":{"description":"Check for networks with duplicate names. Since Network is primarily keyed based on a random ID and not on the name, and network name is strictly a user-friendly alias to the network which is uniquely identified using ID, there is no guaranteed way to check for duplicates. CheckDuplicate is there to provide a best effort checking of any networks which has the same name but it is not guaranteed to catch all name collisions.","type":"boolean"},"Driver":{"description":"Name of the network driver plugin to use.","type":"string","default":"bridge"},"EnableIPv6":{"description":"Enable IPv6 on the network.","type":"boolean"},"IPAM":{"description":"Optional custom IP scheme for the network.","$ref":"#/definitions/IPAM"},"Ingress":{"description":"Ingress network is the network which provides the routing-mesh in swarm mode.","type":"boolean"},"Internal":{"description":"Restrict external access to the network.","type":"boolean"},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"The network's name.","type":"string"},"Options":{"description":"Network specific options to be used by the drivers.","type":"object","additionalProperties":{"type":"string"}}},"example":{"Attachable":false,"CheckDuplicate":false,"Driver":"bridge","EnableIPv6":true,"IPAM":{"Config":[{"Gateway":"172.20.10.11","IPRange":"172.20.10.0/24","Subnet":"172.20.0.0/16"},{"Gateway":"2001:db8:abcd::1011","Subnet":"2001:db8:abcd::/64"}],"Driver":"default","Options":{"foo":"bar"}},"Ingress":false,"Internal":true,"Labels":{"com.example.some-label":"some-value","com.example.some-other-label":"some-other-value"},"Name":"isolated_nw","Options":{"com.docker.network.bridge.default_bridge":"true","com.docker.network.bridge.enable_icc":"true","com.docker.network.bridge.enable_ip_masquerade":"true","com.docker.network.bridge.host_binding_ipv4":"0.0.0.0","com.docker.network.bridge.name":"docker0","com.docker.network.driver.mtu":"1500"}}}}],"responses":{"201":{"description":"No error","schema":{"type":"object","properties":{"Id":{"description":"The ID of the created network.","type":"string"},"Warning":{"type":"string"}},"example":{"Id":"22be93d5babb089c5aab8dbc369042fad48ff791584ca2da2100db837a1c7c30","Warning":""}}},"403":{"description":"operation not supported for pre-defined networks","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"plugin not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/networks/prune":{"post":{"description":"Not supported on UCP.","produces":["application/json"],"tags":["Network"],"summary":"Delete unused networks","operationId":"NetworkPrune","parameters":[{"type":"string","description":"Filters to process on the prune list, encoded as JSON (a `map[string][]string`).\n\nAvailable filters:\n- `until=\u003ctimestamp\u003e` Prune networks created before this timestamp. The `\u003ctimestamp\u003e` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time.\n- `label` (`label=\u003ckey\u003e`, `label=\u003ckey\u003e=\u003cvalue\u003e`, `label!=\u003ckey\u003e`, or `label!=\u003ckey\u003e=\u003cvalue\u003e`) Prune networks with (or without, in case `label!=...` is used) the specified labels.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"object","properties":{"NetworksDeleted":{"description":"Networks that were deleted","type":"array","items":{"type":"string"}}}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/networks/{id}":{"get":{"description":"Node-specific networks, like those with bridge and third-party drivers, are prefixed with the node name.","produces":["application/json"],"tags":["Network"],"summary":"Inspect a network","operationId":"NetworkInspect","parameters":[{"type":"string","description":"Network ID or name","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Detailed inspect output for troubleshooting","name":"verbose","in":"query"}],"responses":{"200":{"description":"No error","schema":{"$ref":"#/definitions/Network"}},"404":{"description":"Network not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"tags":["Network"],"summary":"Remove a network","operationId":"NetworkDelete","parameters":[{"type":"string","description":"Network ID or name","name":"id","in":"path","required":true}],"responses":{"204":{"description":"No error"},"403":{"description":"operation not supported for pre-defined networks","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such network","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/networks/{id}/connect":{"post":{"consumes":["application/octet-stream"],"tags":["Network"],"summary":"Connect a container to a network","operationId":"NetworkConnect","parameters":[{"type":"string","description":"Network ID or name","name":"id","in":"path","required":true},{"name":"container","in":"body","required":true,"schema":{"type":"object","properties":{"Container":{"description":"The ID or name of the container to connect to the network.","type":"string"},"EndpointConfig":{"$ref":"#/definitions/EndpointSettings"}},"example":{"Container":"3613f73ba0e4","EndpointConfig":{"IPAMConfig":{"IPv4Address":"172.24.56.89","IPv6Address":"2001:db8::5689"}}}}}],"responses":{"200":{"description":"No error"},"403":{"description":"Operation not supported for swarm scoped networks","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Network or container not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/networks/{id}/disconnect":{"post":{"consumes":["application/json"],"tags":["Network"],"summary":"Disconnect a container from a network","operationId":"NetworkDisconnect","parameters":[{"type":"string","description":"Network ID or name","name":"id","in":"path","required":true},{"name":"container","in":"body","required":true,"schema":{"type":"object","properties":{"Container":{"description":"The ID or name of the container to disconnect from the network.","type":"string"},"Force":{"description":"Force the container to disconnect from the network.","type":"boolean"}}}}],"responses":{"200":{"description":"No error"},"403":{"description":"Operation not supported for swarm scoped networks","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Network or container not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/nodes":{"get":{"description":"UCP augments the `Status.State` based on the status of the UCP components running on the current node.","tags":["Node"],"summary":"List nodes","operationId":"NodeList","parameters":[{"type":"string","description":"Filters to process on the nodes list, encoded as JSON (a `map[string][]string`).\n\nAvailable filters:\n- `id=\u003cnode id\u003e`\n- `label=\u003cengine label\u003e`\n- `membership=`(`accepted`|`pending`)`\n- `name=\u003cnode name\u003e`\n- `role=`(`manager`|`worker`)`\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"array","items":{"$ref":"#/definitions/Node"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/nodes/{id}":{"get":{"description":"UCP augments the `Status.State` based on the status of the UCP components running on the current node.","tags":["Node"],"summary":"Inspect a node","operationId":"NodeInspect","parameters":[{"type":"string","description":"The ID or name of the node","name":"id","in":"path","required":true}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/Node"}},"404":{"description":"no such node","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"description":"If the current node is a manager, to keep the system healthy UCP attempts to unwind swarm components, like the KV store and auth store, from the node.","tags":["Node"],"summary":"Delete a node","operationId":"NodeDelete","parameters":[{"type":"string","description":"The ID or name of the node","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Force remove a node from the swarm","name":"force","in":"query"}],"responses":{"200":{"description":"no error"},"404":{"description":"no such node","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/nodes/{id}/update":{"post":{"tags":["Node"],"summary":"Update a node","operationId":"NodeUpdate","parameters":[{"type":"string","description":"The ID of the node","name":"id","in":"path","required":true},{"name":"body","in":"body","schema":{"$ref":"#/definitions/NodeSpec"}},{"type":"integer","format":"int64","description":"The version number of the node object being updated. This is required to avoid conflicting writes.","name":"version","in":"query","required":true}],"responses":{"200":{"description":"no error"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such node","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins":{"get":{"description":"Returns information about installed plugins.\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","produces":["application/json"],"tags":["Plugin"],"summary":"List plugins","operationId":"PluginList","parameters":[{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the plugin list. Available filters:\n\n- `capability=\u003ccapability name\u003e`\n- `enable=\u003ctrue\u003e|\u003cfalse\u003e`\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"array","items":{"$ref":"#/definitions/Plugin"}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/create":{"post":{"description":"\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","consumes":["application/x-tar"],"tags":["Plugin"],"summary":"Create a plugin","operationId":"PluginCreate","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"query","required":true},{"description":"Path to tar containing plugin rootfs and manifest","name":"tarContext","in":"body","schema":{"type":"string","format":"binary"}}],"responses":{"204":{"description":"no error"},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/pull":{"post":{"description":"Pulls and installs a plugin. After the plugin is installed, it can be enabled using the [`POST /plugins/{name}/enable` endpoint](#operation/PostPluginsEnable).\n\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","produces":["application/json"],"tags":["Plugin"],"summary":"Install a plugin","operationId":"PluginPull","parameters":[{"type":"string","description":"Remote reference for plugin to install.\n\nThe `:latest` tag is optional, and is used as the default if omitted.\n","name":"remote","in":"query","required":true},{"type":"string","description":"Local name for the pulled plugin.\n\nThe `:latest` tag is optional, and is used as the default if omitted.\n","name":"name","in":"query"},{"type":"string","description":"A base64-encoded auth configuration to use when pulling a plugin from a registry. [See the authentication section for details.](#section/Authentication)","name":"X-Registry-Auth","in":"header"},{"name":"body","in":"body","schema":{"type":"array","items":{"description":"Describes a permission accepted by the user upon installing the plugin.","type":"object","properties":{"Description":{"type":"string"},"Name":{"type":"string"},"Value":{"type":"array","items":{"type":"string"}}}},"example":[{"Description":"","Name":"network","Value":["host"]},{"Description":"","Name":"mount","Value":["/data"]},{"Description":"","Name":"device","Value":["/dev/cpu_dma_latency"]}]}}],"responses":{"204":{"description":"no error"},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/{name}":{"delete":{"description":"\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","tags":["Plugin"],"summary":"Remove a plugin","operationId":"PluginDelete","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"path","required":true},{"type":"boolean","default":false,"description":"Disable the plugin before removing. This may result in issues if the plugin is in use by a container.","name":"force","in":"query"}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/Plugin"}},"404":{"description":"plugin is not installed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/{name}/disable":{"post":{"description":"\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","tags":["Plugin"],"summary":"Disable a plugin","operationId":"PluginDisable","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"path","required":true}],"responses":{"200":{"description":"no error"},"404":{"description":"plugin is not installed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/{name}/enable":{"post":{"description":"\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","tags":["Plugin"],"summary":"Enable a plugin","operationId":"PluginEnable","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"path","required":true},{"type":"integer","default":0,"description":"Set the HTTP client timeout (in seconds)","name":"timeout","in":"query"}],"responses":{"200":{"description":"no error"},"404":{"description":"plugin is not installed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/{name}/push":{"post":{"description":"Push a plugin to the registry.\n\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","tags":["Plugin"],"summary":"Push a plugin","operationId":"PluginPush","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"path","required":true}],"responses":{"200":{"description":"no error"},"404":{"description":"plugin not installed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/{name}/set":{"post":{"description":"\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","consumes":["application/json"],"tags":["Plugin"],"summary":"Configure a plugin","operationId":"PluginSet","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"path","required":true},{"name":"body","in":"body","schema":{"type":"array","items":{"type":"string"},"example":["DEBUG=1"]}}],"responses":{"204":{"description":"No error"},"404":{"description":"Plugin not installed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/{name}/upgrade":{"post":{"description":"\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","tags":["Plugin"],"summary":"Upgrade a plugin","operationId":"PluginUpgrade","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"path","required":true},{"type":"string","description":"Remote reference to upgrade to.\n\nThe `:latest` tag is optional, and is used as the default if omitted.\n","name":"remote","in":"query","required":true},{"type":"string","description":"A base64-encoded auth configuration to use when pulling a plugin from a registry. [See the authentication section for details.](#section/Authentication)","name":"X-Registry-Auth","in":"header"},{"name":"body","in":"body","schema":{"type":"array","items":{"description":"Describes a permission accepted by the user upon installing the plugin.","type":"object","properties":{"Description":{"type":"string"},"Name":{"type":"string"},"Value":{"type":"array","items":{"type":"string"}}}},"example":[{"Description":"","Name":"network","Value":["host"]},{"Description":"","Name":"mount","Value":["/data"]},{"Description":"","Name":"device","Value":["/dev/cpu_dma_latency"]}]}}],"responses":{"204":{"description":"no error"},"404":{"description":"plugin not installed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/roles":{"get":{"description":"Lists all roles in the system.","produces":["application/json"],"tags":["UCP"],"summary":"Lists all roles in the system.","operationId":"ListRoles","responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/role.Role"}}},"default":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/role.Role"}}}}},"post":{"description":"Creates a new custom role","consumes":["application/json"],"tags":["UCP"],"summary":"Creates a new custom role","operationId":"CreateRole","parameters":[{"type":"role.Role","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/role.Role"}}],"responses":{"201":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/authz.RoleCreateResponse"}}}}}},"/roles/{role}":{"get":{"description":"Retrieves a single role by ID","produces":["application/json"],"tags":["UCP"],"summary":"Retrieves a single role by ID","operationId":"GetRole","parameters":[{"type":"string","default":"","description":"Name of the role to get","name":"role","in":"path","required":true}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/role.Role"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/role.Role"}}}},"delete":{"description":"Deletes a role by name","produces":["application/json"],"tags":["UCP"],"summary":"Deletes a role by name","operationId":"DeleteRole","parameters":[{"type":"string","default":"","description":"Name of the role to delete","name":"role","in":"path","required":true}],"responses":{"204":{"description":"Success"}}}},"/secrets":{"get":{"produces":["application/json"],"tags":["Secret"],"summary":"List secrets","operationId":"SecretList","parameters":[{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the secrets list. Available filters:\n\n- `id=\u003csecret id\u003e`\n- `label=\u003ckey\u003e or label=\u003ckey\u003e=value`\n- `name=\u003csecret name\u003e`\n- `names=\u003csecret name\u003e`\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"array","items":{"$ref":"#/definitions/Secret"},"example":[{"CreatedAt":"2016-11-05T01:20:17.327670065Z","ID":"ktnbjxoalbkvbvedmg1urrz8h","Spec":{"Name":"app-dev.crt"},"UpdatedAt":"2016-11-05T01:20:17.327670065Z","Version":{"Index":11}}]}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/secrets/create":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["Secret"],"summary":"Create a secret","operationId":"SecretCreate","parameters":[{"name":"body","in":"body","schema":{"allOf":[{"$ref":"#/definitions/SecretSpec"},{"type":"object","example":{"Data":"VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg==","Labels":{"foo":"bar"},"Name":"app-key.crt"}}]}}],"responses":{"201":{"description":"no error","schema":{"type":"object","properties":{"ID":{"description":"The ID of the created secret.","type":"string"}},"example":{"ID":"ktnbjxoalbkvbvedmg1urrz8h"}}},"409":{"description":"name conflicts with an existing object","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/secrets/{id}":{"get":{"produces":["application/json"],"tags":["Secret"],"summary":"Inspect a secret","operationId":"SecretInspect","parameters":[{"type":"string","description":"ID of the secret","name":"id","in":"path","required":true}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/Secret"},"examples":{"application/json":{"CreatedAt":"2016-11-05T01:20:17.327670065Z","ID":"ktnbjxoalbkvbvedmg1urrz8h","Spec":{"Name":"app-dev.crt"},"UpdatedAt":"2016-11-05T01:20:17.327670065Z","Version":{"Index":11}}}},"404":{"description":"secret not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"produces":["application/json"],"tags":["Secret"],"summary":"Delete a secret","operationId":"SecretDelete","parameters":[{"type":"string","description":"ID of the secret","name":"id","in":"path","required":true}],"responses":{"204":{"description":"no error"},"404":{"description":"secret not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/secrets/{id}/update":{"post":{"tags":["Secret"],"summary":"Update a Secret","operationId":"SecretUpdate","parameters":[{"type":"string","description":"The ID or name of the secret","name":"id","in":"path","required":true},{"description":"The spec of the secret to update. Currently, only the Labels field can be updated. All other fields must remain unchanged from the [SecretInspect endpoint](#operation/SecretInspect) response values.","name":"body","in":"body","schema":{"$ref":"#/definitions/SecretSpec"}},{"type":"integer","format":"int64","description":"The version number of the secret object being updated. This is required to avoid conflicting writes.","name":"version","in":"query","required":true}],"responses":{"200":{"description":"no error"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such secret","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/services":{"get":{"tags":["Service"],"summary":"List services","operationId":"ServiceList","parameters":[{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the services list. Available filters:\n\n- `id=\u003cservice id\u003e`\n- `label=\u003cservice label\u003e`\n- `mode=[\"replicated\"|\"global\"]`\n- `name=\u003cservice name\u003e`\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"array","items":{"$ref":"#/definitions/Service"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/services/create":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["Service"],"summary":"Create a service","operationId":"ServiceCreate","parameters":[{"name":"body","in":"body","required":true,"schema":{"allOf":[{"$ref":"#/definitions/ServiceSpec"},{"type":"object","example":{"EndpointSpec":{"Ports":[{"Protocol":"tcp","PublishedPort":8080,"TargetPort":80}]},"Labels":{"foo":"bar"},"Mode":{"Replicated":{"Replicas":4}},"Name":"web","RollbackConfig":{"Delay":1000000000,"FailureAction":"pause","MaxFailureRatio":0.15,"Monitor":15000000000,"Parallelism":1},"TaskTemplate":{"ContainerSpec":{"DNSConfig":{"Nameservers":["8.8.8.8"],"Options":["timeout:3"],"Search":["example.org"]},"Hosts":["10.10.10.10 host1","ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 host2"],"Image":"nginx:alpine","Mounts":[{"ReadOnly":true,"Source":"web-data","Target":"/usr/share/nginx/html","Type":"volume","VolumeOptions":{"DriverConfig":{},"Labels":{"com.example.something":"something-value"}}}],"Secrets":[{"File":{"GID":"33","Mode":384,"Name":"www.example.org.key","UID":"33"},"SecretID":"fpjqlhnwb19zds35k8wn80lq9","SecretName":"example_org_domain_key"}],"User":"33"},"LogDriver":{"Name":"json-file","Options":{"max-file":"3","max-size":"10M"}},"Placement":{},"Resources":{"Limits":{"MemoryBytes":104857600},"Reservations":{}},"RestartPolicy":{"Condition":"on-failure","Delay":10000000000,"MaxAttempts":10}},"UpdateConfig":{"Delay":1000000000,"FailureAction":"pause","MaxFailureRatio":0.15,"Monitor":15000000000,"Parallelism":2}}}]}},{"type":"string","description":"A base64-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)","name":"X-Registry-Auth","in":"header"}],"responses":{"201":{"description":"no error","schema":{"type":"object","properties":{"ID":{"description":"The ID of the created service.","type":"string"},"Warning":{"description":"Optional warning message","type":"string"}},"example":{"ID":"ak7w3gjqoa3kuz8xcpnyy0pvl","Warning":"unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found"}}},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"network is not eligible for services","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"name conflicts with an existing service","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/services/{id}":{"get":{"tags":["Service"],"summary":"Inspect a service","operationId":"ServiceInspect","parameters":[{"type":"string","description":"ID or name of service.","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Fill empty fields with default values.","name":"insertDefaults","in":"query"}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/Service"}},"404":{"description":"no such service","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"tags":["Service"],"summary":"Delete a service","operationId":"ServiceDelete","parameters":[{"type":"string","description":"ID or name of service.","name":"id","in":"path","required":true}],"responses":{"200":{"description":"no error"},"404":{"description":"no such service","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/services/{id}/logs":{"get":{"description":"Get `stdout` and `stderr` logs from a service.\n\n**Note**: This endpoint works only for services with the `json-file` or `journald` logging drivers.\n","produces":["application/vnd.docker.raw-stream","application/json"],"tags":["Service"],"summary":"Get service logs","operationId":"ServiceLogs","parameters":[{"type":"string","description":"ID or name of the service","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Show service context and extra details provided to logs.","name":"details","in":"query"},{"type":"boolean","default":false,"description":"Return the logs as a stream.\n\nThis will return a `101` HTTP response with a `Connection: upgrade` header, then hijack the HTTP connection to send raw output. For more information about hijacking and the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).\n","name":"follow","in":"query"},{"type":"boolean","default":false,"description":"Return logs from `stdout`","name":"stdout","in":"query"},{"type":"boolean","default":false,"description":"Return logs from `stderr`","name":"stderr","in":"query"},{"type":"integer","default":0,"description":"Only return logs since this time, as a UNIX timestamp","name":"since","in":"query"},{"type":"boolean","default":false,"description":"Add timestamps to every log line","name":"timestamps","in":"query"},{"type":"string","default":"all","description":"Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines.","name":"tail","in":"query"}],"responses":{"101":{"description":"logs returned as a stream","schema":{"type":"string","format":"binary"}},"200":{"description":"logs returned as a string in response body","schema":{"type":"string"}},"404":{"description":"no such service","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such service: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/services/{id}/update":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["Service"],"summary":"Update a service","operationId":"ServiceUpdate","parameters":[{"type":"string","description":"ID or name of service.","name":"id","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"allOf":[{"$ref":"#/definitions/ServiceSpec"},{"type":"object","example":{"EndpointSpec":{"Mode":"vip"},"Mode":{"Replicated":{"Replicas":1}},"Name":"top","RollbackConfig":{"Delay":1000000000,"FailureAction":"pause","MaxFailureRatio":0.15,"Monitor":15000000000,"Parallelism":1},"TaskTemplate":{"ContainerSpec":{"Args":["top"],"Image":"busybox"},"ForceUpdate":0,"Placement":{},"Resources":{"Limits":{},"Reservations":{}},"RestartPolicy":{"Condition":"any","MaxAttempts":0}},"UpdateConfig":{"Delay":1000000000,"FailureAction":"pause","MaxFailureRatio":0.15,"Monitor":15000000000,"Parallelism":2}}}]}},{"type":"integer","description":"The version number of the service object being updated. This is required to avoid conflicting writes.","name":"version","in":"query","required":true},{"type":"string","default":"spec","description":"If the X-Registry-Auth header is not specified, this parameter indicates where to find registry authorization credentials. The valid values are `spec` and `previous-spec`.","name":"registryAuthFrom","in":"query"},{"type":"string","description":"Set to this parameter to `previous` to cause a server-side rollback to the previous service spec. The supplied spec will be ignored in this case.","name":"rollback","in":"query"},{"type":"string","description":"A base64-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)","name":"X-Registry-Auth","in":"header"}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/ServiceUpdateResponse"}},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such service","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/swarm":{"get":{"tags":["Swarm"],"summary":"Inspect swarm","operationId":"SwarmInspect","responses":{"200":{"description":"no error","schema":{"allOf":[{"$ref":"#/definitions/ClusterInfo"},{"type":"object","properties":{"JoinTokens":{"description":"The tokens workers and managers need to join the swarm.","type":"object","properties":{"Manager":{"description":"The token managers can use to join the swarm.","type":"string"},"Worker":{"description":"The token workers can use to join the swarm.","type":"string"}}}}}],"example":{"CreatedAt":"2016-08-15T16:00:20.349727406Z","ID":"70ilmkj2f6sp2137c753w2nmt","JoinTokens":{"Manager":"SWMTKN-1-1h8aps2yszaiqmz2l3oc5392pgk8e49qhx2aj3nyv0ui0hez2a-8llk83c4wm9lwioey2s316r9l","Worker":"SWMTKN-1-1h8aps2yszaiqmz2l3oc5392pgk8e49qhx2aj3nyv0ui0hez2a-6qmn92w6bu3jdvnglku58u11a"},"RootRotationInProgress":false,"Spec":{"CAConfig":{"NodeCertExpiry":7776000000000000},"Dispatcher":{"HeartbeatPeriod":5000000000},"EncryptionConfig":{"AutoLockManagers":false},"Name":"default","Orchestration":{"TaskHistoryRetentionLimit":10},"Raft":{"ElectionTick":3,"HeartbeatTick":1,"LogEntriesForSlowFollowers":500,"SnapshotInterval":10000},"TaskDefaults":{}},"TLSInfo":{"CertIssuerPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A==","CertIssuerSubject":"MBMxETAPBgNVBAMTCHN3YXJtLWNh","TrustRoot":"-----BEGIN CERTIFICATE-----\nMIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw\nEzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0\nMzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH\nA0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf\n3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB\nAf8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO\nPQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz\npxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H\n-----END CERTIFICATE-----\n"},"UpdatedAt":"2016-08-15T16:32:09.623207604Z","Version":{"Index":51}}}},"404":{"description":"no such swarm","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/swarm/init":{"post":{"produces":["application/json","text/plain"],"tags":["Swarm"],"summary":"Initialize a new swarm","operationId":"SwarmInit","parameters":[{"name":"body","in":"body","required":true,"schema":{"type":"object","properties":{"AdvertiseAddr":{"description":"Externally reachable address advertised to other nodes. This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the port number from the listen address is used. If `AdvertiseAddr` is not specified, it will be automatically detected when possible.","type":"string"},"DataPathAddr":{"description":"Address or interface to use for data path traffic (format: `\u003cip|interface\u003e`), for example, `192.168.1.1`,\nor an interface, like `eth0`. If `DataPathAddr` is unspecified, the same address as `AdvertiseAddr`\nis used.\n\nThe `DataPathAddr` specifies the address that global scope network drivers will publish towards other\nnodes in order to reach the containers running on this node. Using this parameter it is possible to\nseparate the container data traffic from the management traffic of the cluster.\n","type":"string"},"ForceNewCluster":{"description":"Force creation of a new swarm.","type":"boolean"},"ListenAddr":{"description":"Listen address used for inter-manager communication, as well as determining the networking interface used for the VXLAN Tunnel Endpoint (VTEP). This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the default swarm listening port is used.","type":"string"},"Spec":{"$ref":"#/definitions/SwarmSpec"}},"example":{"AdvertiseAddr":"192.168.1.1:2377","ForceNewCluster":false,"ListenAddr":"0.0.0.0:2377","Spec":{"CAConfig":{},"Dispatcher":{},"EncryptionConfig":{"AutoLockManagers":false},"Orchestration":{},"Raft":{}}}}}],"responses":{"200":{"description":"no error","schema":{"description":"The node ID","type":"string","example":"7v2t30z9blmxuhnyo6s4cpenp"}},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is already part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/swarm/join":{"post":{"tags":["Swarm"],"summary":"Join an existing swarm","operationId":"SwarmJoin","parameters":[{"name":"body","in":"body","required":true,"schema":{"type":"object","properties":{"AdvertiseAddr":{"description":"Externally reachable address advertised to other nodes. This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the port number from the listen address is used. If `AdvertiseAddr` is not specified, it will be automatically detected when possible.","type":"string"},"DataPathAddr":{"description":"Address or interface to use for data path traffic (format: `\u003cip|interface\u003e`), for example, `192.168.1.1`,\nor an interface, like `eth0`. If `DataPathAddr` is unspecified, the same address as `AdvertiseAddr`\nis used.\n\nThe `DataPathAddr` specifies the address that global scope network drivers will publish towards other\nnodes in order to reach the containers running on this node. Using this parameter it is possible to\nseparate the container data traffic from the management traffic of the cluster.\n","type":"string"},"JoinToken":{"description":"Secret token for joining this swarm.","type":"string"},"ListenAddr":{"description":"Listen address used for inter-manager communication if the node gets promoted to manager, as well as determining the networking interface used for the VXLAN Tunnel Endpoint (VTEP).","type":"string"},"RemoteAddrs":{"description":"Addresses of manager nodes already participating in the swarm.","type":"string"}},"example":{"AdvertiseAddr":"192.168.1.1:2377","JoinToken":"SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2","ListenAddr":"0.0.0.0:2377","RemoteAddrs":["node1:2377"]}}}],"responses":{"200":{"description":"no error"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is already part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/swarm/leave":{"post":{"tags":["Swarm"],"summary":"Leave a swarm","operationId":"SwarmLeave","parameters":[{"type":"boolean","default":false,"description":"Force leave swarm, even if this is the last manager or that it will break the cluster.","name":"force","in":"query"}],"responses":{"200":{"description":"no error"},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/swarm/update":{"post":{"tags":["Swarm"],"summary":"Update a swarm","operationId":"SwarmUpdate","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/SwarmSpec"}},{"type":"integer","format":"int64","description":"The version number of the swarm object being updated. This is required to avoid conflicting writes.","name":"version","in":"query","required":true},{"type":"boolean","default":false,"description":"Rotate the worker join token.","name":"rotateWorkerToken","in":"query"},{"type":"boolean","default":false,"description":"Rotate the manager join token.","name":"rotateManagerToken","in":"query"},{"type":"boolean","default":false,"description":"Rotate the manager unlock key.","name":"rotateManagerUnlockKey","in":"query"}],"responses":{"200":{"description":"no error"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/tasks":{"get":{"produces":["application/json"],"tags":["Task"],"summary":"List tasks","operationId":"TaskList","parameters":[{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the tasks list. Available filters:\n\n- `desired-state=(running | shutdown | accepted)`\n- `id=\u003ctask id\u003e`\n- `label=key` or `label=\"key=value\"`\n- `name=\u003ctask name\u003e`\n- `node=\u003cnode id or name\u003e`\n- `service=\u003cservice name\u003e`\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"array","items":{"$ref":"#/definitions/Task"},"example":[{"CreatedAt":"2016-06-07T21:07:31.171892745Z","DesiredState":"running","ID":"0kzzo1i0y4jz6027t0k7aezc7","NetworksAttachments":[{"Addresses":["10.255.0.10/16"],"Network":{"CreatedAt":"2016-06-07T20:31:11.912919752Z","DriverState":{"Name":"overlay","Options":{"com.docker.network.driver.overlay.vxlanid_list":"256"}},"ID":"4qvuz4ko70xaltuqbt8956gd1","IPAMOptions":{"Configs":[{"Gateway":"10.255.0.1","Subnet":"10.255.0.0/16"}],"Driver":{"Name":"default"}},"Spec":{"DriverConfiguration":{},"IPAMOptions":{"Configs":[{"Gateway":"10.255.0.1","Subnet":"10.255.0.0/16"}],"Driver":{}},"Labels":{"com.docker.swarm.internal":"true"},"Name":"ingress"},"UpdatedAt":"2016-06-07T21:07:29.955277358Z","Version":{"Index":18}}}],"NodeID":"60gvrl6tm78dmak4yl7srz94v","ServiceID":"9mnpnzenvg8p8tdbtq4wvbkcz","Slot":1,"Spec":{"ContainerSpec":{"Image":"redis"},"Placement":{},"Resources":{"Limits":{},"Reservations":{}},"RestartPolicy":{"Condition":"any","MaxAttempts":0}},"Status":{"ContainerStatus":{"ContainerID":"e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035","PID":677},"Message":"started","State":"running","Timestamp":"2016-06-07T21:07:31.290032978Z"},"UpdatedAt":"2016-06-07T21:07:31.376370513Z","Version":{"Index":71}},{"CreatedAt":"2016-06-07T21:07:30.019104782Z","DesiredState":"shutdown","ID":"1yljwbmlr8er2waf8orvqpwms","Name":"hopeful_cori","NetworksAttachments":[{"Addresses":["10.255.0.5/16"],"Network":{"CreatedAt":"2016-06-07T20:31:11.912919752Z","DriverState":{"Name":"overlay","Options":{"com.docker.network.driver.overlay.vxlanid_list":"256"}},"ID":"4qvuz4ko70xaltuqbt8956gd1","IPAMOptions":{"Configs":[{"Gateway":"10.255.0.1","Subnet":"10.255.0.0/16"}],"Driver":{"Name":"default"}},"Spec":{"DriverConfiguration":{},"IPAMOptions":{"Configs":[{"Gateway":"10.255.0.1","Subnet":"10.255.0.0/16"}],"Driver":{}},"Labels":{"com.docker.swarm.internal":"true"},"Name":"ingress"},"UpdatedAt":"2016-06-07T21:07:29.955277358Z","Version":{"Index":18}}}],"NodeID":"60gvrl6tm78dmak4yl7srz94v","ServiceID":"9mnpnzenvg8p8tdbtq4wvbkcz","Slot":1,"Spec":{"ContainerSpec":{"Image":"redis"},"Placement":{},"Resources":{"Limits":{},"Reservations":{}},"RestartPolicy":{"Condition":"any","MaxAttempts":0}},"Status":{"ContainerStatus":{"ContainerID":"1cf8d63d18e79668b0004a4be4c6ee58cddfad2dae29506d8781581d0688a213"},"Message":"shutdown","State":"shutdown","Timestamp":"2016-06-07T21:07:30.202183143Z"},"UpdatedAt":"2016-06-07T21:07:30.231958098Z","Version":{"Index":30}}]}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/tasks/{id}":{"get":{"produces":["application/json"],"tags":["Task"],"summary":"Inspect a task","operationId":"TaskInspect","parameters":[{"type":"string","description":"ID of the task","name":"id","in":"path","required":true}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/Task"}},"404":{"description":"no such task","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/tasks/{id}/logs":{"get":{"description":"Get `stdout` and `stderr` logs from a task.\n\n**Note**: This endpoint works only for services with the `json-file` or `journald` logging drivers.\n","produces":["application/vnd.docker.raw-stream","application/json"],"tags":["UCP"],"summary":"Get task logs","operationId":"TaskLogs","parameters":[{"type":"string","description":"ID of the task","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Show task context and extra details provided to logs.","name":"details","in":"query"},{"type":"boolean","default":false,"description":"Return the logs as a stream.\n\nThis will return a `101` HTTP response with a `Connection: upgrade` header, then hijack the HTTP connection to send raw output. For more information about hijacking and the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).\n","name":"follow","in":"query"},{"type":"boolean","default":false,"description":"Return logs from `stdout`","name":"stdout","in":"query"},{"type":"boolean","default":false,"description":"Return logs from `stderr`","name":"stderr","in":"query"},{"type":"integer","default":0,"description":"Only return logs since this time, as a UNIX timestamp","name":"since","in":"query"},{"type":"boolean","default":false,"description":"Add timestamps to every log line","name":"timestamps","in":"query"},{"type":"string","default":"all","description":"Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines.","name":"tail","in":"query"}],"responses":{"101":{"description":"logs returned as a stream","schema":{"type":"string","format":"binary"}},"200":{"description":"logs returned as a string in response body","schema":{"type":"string"}},"404":{"description":"no such task","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such task: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/totalRole":{"get":{"description":"Returns a role with all operations that a user can perform against at least one collection in the system.","produces":["application/json"],"tags":["UCP"],"summary":"Returns a role with all operations that a user can perform against at least one collection in the system.","operationId":"TotalRole","responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/role.Role"}}},"default":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/role.Role"}}}}}},"/version":{"get":{"description":"Returns the version of Docker that is running and various information about the system that Docker is running on.","produces":["application/json"],"tags":["System"],"summary":"Get version","operationId":"SystemVersion","responses":{"200":{"description":"no error","schema":{"type":"object","properties":{"ApiVersion":{"type":"string"},"Arch":{"type":"string"},"BuildTime":{"type":"string"},"Experimental":{"type":"boolean"},"GitCommit":{"type":"string"},"GoVersion":{"type":"string"},"KernelVersion":{"type":"string"},"MinAPIVersion":{"type":"string"},"Os":{"type":"string"},"Version":{"type":"string"}}},"examples":{"application/json":{"ApiVersion":"1.27","Arch":"amd64","BuildTime":"2016-06-14T07:09:13.444803460+00:00","Experimental":true,"GitCommit":"deadbee","GoVersion":"go1.7.5","KernelVersion":"3.19.0-23-generic","MinAPIVersion":"1.12","Os":"linux","Version":"17.04.0"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/volumes":{"get":{"description":"If the name is prefixed with the name of a node, the request is sent to the specified node. Use the '/' character to distinguish the node name, like `testnode/testvolume`.","produces":["application/json"],"tags":["Volume"],"summary":"List volumes","operationId":"VolumeList","parameters":[{"type":"string","format":"json","description":"JSON encoded value of the filters (a `map[string][]string`) to\nprocess on the volumes list. Available filters:\n\n- `dangling=\u003cboolean\u003e` When set to `true` (or `1`), returns all\n volumes that are not in use by a container. When set to `false`\n (or `0`), only volumes that are in use by one or more\n containers are returned.\n- `driver=\u003cvolume-driver-name\u003e` Matches volumes based on their driver.\n- `label=\u003ckey\u003e` or `label=\u003ckey\u003e:\u003cvalue\u003e` Matches volumes based on\n the presence of a `label` alone or a `label` and a value.\n- `name=\u003cvolume-name\u003e` Matches all or part of a volume name.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"Summary volume data that matches the query","schema":{"type":"object","required":["Volumes","Warnings"],"properties":{"Volumes":{"description":"List of volumes","type":"array","items":{"$ref":"#/definitions/Volume"},"x-nullable":false},"Warnings":{"description":"Warnings that occurred when fetching the list of volumes","type":"array","items":{"type":"string"},"x-nullable":false}}},"examples":{"application/json":{"Volumes":[{"Driver":"local","Labels":{"com.example.some-label":"some-value","com.example.some-other-label":"some-other-value"},"Mountpoint":"/var/lib/docker/volumes/tardis","Name":"tardis","Options":{"device":"tmpfs","o":"size=100m,uid=1000","type":"tmpfs"},"Scope":"local"}],"Warnings":[]}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/volumes/create":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["Volume"],"summary":"Create a volume","operationId":"VolumeCreate","parameters":[{"description":"Volume configuration","name":"volumeConfig","in":"body","required":true,"schema":{"type":"object","properties":{"Driver":{"description":"Name of the volume driver to use.","type":"string","default":"local","x-nullable":false},"DriverOpts":{"description":"A mapping of driver options and values. These options are passed directly to the driver and are driver specific.","type":"object","additionalProperties":{"type":"string"}},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"The new volume's name. If not specified, Docker generates a name.","type":"string","x-nullable":false}},"example":{"Driver":"custom","Labels":{"com.example.some-label":"some-value","com.example.some-other-label":"some-other-value"},"Name":"tardis"}}}],"responses":{"201":{"description":"The volume was created successfully","schema":{"$ref":"#/definitions/Volume"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/volumes/prune":{"post":{"produces":["application/json"],"tags":["Volume"],"summary":"Delete unused volumes","operationId":"VolumePrune","parameters":[{"type":"string","description":"Filters to process on the prune list, encoded as JSON (a `map[string][]string`).\n\nAvailable filters:\n- `label` (`label=\u003ckey\u003e`, `label=\u003ckey\u003e=\u003cvalue\u003e`, `label!=\u003ckey\u003e`, or `label!=\u003ckey\u003e=\u003cvalue\u003e`) Prune volumes with (or without, in case `label!=...` is used) the specified labels.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"object","properties":{"SpaceReclaimed":{"description":"Disk space reclaimed in bytes","type":"integer","format":"int64"},"VolumesDeleted":{"description":"Volumes that were deleted","type":"array","items":{"type":"string"}}}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/volumes/{name}":{"get":{"description":"If the name is prefixed with the name of a node, the request is sent to the specified node. Use the '/' character to distinguish the node name, like `testnode/testvolume`.","produces":["application/json"],"tags":["Volume"],"summary":"Inspect a volume","operationId":"VolumeInspect","parameters":[{"type":"string","description":"Volume name or ID","name":"name","in":"path","required":true}],"responses":{"200":{"description":"No error","schema":{"$ref":"#/definitions/Volume"}},"404":{"description":"No such volume","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"description":"Instruct the driver to remove the volume.","tags":["Volume"],"summary":"Remove a volume","operationId":"VolumeDelete","parameters":[{"type":"string","description":"Volume name or ID","name":"name","in":"path","required":true},{"type":"boolean","default":false,"description":"Force the removal of the volume","name":"force","in":"query"}],"responses":{"204":{"description":"The volume was removed"},"404":{"description":"No such volume or volume driver","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"Volume is in use and cannot be removed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}}},"definitions":{"AuthConfig":{"type":"object","properties":{"email":{"type":"string"},"password":{"type":"string"},"serveraddress":{"type":"string"},"username":{"type":"string"}},"example":{"password":"xxxx","serveraddress":"https://index.docker.io/v1/","username":"hannibal"}},"BuildInfo":{"type":"object","properties":{"error":{"type":"string"},"errorDetail":{"$ref":"#/definitions/ErrorDetail"},"id":{"type":"string"},"progress":{"type":"string"},"progressDetail":{"$ref":"#/definitions/ProgressDetail"},"status":{"type":"string"},"stream":{"type":"string"}}},"ClusterInfo":{"type":"object","properties":{"CreatedAt":{"type":"string","format":"dateTime"},"ID":{"description":"The ID of the swarm.","type":"string"},"RootRotationInProgress":{"description":"Whether there is currently a root CA rotation in progress for the swarm","type":"boolean"},"Spec":{"$ref":"#/definitions/SwarmSpec"},"TLSInfo":{"$ref":"#/definitions/TLSInfo"},"UpdatedAt":{"type":"string","format":"dateTime"},"Version":{"$ref":"#/definitions/ObjectVersion"}}},"Config":{"type":"object","properties":{"CreatedAt":{"type":"string","format":"dateTime"},"ID":{"type":"string"},"Spec":{"$ref":"#/definitions/ConfigSpec"},"UpdatedAt":{"type":"string","format":"dateTime"},"Version":{"$ref":"#/definitions/ObjectVersion"}}},"ConfigSpec":{"type":"object","properties":{"Data":{"description":"Base64-url-safe-encoded config data","type":"array","items":{"type":"string"}},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"User-defined name of the config.","type":"string"}}},"ContainerConfig":{"description":"Configuration for a container that is portable between hosts","type":"object","properties":{"ArgsEscaped":{"description":"Command is already escaped (Windows only)","type":"boolean"},"AttachStderr":{"description":"Whether to attach to `stderr`.","type":"boolean","default":true},"AttachStdin":{"description":"Whether to attach to `stdin`.","type":"boolean","default":false},"AttachStdout":{"description":"Whether to attach to `stdout`.","type":"boolean","default":true},"Cmd":{"description":"Command to run specified as a string or an array of strings.","type":["array","string"],"items":{"type":"string"}},"Domainname":{"description":"The domain name to use for the container.","type":"string"},"Entrypoint":{"description":"The entry point for the container as a string or an array of strings.\n\nIf the array consists of exactly one empty string (`[\"\"]`) then the entry point is reset to system default (i.e., the entry point used by docker when there is no `ENTRYPOINT` instruction in the `Dockerfile`).\n","type":["array","string"],"items":{"type":"string"}},"Env":{"description":"A list of environment variables to set inside the container in the form `[\"VAR=value\", ...]`. A variable without `=` is removed from the environment, rather than to have an empty value.\n","type":"array","items":{"type":"string"}},"ExposedPorts":{"description":"An object mapping ports to an empty object in the form:\n\n`{\"\u003cport\u003e/\u003ctcp|udp\u003e\": {}}`\n","type":"object","additionalProperties":{"type":"object","default":{},"enum":[{}]}},"Healthcheck":{"$ref":"#/definitions/HealthConfig"},"Hostname":{"description":"The hostname to use for the container, as a valid RFC 1123 hostname.","type":"string"},"Image":{"description":"The name of the image to use when creating the container","type":"string"},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"MacAddress":{"description":"MAC address of the container.","type":"string"},"NetworkDisabled":{"description":"Disable networking for the container.","type":"boolean"},"OnBuild":{"description":"`ONBUILD` metadata that were defined in the image's `Dockerfile`.","type":"array","items":{"type":"string"}},"OpenStdin":{"description":"Open `stdin`","type":"boolean","default":false},"Shell":{"description":"Shell for when `RUN`, `CMD`, and `ENTRYPOINT` uses a shell.","type":"array","items":{"type":"string"}},"StdinOnce":{"description":"Close `stdin` after one attached client disconnects","type":"boolean","default":false},"StopSignal":{"description":"Signal to stop a container as a string or unsigned integer.","type":"string","default":"SIGTERM"},"StopTimeout":{"description":"Timeout to stop a container in seconds.","type":"integer","default":10},"Tty":{"description":"Attach standard streams to a TTY, including `stdin` if it is not closed.","type":"boolean","default":false},"User":{"description":"The user that commands are run as inside the container.","type":"string"},"Volumes":{"description":"An object mapping mount point paths inside the container to empty objects.","type":"object","properties":{"additionalProperties":{"type":"object","default":{},"enum":[{}]}}},"WorkingDir":{"description":"The working directory for commands to run in.","type":"string"}}},"ContainerSummary":{"type":"array","items":{"type":"object","properties":{"Command":{"description":"Command to run when starting the container","type":"string"},"Created":{"description":"When the container was created","type":"integer","format":"int64"},"HostConfig":{"type":"object","properties":{"NetworkMode":{"type":"string"}}},"Id":{"description":"The ID of this container","type":"string","x-go-name":"ID"},"Image":{"description":"The name of the image used when creating this container","type":"string"},"ImageID":{"description":"The ID of the image that this container was created from","type":"string"},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Mounts":{"type":"array","items":{"$ref":"#/definitions/Mount"}},"Names":{"description":"The names that this container has been given","type":"array","items":{"type":"string"}},"NetworkSettings":{"description":"A summary of the container's network settings","type":"object","properties":{"Networks":{"type":"object","additionalProperties":{"$ref":"#/definitions/EndpointSettings"}}}},"Ports":{"description":"The ports exposed by this container","type":"array","items":{"$ref":"#/definitions/Port"}},"SizeRootFs":{"description":"The total size of all the files in this container","type":"integer","format":"int64"},"SizeRw":{"description":"The size of files that have been created or changed by this container","type":"integer","format":"int64"},"State":{"description":"The state of this container (e.g. `Exited`)","type":"string"},"Status":{"description":"Additional human-readable status of this container (e.g. `Exit 0`)","type":"string"}}}},"CreateImageInfo":{"type":"object","properties":{"error":{"type":"string"},"progress":{"type":"string"},"progressDetail":{"$ref":"#/definitions/ProgressDetail"},"status":{"type":"string"}}},"DeviceMapping":{"description":"A device mapping between the host and container","type":"object","properties":{"CgroupPermissions":{"type":"string"},"PathInContainer":{"type":"string"},"PathOnHost":{"type":"string"}},"example":{"CgroupPermissions":"mrw","PathInContainer":"/dev/deviceName","PathOnHost":"/dev/deviceName"}},"EndpointPortConfig":{"type":"object","properties":{"Name":{"type":"string"},"Protocol":{"type":"string","enum":["tcp","udp"]},"PublishedPort":{"description":"The port on the swarm hosts.","type":"integer"},"TargetPort":{"description":"The port inside the container.","type":"integer"}}},"EndpointSettings":{"description":"Configuration for a network endpoint.","type":"object","properties":{"Aliases":{"type":"array","items":{"type":"string"}},"EndpointID":{"type":"string"},"Gateway":{"type":"string"},"GlobalIPv6Address":{"type":"string"},"GlobalIPv6PrefixLen":{"type":"integer","format":"int64"},"IPAMConfig":{"description":"IPAM configurations for the endpoint","type":"object","properties":{"IPv4Address":{"type":"string"},"IPv6Address":{"type":"string"},"LinkLocalIPs":{"type":"array","items":{"type":"string"}}}},"IPAddress":{"type":"string"},"IPPrefixLen":{"type":"integer"},"IPv6Gateway":{"type":"string"},"Links":{"type":"array","items":{"type":"string"}},"MacAddress":{"type":"string"},"NetworkID":{"type":"string"}}},"EndpointSpec":{"description":"Properties that can be configured to access and load balance a service.","type":"object","properties":{"Mode":{"description":"The mode of resolution to use for internal load balancing between tasks.","type":"string","default":"vip","enum":["vip","dnsrr"]},"Ports":{"description":"List of exposed ports that this service is accessible on from the outside. Ports can only be provided if `vip` resolution mode is used.","type":"array","items":{"$ref":"#/definitions/EndpointPortConfig"}}}},"ErrorDetail":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}},"ErrorResponse":{"description":"Represents an error.","type":"object","required":["message"],"properties":{"message":{"description":"The error message.","type":"string","x-nullable":false}},"example":{"message":"Something went wrong."}},"GraphDriverData":{"description":"Information about a container's graph driver.","type":"object","required":["Name","Data"],"properties":{"Data":{"type":"object","additionalProperties":{"type":"string"},"x-nullable":false},"Name":{"type":"string","x-nullable":false}}},"HealthConfig":{"description":"A test to perform to check that the container is healthy.","type":"object","properties":{"Interval":{"description":"The time to wait between checks in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means inherit.","type":"integer"},"Retries":{"description":"The number of consecutive failures needed to consider a container as unhealthy. 0 means inherit.","type":"integer"},"StartPeriod":{"description":"Start period for the container to initialize before starting health-retries countdown in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means inherit.","type":"integer"},"Test":{"description":"The test to perform. Possible values are:\n\n- `[]` inherit healthcheck from image or parent image\n- `[\"NONE\"]` disable healthcheck\n- `[\"CMD\", args...]` exec arguments directly\n- `[\"CMD-SHELL\", command]` run command with system's default shell\n","type":"array","items":{"type":"string"}},"Timeout":{"description":"The time to wait before considering the check to have hung. It should be 0 or at least 1000000 (1 ms). 0 means inherit.","type":"integer"}}},"HostConfig":{"description":"Container configuration that depends on the host we are running on","allOf":[{"$ref":"#/definitions/Resources"},{"type":"object","properties":{"AutoRemove":{"description":"Automatically remove the container when the container's process exits. This has no effect if `RestartPolicy` is set.","type":"boolean"},"Binds":{"description":"A list of volume bindings for this container. Each volume binding is a string in one of these forms:\n\n- `host-src:container-dest` to bind-mount a host path into the container. Both `host-src`, and `container-dest` must be an _absolute_ path.\n- `host-src:container-dest:ro` to make the bind-mount read-only inside the container. Both `host-src`, and `container-dest` must be an _absolute_ path.\n- `volume-name:container-dest` to bind-mount a volume managed by a volume driver into the container. `container-dest` must be an _absolute_ path.\n- `volume-name:container-dest:ro` to mount the volume read-only inside the container. `container-dest` must be an _absolute_ path.\n","type":"array","items":{"type":"string"}},"CapAdd":{"description":"A list of kernel capabilities to add to the container.","type":"array","items":{"type":"string"}},"CapDrop":{"description":"A list of kernel capabilities to drop from the container.","type":"array","items":{"type":"string"}},"Cgroup":{"description":"Cgroup to use for the container.","type":"string"},"ConsoleSize":{"description":"Initial console size, as an `[height, width]` array. (Windows only)","type":"array","maxItems":2,"minItems":2,"items":{"type":"integer","minimum":0}},"ContainerIDFile":{"description":"Path to a file where the container ID is written","type":"string"},"Dns":{"description":"A list of DNS servers for the container to use.","type":"array","items":{"type":"string"}},"DnsOptions":{"description":"A list of DNS options.","type":"array","items":{"type":"string"}},"DnsSearch":{"description":"A list of DNS search domains.","type":"array","items":{"type":"string"}},"ExtraHosts":{"description":"A list of hostnames/IP mappings to add to the container's `/etc/hosts` file. Specified in the form `[\"hostname:IP\"]`.\n","type":"array","items":{"type":"string"}},"GroupAdd":{"description":"A list of additional groups that the container process will run as.","type":"array","items":{"type":"string"}},"IpcMode":{"description":"IPC namespace to use for the container.","type":"string"},"Isolation":{"description":"Isolation technology of the container. (Windows only)","type":"string","enum":["default","process","hyperv"]},"Links":{"description":"A list of links for the container in the form `container_name:alias`.","type":"array","items":{"type":"string"}},"LogConfig":{"description":"The logging configuration for this container","type":"object","properties":{"Config":{"type":"object","additionalProperties":{"type":"string"}},"Type":{"type":"string","enum":["json-file","syslog","journald","gelf","fluentd","awslogs","splunk","etwlogs","none"]}}},"Mounts":{"description":"Specification for mounts to be added to the container.","type":"array","items":{"$ref":"#/definitions/Mount"}},"NetworkMode":{"description":"Network mode to use for this container. Supported standard values are: `bridge`, `host`, `none`, and `container:\u003cname|id\u003e`. Any other value is taken as a custom network's name to which this container should connect to.","type":"string"},"OomScoreAdj":{"description":"An integer value containing the score given to the container in order to tune OOM killer preferences.","type":"integer"},"PidMode":{"description":"Set the PID (Process) Namespace mode for the container. It can be either:\n\n- `\"container:\u003cname|id\u003e\"`: joins another container's PID namespace\n- `\"host\"`: use the host's PID namespace inside the container\n","type":"string"},"PortBindings":{"description":"A map of exposed container ports and the host port they should map to.","type":"object","additionalProperties":{"type":"object","properties":{"HostIp":{"description":"The host IP address","type":"string"},"HostPort":{"description":"The host port number, as a string","type":"string"}}}},"Privileged":{"description":"Gives the container full access to the host.","type":"boolean"},"PublishAllPorts":{"description":"Allocates a random host port for all of a container's exposed ports.","type":"boolean"},"ReadonlyRootfs":{"description":"Mount the container's root filesystem as read only.","type":"boolean"},"RestartPolicy":{"$ref":"#/definitions/RestartPolicy"},"Runtime":{"description":"Runtime to use with this container.","type":"string"},"SecurityOpt":{"description":"A list of string values to customize labels for MLS systems, such as SELinux.","type":"array","items":{"type":"string"}},"ShmSize":{"description":"Size of `/dev/shm` in bytes. If omitted, the system uses 64MB.","type":"integer","minimum":0},"StorageOpt":{"description":"Storage driver options for this container, in the form `{\"size\": \"120G\"}`.\n","type":"object","additionalProperties":{"type":"string"}},"Sysctls":{"description":"A list of kernel parameters (sysctls) to set in the container. For example: `{\"net.ipv4.ip_forward\": \"1\"}`\n","type":"object","additionalProperties":{"type":"string"}},"Tmpfs":{"description":"A map of container directories which should be replaced by tmpfs mounts, and their corresponding mount options. For example: `{ \"/run\": \"rw,noexec,nosuid,size=65536k\" }`.\n","type":"object","additionalProperties":{"type":"string"}},"UTSMode":{"description":"UTS namespace to use for the container.","type":"string"},"UsernsMode":{"description":"Sets the usernamespace mode for the container when usernamespace remapping option is enabled.","type":"string"},"VolumeDriver":{"description":"Driver that this container uses to mount volumes.","type":"string"},"VolumesFrom":{"description":"A list of volumes to inherit from another container, specified in the form `\u003ccontainer name\u003e[:\u003cro|rw\u003e]`.","type":"array","items":{"type":"string"}}}}]},"IPAM":{"type":"object","properties":{"Config":{"description":"List of IPAM configuration options, specified as a map: `{\"Subnet\": \u003cCIDR\u003e, \"IPRange\": \u003cCIDR\u003e, \"Gateway\": \u003cIP address\u003e, \"AuxAddress\": \u003cdevice_name:IP address\u003e}`","type":"array","items":{"type":"object","additionalProperties":{"type":"string"}}},"Driver":{"description":"Name of the IPAM driver to use.","type":"string","default":"default"},"Options":{"description":"Driver-specific options, specified as a map.","type":"array","items":{"type":"object","additionalProperties":{"type":"string"}}}}},"IdResponse":{"description":"Response to an API call that returns just an Id","type":"object","required":["Id"],"properties":{"Id":{"description":"The id of the newly created object.","type":"string","x-nullable":false}}},"Image":{"type":"object","required":["Id","Parent","Comment","Created","Container","DockerVersion","Author","Architecture","Os","Size","VirtualSize","GraphDriver","RootFS"],"properties":{"Architecture":{"type":"string","x-nullable":false},"Author":{"type":"string","x-nullable":false},"Comment":{"type":"string","x-nullable":false},"Config":{"$ref":"#/definitions/ContainerConfig"},"Container":{"type":"string","x-nullable":false},"ContainerConfig":{"$ref":"#/definitions/ContainerConfig"},"Created":{"type":"string","x-nullable":false},"DockerVersion":{"type":"string","x-nullable":false},"GraphDriver":{"$ref":"#/definitions/GraphDriverData"},"Id":{"type":"string","x-nullable":false},"Os":{"type":"string","x-nullable":false},"OsVersion":{"type":"string"},"Parent":{"type":"string","x-nullable":false},"RepoDigests":{"type":"array","items":{"type":"string"}},"RepoTags":{"type":"array","items":{"type":"string"}},"RootFS":{"type":"object","required":["Type"],"properties":{"BaseLayer":{"type":"string"},"Layers":{"type":"array","items":{"type":"string"}},"Type":{"type":"string","x-nullable":false}}},"Size":{"type":"integer","format":"int64","x-nullable":false},"VirtualSize":{"type":"integer","format":"int64","x-nullable":false}}},"ImageDeleteResponseItem":{"type":"object","properties":{"Deleted":{"description":"The image ID of an image that was deleted","type":"string"},"Untagged":{"description":"The image ID of an image that was untagged","type":"string"}}},"ImageSummary":{"type":"object","required":["Id","ParentId","RepoTags","RepoDigests","Created","Size","SharedSize","VirtualSize","Labels","Containers"],"properties":{"Containers":{"type":"integer","x-nullable":false},"Created":{"type":"integer","x-nullable":false},"Id":{"type":"string","x-nullable":false},"Labels":{"type":"object","additionalProperties":{"type":"string"},"x-nullable":false},"ParentId":{"type":"string","x-nullable":false},"RepoDigests":{"type":"array","items":{"type":"string"},"x-nullable":false},"RepoTags":{"type":"array","items":{"type":"string"},"x-nullable":false},"SharedSize":{"type":"integer","x-nullable":false},"Size":{"type":"integer","x-nullable":false},"VirtualSize":{"type":"integer","x-nullable":false}}},"Mount":{"type":"object","properties":{"BindOptions":{"description":"Optional configuration for the `bind` type.","type":"object","properties":{"Propagation":{"description":"A propagation mode with the value `[r]private`, `[r]shared`, or `[r]slave`.","enum":["private","rprivate","shared","rshared","slave","rslave"]}}},"Consistency":{"description":"The consistency requirement for the mount: `default`, `consistent`, `cached`, or `delegated`.","type":"string"},"ReadOnly":{"description":"Whether the mount should be read-only.","type":"boolean"},"Source":{"description":"Mount source (e.g. a volume name, a host path).","type":"string"},"Target":{"description":"Container path.","type":"string"},"TmpfsOptions":{"description":"Optional configuration for the `tmpfs` type.","type":"object","properties":{"Mode":{"description":"The permission mode for the tmpfs mount in an integer.","type":"integer"},"SizeBytes":{"description":"The size for the tmpfs mount in bytes.","type":"integer","format":"int64"}}},"Type":{"description":"The mount type. Available types:\n\n- `bind` Mounts a file or directory from the host into the container. Must exist prior to creating the container.\n- `volume` Creates a volume with the given name and options (or uses a pre-existing volume with the same name and options). These are **not** removed when the container is removed.\n- `tmpfs` Create a tmpfs with the given options. The mount source cannot be specified for tmpfs.\n","type":"string","enum":["bind","volume","tmpfs"]},"VolumeOptions":{"description":"Optional configuration for the `volume` type.","type":"object","properties":{"DriverConfig":{"description":"Map of driver specific options","type":"object","properties":{"Name":{"description":"Name of the driver to use to create the volume.","type":"string"},"Options":{"description":"key/value map of driver specific options.","type":"object","additionalProperties":{"type":"string"}}}},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"NoCopy":{"description":"Populate volume with data from the target.","type":"boolean","default":false}}}}},"MountPoint":{"description":"A mount point inside a container","type":"object","properties":{"Destination":{"type":"string"},"Driver":{"type":"string"},"Mode":{"type":"string"},"Name":{"type":"string"},"Propagation":{"type":"string"},"RW":{"type":"boolean"},"Source":{"type":"string"},"Type":{"type":"string"}}},"Network":{"type":"object","properties":{"Attachable":{"type":"boolean"},"Containers":{"type":"object","additionalProperties":{"$ref":"#/definitions/NetworkContainer"}},"Created":{"type":"string","format":"dateTime"},"Driver":{"type":"string"},"EnableIPv6":{"type":"boolean"},"IPAM":{"$ref":"#/definitions/IPAM"},"Id":{"type":"string"},"Ingress":{"type":"boolean"},"Internal":{"type":"boolean"},"Labels":{"type":"object","additionalProperties":{"type":"string"}},"Name":{"type":"string"},"Options":{"type":"object","additionalProperties":{"type":"string"}},"Scope":{"type":"string"}},"example":{"Attachable":false,"Containers":{"19a4d5d687db25203351ed79d478946f861258f018fe384f229f2efa4b23513c":{"EndpointID":"628cadb8bcb92de107b2a1e516cbffe463e321f548feb37697cce00ad694f21a","IPv4Address":"172.19.0.2/16","IPv6Address":"","MacAddress":"02:42:ac:13:00:02","Name":"test"}},"Created":"2016-10-19T04:33:30.360899459Z","Driver":"bridge","EnableIPv6":false,"IPAM":{"Config":[{"Gateway":"172.19.0.1","Subnet":"172.19.0.0/16"}],"Driver":"default","Options":{"foo":"bar"}},"Id":"7d86d31b1478e7cca9ebed7e73aa0fdeec46c5ca29497431d3007d2d9e15ed99","Ingress":false,"Internal":false,"Labels":{"com.example.some-label":"some-value","com.example.some-other-label":"some-other-value"},"Name":"net01","Options":{"com.docker.network.bridge.default_bridge":"true","com.docker.network.bridge.enable_icc":"true","com.docker.network.bridge.enable_ip_masquerade":"true","com.docker.network.bridge.host_binding_ipv4":"0.0.0.0","com.docker.network.bridge.name":"docker0","com.docker.network.driver.mtu":"1500"},"Scope":"local"}},"NetworkConfig":{"description":"TODO: check is correct","type":"object","properties":{"Address":{"type":"string"},"Bridge":{"type":"string"},"Gateway":{"type":"string"},"IPPrefixLen":{"type":"integer"},"MacAddress":{"type":"string"},"PortMapping":{"type":"string"},"Ports":{"type":"array","items":{"$ref":"#/definitions/Port"}}}},"NetworkContainer":{"type":"object","properties":{"EndpointID":{"type":"string"},"IPv4Address":{"type":"string"},"IPv6Address":{"type":"string"},"MacAddress":{"type":"string"},"Name":{"type":"string"}}},"Node":{"type":"object","properties":{"CreatedAt":{"type":"string","format":"dateTime"},"Description":{"type":"object","properties":{"Engine":{"type":"object","properties":{"EngineVersion":{"type":"string"},"Labels":{"type":"object","additionalProperties":{"type":"string"}},"Plugins":{"type":"array","items":{"type":"object","properties":{"Name":{"type":"string"},"Type":{"type":"string"}}}}}},"Hostname":{"type":"string"},"Platform":{"type":"object","properties":{"Architecture":{"type":"string"},"OS":{"type":"string"}}},"Resources":{"type":"object","properties":{"MemoryBytes":{"type":"integer","format":"int64"},"NanoCPUs":{"type":"integer","format":"int64"}}},"TLSInfo":{"$ref":"#/definitions/SwarmSpec"}}},"ID":{"type":"string"},"Spec":{"$ref":"#/definitions/NodeSpec"},"UpdatedAt":{"type":"string","format":"dateTime"},"Version":{"$ref":"#/definitions/ObjectVersion"}},"example":{"CreatedAt":"2016-06-07T20:31:11.853781916Z","Description":{"Engine":{"EngineVersion":"17.04.0","Labels":{"foo":"bar"},"Plugins":[{"Name":"local","Type":"Volume"},{"Name":"bridge","Type":"Network"},{"Name":"null","Type":"Network"},{"Name":"overlay","Type":"Network"}]},"Hostname":"bf3067039e47","Platform":{"Architecture":"x86_64","OS":"linux"},"Resources":{"MemoryBytes":8272408576,"NanoCPUs":4000000000}},"ID":"24ifsmvkjbyhk","ManagerStatus":{"Addr":"172.17.0.2:2377","Leader":true,"Reachability":"reachable"},"Spec":{"Availability":"active","Labels":{"foo":"bar"},"Name":"my-node","Role":"manager"},"Status":{"Addr":"172.17.0.2","State":"ready"},"TLSInfo":{"CertIssuerPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A==","CertIssuerSubject":"MBMxETAPBgNVBAMTCHN3YXJtLWNh","TrustRoot":"-----BEGIN CERTIFICATE-----\nMIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw\nEzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0\nMzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH\nA0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf\n3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB\nAf8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO\nPQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz\npxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H\n-----END CERTIFICATE-----\n"},"UpdatedAt":"2016-06-07T20:31:11.999868824Z","Version":{"Index":8}}},"NodeSpec":{"type":"object","properties":{"Availability":{"description":"Availability of the node.","type":"string","enum":["active","pause","drain"]},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"Name for the node.","type":"string"},"Role":{"description":"Role of the node.","type":"string","enum":["worker","manager"]}},"example":{"Availability":"active","Labels":{"foo":"bar"},"Name":"node-name","Role":"manager"}},"ObjectVersion":{"description":"The version number of the object such as node, service, etc. This is needed to avoid conflicting writes.\nThe client must send the version number along with the modified specification when updating these objects.\nThis approach ensures safe concurrency and determinism in that the change on the object\nmay not be applied if the version number has changed from the last read. In other words,\nif two update requests specify the same base version, only one of the requests can succeed.\nAs a result, two separate update requests that happen at the same time will not\nunintentially overwrite each other.\n","type":"object","properties":{"Index":{"type":"integer","format":"int64"}}},"Plugin":{"description":"A plugin for the Engine API","type":"object","required":["Settings","Enabled","Config","Name"],"properties":{"Config":{"description":"The config of a plugin.","type":"object","required":["Description","Documentation","Interface","Entrypoint","WorkDir","Network","Linux","PidHost","PropagatedMount","IpcHost","Mounts","Env","Args"],"properties":{"Args":{"type":"object","required":["Name","Description","Settable","Value"],"properties":{"Description":{"type":"string","x-nullable":false,"example":"command line arguments"},"Name":{"type":"string","x-nullable":false,"example":"args"},"Settable":{"type":"array","items":{"type":"string"}},"Value":{"type":"array","items":{"type":"string"}}},"x-nullable":false},"Description":{"type":"string","x-nullable":false,"example":"A sample volume plugin for Docker"},"DockerVersion":{"description":"Docker Version used to create the plugin","type":"string","x-nullable":false,"example":"17.06.0-ce"},"Documentation":{"type":"string","x-nullable":false,"example":"https://docs.docker.com/engine/extend/plugins/"},"Entrypoint":{"type":"array","items":{"type":"string"},"example":["/usr/bin/sample-volume-plugin","/data"]},"Env":{"type":"array","items":{"$ref":"#/definitions/PluginEnv"},"example":[{"Description":"If set, prints debug messages","Name":"DEBUG","Settable":"","Value":"0"}]},"Interface":{"description":"The interface between Docker and the plugin","type":"object","required":["Types","Socket"],"properties":{"Socket":{"type":"string","x-nullable":false,"example":"plugins.sock"},"Types":{"type":"array","items":{"$ref":"#/definitions/PluginInterfaceType"},"example":["docker.volumedriver/1.0"]}},"x-nullable":false},"IpcHost":{"type":"boolean","x-nullable":false,"example":false},"Linux":{"type":"object","required":["Capabilities","AllowAllDevices","Devices"],"properties":{"AllowAllDevices":{"type":"boolean","x-nullable":false,"example":false},"Capabilities":{"type":"array","items":{"type":"string"},"example":["CAP_SYS_ADMIN","CAP_SYSLOG"]},"Devices":{"type":"array","items":{"$ref":"#/definitions/PluginDevice"}}},"x-nullable":false},"Mounts":{"type":"array","items":{"$ref":"#/definitions/PluginMount"}},"Network":{"type":"object","required":["Type"],"properties":{"Type":{"type":"string","x-nullable":false,"example":"host"}},"x-nullable":false},"PidHost":{"type":"boolean","x-nullable":false,"example":false},"PropagatedMount":{"type":"string","x-nullable":false,"example":"/mnt/volumes"},"User":{"type":"object","properties":{"GID":{"type":"integer","format":"uint32","example":1000},"UID":{"type":"integer","format":"uint32","example":1000}},"x-nullable":false},"WorkDir":{"type":"string","x-nullable":false,"example":"/bin/"},"rootfs":{"type":"object","properties":{"diff_ids":{"type":"array","items":{"type":"string"},"example":["sha256:675532206fbf3030b8458f88d6e26d4eb1577688a25efec97154c94e8b6b4887","sha256:e216a057b1cb1efc11f8a268f37ef62083e70b1b38323ba252e25ac88904a7e8"]},"type":{"type":"string","example":"layers"}}}},"x-nullable":false},"Enabled":{"description":"True if the plugin is running. False if the plugin is not running, only installed.","type":"boolean","x-nullable":false,"example":true},"Id":{"type":"string","example":"5724e2c8652da337ab2eedd19fc6fc0ec908e4bd907c7421bf6a8dfc70c4c078"},"Name":{"type":"string","x-nullable":false,"example":"tiborvass/sample-volume-plugin"},"PluginReference":{"description":"plugin remote reference used to push/pull the plugin","type":"string","x-nullable":false,"example":"localhost:5000/tiborvass/sample-volume-plugin:latest"},"Settings":{"description":"Settings that can be modified by users.","type":"object","required":["Args","Devices","Env","Mounts"],"properties":{"Args":{"type":"array","items":{"type":"string"}},"Devices":{"type":"array","items":{"$ref":"#/definitions/PluginDevice"}},"Env":{"type":"array","items":{"type":"string"},"example":["DEBUG=0"]},"Mounts":{"type":"array","items":{"$ref":"#/definitions/PluginMount"}}},"x-nullable":false}}},"PluginDevice":{"type":"object","required":["Name","Description","Settable","Path"],"properties":{"Description":{"type":"string","x-nullable":false},"Name":{"type":"string","x-nullable":false},"Path":{"type":"string","example":"/dev/fuse"},"Settable":{"type":"array","items":{"type":"string"}}},"x-nullable":false},"PluginEnv":{"type":"object","required":["Name","Description","Settable","Value"],"properties":{"Description":{"type":"string","x-nullable":false},"Name":{"type":"string","x-nullable":false},"Settable":{"type":"array","items":{"type":"string"}},"Value":{"type":"string"}},"x-nullable":false},"PluginInterfaceType":{"type":"object","required":["Prefix","Capability","Version"],"properties":{"Capability":{"type":"string","x-nullable":false},"Prefix":{"type":"string","x-nullable":false},"Version":{"type":"string","x-nullable":false}},"x-nullable":false},"PluginMount":{"type":"object","required":["Name","Description","Settable","Source","Destination","Type","Options"],"properties":{"Description":{"type":"string","x-nullable":false,"example":"This is a mount that's used by the plugin."},"Destination":{"type":"string","x-nullable":false,"example":"/mnt/state"},"Name":{"type":"string","x-nullable":false,"example":"some-mount"},"Options":{"type":"array","items":{"type":"string"},"example":["rbind","rw"]},"Settable":{"type":"array","items":{"type":"string"}},"Source":{"type":"string","example":"/var/lib/docker/plugins/"},"Type":{"type":"string","x-nullable":false,"example":"bind"}},"x-nullable":false},"Port":{"description":"An open port on a container","type":"object","required":["PrivatePort","Type"],"properties":{"IP":{"type":"string","format":"ip-address"},"PrivatePort":{"description":"Port on the container","type":"integer","format":"uint16","x-nullable":false},"PublicPort":{"description":"Port exposed on the host","type":"integer","format":"uint16"},"Type":{"type":"string","enum":["tcp","udp"],"x-nullable":false}},"example":{"PrivatePort":8080,"PublicPort":80,"Type":"tcp"}},"ProcessConfig":{"type":"object","properties":{"arguments":{"type":"array","items":{"type":"string"}},"entrypoint":{"type":"string"},"privileged":{"type":"boolean"},"tty":{"type":"boolean"},"user":{"type":"string"}}},"ProgressDetail":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"integer"}}},"PushImageInfo":{"type":"object","properties":{"error":{"type":"string"},"progress":{"type":"string"},"progressDetail":{"$ref":"#/definitions/ProgressDetail"},"status":{"type":"string"}}},"Resources":{"description":"A container's resources (cgroups config, ulimits, etc)","type":"object","properties":{"BlkioDeviceReadBps":{"description":"Limit read rate (bytes per second) from a device, in the form `[{\"Path\": \"device_path\", \"Rate\": rate}]`.\n","type":"array","items":{"$ref":"#/definitions/ThrottleDevice"}},"BlkioDeviceReadIOps":{"description":"Limit read rate (IO per second) from a device, in the form `[{\"Path\": \"device_path\", \"Rate\": rate}]`.\n","type":"array","items":{"$ref":"#/definitions/ThrottleDevice"}},"BlkioDeviceWriteBps":{"description":"Limit write rate (bytes per second) to a device, in the form `[{\"Path\": \"device_path\", \"Rate\": rate}]`.\n","type":"array","items":{"$ref":"#/definitions/ThrottleDevice"}},"BlkioDeviceWriteIOps":{"description":"Limit write rate (IO per second) to a device, in the form `[{\"Path\": \"device_path\", \"Rate\": rate}]`.\n","type":"array","items":{"$ref":"#/definitions/ThrottleDevice"}},"BlkioWeight":{"description":"Block IO weight (relative weight).","type":"integer","maximum":1000,"minimum":0},"BlkioWeightDevice":{"description":"Block IO weight (relative device weight) in the form `[{\"Path\": \"device_path\", \"Weight\": weight}]`.\n","type":"array","items":{"type":"object","properties":{"Path":{"type":"string"},"Weight":{"type":"integer","minimum":0}}}},"CgroupParent":{"description":"Path to `cgroups` under which the container's `cgroup` is created. If the path is not absolute, the path is considered to be relative to the `cgroups` path of the init process. Cgroups are created if they do not already exist.","type":"string"},"CpuCount":{"description":"The number of usable CPUs (Windows only).\n\nOn Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last.\n","type":"integer","format":"int64"},"CpuPercent":{"description":"The usable percentage of the available CPUs (Windows only).\n\nOn Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last.\n","type":"integer","format":"int64"},"CpuPeriod":{"description":"The length of a CPU period in microseconds.","type":"integer","format":"int64"},"CpuQuota":{"description":"Microseconds of CPU time that the container can get in a CPU period.","type":"integer","format":"int64"},"CpuRealtimePeriod":{"description":"The length of a CPU real-time period in microseconds. Set to 0 to allocate no time allocated to real-time tasks.","type":"integer","format":"int64"},"CpuRealtimeRuntime":{"description":"The length of a CPU real-time runtime in microseconds. Set to 0 to allocate no time allocated to real-time tasks.","type":"integer","format":"int64"},"CpuShares":{"description":"An integer value representing this container's relative CPU weight versus other containers.","type":"integer"},"CpusetCpus":{"description":"CPUs in which to allow execution (e.g., `0-3`, `0,1`)","type":"string"},"CpusetMems":{"description":"Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only effective on NUMA systems.","type":"string"},"DeviceCgroupRules":{"description":"a list of cgroup rules to apply to the container","type":"array","items":{"type":"string","example":"c 13:* rwm"}},"Devices":{"description":"A list of devices to add to the container.","type":"array","items":{"$ref":"#/definitions/DeviceMapping"}},"DiskQuota":{"description":"Disk limit (in bytes).","type":"integer","format":"int64"},"IOMaximumBandwidth":{"description":"Maximum IO in bytes per second for the container system drive (Windows only)","type":"integer","format":"int64"},"IOMaximumIOps":{"description":"Maximum IOps for the container system drive (Windows only)","type":"integer","format":"int64"},"KernelMemory":{"description":"Kernel memory limit in bytes.","type":"integer","format":"int64"},"Memory":{"description":"Memory limit in bytes.","type":"integer","default":0},"MemoryReservation":{"description":"Memory soft limit in bytes.","type":"integer","format":"int64"},"MemorySwap":{"description":"Total memory limit (memory + swap). Set as `-1` to enable unlimited swap.","type":"integer","format":"int64"},"MemorySwappiness":{"description":"Tune a container's memory swappiness behavior. Accepts an integer between 0 and 100.","type":"integer","format":"int64","maximum":100,"minimum":0},"NanoCPUs":{"description":"CPU quota in units of 10\u003csup\u003e-9\u003c/sup\u003e CPUs.","type":"integer","format":"int64"},"OomKillDisable":{"description":"Disable OOM Killer for the container.","type":"boolean"},"PidsLimit":{"description":"Tune a container's pids limit. Set -1 for unlimited.","type":"integer","format":"int64"},"Ulimits":{"description":"A list of resource limits to set in the container. For example: `{\"Name\": \"nofile\", \"Soft\": 1024, \"Hard\": 2048}`\"\n","type":"array","items":{"type":"object","properties":{"Hard":{"description":"Hard limit","type":"integer"},"Name":{"description":"Name of ulimit","type":"string"},"Soft":{"description":"Soft limit","type":"integer"}}}}}},"RestartPolicy":{"description":"The behavior to apply when the container exits. The default is not to restart.\n\nAn ever increasing delay (double the previous delay, starting at 100ms) is added before each restart to prevent flooding the server.\n","type":"object","properties":{"MaximumRetryCount":{"description":"If `on-failure` is used, the number of times to retry before giving up","type":"integer"},"Name":{"description":"- Empty string means not to restart\n- `always` Always restart\n- `unless-stopped` Restart always except when the user has manually stopped the container\n- `on-failure` Restart only when the container exit code is non-zero\n","type":"string","enum":["","always","unless-stopped","on-failure"]}}},"Secret":{"type":"object","properties":{"CreatedAt":{"type":"string","format":"dateTime"},"ID":{"type":"string"},"Spec":{"$ref":"#/definitions/SecretSpec"},"UpdatedAt":{"type":"string","format":"dateTime"},"Version":{"$ref":"#/definitions/ObjectVersion"}}},"SecretSpec":{"type":"object","properties":{"Data":{"description":"Base64-url-safe-encoded secret data","type":"array","items":{"type":"string"}},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"User-defined name of the secret.","type":"string"}}},"Service":{"type":"object","properties":{"CreatedAt":{"type":"string","format":"dateTime"},"Endpoint":{"type":"object","properties":{"Ports":{"type":"array","items":{"$ref":"#/definitions/EndpointPortConfig"}},"Spec":{"$ref":"#/definitions/EndpointSpec"},"VirtualIPs":{"type":"array","items":{"type":"object","properties":{"Addr":{"type":"string"},"NetworkID":{"type":"string"}}}}}},"ID":{"type":"string"},"Spec":{"$ref":"#/definitions/ServiceSpec"},"UpdateStatus":{"description":"The status of a service update.","type":"object","properties":{"CompletedAt":{"type":"string","format":"dateTime"},"Message":{"type":"string"},"StartedAt":{"type":"string","format":"dateTime"},"State":{"type":"string","enum":["updating","paused","completed"]}}},"UpdatedAt":{"type":"string","format":"dateTime"},"Version":{"$ref":"#/definitions/ObjectVersion"}},"example":{"CreatedAt":"2016-06-07T21:05:51.880065305Z","Endpoint":{"Ports":[{"Protocol":"tcp","PublishedPort":30001,"TargetPort":6379}],"Spec":{"Mode":"vip","Ports":[{"Protocol":"tcp","PublishedPort":30001,"TargetPort":6379}]},"VirtualIPs":[{"Addr":"10.255.0.2/16","NetworkID":"4qvuz4ko70xaltuqbt8956gd1"},{"Addr":"10.255.0.3/16","NetworkID":"4qvuz4ko70xaltuqbt8956gd1"}]},"ID":"9mnpnzenvg8p8tdbtq4wvbkcz","Spec":{"EndpointSpec":{"Mode":"vip","Ports":[{"Protocol":"tcp","PublishedPort":30001,"TargetPort":6379}]},"Mode":{"Replicated":{"Replicas":1}},"Name":"hopeful_cori","RollbackConfig":{"Delay":1000000000,"FailureAction":"pause","MaxFailureRatio":0.15,"Monitor":15000000000,"Parallelism":1},"TaskTemplate":{"ContainerSpec":{"Image":"redis"},"ForceUpdate":0,"Placement":{},"Resources":{"Limits":{},"Reservations":{}},"RestartPolicy":{"Condition":"any","MaxAttempts":0}},"UpdateConfig":{"Delay":1000000000,"FailureAction":"pause","MaxFailureRatio":0.15,"Monitor":15000000000,"Parallelism":1}},"UpdatedAt":"2016-06-07T21:07:29.962229872Z","Version":{"Index":19}}},"ServiceSpec":{"description":"User modifiable configuration for a service.","properties":{"EndpointSpec":{"$ref":"#/definitions/EndpointSpec"},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Mode":{"description":"Scheduling mode for the service.","type":"object","properties":{"Global":{"type":"object"},"Replicated":{"type":"object","properties":{"Replicas":{"type":"integer","format":"int64"}}}}},"Name":{"description":"Name of the service.","type":"string"},"Networks":{"description":"Array of network names or IDs to attach the service to.","type":"array","items":{"type":"object","properties":{"Aliases":{"type":"array","items":{"type":"string"}},"Target":{"type":"string"}}}},"RollbackConfig":{"description":"Specification for the rollback strategy of the service.","type":"object","properties":{"Delay":{"description":"Amount of time between rollback iterations, in nanoseconds.","type":"integer","format":"int64"},"FailureAction":{"description":"Action to take if an rolled back task fails to run, or stops running during the rollback.","type":"string","enum":["continue","pause"]},"MaxFailureRatio":{"description":"The fraction of tasks that may fail during a rollback before the failure action is invoked, specified as a floating point number between 0 and 1.","type":"number","default":0},"Monitor":{"description":"Amount of time to monitor each rolled back task for failures, in nanoseconds.","type":"integer","format":"int64"},"Order":{"description":"The order of operations when rolling back a task. Either the old task is shut down before the new task is started, or the new task is started before the old task is shut down.","type":"string","enum":["stop-first","start-first"]},"Parallelism":{"description":"Maximum number of tasks to be rolled back in one iteration (0 means unlimited parallelism).","type":"integer","format":"int64"}}},"TaskTemplate":{"$ref":"#/definitions/TaskSpec"},"UpdateConfig":{"description":"Specification for the update strategy of the service.","type":"object","properties":{"Delay":{"description":"Amount of time between updates, in nanoseconds.","type":"integer","format":"int64"},"FailureAction":{"description":"Action to take if an updated task fails to run, or stops running during the update.","type":"string","enum":["continue","pause","rollback"]},"MaxFailureRatio":{"description":"The fraction of tasks that may fail during an update before the failure action is invoked, specified as a floating point number between 0 and 1.","type":"number","default":0},"Monitor":{"description":"Amount of time to monitor each updated task for failures, in nanoseconds.","type":"integer","format":"int64"},"Order":{"description":"The order of operations when rolling out an updated task. Either the old task is shut down before the new task is started, or the new task is started before the old task is shut down.","type":"string","enum":["stop-first","start-first"]},"Parallelism":{"description":"Maximum number of tasks to be updated in one iteration (0 means unlimited parallelism).","type":"integer","format":"int64"}}}}},"ServiceUpdateResponse":{"type":"object","properties":{"Warnings":{"description":"Optional warning messages","type":"array","items":{"type":"string"}}},"example":{"Warning":"unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found"}},"SwarmSpec":{"description":"User modifiable swarm configuration.","type":"object","properties":{"CAConfig":{"description":"CA configuration.","type":"object","properties":{"ExternalCAs":{"description":"Configuration for forwarding signing requests to an external certificate authority.","type":"array","items":{"type":"object","properties":{"CACert":{"description":"The root CA certificate (in PEM format) this external CA uses to issue TLS certificates (assumed to be to the current swarm root CA certificate if not provided).","type":"string"},"Options":{"description":"An object with key/value pairs that are interpreted as protocol-specific options for the external CA driver.","type":"object","additionalProperties":{"type":"string"}},"Protocol":{"description":"Protocol for communication with the external CA (currently only `cfssl` is supported).","type":"string","default":"cfssl","enum":["cfssl"]},"URL":{"description":"URL where certificate signing requests should be sent.","type":"string"}}}},"ForceRotate":{"description":"An integer whose purpose is to force swarm to generate a new signing CA certificate and key, if none have been specified in `SigningCACert` and `SigningCAKey`"},"NodeCertExpiry":{"description":"The duration node certificates are issued for.","type":"integer","format":"int64"},"SigningCACert":{"description":"The desired signing CA certificate for all swarm node TLS leaf certificates, in PEM format.","type":"string"},"SigningCAKey":{"description":"The desired signing CA key for all swarm node TLS leaf certificates, in PEM format.","type":"string"}}},"Dispatcher":{"description":"Dispatcher configuration.","type":"object","properties":{"HeartbeatPeriod":{"description":"The delay for an agent to send a heartbeat to the dispatcher.","type":"integer","format":"int64"}}},"EncryptionConfig":{"description":"Parameters related to encryption-at-rest.","type":"object","properties":{"AutoLockManagers":{"description":"If set, generate a key and use it to lock data stored on the managers.","type":"boolean"}}},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"Name of the swarm.","type":"string"},"Orchestration":{"description":"Orchestration configuration.","type":"object","properties":{"TaskHistoryRetentionLimit":{"description":"The number of historic tasks to keep per instance or node. If negative, never remove completed or failed tasks.","type":"integer","format":"int64"}}},"Raft":{"description":"Raft configuration.","type":"object","properties":{"ElectionTick":{"description":"The number of ticks that a follower will wait for a message from the leader before becoming a candidate and starting an election. `ElectionTick` must be greater than `HeartbeatTick`.\n\nA tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.\n","type":"integer"},"HeartbeatTick":{"description":"The number of ticks between heartbeats. Every HeartbeatTick ticks, the leader will send a heartbeat to the followers.\n\nA tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.\n","type":"integer"},"KeepOldSnapshots":{"description":"The number of snapshots to keep beyond the current snapshot.","type":"integer","format":"int64"},"LogEntriesForSlowFollowers":{"description":"The number of log entries to keep around to sync up slow followers after a snapshot is created.","type":"integer","format":"int64"},"SnapshotInterval":{"description":"The number of log entries between snapshots.","type":"integer","format":"int64"}}},"TaskDefaults":{"description":"Defaults for creating tasks in this cluster.","type":"object","properties":{"LogDriver":{"description":"The log driver to use for tasks created in the orchestrator if unspecified by a service.\n\nUpdating this value will only have an affect on new tasks. Old tasks will continue use their previously configured log driver until recreated.\n","type":"object","properties":{"Name":{"type":"string"},"Options":{"type":"object","additionalProperties":{"type":"string"}}}}}}},"example":{"CAConfig":{"NodeCertExpiry":7776000000000000},"Dispatcher":{"HeartbeatPeriod":5000000000},"EncryptionConfig":{"AutoLockManagers":false},"JoinTokens":{"Manager":"SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2","Worker":"SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx"},"Name":"default","Orchestration":{"TaskHistoryRetentionLimit":10},"Raft":{"ElectionTick":3,"HeartbeatTick":1,"LogEntriesForSlowFollowers":500,"SnapshotInterval":10000}}},"TLSInfo":{"description":"Information about the issuer of leaf TLS certificates and the trusted root CA certificate","type":"object","properties":{"CertIssuerPublicKey":{"description":"The base64-url-safe-encoded raw public key bytes of the issuer","type":"string"},"CertIssuerSubject":{"description":"The base64-url-safe-encoded raw subject bytes of the issuer","type":"string"},"TrustRoot":{"description":"The root CA certificate(s) that are used to validate leaf TLS certificates","type":"string"}},"example":{"CertIssuerPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A==","CertIssuerSubject":"MBMxETAPBgNVBAMTCHN3YXJtLWNh","TrustRoot":"-----BEGIN CERTIFICATE-----\nMIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw\nEzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0\nMzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH\nA0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf\n3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB\nAf8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO\nPQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz\npxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H\n-----END CERTIFICATE-----\n"}},"Task":{"type":"object","properties":{"CreatedAt":{"type":"string","format":"dateTime"},"DesiredState":{"$ref":"#/definitions/TaskState"},"ID":{"description":"The ID of the task.","type":"string"},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"Name of the task.","type":"string"},"NodeID":{"description":"The ID of the node that this task is on.","type":"string"},"ServiceID":{"description":"The ID of the service this task is part of.","type":"string"},"Slot":{"type":"integer"},"Spec":{"$ref":"#/definitions/TaskSpec"},"Status":{"type":"object","properties":{"ContainerStatus":{"type":"object","properties":{"ContainerID":{"type":"string"},"ExitCode":{"type":"integer"},"PID":{"type":"integer"}}},"Err":{"type":"string"},"Message":{"type":"string"},"State":{"$ref":"#/definitions/TaskState"},"Timestamp":{"type":"string","format":"dateTime"}}},"UpdatedAt":{"type":"string","format":"dateTime"},"Version":{"$ref":"#/definitions/ObjectVersion"}},"example":{"CreatedAt":"2016-06-07T21:07:31.171892745Z","DesiredState":"running","ID":"0kzzo1i0y4jz6027t0k7aezc7","NetworksAttachments":[{"Addresses":["10.255.0.10/16"],"Network":{"CreatedAt":"2016-06-07T20:31:11.912919752Z","DriverState":{"Name":"overlay","Options":{"com.docker.network.driver.overlay.vxlanid_list":"256"}},"ID":"4qvuz4ko70xaltuqbt8956gd1","IPAMOptions":{"Configs":[{"Gateway":"10.255.0.1","Subnet":"10.255.0.0/16"}],"Driver":{"Name":"default"}},"Spec":{"DriverConfiguration":{},"IPAMOptions":{"Configs":[{"Gateway":"10.255.0.1","Subnet":"10.255.0.0/16"}],"Driver":{}},"Labels":{"com.docker.swarm.internal":"true"},"Name":"ingress"},"UpdatedAt":"2016-06-07T21:07:29.955277358Z","Version":{"Index":18}}}],"NodeID":"60gvrl6tm78dmak4yl7srz94v","ServiceID":"9mnpnzenvg8p8tdbtq4wvbkcz","Slot":1,"Spec":{"ContainerSpec":{"Image":"redis"},"Placement":{},"Resources":{"Limits":{},"Reservations":{}},"RestartPolicy":{"Condition":"any","MaxAttempts":0}},"Status":{"ContainerStatus":{"ContainerID":"e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035","PID":677},"Message":"started","State":"running","Timestamp":"2016-06-07T21:07:31.290032978Z"},"UpdatedAt":"2016-06-07T21:07:31.376370513Z","Version":{"Index":71}}},"TaskSpec":{"description":"User modifiable task configuration.","type":"object","properties":{"ContainerSpec":{"type":"object","properties":{"Args":{"description":"Arguments to the command.","type":"array","items":{"type":"string"}},"Command":{"description":"The command to be run in the image.","type":"array","items":{"type":"string"}},"Configs":{"description":"Configs contains references to zero or more configs that will be exposed to the service.","type":"array","items":{"type":"object","properties":{"ConfigID":{"description":"ConfigID represents the ID of the specific config that we're referencing.","type":"string"},"ConfigName":{"description":"ConfigName is the name of the config that this references, but this is just provided for\nlookup/display purposes. The config in the reference will be identified by its ID.\n","type":"string"},"File":{"description":"File represents a specific target that is backed by a file.","type":"object","properties":{"GID":{"description":"GID represents the file GID.","type":"string"},"Mode":{"description":"Mode represents the FileMode of the file.","type":"integer","format":"uint32"},"Name":{"description":"Name represents the final filename in the filesystem.","type":"string"},"UID":{"description":"UID represents the file UID.","type":"string"}}}}}},"DNSConfig":{"description":"Specification for DNS related configurations in resolver configuration file (`resolv.conf`).","type":"object","properties":{"Nameservers":{"description":"The IP addresses of the name servers.","type":"array","items":{"type":"string"}},"Options":{"description":"A list of internal resolver variables to be modified (e.g., `debug`, `ndots:3`, etc.).","type":"array","items":{"type":"string"}},"Search":{"description":"A search list for host-name lookup.","type":"array","items":{"type":"string"}}}},"Dir":{"description":"The working directory for commands to run in.","type":"string"},"Env":{"description":"A list of environment variables in the form `VAR=value`.","type":"array","items":{"type":"string"}},"Groups":{"description":"A list of additional groups that the container process will run as.","type":"array","items":{"type":"string"}},"HealthCheck":{"$ref":"#/definitions/HealthConfig"},"Hostname":{"description":"The hostname to use for the container, as a valid RFC 1123 hostname.","type":"string"},"Hosts":{"description":"A list of hostnames/IP mappings to add to the container's `/etc/hosts` file.\nThe format of extra hosts on swarmkit is specified in:\nhttp://man7.org/linux/man-pages/man5/hosts.5.html\n IP_address canonical_hostname [aliases...]\n","type":"array","items":{"type":"string"}},"Image":{"description":"The image name to use for the container.","type":"string"},"Labels":{"description":"User-defined key/value data.","type":"object","additionalProperties":{"type":"string"}},"Mounts":{"description":"Specification for mounts to be added to containers created as part of the service.","type":"array","items":{"$ref":"#/definitions/Mount"}},"OpenStdin":{"description":"Open `stdin`","type":"boolean"},"Privileges":{"description":"Security options for the container","type":"object","properties":{"CredentialSpec":{"description":"CredentialSpec for managed service account (Windows only)","type":"object","properties":{"File":{"description":"Load credential spec from this file. The file is read by the daemon, and must be present in the\n`CredentialSpecs` subdirectory in the docker data directory, which defaults to\n`C:\\ProgramData\\Docker\\` on Windows.\n\nFor example, specifying `spec.json` loads `C:\\ProgramData\\Docker\\CredentialSpecs\\spec.json`.\n\n\u003cp\u003e\u003cbr /\u003e\u003c/p\u003e\n\n\u003e **Note**: `CredentialSpec.File` and `CredentialSpec.Registry` are mutually exclusive.\n","type":"string"},"Registry":{"description":"Load credential spec from this value in the Windows registry. The specified registry value must be\nlocated in:\n\n`HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Virtualization\\Containers\\CredentialSpecs`\n\n\u003cp\u003e\u003cbr /\u003e\u003c/p\u003e\n\n\n\u003e **Note**: `CredentialSpec.File` and `CredentialSpec.Registry` are mutually exclusive.\n","type":"string"}}},"SELinuxContext":{"description":"SELinux labels of the container","type":"object","properties":{"Disable":{"description":"Disable SELinux","type":"boolean"},"Level":{"description":"SELinux level label","type":"string"},"Role":{"description":"SELinux role label","type":"string"},"Type":{"description":"SELinux type label","type":"string"},"User":{"description":"SELinux user label","type":"string"}}}}},"ReadOnly":{"description":"Mount the container's root filesystem as read only.","type":"boolean"},"Secrets":{"description":"Secrets contains references to zero or more secrets that will be exposed to the service.","type":"array","items":{"type":"object","properties":{"File":{"description":"File represents a specific target that is backed by a file.","type":"object","properties":{"GID":{"description":"GID represents the file GID.","type":"string"},"Mode":{"description":"Mode represents the FileMode of the file.","type":"integer","format":"uint32"},"Name":{"description":"Name represents the final filename in the filesystem.","type":"string"},"UID":{"description":"UID represents the file UID.","type":"string"}}},"SecretID":{"description":"SecretID represents the ID of the specific secret that we're referencing.","type":"string"},"SecretName":{"description":"SecretName is the name of the secret that this references, but this is just provided for\nlookup/display purposes. The secret in the reference will be identified by its ID.\n","type":"string"}}}},"StopGracePeriod":{"description":"Amount of time to wait for the container to terminate before forcefully killing it.","type":"integer","format":"int64"},"StopSignal":{"description":"Signal to stop the container.","type":"string"},"TTY":{"description":"Whether a pseudo-TTY should be allocated.","type":"boolean"},"User":{"description":"The user inside the container.","type":"string"}}},"ForceUpdate":{"description":"A counter that triggers an update even if no relevant parameters have been changed.","type":"integer"},"LogDriver":{"description":"Specifies the log driver to use for tasks created from this spec. If not present, the default one for the swarm will be used, finally falling back to the engine default if not specified.","type":"object","properties":{"Name":{"type":"string"},"Options":{"type":"object","additionalProperties":{"type":"string"}}}},"Networks":{"type":"array","items":{"type":"object","properties":{"Aliases":{"type":"array","items":{"type":"string"}},"Target":{"type":"string"}}}},"Placement":{"type":"object","properties":{"Constraints":{"description":"An array of constraints.","type":"array","items":{"type":"string"}},"Platforms":{"description":"An array of supported platforms.","type":"array","items":{"type":"object","properties":{"Architecture":{"type":"string"},"OS":{"type":"string"}}}},"Preferences":{"description":"Preferences provide a way to make the scheduler aware of factors such as topology. They are provided in order from highest to lowest precedence.","type":"array","items":{"type":"object","properties":{"Spread":{"type":"object","properties":{"SpreadDescriptor":{"description":"label descriptor, such as engine.labels.az","type":"string"}}}}}}}},"Resources":{"description":"Resource requirements which apply to each individual container created as part of the service.","type":"object","properties":{"Limits":{"description":"Define resources limits.","type":"object","properties":{"MemoryBytes":{"description":"Memory limit in Bytes.","type":"integer","format":"int64"},"NanoCPUs":{"description":"CPU limit in units of 10\u003csup\u003e-9\u003c/sup\u003e CPU shares.","type":"integer","format":"int64"}}},"Reservation":{"description":"Define resources reservation.","properties":{"MemoryBytes":{"description":"Memory reservation in Bytes.","type":"integer","format":"int64"},"NanoCPUs":{"description":"CPU reservation in units of 10\u003csup\u003e-9\u003c/sup\u003e CPU shares.","type":"integer","format":"int64"}}}}},"RestartPolicy":{"description":"Specification for the restart policy which applies to containers created as part of this service.","type":"object","properties":{"Condition":{"description":"Condition for restart.","type":"string","enum":["none","on-failure","any"]},"Delay":{"description":"Delay between restart attempts.","type":"integer","format":"int64"},"MaxAttempts":{"description":"Maximum attempts to restart a given container before giving up (default value is 0, which is ignored).","type":"integer","format":"int64","default":0},"Window":{"description":"Windows is the time window used to evaluate the restart policy (default value is 0, which is unbounded).","type":"integer","format":"int64","default":0}}},"Runtime":{"description":"Runtime is the type of runtime specified for the task executor.","type":"string"}}},"TaskState":{"type":"string","enum":["new","allocated","pending","assigned","accepted","preparing","ready","starting","running","complete","shutdown","failed","rejected"]},"ThrottleDevice":{"type":"object","properties":{"Path":{"description":"Device path","type":"string"},"Rate":{"description":"Rate","type":"integer","format":"int64","minimum":0}}},"Volume":{"type":"object","required":["Name","Driver","Mountpoint","Labels","Scope","Options"],"properties":{"Driver":{"description":"Name of the volume driver used by the volume.","type":"string","x-nullable":false},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"},"x-nullable":false},"Mountpoint":{"description":"Mount path of the volume on the host.","type":"string","x-nullable":false},"Name":{"description":"Name of the volume.","type":"string","x-nullable":false},"Options":{"description":"The driver specific options used when creating the volume.","type":"object","additionalProperties":{"type":"string"}},"Scope":{"description":"The level at which the volume exists. Either `global` for cluster-wide, or `local` for machine level.","type":"string","default":"local","enum":["local","global"],"x-nullable":false},"Status":{"description":"Low-level details about the volume, provided by the volume driver.\nDetails are returned as a map with key/value pairs:\n`{\"key\":\"value\",\"key2\":\"value2\"}`.\n\nThe `Status` field is optional, and is omitted if the volume driver\ndoes not support this feature.\n","type":"object","additionalProperties":{"type":"object"}},"UsageData":{"description":"Usage details about the volume. This information is used by the\n`GET /system/df` endpoint, and omitted in other endpoints.\n","type":"object","required":["Size","RefCount"],"properties":{"RefCount":{"description":"The number of containers referencing this volume. This field\nis set to `-1` if the reference-count is not available.\n","type":"integer","default":-1,"x-nullable":false},"Size":{"description":"Amount of disk space used by the volume (in bytes). This information\nis only available for volumes created with the `\"local\"` volume\ndriver. For volumes created with other volume drivers, this field\nis set to `-1` (\"not available\")\n","type":"integer","default":-1,"x-nullable":false}},"x-nullable":true}},"example":{"Driver":"custom","Labels":{"com.example.some-label":"some-value","com.example.some-other-label":"some-other-value"},"Mountpoint":"/var/lib/docker/volumes/tardis","Name":"tardis","Scope":"local","Status":{"hello":"world"}}},"authz.Collection":{"id":"authz.Collection","required":["name","path","id","parent_ids","label_constraints","legacylabelkey","legacylabelvalue","created_at","updated_at"],"properties":{"created_at":{"description":"When the collection was created","type":"string","format":"date-time"},"id":{"description":"A unique ID for this collection","type":"string"},"label_constraints":{"description":"A set of label constraints to be applied to any service or container created in this collection","type":"array","items":{"$ref":"#/definitions/authz.LabelConstraint"}},"legacylabelkey":{"description":"The key of the legacy authorization label for this collection","type":"string"},"legacylabelvalue":{"description":"The value of the legacy authorization label for this collection","type":"string"},"name":{"description":"The name of the collection","type":"string"},"parent_ids":{"description":"A list of collection IDs of parent collections","type":"array","items":{"type":"string"}},"path":{"description":"The full path of the collection","type":"string"},"updated_at":{"description":"When the collection was updated","type":"string","format":"date-time"}}},"authz.CollectionCreate":{"id":"authz.CollectionCreate","required":["name","parent_id","label_constraints","legacy_label_key","legacy_label_value"],"properties":{"label_constraints":{"type":"array","items":{"$ref":"#/definitions/authz.LabelConstraint"}},"legacy_label_key":{"type":"string"},"legacy_label_value":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"string"}}},"authz.CollectionCreateResponse":{"id":"authz.CollectionCreateResponse","required":["id"],"properties":{"id":{"type":"string"}}},"authz.CollectionID":{"id":"authz.CollectionID","required":["id"],"properties":{"id":{"type":"string"}}},"authz.CollectionUpdate":{"id":"authz.CollectionUpdate","required":["label_constraints"],"properties":{"label_constraints":{"type":"array","items":{"$ref":"#/definitions/authz.LabelConstraint"}}}},"authz.LabelConstraint":{"id":"authz.LabelConstraint","required":["type","label_key","label_value","equality"],"properties":{"equality":{"type":"boolean"},"label_key":{"type":"string"},"label_value":{"type":"string"},"type":{"type":"string"}}},"authz.RoleCreateResponse":{"id":"authz.RoleCreateResponse","required":["id"],"properties":{"id":{"description":"The ID of the newly created role","type":"string"}}},"errors.APIError":{"id":"errors.APIError","required":["code","message"],"properties":{"code":{"type":"string"},"detail":{"$ref":"#/definitions/errors.APIError.detail"},"message":{"type":"string"}}},"errors.APIError.detail":{"id":"errors.APIError.detail"},"forms.BulkOperation":{"id":"forms.BulkOperation","required":["op"],"properties":{"op":{"description":"The operation to perform","type":"string"},"ref":{"description":"An identifier referencing the object on which to perform the operation, if applicable","type":"string"},"value":{"description":"The form value to submit for the operation, if applicable","type":"string"}}},"forms.BulkOperations":{"id":"forms.BulkOperations","required":["operations"],"properties":{"operations":{"type":"array","items":{"$ref":"#/definitions/forms.BulkOperation"}}}},"forms.Certificate":{"id":"forms.Certificate","required":["label","cert"],"properties":{"cert":{"description":"Encoded PEM for the cert","type":"string"},"label":{"description":"Label for the certificate","type":"string"}}},"forms.ChangePassword":{"id":"forms.ChangePassword","required":["oldPassword","newPassword"],"properties":{"newPassword":{"description":"User's new password","type":"string"},"oldPassword":{"description":"User's current password. Required if the client is changing their own password. May be omitted if an admin is changing another user's password","type":"string"}}},"forms.CreateAccount":{"id":"forms.CreateAccount","required":["name"],"properties":{"fullName":{"description":"Full name of account","type":"string"},"isActive":{"description":"Whether the user is active and can login (users only)","type":"boolean"},"isAdmin":{"description":"Whether the user is an admin (users only)","type":"boolean"},"isOrg":{"description":"Whether the account is an organization","type":"boolean"},"name":{"description":"Name of account","type":"string"},"password":{"description":"Password for the user (users only)","type":"string"},"searchLDAP":{"description":"Whether the user should be found by searching against the currently configured LDAP servers. If true, the password field may be omitted and the discovered full name of the user will be used if one is not specified in this form (users only)","type":"boolean"}}},"forms.CreateAccountPublicKey":{"id":"forms.CreateAccountPublicKey","required":["publicKey"],"properties":{"certificates":{"description":"certificates for the public key","type":"array","items":{"$ref":"#/definitions/forms.Certificate"}},"label":{"description":"Label or description for the key","type":"string"},"publicKey":{"description":"Encoded PEM for the public key","type":"string"}}},"forms.CreateTeam":{"id":"forms.CreateTeam","required":["name"],"properties":{"description":{"description":"Description of the team","type":"string"},"name":{"description":"Name of the team","type":"string"}}},"forms.Login":{"id":"forms.Login","required":["username","password"],"properties":{"password":{"description":"the password for the user account","type":"string"},"username":{"description":"the username of the account to login as","type":"string"}}},"forms.MemberSyncOpts":{"id":"forms.MemberSyncOpts","required":["enableSync","selectGroupMembers","groupDN","groupMemberAttr","searchBaseDN","searchScopeSubtree","searchFilter"],"properties":{"enableSync":{"description":"Whether to enable LDAP syncing. If false, all other fields are ignored","type":"boolean"},"groupDN":{"description":"The distinguished name of the LDAP group. Required if selectGroupMembers is true, ignored otherwise","type":"string"},"groupMemberAttr":{"description":"The name of the LDAP group entry attribute which corresponds to distinguished names of members. Required if selectGroupMembers is true, ignored otherwise","type":"string"},"searchBaseDN":{"description":"The distinguished name of the element from which the LDAP server will search for users. Required if selectGroupMembers is false, ignored otherwise","type":"string"},"searchFilter":{"description":"The LDAP search filter used to select users if selectGroupMembers is false, may be left blank","type":"string"},"searchScopeSubtree":{"description":"Whether to search for users in the entire subtree of the base DN or to only search one level under the base DN (if false). Required if selectGroupMembers is false, ignored otherwise","type":"boolean"},"selectGroupMembers":{"description":"Whether to sync using a group DN and member attribute selection or to use a search filter (if false)","type":"boolean"}}},"forms.SetMembership":{"id":"forms.SetMembership","properties":{"isAdmin":{"description":"Whether the member should be an admin of the organization or team (default false), unchanged if nil or omitted","type":"boolean"}}},"forms.UpdateAccount":{"id":"forms.UpdateAccount","properties":{"fullName":{"description":"Full name of account, unchanged if null or omitted","type":"string"},"isActive":{"description":"Whether the user is active and can login (users only), unchanged if null or omitted","type":"boolean"},"isAdmin":{"description":"Whether the user is an admin (users only), unchanged if null or omitted","type":"boolean"}}},"forms.UpdateAccountPublicKey":{"id":"forms.UpdateAccountPublicKey","properties":{"certificates":{"description":"certificates for the public key","type":"array","items":{"$ref":"#/definitions/forms.Certificate"}},"label":{"description":"Label or description for the key","type":"string"}}},"forms.UpdateTeam":{"id":"forms.UpdateTeam","properties":{"description":{"description":"Description of the team, unchanged if nil or omitted","type":"string"},"name":{"description":"Name of the team, unchanged if nil or omitted","type":"string"}}},"responses.Account":{"id":"responses.Account","required":["name","id","fullName","isOrg"],"properties":{"fullName":{"description":"Full Name of the account","type":"string"},"id":{"description":"ID of the account","type":"string"},"isActive":{"description":"Whether the user is active and can login (users only)","type":"boolean"},"isAdmin":{"description":"Whether the user is a system admin (users only)","type":"boolean"},"isImported":{"description":"Whether the user was imported from an upstream identity provider","type":"boolean"},"isOrg":{"description":"Whether the account is an organization (or user)","type":"boolean"},"membersCount":{"description":"The number of members of the organization","type":"integer","format":"int32"},"name":{"description":"Name of the account","type":"string"}}},"responses.AccountPublicKey":{"id":"responses.AccountPublicKey","required":["id","accountID","publicKey","label"],"properties":{"accountID":{"description":"the ID of the account","type":"string"},"certificates":{"description":"certificates for the public key","type":"array","items":{"$ref":"#/definitions/responses.Certificate"}},"id":{"description":"the hash of the public key's DER bytes","type":"string"},"label":{"description":"the label or description for the key","type":"string"},"publicKey":{"description":"the encoded PEM of the public key","type":"string"}}},"responses.AccountPublicKeys":{"id":"responses.AccountPublicKeys","required":["accountPublicKeys"],"properties":{"accountPublicKeys":{"type":"array","items":{"$ref":"#/definitions/responses.AccountPublicKey"}}}},"responses.Accounts":{"id":"responses.Accounts","required":["accounts"],"properties":{"accounts":{"type":"array","items":{"$ref":"#/definitions/responses.Account"}}}},"responses.BulkResult":{"id":"responses.BulkResult","required":["op","success"],"properties":{"error":{"description":"If not successful, the error encountered when performing the operation on this resource","$ref":"#/definitions/errors.APIError"},"op":{"description":"The operation which was perfomed","type":"string"},"ref":{"description":"The corresponding identifier in the bulk operation request","type":"string"},"success":{"description":"Whether the bulk operation was successful for this resource","type":"boolean"}}},"responses.BulkResults":{"id":"responses.BulkResults","required":["results"],"properties":{"results":{"description":"List of results for the bulk operation. The index of a bulk result corresponds to the index of the resource in the bulk request if result identifiers are omitted","type":"array","items":{"$ref":"#/definitions/responses.BulkResult"}}}},"responses.Certificate":{"id":"responses.Certificate","required":["label","cert"],"properties":{"cert":{"description":"Encoded PEM for the cert","type":"string"},"label":{"description":"Label for the certificate","type":"string"}}},"responses.Grant":{"id":"responses.Grant","required":["subjectID","objectID","roleID"],"properties":{"objectID":{"description":"ID of the object managed by the service","type":"string"},"roleID":{"description":"ID of the role managed by the service","type":"string"},"subjectID":{"description":"ID of the subject of this grant","type":"string"}}},"responses.GrantSubject":{"id":"responses.GrantSubject","required":["id","subject_type"],"properties":{"account":{"description":"The account associated with this subject, if any","$ref":"#/definitions/responses.Account"},"id":{"description":"ID of this subject","type":"string"},"subject_type":{"description":"The type of this subject (anonymous, authenticated, user, team, org)","type":"string"},"team":{"description":"The team associated with this subject, if any","$ref":"#/definitions/responses.Team"}}},"responses.Grants":{"id":"responses.Grants","required":["grants","subjects"],"properties":{"grants":{"type":"array","items":{"$ref":"#/definitions/responses.Grant"}},"subjects":{"type":"array","items":{"$ref":"#/definitions/responses.GrantSubject"}}}},"responses.LoginSession":{"id":"responses.LoginSession","required":["account","sessionToken"],"properties":{"account":{"description":"the authenticated user account","$ref":"#/definitions/responses.Account"},"sessionToken":{"description":"the session token created by the login","type":"string"}}},"responses.Member":{"id":"responses.Member","required":["member","isAdmin"],"properties":{"isAdmin":{"description":"Whether the member is an admin of the organization or team","type":"boolean"},"member":{"description":"The user which is a member of the organization or team","$ref":"#/definitions/responses.Account"}}},"responses.MemberOrg":{"id":"responses.MemberOrg","required":["org","isAdmin"],"properties":{"isAdmin":{"description":"Whether the user is an admin of the organization","type":"boolean"},"org":{"description":"The organization which the user is a member of","$ref":"#/definitions/responses.Account"}}},"responses.MemberOrgs":{"id":"responses.MemberOrgs","required":["memberOrgs"],"properties":{"memberOrgs":{"type":"array","items":{"$ref":"#/definitions/responses.MemberOrg"}}}},"responses.MemberSyncOpts":{"id":"responses.MemberSyncOpts","required":["enableSync","selectGroupMembers","groupDN","groupMemberAttr","searchBaseDN","searchScopeSubtree","searchFilter"],"properties":{"enableSync":{"description":"Whether to enable LDAP syncing. If false, all other fields are ignored","type":"boolean"},"groupDN":{"description":"The distinguished name of the LDAP group. Applicable only if selectGroupMembers is true, ignored otherwise","type":"string"},"groupMemberAttr":{"description":"The name of the LDAP group entry attribute which corresponds to distinguished names of members. Applicable only if selectGroupMembers is true, ignored otherwise","type":"string"},"searchBaseDN":{"description":"The distinguished name of the element from which the LDAP server will search for users. Applicable only if selectGroupMembers is false, ignored otherwise","type":"string"},"searchFilter":{"description":"The LDAP search filter used to select users if selectGroupMembers is false, may be left blank","type":"string"},"searchScopeSubtree":{"description":"Whether to search for users in the entire subtree of the base DN or to only search one level under the base DN (if false). Applicable only if selectGroupMembers is false, ignored otherwise","type":"boolean"},"selectGroupMembers":{"description":"Whether to sync using a group DN and member attribute selection or to use a search filter (if false)","type":"boolean"}}},"responses.MemberTeam":{"id":"responses.MemberTeam","required":["team","isAdmin"],"properties":{"isAdmin":{"description":"Whether the user is an admin of the team","type":"boolean"},"team":{"description":"The team which the user is a member of","$ref":"#/definitions/responses.Team"}}},"responses.MemberTeams":{"id":"responses.MemberTeams","required":["memberTeams"],"properties":{"memberTeams":{"type":"array","items":{"$ref":"#/definitions/responses.MemberTeam"}}}},"responses.Members":{"id":"responses.Members","required":["members"],"properties":{"members":{"type":"array","items":{"$ref":"#/definitions/responses.Member"}}}},"responses.Team":{"id":"responses.Team","required":["orgID","name","id","description","membersCount"],"properties":{"description":{"description":"Description of the team","type":"string"},"id":{"description":"ID of the team","type":"string"},"membersCount":{"description":"The number of members of the team","type":"integer","format":"int32"},"name":{"description":"Name of the team","type":"string"},"orgID":{"description":"ID of the organization to which this team belongs","type":"string"}}},"responses.Teams":{"id":"responses.Teams","required":["teams"],"properties":{"teams":{"type":"array","items":{"$ref":"#/definitions/responses.Team"}}}},"role.Role":{"id":"role.Role","required":["id","name","system_role","operations"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"operations":{"type":"object"},"system_role":{"type":"boolean"}}},"v1.FinalizerName":{"id":"v1.FinalizerName"},"v1.Initializer":{"id":"v1.Initializer","description":"Initializer is information about an initializer that has not yet completed.","required":["name"],"properties":{"name":{"description":"name of the process that is responsible for initializing this object.","type":"string"}}},"v1.Initializers":{"id":"v1.Initializers","description":"Initializers tracks the progress of initialization.","required":["pending"],"properties":{"pending":{"description":"Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.","type":"array","items":{"$ref":"#/definitions/v1.Initializer"}},"result":{"description":"If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.","$ref":"#/definitions/v1.Status"}}},"v1.ListMeta":{"id":"v1.ListMeta","description":"ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.","properties":{"continue":{"description":"continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response.","type":"string"},"resourceVersion":{"description":"String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency","type":"string"},"selfLink":{"description":"selfLink is a URL representing this object. Populated by the system. Read-only.","type":"string"}}},"v1.Namespace":{"id":"v1.Namespace","description":"Namespace provides a scope for Names. Use of multiple namespaces is optional.","properties":{"apiVersion":{"description":"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources","type":"string"},"kind":{"description":"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds","type":"string"},"metadata":{"description":"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata","$ref":"#/definitions/v1.ObjectMeta"},"spec":{"description":"Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status","$ref":"#/definitions/v1.NamespaceSpec"},"status":{"description":"Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status","$ref":"#/definitions/v1.NamespaceStatus"}}},"v1.NamespaceList":{"id":"v1.NamespaceList","description":"NamespaceList is a list of Namespaces.","required":["items"],"properties":{"apiVersion":{"description":"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources","type":"string"},"items":{"description":"Items is the list of Namespace objects in the list. More info: https://v1-8.docs.kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/","type":"array","items":{"$ref":"#/definitions/v1.Namespace"}},"kind":{"description":"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds","type":"string"},"metadata":{"description":"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds","$ref":"#/definitions/v1.ListMeta"}}},"v1.NamespaceSpec":{"id":"v1.NamespaceSpec","description":"NamespaceSpec describes the attributes on a Namespace.","properties":{"finalizers":{"description":"Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers","type":"array","items":{"$ref":"#/definitions/v1.FinalizerName"}}}},"v1.NamespaceStatus":{"id":"v1.NamespaceStatus","description":"NamespaceStatus is information about the current status of a Namespace.","properties":{"phase":{"description":"Phase is the current lifecycle phase of the namespace. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases","type":"string"}}},"v1.ObjectMeta":{"id":"v1.ObjectMeta","description":"ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.","properties":{"annotations":{"description":"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://v1-8.docs.kubernetes.io/docs/concepts/overview/working-with-objects/annotations","type":"object"},"clusterName":{"description":"The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.","type":"string"},"creationTimestamp":{"description":"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata","type":"string"},"deletionGracePeriodSeconds":{"description":"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.","type":"integer","format":"int64"},"deletionTimestamp":{"description":"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata","type":"string"},"finalizers":{"description":"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.","type":"array","items":{"type":"string"}},"generateName":{"description":"GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency","type":"string"},"generation":{"description":"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.","type":"integer","format":"int64"},"initializers":{"description":"An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\n\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.","$ref":"#/definitions/v1.Initializers"},"labels":{"description":"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://v1-8.docs.kubernetes.io/docs/concepts/overview/working-with-objects/labels","type":"object"},"name":{"description":"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://v1-8.docs.kubernetes.io/docs/concepts/overview/working-with-objects/names/","type":"string"},"namespace":{"description":"Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: https://v1-8.docs.kubernetes.io/docs/concepts/overview/working-with-objects/namespaces","type":"string"},"ownerReferences":{"description":"List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.","type":"array","items":{"$ref":"#/definitions/v1.OwnerReference"}},"resourceVersion":{"description":"An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency","type":"string"},"selfLink":{"description":"SelfLink is a URL representing this object. Populated by the system. Read-only.","type":"string"},"uid":{"description":"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: https://v1-8.docs.kubernetes.io/docs/concepts/overview/working-with-objects/names/","type":"string"}}},"v1.OwnerReference":{"id":"v1.OwnerReference","description":"OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.","required":["apiVersion","kind","name","uid"],"properties":{"apiVersion":{"description":"API version of the referent.","type":"string"},"blockOwnerDeletion":{"description":"If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.","type":"boolean"},"controller":{"description":"If true, this reference points to the managing controller.","type":"boolean"},"kind":{"description":"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds","type":"string"},"name":{"description":"Name of the referent. More info: https://v1-8.docs.kubernetes.io/docs/concepts/overview/working-with-objects/names","type":"string"},"uid":{"description":"UID of the referent. More info: https://v1-8.docs.kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids","type":"string"}}},"v1.Status":{"id":"v1.Status","description":"Status is a return value for calls that don't return other objects.","properties":{"apiVersion":{"description":"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources","type":"string"},"code":{"description":"Suggested HTTP return code for this status, 0 if not set.","type":"integer","format":"int32"},"details":{"description":"Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.","$ref":"#/definitions/v1.StatusDetails"},"kind":{"description":"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds","type":"string"},"message":{"description":"A human-readable description of the status of this operation.","type":"string"},"metadata":{"description":"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds","$ref":"#/definitions/v1.ListMeta"},"reason":{"description":"A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.","type":"string"},"status":{"description":"Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status","type":"string"}}},"v1.StatusCause":{"id":"v1.StatusCause","description":"StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.","properties":{"field":{"description":"The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"","type":"string"},"message":{"description":"A human-readable description of the cause of the error. This field may be presented as-is to a reader.","type":"string"},"reason":{"description":"A machine-readable description of the cause of the error. If this value is empty there is no information available.","type":"string"}}},"v1.StatusDetails":{"id":"v1.StatusDetails","description":"StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.","properties":{"causes":{"description":"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.","type":"array","items":{"$ref":"#/definitions/v1.StatusCause"}},"group":{"description":"The group attribute of the resource associated with the status StatusReason.","type":"string"},"kind":{"description":"The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds","type":"string"},"name":{"description":"The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).","type":"string"},"retryAfterSeconds":{"description":"If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.","type":"integer","format":"int32"},"uid":{"description":"UID of the resource. (when there is a single resource which can be described). More info: https://v1-8.docs.kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids","type":"string"}}},"||authz.Collection":{"id":"||authz.Collection"},"||authz.RoleCreateResponse":{"id":"||authz.RoleCreateResponse"},"||role.Role":{"id":"||role.Role"}},"securityDefinitions":{"JWT":{"type":"apiKey","name":"Authorization","in":"header"}},"security":[{"JWT":[]}],"tags":[{"description":"Create and manage containers.\n","name":"Container","x-displayName":"Containers"},{"name":"Image","x-displayName":"Images"},{"description":"Networks are user-defined networks that containers can be attached to. See the [networking documentation](https://docs.docker.com/engine/userguide/networking/) for more information.\n","name":"Network","x-displayName":"Networks"},{"description":"Create and manage persistent storage that can be attached to containers.\n","name":"Volume","x-displayName":"Volumes"},{"description":"Run new commands inside running containers. See the [command-line reference](https://docs.docker.com/engine/reference/commandline/exec/) for more information.\n\nTo exec a command in a container, you first need to create an exec instance, then start it. These two API endpoints are wrapped up in a single command-line command, `docker exec`.\n","name":"Exec","x-displayName":"Exec"},{"description":"Engines can be clustered together in a swarm. See [the swarm mode documentation](https://docs.docker.com/engine/swarm/) for more information.\n","name":"Swarm","x-displayName":"Swarm"},{"description":"Nodes are instances of the Engine participating in a swarm. Swarm mode must be enabled for these endpoints to work.\n","name":"Node","x-displayName":"Nodes"},{"description":"Services are the definitions of tasks to run on a swarm. Swarm mode must be enabled for these endpoints to work.\n","name":"Service","x-displayName":"Services"},{"description":"A task is a container running on a swarm. It is the atomic scheduling unit of swarm. Swarm mode must be enabled for these endpoints to work.\n","name":"Task","x-displayName":"Tasks"},{"description":"Secrets are sensitive data that can be used by services. Swarm mode must be enabled for these endpoints to work.\n","name":"Secret","x-displayName":"Secrets"},{"name":"Plugin","x-displayName":"Plugins"},{"name":"System","x-displayName":"System"},{"description":"API endpoints which are specific to UCP","name":"UCP"}]}// JavaScript source code , dom_id: "swagger-ui-container", diff --git a/datacenter/ucp/3.0/reference/cli/backup.md b/datacenter/ucp/3.0/reference/cli/backup.md index ee1861e79c..f8c0252ece 100644 --- a/datacenter/ucp/3.0/reference/cli/backup.md +++ b/datacenter/ucp/3.0/reference/cli/backup.md @@ -9,7 +9,7 @@ Create a backup of a UCP manager node ## Usage ```bash -docker container run --log-driver none --rm -i \ +docker container run --log-driver none --rm \ --name ucp \ -v /var/run/docker.sock:/var/run/docker.sock \ docker/ucp \ @@ -22,9 +22,9 @@ This command creates a tar file with the contents of the volumes used by this UCP manager node, and prints it. You can then use the `restore` command to restore the data from an existing backup. -To create backups of a multi-node swarm, you only need to back up a single manager -node. The restore operation will reconstitute a new UCP installation from the -backup of any previous manager. +To create backups of a multi-node cluster, you only need to back up a single +manager node. The restore operation will reconstitute a new UCP installation +from the backup of any previous manager. Note: diff --git a/datacenter/ucp/3.0/reference/cli/example-config.md b/datacenter/ucp/3.0/reference/cli/example-config.md index f365c2c37e..4756d724ad 100644 --- a/datacenter/ucp/3.0/reference/cli/example-config.md +++ b/datacenter/ucp/3.0/reference/cli/example-config.md @@ -13,10 +13,5 @@ docker container run --rm -i \ --name ucp \ -v /var/run/docker.sock:/var/run/docker.sock \ docker/ucp \ - example-config > ucp.config + example-config ``` - -## Description - -This command emits an example configuration file for setting up UCP. -[Learn about UCP configuration files](../../guides/admin/configure/ucp-configuration-file.md). \ No newline at end of file diff --git a/datacenter/ucp/3.0/reference/cli/id.md b/datacenter/ucp/3.0/reference/cli/id.md index 0721e0e1c6..068e7614d0 100644 --- a/datacenter/ucp/3.0/reference/cli/id.md +++ b/datacenter/ucp/3.0/reference/cli/id.md @@ -7,11 +7,14 @@ keywords: ucp, cli, id Print the ID of UCP running on this node ## Usage + +Run the UCP id command using the correct image version tag for UCP (i.e. docker/ucp:$version) + ``` docker container run --rm \ --name ucp \ -v /var/run/docker.sock:/var/run/docker.sock \ - docker/ucp \ + docker/ucp:$version \ id ``` diff --git a/datacenter/ucp/3.0/reference/cli/index.md b/datacenter/ucp/3.0/reference/cli/index.md index 6bf4919d89..12e71bdcc2 100644 --- a/datacenter/ucp/3.0/reference/cli/index.md +++ b/datacenter/ucp/3.0/reference/cli/index.md @@ -23,7 +23,7 @@ Additional help is available for each command with the `--help` flag. docker container run -it --rm \ --name ucp \ -v /var/run/docker.sock:/var/run/docker.sock \ - {{ page.ucp_org }}/{{ page.ucp_repo }}:{{ page.ucp_version }} \ + docker/ucp \ command [command arguments] ``` diff --git a/datacenter/ucp/3.0/reference/cli/install.md b/datacenter/ucp/3.0/reference/cli/install.md index 99052b175d..54661d0f34 100644 --- a/datacenter/ucp/3.0/reference/cli/install.md +++ b/datacenter/ucp/3.0/reference/cli/install.md @@ -24,13 +24,13 @@ Docker Universal Control Plane (UCP). When installing UCP you can customize: * The certificates used by the UCP web server. Create a volume - named 'ucp-controller-server-certs' and copy the ca.pem, cert.pem, and key.pem + named `ucp-controller-server-certs` and copy the `ca.pem`, `cert.pem`, and `key.pem` files to the root directory. Then run the install command with the `--external-server-cert` flag. * The license used by UCP, by bind-mounting the file at - '/config/docker_subscription.lic' in the tool. For example, `-v /path/to/my/config/docker_subscription.lic:/config/docker_subscription.lic` - or by specifying with '--license "$(cat license.lic)" + `/config/docker_subscription.lic` in the tool. E.g. `-v /path/to/my/config/docker_subscription.lic:/config/docker_subscription.lic` + or by specifying with `--license "$(cat license.lic)` If you're joining more nodes to this swarm, open the following ports in your firewall: @@ -46,37 +46,43 @@ command. ## Options -| Option | Description | -| :----------------------- | :----------------------------------------------------------------------------------------------- | -| `--debug, D` | Enable debug mode | -| `--jsonlog` | Produce json formatted output for easier parsing | -| `--interactive, i` | Run in interactive mode and prompt for configuration values | -| `--admin-username` | The UCP administrator username | -| `--admin-password` | The UCP administrator password | -| `--san` | Add subject alternative names to certificates. For example, `-san www1.acme.com --san www2.acme.com` | -| `--host-address` | The network address to advertise to other nodes. Format: IP address or network interface name | -| `--data-path-addr` | Address or interface to use for data path traffic. Format: IP address or network interface name | -| `--swarm-port` | Port for the Docker Swarm manager. Used for backwards compatibility | -| `--controller-port` | Port for the web UI and API | -| `--swarm-grpc-port` | Port for communication between nodes | -| `--dns` | Set custom DNS servers for the UCP containers | -| `--dns-opt` | Set DNS options for the UCP containers | -| `--dns-search` | Set custom DNS search domains for the UCP containers | -| `--unlock-key` | The unlock key for this swarm-mode cluster, if one exists. | -| `--existing-config` | Use the latest existing UCP config during this installation. The install fails if a config is not found. | -| `--pull` | Pull UCP images: `always`, when `missing`, or `never` | -| `--registry-username` | Username to use when pulling images | -| `--registry-password` | Password to use when pulling images | -| `--kv-timeout` | Timeout in milliseconds for the key-value store | -| `--kv-snapshot-count` | Number of changes between key-value store snapshots | -| `--swarm-experimental` | Enable Docker Swarm experimental features. Used for backwards compatibility | -| `--disable-tracking` | Disable anonymous tracking and analytics | -| `--disable-usage` | Disable anonymous usage reporting | -| `--external-server-cert` | Customize the certificates used by the UCP web server | -| `--preserve-certs` | Don't generate certificates if they already exist | -| `--binpack` | Set the Docker Swarm scheduler to binpack mode. Used for backwards compatibility | -| `--random` | Set the Docker Swarm scheduler to random mode. Used for backwards compatibility | -| `--external-service-lb` | Set the external service load balancer reported in the UI | -| `--enable-profiling` | Enable performance profiling | -| `--license` | Add a license. For example, `--license "$(cat license.lic)"` | -| `--force-insecure-tcp` | Force install to continue even with unauthenticated Docker Engine ports | +| Option | Description | +|:-------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `--debug, D` | Enable debug mode | +| `--jsonlog` | Produce json formatted output for easier parsing | +| `--interactive, i` | Run in interactive mode and prompt for configuration values | +| `--admin-username` | The UCP administrator username | +| `--admin-password` | The UCP administrator password | +| `--san` | Add subject alternative names to certificates. The `-san` option can be used multiple times, such as `--san www1.acme.com --san www2.acme.com`. | +| `--host-address` | The network address to advertise to other nodes. Format: IP address or network interface name | +| `--data-path-addr` | Address or interface to use for data path traffic. Format: IP address or network interface name | +| `--controller-port` | Port for the web UI and API | +| `--kube-apiserver-port` | Port for the Kubernetes API server (default: 6443) | +| `--swarm-port` | Port for the Docker Swarm manager. Used for backwards compatibility | +| `--swarm-grpc-port` | Port for communication between nodes | +| `--cni-installer-url` | A URL pointing to a Kubernetes YAML file to be used as an installer for the CNI plugin of the cluster. If specified, the default CNI plugin is not installed. If the URL uses the HTTPS scheme, no certificate verification is performed. | + +| `--pod-cidr` | Kubernetes cluster IP pool for the pods to allocated IPs from (Default: 192.168.0.0/16) | +| `--cloud-provider` | The cloud provider for the cluster | +| `--dns` | Set custom DNS servers for the UCP containers | +| `--dns-opt` | Set DNS options for the UCP containers | +| `--dns-search` | Set custom DNS search domains for the UCP containers | +| `--unlock-key` | The unlock key for this swarm-mode cluster, if one exists. | +| `--existing-config` | Use the latest existing UCP config during this installation. The install fails if a config is not found. | +| `--force-minimums` | Force the install/upgrade even if the system doesn't meet the minimum requirements. | +| `--pull` | Pull UCP images: `always`, when `missing`, or `never` | +| `--registry-username` | Username to use when pulling images | +| `--registry-password` | Password to use when pulling images | +| `--kv-timeout` | Timeout in milliseconds for the key-value store | +| `--kv-snapshot-count` | Number of changes between key-value store snapshots | +| `--swarm-experimental` | Enable Docker Swarm experimental features. Used for backwards compatibility | +| `--disable-tracking` | Disable anonymous tracking and analytics | +| `--disable-usage` | Disable anonymous usage reporting | +| `--external-server-cert` | Use the certificates in the `ucp-controller-server-certs` volume instead of generating self-signed certs during installation | +| `--preserve-certs` | Don't generate certificates if they already exist | +| `--binpack` | Set the Docker Swarm scheduler to binpack mode. Used for backwards compatibility | +| `--random` | Set the Docker Swarm scheduler to random mode. Used for backwards compatibility | +| `--external-service-lb` | Set the external service load balancer reported in the UI | +| `--enable-profiling` | Enable performance profiling | +| `--license` | Add a license: e.g. --license "$(cat license.lic)" | +| `--force-insecure-tcp` | Force install to continue even with unauthenticated Docker Engine ports | diff --git a/datacenter/ucp/3.0/reference/cli/restore.md b/datacenter/ucp/3.0/reference/cli/restore.md index d5cc188f37..6552c6b4f9 100644 --- a/datacenter/ucp/3.0/reference/cli/restore.md +++ b/datacenter/ucp/3.0/reference/cli/restore.md @@ -22,16 +22,16 @@ This command installs a new UCP cluster that is populated with the state of a previous UCP manager node using a tar file generated by the `backup` command. All UCP settings, users, teams and permissions will be restored from the backup file. The Restore operation does not alter or recover any containers, networks, -volumes or services of an underlying swarm. +volumes or services of an underlying cluster. The restore command can be performed on any manager node of an existing -swarm. If the current node does not belong in a swarm, one will be +cluster. If the current node does not belong in a cluster, one will be initialized using the value of the `--host-address` flag. When restoring on an existing swarm-mode cluster, no previous UCP components must be running on any node of the cluster. This cleanup can be performed with the `uninstall-ucp` command. -If restore is performed on a different swarm than the one +If restore is performed on a different cluster than the one where the backup file was taken on, the Cluster Root CA of the old UCP installation will not be restored. This will invalidate any previously issued Admin Client Bundles and all administrator will be required @@ -53,17 +53,18 @@ Notes: with `docker swarm init --force-new-cluster`. * You can restore from a backup that was taken on a different manager node or - a different swarm altogether. + a different cluster altogether. ## Options -| Option | Description | -|:--------------------------|:---------------------------| -|`--debug, D`|Enable debug mode| -|`--jsonlog`|Produce json formatted output for easier parsing| -|`--interactive, i`|Run in interactive mode and prompt for configuration values| -|`--passphrase`|Decrypt the backup tar file with the provided passphrase| -|`--san`|Add subject alternative names to certificates. For example, ``--san www1.acme.com --san www2.acme.com`| -|`--host-address`|The network address to advertise to other nodes. Format: IP address or network interface name| -|`--unlock-key`|The unlock key for this swarm-mode cluster, if one exists.| +| Option | Description | +|:-------------------|:----------------------------------------------------------------------------------------------| +| `--debug, D` | Enable debug mode | +| `--jsonlog` | Produce json formatted output for easier parsing | +| `--interactive, i` | Run in interactive mode and prompt for configuration values | +| `--passphrase` | Decrypt the backup tar file with the provided passphrase | +| `--san` | Add subject alternative names to certificates (e.g. --san www1.acme.com --san www2.acme.com) | +| `--host-address` | The network address to advertise to other nodes. Format: IP address or network interface name | +| `--data-path-addr` | Address or interface to use for data path traffic | +| `--unlock-key` | The unlock key for this swarm-mode cluster, if one exists. | diff --git a/datacenter/ucp/3.0/reference/cli/support.md b/datacenter/ucp/3.0/reference/cli/support.md index db1df79885..f46cdc7c29 100644 --- a/datacenter/ucp/3.0/reference/cli/support.md +++ b/datacenter/ucp/3.0/reference/cli/support.md @@ -1,10 +1,10 @@ --- title: docker/ucp support -description: Create a support dump for this UCP node -keywords: ucp, cli, support +description: Create a support dump for UCP nodes +keywords: ucp, cli, support, support dump, troubleshooting --- -Create a support dump for this UCP node +Create a support dump for specified UCP nodes. You create a support dump to help [Docker Support](http://success.docker.com/support) understand your environment and more effectively troubleshoot issues in resolving your support case. ## Usage @@ -26,5 +26,3 @@ This command creates a support dump file for this node, and prints it to stdout. |:--------------------------|:---------------------------| |`--debug, D`|Enable debug mode| |`--jsonlog`|Produce json formatted output for easier parsing| - - diff --git a/datacenter/ucp/3.0/reference/cli/uninstall-ucp.md b/datacenter/ucp/3.0/reference/cli/uninstall-ucp.md index 71acc4051e..a1277e692c 100644 --- a/datacenter/ucp/3.0/reference/cli/uninstall-ucp.md +++ b/datacenter/ucp/3.0/reference/cli/uninstall-ucp.md @@ -24,7 +24,7 @@ your applications can continue running. After UCP is uninstalled you can use the `docker swarm leave` and `docker node rm` commands to remove nodes from the swarm. -Once UCP is uninstalled, you can't join nodes to the swarm unless +Once UCP is uninstalled, you won't be able to join nodes to the swarm unless UCP is installed again. diff --git a/datacenter/ucp/3.0/reference/cli/upgrade.md b/datacenter/ucp/3.0/reference/cli/upgrade.md index f3cfc38e34..9206d2b608 100644 --- a/datacenter/ucp/3.0/reference/cli/upgrade.md +++ b/datacenter/ucp/3.0/reference/cli/upgrade.md @@ -18,31 +18,31 @@ Upgrade the UCP cluster ## Description -This command upgrades the UCP running on this node. -To upgrade UCP: +This command upgrades the UCP running on this cluster. - * Upgrade the Docker Engine in all nodes (optional) - * Run the upgrade command in all manager nodes - * Run the upgrade command in all worker nodes - -Before performing an upgrade, you should perform a backup by using the +Before performing an upgrade, you should perform a backup by using the [backup](backup.md) command. -After upgrading UCP in a node, go to the UCP web UI and confirm the node is -healthy, before upgrading other nodes. +After upgrading UCP, go to the UCP web UI and confirm each node is +healthy and that all nodes have been upgraded successfully. ## Options -| Option | Description | -|:--------------------------|:---------------------------| -|`--debug, D`|Enable debug mode| -|`--jsonlog`|Produce json formatted output for easier parsing| -|`--interactive, i`|Run in interactive mode and prompt for configuration values| -|`--admin-username`|The UCP administrator username| -|`--admin-password`|The UCP administrator password| -|`--pull`|Pull UCP images: `always`, when `missing`, or `never`| -|`--registry-username`|Username to use when pulling images| -|`--registry-password`|Password to use when pulling images| -|`--id`|The ID of the UCP instance to upgrade| -|`--host-address`|Override the previously configured host address with this IP or network interface| +| Option | Description | +|:----------------------|:------------------------------------------------------------------------------------------------------| +| `--debug, D` | Enable debug mode | +| `--jsonlog` | Produce json formatted output for easier parsing | +| `--interactive, i` | Run in interactive mode and prompt for configuration values | +| `--admin-username` | The UCP administrator username | +| `--admin-password` | The UCP administrator password | +| `--pull` | Pull UCP images: `always`, when `missing`, or `never` | +| `--registry-username` | Username to use when pulling images | +| `--registry-password` | Password to use when pulling images | +| `--id` | The ID of the UCP instance to upgrade | +| `--host-address` | Override the previously configured host address with this IP or network interface | +| `--force-minimums` | Force the install/upgrade even if the system does not meet the minimum requirements | +| `--pod-cidr` | Kubernetes cluster IP pool for the pods to allocated IP from (Default: 192.168.0.0/16 | +| `--nodeport-range` | Allowed port range for Kubernetes services of type NodePort (Default: 32768-35535) | +| `--cloud-provider` | The cloud provider for the cluster | +| `--cni-installer-url` | A URL pointing to a kubernetes YAML file to be used as an installer for the CNI plugin of the cluster | diff --git a/develop/develop-images/build_enhancements.md b/develop/develop-images/build_enhancements.md index 8d8ce2955b..545344212e 100644 --- a/develop/develop-images/build_enhancements.md +++ b/develop/develop-images/build_enhancements.md @@ -30,7 +30,7 @@ For more information on build options, see the reference guide on the [command l Easiest way from a fresh install of docker is to set the `DOCKER_BUILDKIT=1` environment variable when invoking the `docker build` command, such as: ``` -$ DOCKER_BUILD=1 docker build . +$ DOCKER_BUILDKIT=1 docker build . ``` To enable docker buildkit by default, set daemon configuration in `/etc/docker/daemon.json` feature to true and restart the daemon: diff --git a/develop/develop-images/dockerfile_best-practices.md b/develop/develop-images/dockerfile_best-practices.md index 3ea7faf38f..2a456b5dec 100644 --- a/develop/develop-images/dockerfile_best-practices.md +++ b/develop/develop-images/dockerfile_best-practices.md @@ -463,8 +463,8 @@ RUN set -o pipefail && wget -O - https://some.site | wc -l > /number ``` > Not all shells support the `-o pipefail` option. > -> In such cases (such as the `dash` shell, which is the default shell on -> Debian-based images), consider using the _exec_ form of `RUN` to explicitly +> In cases such as the `dash` shell on +> Debian-based images, consider using the _exec_ form of `RUN` to explicitly > choose a shell that does support the `pipefail` option. For example: > > ```Dockerfile diff --git a/ee/dtr/admin/upgrade.md b/ee/dtr/admin/upgrade.md index 38618453a9..c71196595f 100644 --- a/ee/dtr/admin/upgrade.md +++ b/ee/dtr/admin/upgrade.md @@ -91,7 +91,7 @@ upgrade. The command is the same as for a minor upgrade. > > There are [important changes to the upgrade process](/ee/upgrade) that, if not correctly followed, can have impact on the availability of applications running on the Swarm during upgrades. These constraints impact any upgrades coming from any version before `18.09` to version `18.09` or greater. See [Cluster Upgrade Best Practices](/ee/upgrade.md#cluster-upgrade-best-practices) for more details. Additionally, to ensure high availability during the DTR upgrade, you can also drain the DTR replicas and move their workloads to updated workers. To do this, you can join new workers as DTR replicas to your existing cluster and then remove the old replicas. See [docker/dtr join](/reference/dtr/2.6/cli/join) and [docker/dtr remove](/reference/dtr/2.6/cli/remove) for command options and details. -When upgrading from `2.5` to `2.6`, the system will run a `metadatastoremigration` job after a successful upgrade. This involves migrating the blob links for your images which is necessary for online garbage collection. With `2.6`, you can log in to the DTR web interface and navigate to **System > Job Logs** to check the status of the `metadatastoremigration` job. See [Audit Jobs via the Web Interface](../manage-jobs/audit-jobs-via-ui/) for more details. +When upgrading from `2.5` to `2.6`, the system will run a `metadatastoremigration` job after a successful upgrade. This involves migrating the blob links for your images which is necessary for online garbage collection. With `2.6`, you can log in to the DTR web interface and navigate to **System > Job Logs** to check the status of the `metadatastoremigration` job. See [Audit Jobs via the Web Interface](/ee/dtr/admin/manage-jobs/audit-jobs-via-ui/) for more details. ![](../images/migration-warning.png){: .with-border} diff --git a/ee/dtr/images/internal-promotion-1.png b/ee/dtr/images/internal-promotion-1.png new file mode 100644 index 0000000000..d141770b9d Binary files /dev/null and b/ee/dtr/images/internal-promotion-1.png differ diff --git a/ee/dtr/images/internal-promotion-2.png b/ee/dtr/images/internal-promotion-2.png index a36de44e48..c55f6a885f 100644 Binary files a/ee/dtr/images/internal-promotion-2.png and b/ee/dtr/images/internal-promotion-2.png differ diff --git a/ee/dtr/images/internal-promotion-3.png b/ee/dtr/images/internal-promotion-3.png index a301105331..f028d14c1d 100644 Binary files a/ee/dtr/images/internal-promotion-3.png and b/ee/dtr/images/internal-promotion-3.png differ diff --git a/ee/dtr/images/internal-promotion-4.png b/ee/dtr/images/internal-promotion-4.png index dfc9363054..0ea0fbab79 100644 Binary files a/ee/dtr/images/internal-promotion-4.png and b/ee/dtr/images/internal-promotion-4.png differ diff --git a/ee/dtr/images/internal-promotion-5.png b/ee/dtr/images/internal-promotion-5.png new file mode 100644 index 0000000000..fb47e1d80d Binary files /dev/null and b/ee/dtr/images/internal-promotion-5.png differ diff --git a/ee/dtr/images/push-mirror-2.png b/ee/dtr/images/push-mirror-2.png index c82410cdb8..dceb745640 100644 Binary files a/ee/dtr/images/push-mirror-2.png and b/ee/dtr/images/push-mirror-2.png differ diff --git a/ee/dtr/images/push-mirror-3.png b/ee/dtr/images/push-mirror-3.png index 5c111cba73..9153f47aa0 100644 Binary files a/ee/dtr/images/push-mirror-3.png and b/ee/dtr/images/push-mirror-3.png differ diff --git a/ee/dtr/images/push-mirror-4.png b/ee/dtr/images/push-mirror-4.png index c25fee4855..f5e5f8038e 100644 Binary files a/ee/dtr/images/push-mirror-4.png and b/ee/dtr/images/push-mirror-4.png differ diff --git a/ee/dtr/user/promotion-policies/internal-promotion.md b/ee/dtr/user/promotion-policies/internal-promotion.md index a2b187aeca..36b31da88c 100644 --- a/ee/dtr/user/promotion-policies/internal-promotion.md +++ b/ee/dtr/user/promotion-policies/internal-promotion.md @@ -11,7 +11,7 @@ redirect_from: Docker Trusted Registry allows you to create image promotion pipelines based on policies. -In this example we'll create an image promotion pipeline such that: +In this example we will create an image promotion pipeline such that: 1. Developers iterate and push their builds to the `dev/website` repository. 2. When the team creates a stable build, they make sure their image is tagged @@ -23,31 +23,30 @@ With this promotion policy, the development team doesn't need access to the QA repositories, and the QA team doesn't need access to the development repositories. -![promotion example](../../images/internal-promotion-1.svg) +![promotion example](../../images/internal-promotion-1.png) ## Configure your repository Once you've [created the repository](../manage-images/index.md), navigate to -the **DTR web UI**, go to the **repository details** page, and choose -**Promotions**. +the repository page on the DTR web interface, and select the +**Promotions** tab. ![repository policies](../../images/internal-promotion-2.png){: .with-border} -Click **New promotion policy**, and define the criteria that an image needs -to meet to be promoted. +Click **New promotion policy**, and define the image promotion criteria. -DTR allows defining the following criteria: +DTR allows you to set your promotion policy based on the following image attributes: -| Name | Description | -|:----------------|:---------------------------------------------------| -| Tag name | If the tag name contains | -| Component name | If the image has a given component | -| Vulnerabilities | If the image has vulnerabilities | -| License | If the image uses an intellectual property license | +| Name | Description | Example | +|:----------------|:---------------------------------------------------| :----------------| +| Tag name | Whether the tag name equals, starts with, ends with, contains, is one of, or is not one of your specified string values | Promote to Target if Tag name ends in `stable`| +| Component name | Whether the image has a given component and the component name equals, starts with, ends with, contains, is one of, or is not one of your specified string values | Promote to Target if Component name starts with `b` | +| Vulnerabilities | Whether the image has vulnerabilities – critical, major, minor, or all – and your selected vulnerability filter is greater than or equals, greater than, equals, not equals, less than or equals, or less than your specified number | Promote to Target if Critical vulnerabilities = `3` | +| License | Whether the image uses an intellectual property license and is one of or not one of your specified words | Promote to Target if License name = `docker` | Now you need to choose what happens to an image that meets all the criteria. -Select the **organization** and **repository** where the image is going to be +Select the target **organization** or **namespace** and **repository** where the image is going to be pushed. You can choose to keep the image tag, or transform the tag into something more meaningful in the destination repository, by using a tag template. @@ -59,7 +58,12 @@ timestamp of when the image was promoted. ![repository with policies](../../images/internal-promotion-3.png){: .with-border} Everything is set up! Once the development team pushes an image that complies -with the policy, it automatically gets promoted. +with the policy, it automatically gets promoted. To confirm, select the **Promotions** tab on the `dev/website` repository. + +![tag promoted](../../images/internal-promotion-5.png){: .with-border} + + +You can also review the newly pushed tag in the target repository by navigating to `qa/website` and selecting the **Tags** tab. ![tag promoted](../../images/internal-promotion-4.png){: .with-border} diff --git a/ee/dtr/user/promotion-policies/push-mirror.md b/ee/dtr/user/promotion-policies/push-mirror.md index 1f0163a015..0465b0240f 100644 --- a/ee/dtr/user/promotion-policies/push-mirror.md +++ b/ee/dtr/user/promotion-policies/push-mirror.md @@ -6,46 +6,42 @@ keywords: registry, promotion, mirror Docker Trusted Registry allows you to create mirroring policies for a repository. When an image gets pushed to a repository and meets a certain criteria, -DTR automatically pushes it to repository in another DTR deployment or Docker -Hub. +DTR automatically pushes it to a repository in a remote Docker Trusted or Hub registry. This not only allows you to mirror images but also allows you to create image promotion pipelines that span multiple DTR deployments and datacenters. -In this example we'll create an image mirroring policy such that: +In this example we will create an image mirroring policy such that: -1. Developers iterate and push their builds to `dev.example.org/website/ui`, the -`website/ui` repository in the DTR deployment dedicated to development. +1. Developers iterate and push their builds to `dtr-example.com/dev/website` &endash; the +repository in the DTR deployment dedicated to development. 2. When the team creates a stable build, they make sure their image is tagged with `-stable`. -3. When a stable build is pushed to `dev.example.org/website/ui`, it will -automatically be pushed to `qa.example.org/website/ui`, mirroring the image and +3. When a stable build is pushed to `dtr-example.com/dev/website`, it will +automatically be pushed to `qa-example.com/qa/website`, mirroring the image and promoting it to the next stage of development. -![promotion example](../../images/push-mirror-1.svg) - -With this mirroring policy, the development team doesn't need access to the -QA cluster, and the QA team doesn't need access to the development +With this mirroring policy, the development team does not need access to the +QA cluster, and the QA team does not need access to the development cluster. -The person setting this mirroring policy needs to have permissions to push -to the destination repository. +You need to have permissions to push to the destination repository in order to set up the mirroring policy. ## Configure your repository -Once you've [created the repository](../manage-images/index.md), navigate to -the **DTR web UI**, go to the **repository details** page, and choose -**Mirrors**. +Once you have [created the repository](../manage-images/index.md), navigate to +the repository page on the web interface, and select the +**Mirrors** tab. ![create integration](../../images/push-mirror-2.png){: .with-border} -Click **New mirroring policy**, and define where the image will be pushed if -it meets the policy criteria. Make sure the account you use for the integration -has permissions to write in the destination repository. +Click **New mirror**, and define where the image will be pushed if +it meets the mirroring criteria. Make sure the account you use for the integration +has permissions to write to the remote repository. Under **Mirror direction**, choose **Push to remote registry**. -In this example we'll push the image to the `website/ui` repository of a -DTR deployment available at `qa.example.org`. We also use a service account -that was created just for mirroring images between repositories. +In this example, the image gets pushed to the `qa/website` repository of a +DTR deployment available at `qa-example.com` using a service account +that was created just for mirroring images between repositories. Note that you may use a password or access token to log in to your remote registry. If the destination DTR deployment is using self-signed TLS certificates or certificates issued by your own certificate authority, click @@ -58,33 +54,28 @@ Once you're done, click **Connect** to test the integration. ![test connection](../../images/push-mirror-3.png){: .with-border} -Under **Mirror direction** choose **push to remote registry**. Then specify the -policy that will trigger the image to be pushed to the external registry. +DTR allows you to set your mirroring policy based on the following image attributes: -DTR allows defining the following criteria: - -| Name | Description | -|:----------------|:---------------------------------------------------| -| Tag name | If the tag name contains | -| Component name | If the image has a given component | -| Vulnerabilities | If the image has vulnerabilities | -| License | If the image uses an intellectual property license | +| Name | Description | Example | +|:----------------|:---------------------------------------------------| :----------------| +| Tag name | Whether the tag name equals, starts with, ends with, contains, is one of, or is not one of your specified string values | Copy image to remote repository if Tag name ends in `stable`| +| Component name | Whether the image has a given component and the component name equals, starts with, ends with, contains, is one of, or is not one of your specified string values | Copy image to remote repository if Component name starts with `b` | +| Vulnerabilities | Whether the image has vulnerabilities – critical, major, minor, or all – and your selected vulnerability filter is greater than or equals, greater than, equals, not equals, less than or equals, or less than your specified number | Copy image to remote repository if Critical vulnerabilities = `3` | +| License | Whether the image uses an intellectual property license and is one of or not one of your specified words | Copy image to remote repository if License name = `docker` | Finally you can choose to keep the image tag, or transform the tag into -something more meaningful in the destination registry, by using a tag template. +something more meaningful in the remote registry by using a tag template. ![choose policy](../../images/push-mirror-4.png){: .with-border} -In this example, if an image in the `website/ui` repository is tagged with +In this example, if an image in the `dev/website` repository is tagged with a word that ends in "stable", DTR will automatically push that image to -the DTR deployment available at `qa.example.org`. The image is pushed to the -`website/ui` repository and is tagged with the timestamp of when the image +the DTR deployment available at `qa-example.com`. The image is pushed to the +`qa/website` repository and is tagged with the timestamp of when the image was promoted. Everything is set up! Once the development team pushes an image that complies -with the policy, it automatically gets promoted. - -![choose policy](../../images/push-mirror-5.png){: .with-border} +with the policy, it automatically gets promoted to `qa/website` in the remote trusted registry at `qa-example.com`. ## Metadata persistence diff --git a/ee/ucp/admin/install/system-requirements.md b/ee/ucp/admin/install/system-requirements.md index d08f27a7b7..c8163adf9a 100644 --- a/ee/ucp/admin/install/system-requirements.md +++ b/ee/ucp/admin/install/system-requirements.md @@ -22,8 +22,8 @@ You can install UCP on-premises or on a cloud provider. Common requirements: * 8GB of RAM for manager nodes * 4GB of RAM for worker nodes -* 4GiB of free disk space for the root partition for manager nodes -* 500MiB of free disk space for the root partition for worker nodes +* 4GB of free disk space for the `/var` partition for manager nodes +* 500MB of free disk space for the `/var` partition for worker nodes ### Recommended production requirements diff --git a/ee/ucp/admin/install/upgrade-offline.md b/ee/ucp/admin/install/upgrade-offline.md index 3d2d9a7e7d..8e0a23d4fc 100644 --- a/ee/ucp/admin/install/upgrade-offline.md +++ b/ee/ucp/admin/install/upgrade-offline.md @@ -17,7 +17,7 @@ copy this package to the host where you upgrade UCP. Use a computer with internet access to download the UCP package from the following links. -{% include components/ddc_url_list_2.html product="ucp" version="3.0" %} +{% include components/ddc_url_list_2.html product="ucp" version="3.1" %} ## Download the offline package diff --git a/ee/ucp/authorization/create-users-and-teams-manually.md b/ee/ucp/authorization/create-users-and-teams-manually.md index 3e50436b91..70411f8c3d 100644 --- a/ee/ucp/authorization/create-users-and-teams-manually.md +++ b/ee/ucp/authorization/create-users-and-teams-manually.md @@ -40,7 +40,7 @@ To use Docker EE's built-in authentication, you must [create users manually](#cr The general flow of designing an organization with teams in UCP is: 1. Create an organization. -2. Add users or enable LDAD (for syncing users). +2. Add users or enable LDAP (for syncing users). 3. Create teams under the organization. 4. Add users to teams manually or sync with LDAP. @@ -91,4 +91,4 @@ To manually create users in UCP: - [Synchronize teams with LDAP](create-teams-with-ldap.md) - [Define roles with authorized API operations](define-roles.md) - [Group and isolate cluster resources](group-resources.md) -- [Grant role-access to cluster resources](grant-permissions.md) \ No newline at end of file +- [Grant role-access to cluster resources](grant-permissions.md) diff --git a/ee/ucp/images/aws-ebs.png b/ee/ucp/images/aws-ebs.png new file mode 100644 index 0000000000..0a37c136e6 Binary files /dev/null and b/ee/ucp/images/aws-ebs.png differ diff --git a/ee/ucp/kubernetes/configure-aws-storage.md b/ee/ucp/kubernetes/configure-aws-storage.md new file mode 100644 index 0000000000..ea58a24988 --- /dev/null +++ b/ee/ucp/kubernetes/configure-aws-storage.md @@ -0,0 +1,133 @@ +--- +title: Configure AWS EBS Storage for Kubernetes +description: Learn how configure AWS EBS storage for Kubernetes clusters. +keywords: UCP, Docker Enterprise, Kubernetes, storage, AWS, ELB +--- + +[AWS Elastic Block Store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) (EBS) can be deployed with Kubernetes in Docker Enterprise 2.1 to use AWS volumes as peristent storage for applications. Before using EBS volumes, configure UCP and the AWS infrastructure for storage orchestration to function. + +## Configure AWS Infrastructure for Kubernetes + +Kubernetes [Cloud Providers](https://kubernetes.io/docs/concepts/cluster-administration/cloud-providers/) provide a method of provisioning cloud resources through Kubernetes via the `--cloud-provider` option. In AWS, this flag allows the [provisioning of EBS volumes](#) and cloud load balancers. + +Configuring a cluster for AWS requires several specific configuration parameters in the infrastructure before installing UCP. + +### AWS IAM Permissions + +Instances must have the following [AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) permissions configured to provision EBS volumes through Kubernetes PVCs. + + +| Master | Worker | +|------------|--------| +| ec2:DescribeInstances | ec2:DescribeInstances | +| ec2:AttachVolume | ec2:AttachVolume | +| ec2:DetachVolume | ec2:DetachVolume | +| ec2:DescribeVolumes | ec2:DescribeVolumes | +| ec2:CreateVolume | ec2:DescribeSecurityGroups | +| ec2:DeleteVolume | | +| ec2:CreateTags | | +| ec2:DescribeSecurityGroups | | + + +### Infrastructure Configuration + +- Apply the roles and policies to Kubernetes masters and workers as indicated in the above chart. +- EC2 instances must be set to the private DNS hostname of the instance (will typically end in `.internal`) +- EC2 instances must also be labeled with the key `KubernetesCluster` with a matching value across all nodes. + +### Cluster Configuration + +- In addition to your existing [install flags](https://docs.docker.com/reference/ucp/3.0/cli/install/) the cloud provider flag `--cloud-provider=aws` is required at install time. +- The cloud provider can also be enabled post-install through the UCP config. The `ucp-agent` needs to be updated to propogate the new config, as described in [UCP configuration file](https://docs.docker.com/ee/ucp/admin/configure/ucp-configuration-file/#inspect-and-modify-existing-configuration). + +``` +[cluster_config] + +... + + cloud_provider = "aws" +``` + +## Deploy AWS EBS Volumes + +After configuring UCP for the AWS cloud provider, you can create persistent volumes that deploy EBS volumes attached to hosts and mounted inside pods. The EBS volumes are provisioned dynamically such they are created, attached, destroyed along with the lifecycle of the persistent volumes. This does not require users to directly access to the AWS as you request these resources directly through Kubernetes primitives. + +We recommend you use the `StorageClass` and `PersistentVolumeClaim` resources as these abstraction layers provide more portability as well as control over the storage layer across environments. + +To learn more about storage concepts in Kubernetes, see [Storage - Kubernetes](https://kubernetes.io/docs/concepts/storage/). + +### Creating a Storage Class + +A `StorageClass` lets administrators describe “classes” of storage available in which classes map to quality-of-service levels, or backup policies, or any policies required by cluster administrators. The following `StorageClass` maps a "standard" class of storage to the `gp2` type of storage in AWS EBS. + +``` +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: standard +provisioner: kubernetes.io/aws-ebs +parameters: + type: gp2 +reclaimPolicy: Retain +mountOptions: + - debug +``` + +For descriptions of AWS EBS parameters, see [Storage Classes](https://kubernetes.io/docs/concepts/storage/storage-classes/#aws). + +### Creating a Persistent Volume Claim + +A `PersistentVolumeClaim` (PVC) is a claim for storage resources that are bound to a `PersistentVolume` (PV) when storage resources are granted. The following PVC makes a request for `1Gi` of storage from the `standard` storage class. + +``` +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: task-pv-claim +spec: + storageClassName: standard + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + ``` + +### Deploying a Persistent Volume + +The following Pod spec references the PVC `task-pv-claim` from above which references the `standard` storage class in this cluster. + +``` +kind: Pod +apiVersion: v1 +metadata: + name: task-pv-pod +spec: + volumes: + - name: task-pv-storage + persistentVolumeClaim: + claimName: task-pv-claim + containers: + - name: task-pv-container + image: nginx + ports: + - containerPort: 80 + name: "http-server" + volumeMounts: + - mountPath: "/usr/share/nginx/html" + name: task-pv-storage + ``` + +### Inspecting and Using PVs + + Once the pod is deployed, run the following `kubectl` command to verify the PV was created and bound to the PVC. + +``` +kubectl get pv +NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE +pvc-751c006e-a00b-11e8-8007-0242ac110012 1Gi RWO Retain Bound default/task-pv-claim standard 3h +``` + +The AWS console shows a volume has been provisioned having a matching name with type `gp2` and a `1GiB` size. + +![](../images/aws-ebs.png) diff --git a/ee/ucp/release-notes.md b/ee/ucp/release-notes.md index a8cd3aafea..f6866e7e29 100644 --- a/ee/ucp/release-notes.md +++ b/ee/ucp/release-notes.md @@ -98,6 +98,8 @@ There are several backward-incompatible changes in the Kubernetes API that may a * Pod Security Policies are not supported in this release. (#15105) +* The default Kubelet configuration for UCP Manager nodes is expecting 4GB of free disk space in the `/var` partition. See [System Requirements](/ee/ucp/admin/install/system-requirements) for details. + ## Deprecated features The following features are deprecated in UCP 3.1. @@ -420,7 +422,6 @@ deprecated. Deploy your applications as Swarm services or Kubernetes workloads. **Bug fixes** -<<<<<<< HEAD * Core * Resolved an issue where LDAP sync jobs terminated when processing an org admin Search result that does not resolve to an existing user. (docker/escalation#784 #docker/escalation#888) @@ -428,7 +429,6 @@ deprecated. Deploy your applications as Swarm services or Kubernetes workloads. * UI * Fixed an issue that caused "Per User Limit" to not work on Admin Settings. (docker/escalation#639) -======= * Core * Resolved an issue where LDAP sync jobs would crash when handling an org admin search result which does not correspond to an existing user. (docker/escalation#784 #docker/escalation#888) * Fixed an issue that caused RethinkDB client lock contention. (docker/escalation#902 and docker/escalation#906) @@ -443,7 +443,6 @@ deprecated. Deploy your applications as Swarm services or Kubernetes workloads. * Security * Fixed a critical security issue to prevent UCP from accepting certificates from the system pool when adding client CAs to the server that requires mutual authentication. ->>>>>>> ba65aeabbb67b4cc2464497cfbe8bbccec8aacb2 ## Version 2.2.12 (2018-08-09) diff --git a/engine/reference/commandline/README.md b/engine/reference/commandline/README.md index e411a96362..442020068a 100644 --- a/engine/reference/commandline/README.md +++ b/engine/reference/commandline/README.md @@ -2,7 +2,7 @@ The files in this directory are stub files which include the file `/_includes/cli.md`, which parses YAML files generated from the -[`docker/docker`](https://github.com/moby/moby) repository. The YAML files +[`docker/cli`](https://github.com/docker/cli) repository. The YAML files are parsed into output files like [/engine/reference/commandline/build/](/engine/reference/commandline/build/). @@ -14,7 +14,7 @@ The output files are composed from two sources: the CLI source code in that repository. - The **Extended Description** and **Examples** sections are pulled into the - YAML from the files in [https://github.com/moby/moby/tree/master/docs/reference/commandline](https://github.com/moby/moby/tree/master/docs/reference/commandline) + YAML from the files in [https://github.com/docker/cli/tree/master/docs/reference/commandline](https://github.com/docker/cli/tree/master/docs/reference/commandline) Specifically, the Markdown inside the `## Description` and `## Examples` headings are parsed. Submit corrections to the text in that repository. diff --git a/machine/AVAILABLE_DRIVER_PLUGINS.md b/machine/AVAILABLE_DRIVER_PLUGINS.md index 3e870e1038..61e014ae4d 100644 --- a/machine/AVAILABLE_DRIVER_PLUGINS.md +++ b/machine/AVAILABLE_DRIVER_PLUGINS.md @@ -192,6 +192,23 @@ with Docker Inc. Use 3rd party plugins at your own risk. bo.thompson@gmail.com + + Hetzner Cloud + + https://github.com/JonasProgrammer/docker-machine-driver-hetzner + + + JonasProgrammer
+ monochromata
+ mxschmitt + + + jonass@dev.jsje.de
+ sl@monochromata.de
+ max@schmitt.mx + + HPE OneView diff --git a/reference/dtr/2.5/api/index.html b/reference/dtr/2.5/api/index.html deleted file mode 100644 index 91abd52d94..0000000000 --- a/reference/dtr/2.5/api/index.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - Docker Trusted Registry API Documentation - - - - -
- - - - - - diff --git a/reference/dtr/2.5/api/main.js b/reference/dtr/2.5/api/main.js deleted file mode 100644 index 3bb1091a50..0000000000 --- a/reference/dtr/2.5/api/main.js +++ /dev/null @@ -1,21 +0,0 @@ -window.onload = function() { - - // Build a system - const ui = SwaggerUIBundle({ - spec: -{"swagger":"2.0","info":{"description":"Docker Trusted Registry has an experimental API that you can use to manage\nDTR repositories, permissions, and settings.\n\n**This API is experimental and subject to change, which could affect future\nbackwards compatibility.**\n\nYou can authenticate your requests by using an authentication token. In the\nDTR web UI, navigate to your user profile and choose **Access tokens** to\ncreate a new token. The authentication token issued will have the same\npermissions your user has.\n\nTo authenticate your requests, use HTTP basic authentication to pass the\nauthentication token to the DTR API. Here's an example:\n\n```\ncurl -sL -u {user}:{token} /api/v0/repositories\n```\n","title":"Docker Trusted Registry","version":"2.5.0"},"paths":{"/api/v0/accounts/language":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Get the chosen language","operationId":"GetLanguage","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Language"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Language"}}}}},"/api/v0/accounts/{namespace}":{"delete":{"description":"\n\t*Authorization:* Client must be authenticated as a system admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Removes a user or organization along with all repositories","operationId":"DeleteNamespace","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true}],"responses":{"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/accounts/{namespace}/repositories":{"delete":{"description":"\n\t*Authorization:* Client must be authenticated as a system admin, organization admin or user in question\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Removes all of a user or organization's repositories","operationId":"DeleteNamespaceRepositories","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true}],"responses":{"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/accounts/{namespace}/webhooks":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"List the webhook subscriptions for a namespace","operationId":"ListNamespaceWebhooks","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/accounts/{orgname}/teams/{teamname}/repositoryAccess":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who owns the organization the team is in or be a member of that team.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"List repository access grants for a team","operationId":"ListTeamRepoAccess","parameters":[{"type":"string","description":"organization account name","name":"orgname","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListTeamRepoAccess"}},"400":{"description":"the team does not belong to the organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListTeamRepoAccess"}}}}},"/api/v0/accounts/{username}/repositoryAccess/{namespace}/{reponame}":{"get":{"description":"\n\t*Authorization:* Client must be authenticated either as the user in question or be a system admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Check a user's access to a repository","operationId":"GetUserRepoAccess","parameters":[{"type":"string","description":"user account name","name":"username","in":"path","required":true},{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.RepoUserAccess"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.RepoUserAccess"}}}}},"/api/v0/accounts/{username}/settings":{"get":{"description":"\n*Authorization:* Client must be authenticated either as the user in question or be a system admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Check a user's settings","operationId":"GetUserSettings","parameters":[{"type":"string","description":"user account name","name":"username","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.UserSettings"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.UserSettings"}}}},"patch":{"description":"\n*Authorization:* Client must be authenticated either as the user in question or be a system admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Update a user's settings","operationId":"UpdateUserSettings","parameters":[{"type":"string","description":"user account name","name":"username","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UserSettings"}}],"responses":{"200":{"description":"Successfully updated user settings."},"400":{"description":"INVALID_USER_SETTINGS: The submitted user settings change request contains invalid values."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully updated user settings."}}}},"/api/v0/action_configs":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"List all action configs","operationId":"ListActionConfigs","responses":{"200":{"description":"Success, list of action configs returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfigs"}},"default":{"description":"Success, list of action configs returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfigs"}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"Configure actions","operationId":"UpdateActionConfig","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.ActionConfigCreate"}}],"responses":{"202":{"description":"Success.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}}},"/api/v0/action_configs/{action}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"Get info about the actionConfig with the given action","operationId":"GetActionConfig","parameters":[{"type":"string","description":"name of action to fetch the config for","name":"action","in":"path","required":true}],"responses":{"200":{"description":"Success, action config info returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}},"default":{"description":"Success, action config info returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}},"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"Delete the action config. The defaults will be used.","operationId":"DeleteActionConfig","parameters":[{"type":"string","description":"the name of the action to delete the config for","name":"action","in":"path","required":true}],"responses":{"204":{"description":"Success, action config has been deleted."}}}},"/api/v0/api_tokens":{"get":{"description":"listUserAPITokensHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Get all API tokens associated with user. Get all tokens if no user is not specified","operationId":"GetAllAPITokensByUser","parameters":[{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"string","description":"Limit the API token results to a specific user","name":"username","in":"query"}],"responses":{"200":{"description":"Successfully retrieved API tokens","schema":{"type":"array","items":{"$ref":"#/definitions/responses.APIToken"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved API tokens","schema":{"type":"array","items":{"$ref":"#/definitions/responses.APIToken"}}}}},"post":{"description":"createAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Create a new API token","operationId":"CreateAnAPIToken","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateAPIToken"}},{"type":"string","description":"Limit the API token results to a specific user","name":"username","in":"query"}],"responses":{"200":{"description":"Successfully created API token","schema":{"$ref":"#/definitions/responses.NewAPIToken"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully created API token","schema":{"$ref":"#/definitions/responses.NewAPIToken"}}}},"delete":{"description":"cleanupAPITokenHleanupHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Mass deletion of API tokens from database based on user, time created, and/or generation method","operationId":"APITokenCleanup","parameters":[{"type":"string","description":"Limit the API token results to a specific user","name":"username","in":"query"},{"type":"string","description":"The date on which the token was last used","name":"usedbefore","in":"query"},{"type":"string","default":"auto","description":"The method by which the token was created","name":"generatedby","in":"query"}],"responses":{"200":{"description":"Successfully cleaned up API tokens"},"400":{"description":"INVALID_PARAMETERS: Unable to parse query parameters"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully cleaned up API tokens"}}}},"/api/v0/api_tokens/{hashedtoken}":{"get":{"description":"getAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Get an API token's information based on it's token id","operationId":"GetAnAPIToken","parameters":[{"type":"string","description":"API token id","name":"hashedtoken","in":"path","required":true}],"responses":{"200":{"description":"Successfully retrieved API token","schema":{"$ref":"#/definitions/responses.APIToken"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_API_TOKEN: An API token with the id name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved API token","schema":{"$ref":"#/definitions/responses.APIToken"}}}},"delete":{"description":"deleteAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Delete a specific API token","operationId":"DeleteAnAPIToken","parameters":[{"type":"string","description":"API token id","name":"hashedtoken","in":"path","required":true}],"responses":{"200":{"description":"Successfully deleted API token"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_API_TOKEN: An API token with the id name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully deleted API token"}}},"patch":{"description":"updateAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Update information about a specific API token","operationId":"UpdateAnAPIToken","parameters":[{"type":"string","description":"API token id","name":"hashedtoken","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateAPIToken"}}],"responses":{"200":{"description":"Successfully updated API tokens","schema":{"$ref":"#/definitions/responses.APIToken"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_API_TOKEN: An API token with the id name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully updated API tokens","schema":{"$ref":"#/definitions/responses.APIToken"}}}}},"/api/v0/content_caches":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"List all content caches","operationId":"ListContentCaches","responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ContentCache"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ContentCache"}}}}},"post":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"Create content cache","operationId":"CreateContentCache","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateContentCache"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.ContentCache"}},"400":{"description":"invalid content cache details"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/content_caches/{contentcacheuuid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"View details of a content cache","operationId":"GetContentCache","parameters":[{"type":"string","description":"uuid of content cache","name":"contentcacheuuid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ContentCache"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_CONTENT_CACHE: A content cache with the given uuid does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ContentCache"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"Remove a content cache","operationId":"DeleteContentCache","parameters":[{"type":"string","description":"uuid of content cache","name":"contentcacheuuid","in":"path","required":true}],"responses":{"204":{"description":"success or content cache does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_CONTENT_CACHE: A content cache with the given uuid does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/crons":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"List all crons","operationId":"ListCrons","responses":{"200":{"description":"Success, list of crons returned.","schema":{"$ref":"#/definitions/tmpresponses.Crons"}},"default":{"description":"Success, list of crons returned.","schema":{"$ref":"#/definitions/tmpresponses.Crons"}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"Create / update a periodic task","operationId":"UpdateCron","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.CronCreate"}}],"responses":{"202":{"description":"Success.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}}}}},"/api/v0/crons/{action}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"Get info about the cron with the given action","operationId":"GetCron","parameters":[{"type":"string","description":"action of the cron to fetch","name":"action","in":"path","required":true}],"responses":{"200":{"description":"Success, cron info returned.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}},"default":{"description":"Success, cron info returned.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}}}},"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"Delete the cron. Jobs created from it will not be canceled.","operationId":"DeleteCron","parameters":[{"type":"string","description":"action of cron to delete","name":"action","in":"path","required":true}],"responses":{"204":{"description":"Success, cron has been deleted."}}}},"/api/v0/events":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["events"],"summary":"Get Events","operationId":"GetEvents","parameters":[{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"string","name":"publishedBefore","in":"query"},{"type":"string","name":"publishedAfter","in":"query"},{"type":"string","description":"UUID of the user or organization that performed the event","name":"actorId","in":"query"},{"type":"string","description":"Type of events to filter by","name":"eventType","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Events"}},"400":{"description":"INVALID_PARAMETERS: Unable to parse query parameters"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Events"}}}}},"/api/v0/imagescan/layeroverride":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Gets a list of all the available overrides","operationId":"GetLayerVulnOverrides","responses":{"200":{"description":"Successfully set vulnerability override","schema":{"type":"array","items":{"$ref":"#/definitions/responses.LayerVulnOverride"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"500":{"description":"INTERNAL_ERROR: An internal server error occurred. Contact a system administrator for more information."},"default":{"description":"Successfully set vulnerability override","schema":{"type":"array","items":{"$ref":"#/definitions/responses.LayerVulnOverride"}}}}}},"/api/v0/imagescan/layeroverride/{layerid}":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Sets a vulnerability override for the given layer","operationId":"SetLayerVulnOverride","parameters":[{"type":"string","description":"layer id","name":"layerid","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.VulnOverrideOption"}}],"responses":{"200":{"description":"Successfully set vulnerability override"},"400":{"description":"INVALID_SETTINGS: The submitted settings change request contains invalid values."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_LAYER: A layer with the given sha does not exist in the repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"500":{"description":"INTERNAL_ERROR: An internal server error occurred. Contact a system administrator for more information."},"default":{"description":"Successfully set vulnerability override"}}}},"/api/v0/imagescan/layeroverride/{vulnerabilityid}":{"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Deletes a layer vulnerability override","operationId":"DeleteLayerVulnOverride","parameters":[{"type":"string","description":"vulnerability id","name":"vulnerabilityid","in":"path","required":true}],"responses":{"200":{"description":"OK"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_LAYER: A layer with the given sha does not exist in the repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK"}}}},"/api/v0/imagescan/repositories/{namespace}/{reponame}/{tag}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the summary info on a namespace/repo:tag","operationId":"GetSummaryByManifestDigest","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to include detailed summary results","name":"detailed","in":"query"},{"type":"string","description":"Operating system of the tag","name":"os","in":"query"},{"type":"string","description":"Architecture of the tag","name":"arch","in":"query"}],"responses":{"200":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.OldScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.OldScanSummary"}}}}}},"/api/v0/imagescan/scan":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Do a scan or a scan/check of all layers","operationId":"ScanAllLayers","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.ScanOptions"}}],"responses":{"200":{"description":"Successfully submitted all layers to jobrunner for scan/check."},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully submitted all layers to jobrunner for scan/check."}}}},"/api/v0/imagescan/scan/update":{"put":{"consumes":["multipart/form-data","application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Update the vulnerability database for security scanning","operationId":"UpdateVulnDB","parameters":[{"type":"file","description":"Upload file to init database","name":"file","in":"formData"},{"type":"boolean","default":false,"description":"Init or update vuln db in online mode.","name":"online","in":"query"}],"responses":{"200":{"description":"Successfully started to updated vulnerability DB."},"400":{"description":"SCANNING_DB_NOT_READY: Scanning DB is not ready"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully started to updated vulnerability DB."}}}},"/api/v0/imagescan/scan/{namespace}/{reponame}/{tag}/{os}/{arch}":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Do a scan or a scan/check of given image","operationId":"ScanImage","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"string","description":"operating system of the tag","name":"os","in":"path","required":true},{"type":"string","description":"architecture of the tag","name":"arch","in":"path","required":true}],"responses":{"200":{"description":"Successfully submitted image to jobrunner for scan/check."},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully submitted image to jobrunner for scan/check."}}}},"/api/v0/imagescan/scansummary/component/{component}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by component","operationId":"GetScannedImageByComponent","parameters":[{"type":"string","description":"component","name":"component","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/cve/{cve}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by CVE","operationId":"GetScannedImageByCVE","parameters":[{"type":"string","description":"cve","name":"cve","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/layer/{layerid}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by layer sha","operationId":"GetScannedImageByLayer","parameters":[{"type":"string","description":"layer id","name":"layerid","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_LAYER: A layer with the given sha does not exist in the repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/license/{license}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by license","operationId":"GetScannedImageByLicense","parameters":[{"type":"string","description":"license","name":"license","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/repositories/{namespace}/{reponame}/{tag}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the scan summary info on a namespace/repo:tag","operationId":"GetScanSummary","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"},{"type":"string","description":"Operating system of the tag","name":"os","in":"query"},{"type":"string","description":"Architecture of the tag","name":"arch","in":"query"}],"responses":{"200":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/status":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the status and version of scanning service","operationId":"GetNautilusDBStatus","responses":{"200":{"description":"Successfully retrieved DB status","schema":{"$ref":"#/definitions/responses.NautilusStatus"}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved DB status","schema":{"$ref":"#/definitions/responses.NautilusStatus"}}}}},"/api/v0/index/autocomplete":{"get":{"description":"\nRepository results will be filtered to only those repositories visible to the client. Account results will not be filtered.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["index"],"summary":"Autocompletion for repositories and/or accounts","operationId":"Autocomplete","parameters":[{"type":"string","description":"Autocomplete query","name":"query","in":"query","required":true},{"type":"boolean","default":true,"description":"Whether to include repositories in the response","name":"includeRepositories","in":"query"},{"type":"boolean","default":true,"description":"Whether to include accounts in the response","name":"includeAccounts","in":"query"},{"type":"string","description":"Exact repository namespace to limit results to.","name":"namespace","in":"query"},{"type":"number","default":25,"name":"limit","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Autocomplete"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Autocomplete"}}}}},"/api/v0/index/dockersearch":{"get":{"description":"\nThis is used for the Docker CLI's docker search command. Repository results will be filtered to only those repositories visible to the client.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["index"],"summary":"Search Docker repositories","operationId":"Docker Search","parameters":[{"type":"string","description":"Search query","name":"q","in":"query","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.DockerSearch"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.DockerSearch"}}}}},"/api/v0/jobs":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"List all jobs ordered by most recently scheduled","operationId":"ListJobs","parameters":[{"type":"string","default":"any","description":"Filter jobs by action.","name":"action","in":"query"},{"type":"string","default":"any","description":"Filter jobs by worker ID.","name":"worker","in":"query"},{"type":"string","default":"any","description":"Show only jobs that are running.","name":"running","in":"query"},{"type":"integer","default":0,"description":"Return most recently scheduled jobs starting from this offset index.","name":"start","in":"query"},{"type":"integer","default":10,"description":"Maximum number of jobs per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, list of jobs returned.","schema":{"$ref":"#/definitions/tmpresponses.Jobs"}},"default":{"description":"Success, list of jobs returned.","schema":{"$ref":"#/definitions/tmpresponses.Jobs"}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Schedule a job to be run immediately","operationId":"CreateJob","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.JobSubmission"}}],"responses":{"202":{"description":"Success, job waiting to be claimed.","schema":{"$ref":"#/definitions/tmpresponses.Job"}}}}},"/api/v0/jobs/{jobID}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Get info about the job with the given ID","operationId":"GetJob","parameters":[{"type":"string","description":"ID of job to fetch","name":"jobID","in":"path","required":true}],"responses":{"200":{"description":"Success, job info returned.","schema":{"$ref":"#/definitions/tmpresponses.Job"}},"default":{"description":"Success, job info returned.","schema":{"$ref":"#/definitions/tmpresponses.Job"}}}},"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Signal this job's worker to cancel and delete the job","operationId":"DeleteJobs","parameters":[{"type":"string","description":"ID of job to delete","name":"jobID","in":"path","required":true}],"responses":{"204":{"description":"Success, job has been deleted."}}}},"/api/v0/jobs/{jobID}/cancel":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Signal this job's worker to cancel the job","operationId":"CancelJob","parameters":[{"type":"string","description":"ID of job to cancel","name":"jobID","in":"path","required":true}],"responses":{"204":{"description":"Success, job has been canceled."}}}},"/api/v0/jobs/{jobID}/logs":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Retrieve logs for this job from its worker","operationId":"GetJobLogs","parameters":[{"type":"string","description":"ID of job whose logs to retrieve","name":"jobID","in":"path","required":true},{"type":"boolean","default":false,"description":"t/f: stream new logs","name":"stream","in":"query"},{"type":"integer","default":0,"description":"Line number to start from","name":"offset","in":"query"},{"type":"integer","default":0,"description":"Number of lines to return if not streaming","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, job's logs returned.","schema":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.JobLog"}}},"default":{"description":"Success, job's logs returned.","schema":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.JobLog"}}}}}},"/api/v0/meta/cluster_status":{"get":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get cluster status","operationId":"GetClusterStatus","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ClusterStatus"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ClusterStatus"}}}}},"/api/v0/meta/features":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get features","operationId":"GetFeatures","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Features"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Features"}}}}},"/api/v0/meta/settings":{"get":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get settings","operationId":"GetSettings","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Settings"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Settings"}}}},"post":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Update settings","operationId":"UpdateSettings","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Settings"}}],"responses":{"202":{"description":"success"},"400":{"description":"INVALID_SETTINGS: The submitted settings change request contains invalid values."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/remote/registry":{"post":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system. Credentials provided in the request body must be for an active user in the remote system.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["remote"],"summary":"Create a check for connection status of remote registry","operationId":"CreateRemoteRegistryCheck","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateRemoteRegistryCheck"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.RemoteRegistryCheck"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system. Results will be filtered to only those repositories visible to the client.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List all repositories","operationId":"ListRepositories","parameters":[{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}}}}},"/api/v0/repositories/scan/toggle":{"post":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" access to the repository\n(i.e., user owns the repo or is a member of a team with \"admin\" level access to the organization\"s repository).\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Toggles scan on push for all repositories","operationId":"ToggleAllRepositoriesScanOnPush","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.ToggleScanOnPush"}}],"responses":{"200":{"description":"Successfully toggled scan on push for all repositories."},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully toggled scan on push for all repositories."}}}},"/api/v0/repositories/{namespace}":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system. Results will be filtered to only those repositories visible to the client.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List repositories in a namespace","operationId":"ListNamespaceRepositories","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}}}},"post":{"description":"\n*Authorization:* Client must be authenticated as a user who has admin access to the\nrepository namespace (i.e., user owns the repo or is a member of a team with\n\"admin\" level access to the organization's namespace of repositories).\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create repository","operationId":"CreateRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateRepo"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.Repository"}},"400":{"description":"REPOSITORY_EXISTS: A repository with the same name already exists."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"View details of a repository","operationId":"GetRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" access to the repository\n(i.e., user owns the repo or is a member of a team with \"admin\" level access to the organization\"s repository).\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Remove a repository","operationId":"DeleteRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"}],"responses":{"204":{"description":"success or repository does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}},"patch":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" access to the repository\n(i.e., user owns the repo or is a member of a team with \"admin\" level access to the organization\"s repository).\n\nNote that a repository cannot be renamed this way.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Update details of a repository","operationId":"PatchRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateRepo"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}},"400":{"description":"INVALID_REPOSITORY_VISIBILITY: The visibility value of the repository is invalid."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}}}}},"/api/v0/repositories/{namespace}/{reponame}/manifests":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the available manifests for a repository","operationId":"ListRepoManifests","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Manifest"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Manifest"}}}}}},"/api/v0/repositories/{namespace}/{reponame}/manifests/{reference}":{"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"write\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Delete a manifest for a repository","operationId":"DeleteRepoManifest","deprecated":true,"parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"digest or tag for an image manifest","name":"reference","in":"path","required":true}],"responses":{"204":{"description":"success"},"400":{"description":"INVALID_DIGEST: The given digest is invalid."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_MANIFEST: A manifest with the given reference does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pollMirroringPolicies":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the poll mirroring policies for a repository","operationId":"ListRepoPollMirroringPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}}}},"post":{"description":"*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create a poll mirroring policy for a repository","operationId":"CreateRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePollMirroringPolicy"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_POLL_MIRRORING_POLICY: The given poll mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pollMirroringPolicies/{pollmirroringpolicyid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific poll mirroring policy for a repository","operationId":"GetRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"poll mirroring policy id","name":"pollmirroringpolicyid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_POLL_MIRRORING_POLICY: A poll mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Updates a specific poll mirroring policy for a repository","operationId":"UpdateRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"poll mirroring policy id","name":"pollmirroringpolicyid","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdatePollMirroringPolicy"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_POLL_MIRRORING_POLICY: The given poll mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a specific poll mirroring policy for a repository","operationId":"DeleteRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"poll mirroring policy id","name":"pollmirroringpolicyid","in":"path","required":true}],"responses":{"204":{"description":"success or poll mirroring policy does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_POLL_MIRRORING_POLICY: A poll mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/promotionPolicies":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the source or target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the promotion policies for a repository","operationId":"ListRepoPromotionPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to list promotion policies for a repository as a source or destination.","name":"source","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PromotionPolicy"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PromotionPolicy"}}}}},"post":{"description":"*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the source and target repository.\nRules for the policy can be on the following fields and their respective operators:\n- \"tag\"\n\t- \"eq\": equals\n\t- \"sw\": starts with\n\t- \"ew\": ends with\n\t- \"c\": contains\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"license.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"package.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"vulnerability_all\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_critical\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_major\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_minor\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n\nThe tag template is used to rename the tag in the target repository. The\nfollowing symbols are allowed:\n- \"%n\": The tag to promote (e.g. 1, 4.5, latest)\n- \"%A\": Day of the week (e.g. Sunday, Monday)\n- \"%a\": Day of the week, abbreviated (e.g. Sun, Mon , Tue)\n- \"%w\": Day of the week, as a number (e.g. 0, 1, 6)\n- \"%d\": Number for the day of the month (e.g. 01, 15, 31)\n- \"%B\": Month (e.g. January, December)\n- \"%b\": Month, abbreviated (e.g. Jan, Jun, Dec)\n- \"%m\": Month, as a number (e.g. 01, 06, 12)\n- \"%Y\": Year (e.g. 1999, 2015, 2048)\n- \"%y\": Year, two digits (e.g. 99, 15, 48)\n- \"%H\": Hour, in 24 hour format (e.g. 00, 12, 23)\n- \"%I\": Hour, in 12 hour format (e.g. 01, 10, 10)\n- \"%p\": Period of the day (e.g. AM, PM)\n- \"%M\": Minute (e.g. 00, 10, 59)\n- \"%S\": Second (e.g. 00, 10, 59)\n- \"%f\": Microsecond (e.g. 000000, 999999)\n- \"%Z\": Name for the timezone (e.g. UTC, PST, EST)\n- \"%j\": Day of the year (e.g. 001, 200, 366)\n- \"%W\": Week of the year (e.g. 00, 10 , 53)\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create a promotion policy for a repository","operationId":"CreateRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePromotionPolicy"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}},"400":{"description":"REQUIRES_ADVANCED_LICENSE: This feature requires Enterprise Edition Advanced"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PROMOTION_POLICY: The given promotion policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/promotionPolicies/{promotionpolicyid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the source or target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific promotion policy for a repository","operationId":"GetRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"promotion policy id","name":"promotionpolicyid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PROMOTION_POLICY: A promotion policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the source and target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Updates a specific promotion policy for a repository","operationId":"UpdateRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"promotion policy id","name":"promotionpolicyid","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdatePromotionPolicy"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}},"400":{"description":"REQUIRES_ADVANCED_LICENSE: This feature requires Enterprise Edition Advanced"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PROMOTION_POLICY: The given promotion policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the source or target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a specific promotion policy for a repository","operationId":"DeleteRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"promotion policy id","name":"promotionpolicyid","in":"path","required":true}],"responses":{"204":{"description":"success or promotion policy does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PROMOTION_POLICY: A promotion policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pushMirroringPolicies":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the push mirroring policies for a repository","operationId":"ListRepoPushMirroringPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}}}},"post":{"description":"*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.\nRules for the policy can be on the following fields and their respective operators:\n- \"tag\"\n\t- \"eq\": equals\n\t- \"sw\": starts with\n\t- \"ew\": ends with\n\t- \"c\": contains\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"license.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"package.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"vulnerability_all\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_critical\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_major\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_minor\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n\nThe tag template is used to rename the tag in the target repository. The\nfollowing symbols are allowed:\n- \"%n\": The tag to promote (e.g. 1, 4.5, latest)\n- \"%A\": Day of the week (e.g. Sunday, Monday)\n- \"%a\": Day of the week, abbreviated (e.g. Sun, Mon , Tue)\n- \"%w\": Day of the week, as a number (e.g. 0, 1, 6)\n- \"%d\": Number for the day of the month (e.g. 01, 15, 31)\n- \"%B\": Month (e.g. January, December)\n- \"%b\": Month, abbreviated (e.g. Jan, Jun, Dec)\n- \"%m\": Month, as a number (e.g. 01, 06, 12)\n- \"%Y\": Year (e.g. 1999, 2015, 2048)\n- \"%y\": Year, two digits (e.g. 99, 15, 48)\n- \"%H\": Hour, in 24 hour format (e.g. 00, 12, 23)\n- \"%I\": Hour, in 12 hour format (e.g. 01, 10, 10)\n- \"%p\": Period of the day (e.g. AM, PM)\n- \"%M\": Minute (e.g. 00, 10, 59)\n- \"%S\": Second (e.g. 00, 10, 59)\n- \"%f\": Microsecond (e.g. 000000, 999999)\n- \"%Z\": Name for the timezone (e.g. UTC, PST, EST)\n- \"%j\": Day of the year (e.g. 001, 200, 366)\n- \"%W\": Week of the year (e.g. 00, 10 , 53)\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create a push mirroring policy for a repository","operationId":"CreateRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePushMirroringPolicy"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PUSH_MIRRORING_POLICY: The given push mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pushMirroringPolicies/{pushmirroringpolicyid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific push mirroring policy for a repository","operationId":"GetRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"push mirroring policy id","name":"pushmirroringpolicyid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PUSH_MIRRORING_POLICY: A push mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Updates a specific push mirroring policy for a repository","operationId":"UpdateRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"push mirroring policy id","name":"pushmirroringpolicyid","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdatePushMirroringPolicy"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PUSH_MIRRORING_POLICY: The given push mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a specific push mirroring policy for a repository","operationId":"DeleteRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"push mirroring policy id","name":"pushmirroringpolicyid","in":"path","required":true}],"responses":{"204":{"description":"success or push mirroring policy does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PUSH_MIRRORING_POLICY: A push mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the available tags for a repository","operationId":"ListRepoTags","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the manifest for each tag","name":"includeManifests","in":"query"},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific tag for a repository","operationId":"ListRepoTag","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"},{"type":"string","description":"Operating system of the tag","name":"os","in":"query"},{"type":"string","description":"Architecture of the tag","name":"arch","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"write\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Delete a tag for a repository","operationId":"DeleteRepoTag","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"}],"responses":{"204":{"description":"success"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"409":{"description":"TAG_IN_NOTARY: This tag is in notary and can't be deleted until it is removed from notary"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}/promotion":{"post":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"read\" level access to the source repository and \"write\" level access to the target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Promotes a specific tag for a repository","operationId":"CreateRepoTagPromotion","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePromotion"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.Promotion"}},"400":{"description":"INVALID_TAG_NAME: The given tag name is either too long or contains illegal characters."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}/pushMirroring":{"post":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"read\" level access to the local repository and \"write\" level access to the remote repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Mirrors a local tag by pushing to a remote repository","operationId":"CreateRepoTagPushMirroring","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateMirroring"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.Mirroring"}},"400":{"description":"INVALID_TAG_NAME: The given tag name is either too long or contains illegal characters."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/teamAccess":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List teams granted access to an organization-owned repository","operationId":"ListRepoTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}}}}},"/api/v0/repositories/{namespace}/{reponame}/teamAccess/{teamname}":{"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Set a team's access to an orgnization-owned repository","operationId":"GrantRepoTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Access"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}},"400":{"description":"the team does not belong to the organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Revoke a team's acccess to an organization-owned repository","operationId":"RevokeRepoTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true}],"responses":{"204":{"description":"success or the team is not in the access list or there is no such team in the organization"},"400":{"description":"the repository is not owned by an organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/webhooks":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the webhook subscriptions for a repository","operationId":"ListRepoWebhooks","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/repositoryNamespaces/{namespace}/teamAccess":{"get":{"description":"\n*Authorization:* Client must be authenticated as an admin or a member of the organization.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"List teams granted access to an organization-owned namespace of repositories","operationId":"ListRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoNamespaceTeamAccess"}},"400":{"description":"the namespace is not owned by an organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoNamespaceTeamAccess"}}}}},"/api/v0/repositoryNamespaces/{namespace}/teamAccess/{teamname}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level\naccess to the namespace or is a member of the team.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"Get a team's granted access to an organization-owned namespace of repositories","operationId":"GetRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_NAMESPACE_TEAM_ACCESS: An access grant for the given team in the given namespace does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the namespace.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"Set a team's access to an organization-owned namespace of repositories","operationId":"GrantRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Access"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}},"400":{"description":"the team does not belong to the owning organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the namespace.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"Revoke a team's access to an organization-owned namespace of repositories","operationId":"RevokeRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true}],"responses":{"204":{"description":"success or the team does not exist in the access list or there is no such team in the organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/webhooks":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"List Webhooks","operationId":"ListWebhooks","parameters":[{"type":"string","default":"any","description":"The type of webhook to list","name":"webhookType","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Create Webhook","operationId":"CreateWebhook","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Webhook"}}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/webhooks/test":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Test Webhook","operationId":"TestWebhook","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.WebhookTestPayload"}}],"responses":{"200":{"description":"OK"},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK"}}}},"/api/v0/webhooks/update":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Update Webhook","operationId":"UpdateWebhook","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.WebhookUpdate"}}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/webhooks/{webhook}":{"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Delete Webhook","operationId":"DeleteWebhook","parameters":[{"type":"string","description":"webhook subscription ID","name":"webhook","in":"path","required":true}],"responses":{"200":{"description":"OK"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_WEBHOOK: A webhook subscription with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK"}}}},"/api/v0/workers":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["workers"],"summary":"List all workers","operationId":"ListWorkers","responses":{"200":{"description":"Success, list of workers returned.","schema":{"$ref":"#/definitions/tmpresponses.Workers"}},"default":{"description":"Success, list of workers returned.","schema":{"$ref":"#/definitions/tmpresponses.Workers"}}}}},"/api/v0/workers/{id}/capacity":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["workers"],"summary":"Update the capacity for a worker","operationId":"UpdateWorkerCapacity","parameters":[{"type":"string","description":"ID of worker to update","name":"id","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.UpdateWorkerCapacity"}}],"responses":{"202":{"description":"Success."}}}}},"definitions":{"forms.Access":{"required":["accessLevel"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]}}},"forms.CreateAPIToken":{"properties":{"tokenLabel":{"type":"string"}}},"forms.CreateContentCache":{"required":["name","host"],"properties":{"host":{"type":"string"},"name":{"type":"string"}}},"forms.CreateMirroring":{"required":["remoteHost","remoteRepository","remoteCA","skipTLSVerification","remoteTag","username","password","authToken"],"properties":{"authToken":{"type":"string"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"remoteTag":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.CreatePollMirroringPolicy":{"required":["remoteHost","remoteRepository","remoteCA","skipTLSVerification","enabled","username","password","authToken"],"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.CreatePromotion":{"required":["targetRepository","targetTag"],"properties":{"targetRepository":{"type":"string"},"targetTag":{"type":"string"}}},"forms.CreatePromotionPolicy":{"required":["rules","targetRepository","tagTemplate","enabled"],"properties":{"enabled":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"tagTemplate":{"type":"string"},"targetRepository":{"type":"string"}}},"forms.CreatePushMirroringPolicy":{"required":["rules","remoteHost","remoteRepository","remoteCA","skipTLSVerification","tagTemplate","enabled","username","password","authToken"],"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"skipTLSVerification":{"type":"boolean"},"tagTemplate":{"type":"string"},"username":{"type":"string"}}},"forms.CreateRemoteRegistryCheck":{"required":["remoteHost","remoteRepository","remoteCA","skipTLSVerification","username","password","authToken"],"properties":{"authToken":{"type":"string"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.CreateRepo":{"required":["name","shortDescription","longDescription","scanOnPush","immutableTags","enableManifestLists"],"properties":{"enableManifestLists":{"type":"boolean"},"immutableTags":{"type":"boolean"},"longDescription":{"type":"string"},"name":{"type":"string"},"scanOnPush":{"type":"boolean"},"shortDescription":{"type":"string"},"visibility":{"type":"string","enum":["public","private"]}}},"forms.EmptyForm":{},"forms.ScanOptions":{"required":["scan","check"],"properties":{"check":{"type":"boolean"},"scan":{"type":"boolean"}}},"forms.Settings":{"required":["dtrHost","sso","createRepositoryOnPush","reportAnalytics","anonymizeAnalytics","disableBackupWarning","webTLSCert","webTLSKey","webTLSCA","scanningEnabled","scanningSyncOnline","scanningEnableAutoRecheck","jobHistoryToKeep"],"properties":{"anonymizeAnalytics":{"type":"boolean"},"createRepositoryOnPush":{"type":"boolean"},"disableBackupWarning":{"type":"boolean"},"dtrHost":{"type":"string"},"jobHistoryToKeep":{"type":"integer"},"reportAnalytics":{"type":"boolean"},"scanningEnableAutoRecheck":{"type":"boolean"},"scanningEnabled":{"type":"boolean"},"scanningSyncOnline":{"type":"boolean"},"sso":{"type":"boolean"},"webTLSCA":{"type":"string"},"webTLSCert":{"type":"string"},"webTLSKey":{"type":"string"}}},"forms.ToggleScanOnPush":{"required":["scanOnPush"],"properties":{"scanOnPush":{"type":"boolean"}}},"forms.UpdateAPIToken":{"properties":{"isActive":{"type":"boolean"},"tokenLabel":{"type":"string"}}},"forms.UpdatePollMirroringPolicy":{"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.UpdatePromotionPolicy":{"properties":{"enabled":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"tagTemplate":{"type":"string"},"targetRepository":{"type":"string"}}},"forms.UpdatePushMirroringPolicy":{"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"skipTLSVerification":{"type":"boolean"},"tagTemplate":{"type":"string"},"username":{"type":"string"}}},"forms.UpdateRepo":{"required":["immutableTags"],"properties":{"enableManifestLists":{"type":"boolean"},"immutableTags":{"type":"boolean"},"longDescription":{"type":"string"},"scanOnPush":{"type":"boolean"},"shortDescription":{"type":"string"},"visibility":{"type":"string","enum":["public","private"]}}},"forms.UserSettings":{"properties":{"contentCacheUUID":{"type":"string"}}},"forms.VulnOverrideOption":{"required":["component","componentVersion","cve","notes"],"properties":{"component":{"type":"string"},"componentVersion":{"type":"string"},"cve":{"type":"string"},"notes":{"type":"string"}}},"forms.Webhook":{"required":["endpoint"],"properties":{"endpoint":{"type":"string"},"key":{"type":"string"},"type":{"type":"string","enum":["TAG_PUSH","TAG_DELETE","PROMOTION","PUSH_MIRRORING","POLL_MIRRORING","MANIFEST_PUSH","MANIFEST_DELETE","REPO_EVENT","SCAN_COMPLETED","SCAN_FAILED","SCANNER_UPDATE_COMPLETED"]}}},"forms.WebhookTestPayload":{"required":["type","endpoint"],"properties":{"endpoint":{"type":"string"},"type":{"type":"string"}}},"forms.WebhookUpdate":{"required":["id","inactive"],"properties":{"id":{"type":"string"},"inactive":{"type":"boolean"}}},"responses.APIToken":{"required":["hashedToken","tokenLabel","isActive","lastUsed","createdAt","generatedBy","creatorUa"],"properties":{"createdAt":{"type":"string","format":"date-time"},"creatorUa":{"type":"string"},"generatedBy":{"type":"string"},"hashedToken":{"type":"string"},"isActive":{"type":"boolean"},"lastUsed":{"type":"string","format":"date-time"},"tokenLabel":{"type":"string"}}},"responses.Account":{"required":["name","id","fullName","isOrg","isImported"],"properties":{"fullName":{"description":"Full Name of the account","type":"string"},"id":{"description":"ID of the account","type":"string"},"isActive":{"description":"Whether the user is active and can login (users only)","type":"boolean"},"isAdmin":{"description":"Whether the user is a system admin (users only)","type":"boolean"},"isImported":{"type":"boolean"},"isOrg":{"description":"Whether the account is an organization (or user)","type":"boolean"},"membersCount":{"description":"The number of members of the organization","type":"integer","format":"int32"},"name":{"description":"Name of the account","type":"string"}}},"responses.Autocomplete":{"properties":{"accountResults":{"type":"array","items":{"$ref":"#/definitions/responses.Account"}},"repositoryResults":{"type":"array","items":{"$ref":"#/definitions/responses.Repository"}}}},"responses.ClusterStatus":{"required":["rethink_system_tables","replica_health","replica_timestamp","replica_readonly","gc_lock_holder"],"properties":{"gc_lock_holder":{"type":"string"},"replica_health":{"type":"object"},"replica_readonly":{"type":"object"},"replica_timestamp":{"type":"object"},"rethink_system_tables":{"type":"object"}}},"responses.Component":{"required":["component","version","vulns","fullpath"],"properties":{"component":{"type":"string"},"fullpath":{"type":"array","items":{"type":"string"}},"license":{"$ref":"#/definitions/responses.License"},"version":{"type":"string"},"vulns":{"type":"array","items":{"$ref":"#/definitions/responses.VulnerabilityDetails"}}}},"responses.ContentCache":{"required":["id","name","host"],"properties":{"host":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"}}},"responses.DetailedSummary":{"required":["sha256sum"],"properties":{"components":{"type":"array","items":{"$ref":"#/definitions/responses.Component"}},"sha256sum":{"type":"string"}}},"responses.DockerRepository":{"required":["description","is_official","is_trusted","name","star_count"],"properties":{"description":{"type":"string"},"is_official":{"type":"boolean"},"is_trusted":{"type":"boolean"},"name":{"type":"string"},"star_count":{"type":"integer","format":"int32"}}},"responses.DockerSearch":{"required":["num_results","query","results"],"properties":{"num_results":{"type":"integer","format":"int32"},"query":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/definitions/responses.DockerRepository"}}}},"responses.DockerfileLine":{"required":["line","layerDigest","size","isEmpty"],"properties":{"isEmpty":{"type":"boolean"},"layerDigest":{"type":"string"},"line":{"type":"string"},"mediaType":{"type":"string"},"size":{"type":"integer","format":"int64"},"urls":{"type":"array","items":{"type":"string"}}}},"responses.Events":{"required":["events"],"properties":{"events":{"type":"array","items":{"$ref":"#/definitions/schema.Event"}}}},"responses.Features":{"required":["scanningEnabled","scanningLicensed","promotionLicensed","mirroringLicensed","metadataStoreOptedIn","onlineGCEnabled","db_version","ucpHost"],"properties":{"db_version":{"type":"integer","format":"int32"},"metadataStoreOptedIn":{"type":"boolean"},"mirroringLicensed":{"type":"boolean"},"onlineGCEnabled":{"type":"boolean"},"promotionLicensed":{"type":"boolean"},"scanningEnabled":{"type":"boolean"},"scanningLicensed":{"type":"boolean"},"ucpHost":{"type":"string"}}},"responses.Language":{"required":["language"],"properties":{"language":{"type":"string"}}},"responses.LayerVulnOverride":{"required":["pk","digest","component","componentVersion","cve","notes"],"properties":{"component":{"type":"string"},"componentVersion":{"type":"string"},"cve":{"type":"string"},"digest":{"type":"string"},"notes":{"type":"string"},"pk":{"type":"string"}}},"responses.License":{"required":["name","type","url"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}}},"responses.ListRepoNamespaceTeamAccess":{"required":["namespace","teamAccessList"],"properties":{"namespace":{"type":"string"},"teamAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.TeamAccess"}}}},"responses.ListRepoTeamAccess":{"required":["repository","teamAccessList"],"properties":{"repository":{"$ref":"#/definitions/responses.Repository"},"teamAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.TeamAccess"}}}},"responses.ListTeamRepoAccess":{"required":["team","repositoryAccessList"],"properties":{"repositoryAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.RepoAccess"}},"team":{"$ref":"#/definitions/responses.Team"}}},"responses.Manifest":{"required":["digest"],"properties":{"architecture":{"type":"string"},"author":{"type":"string"},"configDigest":{"type":"string"},"configMediaType":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"digest":{"type":"string"},"dockerfile":{"type":"array","items":{"$ref":"#/definitions/responses.DockerfileLine"}},"mediaType":{"type":"string"},"os":{"type":"string"},"osVersion":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"responses.Mirroring":{"required":["mirroringPolicyID","digest","remoteRepository","remoteTag"],"properties":{"digest":{"type":"string"},"mirroringPolicyID":{"type":"string"},"remoteRepository":{"type":"string"},"remoteTag":{"type":"string"}}},"responses.NamespaceTeamAccess":{"required":["accessLevel","team","namespace"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"namespace":{"type":"string"},"team":{"$ref":"#/definitions/responses.Team"}}},"responses.NautilusStatus":{"required":["state","scanner_version","scannerUpdatedAt","db_version","db_updated_at","lastDBUpdateFailed","lastVulnOverridesDBUpdateFailed"],"properties":{"db_updated_at":{"type":"string","format":"date-time"},"db_version":{"type":"integer","format":"int32"},"lastDBUpdateFailed":{"type":"boolean"},"lastVulnOverridesDBUpdateFailed":{"type":"boolean"},"replicas":{"type":"object"},"scannerUpdatedAt":{"type":"string","format":"date-time"},"scanner_version":{"type":"integer","format":"int32"},"state":{"type":"integer","format":"int32"}}},"responses.NewAPIToken":{"required":["token","hashedToken","tokenLabel","isActive","lastUsed","createdAt","generatedBy","creatorUa"],"properties":{"createdAt":{"type":"string","format":"date-time"},"creatorUa":{"type":"string"},"generatedBy":{"type":"string"},"hashedToken":{"type":"string"},"isActive":{"type":"boolean"},"lastUsed":{"type":"string","format":"date-time"},"token":{"type":"string"},"tokenLabel":{"type":"string"}}},"responses.Note":{"required":["reason","type"],"properties":{"reason":{"type":"string"},"type":{"type":"string"}}},"responses.OldScanSummary":{"required":["namespace","reponame","tag","critical","major","minor","last_scan_status","check_completed_at","should_rescan","has_foreign_layers"],"properties":{"check_completed_at":{"type":"string","format":"date-time"},"critical":{"type":"integer","format":"int32"},"has_foreign_layers":{"type":"boolean"},"last_scan_status":{"type":"integer","format":"int32"},"layer_details":{"type":"array","items":{"$ref":"#/definitions/responses.DetailedSummary"}},"major":{"type":"integer","format":"int32"},"minor":{"type":"integer","format":"int32"},"namespace":{"type":"string"},"reponame":{"type":"string"},"should_rescan":{"type":"boolean"},"tag":{"type":"string"}}},"responses.PollMirroringPolicy":{"required":["id","username","localRepository","remoteHost","remoteRepository","remoteCA","skipTLSVerification","enabled","lastMirroredAt","lastStatus"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastMirroredAt":{"type":"string"},"lastStatus":{"$ref":"#/definitions/schema.MirroringStatus"},"localRepository":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"responses.Promotion":{"required":["promotionPolicyID","string","sourceRepository","sourceTag"],"properties":{"promotionPolicyID":{"type":"string"},"sourceRepository":{"type":"string"},"sourceTag":{"type":"string"},"string":{"type":"string"}}},"responses.PromotionPolicy":{"required":["id","rules","sourceRepository","targetRepository","tagTemplate","enabled","lastPromotedAt"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastPromotedAt":{"type":"string","format":"date-time"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"sourceRepository":{"type":"string"},"tagTemplate":{"type":"string"},"targetRepository":{"type":"string"}}},"responses.PushMirroringPolicy":{"required":["id","rules","username","localRepository","remoteHost","remoteRepository","remoteCA","skipTLSVerification","tagTemplate","enabled","lastMirroredAt","lastStatus"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastMirroredAt":{"type":"string"},"lastStatus":{"$ref":"#/definitions/schema.MirroringStatus"},"localRepository":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"skipTLSVerification":{"type":"boolean"},"tagTemplate":{"type":"string"},"username":{"type":"string"}}},"responses.RemoteRegistryCheck":{"required":["registryType","accessLevel"],"properties":{"accessLevel":{"type":"string"},"registryType":{"type":"string"}}},"responses.RepoAccess":{"required":["accessLevel","repository"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"repository":{"$ref":"#/definitions/responses.Repository"}}},"responses.RepoUserAccess":{"required":["accessLevel","user","repository"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"repository":{"$ref":"#/definitions/responses.Repository"},"user":{"$ref":"#/definitions/responses.Account"}}},"responses.Repositories":{"required":["repositories"],"properties":{"repositories":{"type":"array","items":{"$ref":"#/definitions/responses.Repository"}}}},"responses.Repository":{"required":["id","namespace","namespaceType","name","shortDescription","visibility","scanOnPush","immutableTags","enableManifestLists","pulls","pushes"],"properties":{"enableManifestLists":{"type":"boolean"},"id":{"type":"string"},"immutableTags":{"type":"boolean"},"longDescription":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"namespaceType":{"type":"string","enum":["user","organization"]},"pulls":{"type":"integer","format":"integer"},"pushes":{"type":"integer","format":"integer"},"scanOnPush":{"type":"boolean"},"shortDescription":{"type":"string"},"visibility":{"type":"string","enum":["public","private"]}}},"responses.ScanSummary":{"required":["scannedImage","shouldRescan"],"properties":{"scanStatus":{"type":"integer","format":"int32"},"scannedImage":{"$ref":"#/definitions/schema.ScannedImage"},"shouldRescan":{"type":"boolean"}}},"responses.Settings":{"required":["dtrHost","sso","createRepositoryOnPush","replicaSettings","httpProxy","httpsProxy","noProxy","reportAnalytics","anonymizeAnalytics","disableBackupWarning","logProtocol","logHost","logLevel","webTLSCert","webTLSCA","replicaID","scanningEnabled","scanningSyncOnline","scanningEnableAutoRecheck","jobHistoryToKeep","storageVolume","nfsHost","nfsPath"],"properties":{"anonymizeAnalytics":{"type":"boolean"},"createRepositoryOnPush":{"type":"boolean"},"disableBackupWarning":{"type":"boolean"},"dtrHost":{"type":"string"},"httpProxy":{"type":"string"},"httpsProxy":{"type":"string"},"jobHistoryToKeep":{"type":"integer"},"logHost":{"type":"string"},"logLevel":{"type":"string"},"logProtocol":{"type":"string"},"nfsHost":{"type":"string"},"nfsPath":{"type":"string"},"noProxy":{"type":"string"},"replicaID":{"type":"string"},"replicaSettings":{"type":"object"},"reportAnalytics":{"type":"boolean"},"scanningEnableAutoRecheck":{"type":"boolean"},"scanningEnabled":{"type":"boolean"},"scanningSyncOnline":{"type":"boolean"},"sso":{"type":"boolean"},"storageVolume":{"type":"string"},"webTLSCA":{"type":"string"},"webTLSCert":{"type":"string"}}},"responses.Tag":{"required":["name","digest","author","updatedAt","createdAt","hashMismatch","inNotary","manifest","licenses","components"],"properties":{"author":{"type":"string"},"components":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerComponent"}},"createdAt":{"type":"string","format":"date-time"},"digest":{"type":"string"},"hashMismatch":{"description":"true if the hashes from notary and registry don't match","type":"boolean"},"inNotary":{"description":"true if the tag exists in Notary","type":"boolean"},"licenses":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerLicense"}},"manifest":{"$ref":"#/definitions/responses.Manifest"},"mirroring":{"$ref":"#/definitions/responses.Mirroring"},"name":{"type":"string"},"promotion":{"$ref":"#/definitions/responses.Promotion"},"updatedAt":{"type":"string","format":"date-time"},"vuln_summary":{"$ref":"#/definitions/responses.OldScanSummary"}}},"responses.Team":{"required":["id","clientUserIsMember"],"properties":{"clientUserIsMember":{"type":"boolean"},"id":{"type":"string"}}},"responses.TeamAccess":{"required":["accessLevel","team"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"team":{"$ref":"#/definitions/responses.Team"}}},"responses.UserSettings":{"required":["ContentCacheUUID"],"properties":{"ContentCacheUUID":{"type":"string"}}},"responses.Vulnerability":{"required":["cve","cvss","summary"],"properties":{"cve":{"type":"string"},"cvss":{"type":"number","format":"float"},"summary":{"type":"string"}}},"responses.VulnerabilityDetails":{"required":["vuln","exact","notes"],"properties":{"exact":{"type":"boolean"},"notes":{"type":"array","items":{"$ref":"#/definitions/responses.Note"}},"vuln":{"$ref":"#/definitions/responses.Vulnerability"}}},"responses.Webhook":{"required":["id","type","key","endpoint","authorID","createdAt","inactive"],"properties":{"authorID":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"endpoint":{"type":"string"},"id":{"type":"string"},"inactive":{"type":"boolean"},"key":{"type":"string"},"lastSuccessfulAt":{"type":"string","format":"date-time"},"type":{"type":"string"}}},"ruleengine.Rule":{"properties":{"field":{"type":"string"},"operator":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}}},"schema.Event":{"required":["id","publishedAt","actor","type","object"],"properties":{"actor":{"type":"string"},"id":{"type":"string"},"object":{"$ref":"#/definitions/schema.Object"},"publishedAt":{"type":"string","format":"date-time"},"target":{"$ref":"#/definitions/schema.Object"},"type":{"type":"string"}}},"schema.LayerVulnOverride":{"required":["pk","digest","component","componentVersion","cve","notes"],"properties":{"component":{"type":"string"},"componentVersion":{"type":"string"},"cve":{"type":"string"},"digest":{"type":"string"},"notes":{"type":"string"},"pk":{"type":"string"}}},"schema.MirroringStatus":{"required":["code","detail","timestamp"],"properties":{"code":{"type":"string"},"detail":{"type":"string"},"timestamp":{"type":"string","format":"date-time"}}},"schema.Object":{"required":["id","type"],"properties":{"content":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"}}},"schema.ScannedImage":{"required":["pk","namespace","repository","tag","manifestDigest","totalVulnCount","licenses","layers","components","cves","maxCVSSValue","scannerFingerprint","vulnOverrides"],"properties":{"components":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerComponent"}},"cves":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerCVE"}},"layers":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerLayer"}},"licenses":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerLicense"}},"manifestDigest":{"type":"string"},"maxCVSSValue":{"type":"number","format":"float"},"namespace":{"type":"string"},"pk":{"type":"string"},"repository":{"type":"string"},"scannerFingerprint":{"$ref":"#/definitions/schema.ScannerFingerprint"},"tag":{"type":"string"},"totalVulnCount":{"$ref":"#/definitions/schema.ScannerVulnCount"},"vulnOverrides":{"type":"array","items":{"$ref":"#/definitions/schema.LayerVulnOverride"}}}},"schema.ScannerCVE":{"required":["cvePK","summary","cvss","notes"],"properties":{"cvePK":{"type":"string"},"cvss":{"type":"number","format":"float"},"notes":{"type":"string"},"summary":{"type":"string"}}},"schema.ScannerComponent":{"required":["componentPK","vulnCount","name","version","filepaths","cves","licenses"],"properties":{"componentPK":{"type":"string"},"cves":{"type":"array","items":{"type":"string"}},"filepaths":{"type":"array","items":{"type":"string"}},"licenses":{"type":"array","items":{"type":"string"}},"name":{"type":"string"},"version":{"type":"string"},"vulnCount":{"$ref":"#/definitions/schema.ScannerVulnCount"}}},"schema.ScannerFingerprint":{"required":["scannerType","version"],"properties":{"scannerType":{"type":"integer","format":"int32"},"version":{"type":"array","items":{"type":"string"}}}},"schema.ScannerLayer":{"required":["digest","mediaType","author","size","components"],"properties":{"author":{"type":"string"},"components":{"type":"array","items":{"type":"string"}},"digest":{"type":"string"},"mediaType":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"schema.ScannerLicense":{"required":["name","url","type"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}}},"schema.ScannerVulnCount":{"required":["critical","major","minor"],"properties":{"critical":{"type":"integer","format":"int32"},"major":{"type":"integer","format":"int32"},"minor":{"type":"integer","format":"int32"}}},"tmpforms.ActionConfigCreate":{"required":["action","parameters"],"properties":{"action":{"description":"The action to modify the config for","type":"string"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job. These are overwritten by any corresponding parameters set in the job itself.","type":"object"}}},"tmpforms.CronCreate":{"required":["action","schedule","retries","capacityMap","parameters","deadline","stopTimeout"],"properties":{"action":{"description":"The action which the cron will perform","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object"},"deadline":{"description":"After this amount of time has passed, a SIGTERM will be sent","type":"string"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object"},"retries":{"description":"The number of times to retry a job if it fails","type":"integer","format":"int32"},"schedule":{"description":"The for the cron as a cronspec string: (seconds) (minutes) (hours) (day of month) (month) (day of week) or @hourly, @weekly, etc.","type":"string"},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"}}},"tmpforms.EmptyForm":{},"tmpforms.JobSubmission":{"required":["action","parameters","retries","capacityMap","deadline","stopTimeout","scheduledAt"],"properties":{"action":{"description":"The action which the job will perform","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object"},"deadline":{"description":"After this amount of time has passed, a SIGTERM will be sent","type":"string"},"parameters":{"description":"Parameters to start the job with","type":"object"},"retries":{"description":"The number of times to retry a job if it fails","type":"integer","format":"int32"},"scheduledAt":{"description":"The time at which to run the job. Empty string or no value means now. Format: RFC3339","type":"string"},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"}}},"tmpforms.UpdateWorkerCapacity":{"required":["capacityMap"],"properties":{"capacityMap":{"description":"The new capacity for the worker, representing roughly the amount of RAM to use","type":"object"}}},"tmpresponses.ActionConfig":{"required":["id","action","parameters"],"properties":{"action":{"description":"The action this config refers to.","type":"string"},"id":{"description":"Randomly generated UUID for foreign references.","type":"string"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object"}}},"tmpresponses.ActionConfigs":{"required":["actionConfigs"],"properties":{"actionConfigs":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}},"tmpresponses.Cron":{"required":["id","action","schedule","retries","capacityMap","parameters","deadline","stopTimeout","nextRun"],"properties":{"action":{"description":"The action to be performed by jobs spawned from this cron.","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object"},"deadline":{"type":"string"},"id":{"description":"Randomly generated UUID for foreign references.","type":"string"},"nextRun":{"description":"The next time the job will run.","type":"string","format":"date-time"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object"},"retries":{"description":"The number of times to retry the job if it fails","type":"integer","format":"int32"},"schedule":{"description":"The schedule for this cron as a cronspec string: (seconds) (minutes) (hours) (day of month) (month) (day of week) or @hourly, @weekly, etc.","type":"string"},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"}}},"tmpresponses.Crons":{"required":["crons"],"properties":{"crons":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.Cron"}}}},"tmpresponses.Job":{"required":["id","retryFromID","workerID","status","scheduledAt","lastUpdated","action","retriesLeft","retriesTotal","capacityMap","parameters","deadline","stopTimeout"],"properties":{"action":{"description":"The action this job performs","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object"},"deadline":{"type":"string"},"id":{"description":"The ID of the job","type":"string"},"lastUpdated":{"description":"The last time at which the status of this job was updated","type":"string","format":"date-time"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object"},"retriesLeft":{"description":"The number of times to retry the job if it fails","type":"integer","format":"int32"},"retriesTotal":{"description":"The total number of times to retry the original job if it fails","type":"integer","format":"int32"},"retryFromID":{"description":"The ID of the job this job retried from","type":"string"},"scheduledAt":{"description":"The time at which this job was scheduled","type":"string","format":"date-time"},"status":{"description":"The current status of the job","type":"string","enum":["waiting","running","done","canceled","errored"]},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"},"workerID":{"description":"The ID of the worker which performed the job, unclaimed by a worker if empty","type":"string"}}},"tmpresponses.JobLog":{"required":["data","lineNum"],"properties":{"data":{"type":"string"},"lineNum":{"type":"integer","format":"int32"}}},"tmpresponses.Jobs":{"required":["jobs"],"properties":{"jobs":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.Job"}}}},"tmpresponses.Worker":{"required":["id","status","capacityMap","heartbeatExpiration"],"properties":{"capacityMap":{"description":"A map used to represent now much load the worker should be allocated. Only security scanning jobs use this and the value is roughly equivalent to expected memory usage in bytes.","type":"object"},"heartbeatExpiration":{"description":"Time after which the worker should be considered dead.","type":"string"},"id":{"description":"Randomly generated UUID for foreign references.","type":"string"},"status":{"description":"Status of the worker","type":"string"}}},"tmpresponses.Workers":{"required":["workers"],"properties":{"workers":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.Worker"}}}}},"tags":[{"description":"Accounts","name":"accounts"},{"description":"Admin","name":"meta"},{"description":"Content Caches","name":"content_caches"},{"description":"Repositories","name":"repositories"},{"description":"Repository Namespaces","name":"repositoryNamespaces"},{"description":"Events","name":"events"},{"description":"Docker Security Scanner","name":"imagescan"},{"description":"Webhooks","name":"webhooks"},{"description":"Jobs","name":"jobs"},{"description":"Crons","name":"crons"},{"description":"Workers","name":"workers"},{"description":"Action Configs","name":"action_configs"}]} -, - dom_id: '#swagger-ui', - validatorUrl: null, - presets: [ - SwaggerUIBundle.presets.apis, - SwaggerUIStandalonePreset - ], - plugins: [ - SwaggerUIBundle.plugins.DownloadUrl - ], - layout: "StandaloneLayout" - }) - - window.ui = ui -} diff --git a/reference/dtr/2.5/api/swagger-ui-bundle.js b/reference/dtr/2.5/api/swagger-ui-bundle.js deleted file mode 100644 index 4ec510a936..0000000000 --- a/reference/dtr/2.5/api/swagger-ui-bundle.js +++ /dev/null @@ -1,105 +0,0 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.SwaggerUIBundle=t():e.SwaggerUIBundle=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="/dist",t(0)}(function(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))switch(typeof e[t]){case"function":break;case"object":e[t]=function(t){var n=t.slice(1),r=e[t[0]];return function(e,t,i){r.apply(this,[e,t,i].concat(n))}}(e[t]);break;default:e[t]=e[e[t]]}return e}([function(e,t,n){n(1),e.exports=n(56)},function(e,t,n){"use strict";n(2)},function(e,t,n){n(3),n(17),n(30),n(36),e.exports=n(16).Promise},function(e,t,n){"use strict";var r=n(4),i={};i[n(6)("toStringTag")]="z",i+""!="[object z]"&&n(10)(Object.prototype,"toString",function(){return"[object "+r(this)+"]"},!0)},function(e,t,n){var r=n(5),i=n(6)("toStringTag"),o="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=(t=Object(e))[i])?n:o?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(7)("wks"),i=n(9),o=n(8).Symbol;e.exports=function(e){return r[e]||(r[e]=o&&o[e]||(o||i)("Symbol."+e))}},function(e,t,n){var r=n(8),i="__core-js_shared__",o=r[i]||(r[i]={});e.exports=function(e){return o[e]||(o[e]={})}},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){var r=n(8),i=n(11),o=n(9)("src"),a="toString",s=Function[a],u=(""+s).split(a);n(16).inspectSource=function(e){return s.call(e)},(e.exports=function(e,t,n,a){"function"==typeof n&&(n.hasOwnProperty(o)||i(n,o,e[t]?""+e[t]:u.join(String(t))),n.hasOwnProperty("name")||i(n,"name",t)),e===r?e[t]=n:(a||delete e[t],i(e,t,n))})(Function.prototype,a,function(){return"function"==typeof this&&this[o]||s.call(this)})},function(e,t,n){var r=n(12),i=n(13);e.exports=n(14)?function(e,t,n){return r.setDesc(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){var n=Object;e.exports={create:n.create,getProto:n.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:n.getOwnPropertyDescriptor,setDesc:n.defineProperty,setDescs:n.defineProperties,getKeys:n.keys,getNames:n.getOwnPropertyNames,getSymbols:n.getOwnPropertySymbols,each:[].forEach}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){e.exports=!n(15)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){var n=e.exports={version:"1.2.6"};"number"==typeof __e&&(__e=n)},function(e,t,n){"use strict";var r=n(18)(!0);n(21)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){var r=n(19),i=n(20);e.exports=function(e){return function(t,n){var o,a,s=String(i(t)),u=r(n),c=s.length;return u<0||u>=c?e?"":void 0:(o=s.charCodeAt(u),o<55296||o>56319||u+1===c||(a=s.charCodeAt(u+1))<56320||a>57343?e?s.charAt(u):o:e?s.slice(u,u+2):(o-55296<<10)+(a-56320)+65536)}}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";var r=n(22),i=n(23),o=n(10),a=n(11),s=n(26),u=n(27),c=n(28),l=n(29),p=n(12).getProto,f=n(6)("iterator"),h=!([].keys&&"next"in[].keys()),d="@@iterator",m="keys",v="values",y=function(){return this};e.exports=function(e,t,n,g,_,b,x){c(n,t,g);var w,k,S=function(e){if(!h&&e in T)return T[e];switch(e){case m:return function(){return new n(this,e)};case v:return function(){return new n(this,e)}}return function(){return new n(this,e)}},E=t+" Iterator",C=_==v,A=!1,T=e.prototype,D=T[f]||T[d]||_&&T[_],M=D||S(_);if(D){var O=p(M.call(new e));l(O,E,!0),!r&&s(T,d)&&a(O,f,y),C&&D.name!==v&&(A=!0,M=function(){return D.call(this)})}if(r&&!x||!h&&!A&&T[f]||a(T,f,M),u[t]=M,u[E]=y,_)if(w={values:C?M:S(v),keys:b?M:S(m),entries:C?S("entries"):M},x)for(k in w)k in T||o(T,k,w[k]);else i(i.P+i.F*(h||A),t,w);return w}},function(e,t){e.exports=!1},function(e,t,n){var r=n(8),i=n(16),o=n(11),a=n(10),s=n(24),u="prototype",c=function(e,t,n){var l,p,f,h,d=e&c.F,m=e&c.G,v=e&c.S,y=e&c.P,g=e&c.B,_=m?r:v?r[t]||(r[t]={}):(r[t]||{})[u],b=m?i:i[t]||(i[t]={}),x=b[u]||(b[u]={});m&&(n=t);for(l in n)p=!d&&_&&l in _,f=(p?_:n)[l],h=g&&p?s(f,r):y&&"function"==typeof f?s(Function.call,f):f,_&&!p&&a(_,l,f),b[l]!=f&&o(b,l,h),y&&x[l]!=f&&(x[l]=f)};r.core=i,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,e.exports=c},function(e,t,n){var r=n(25);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t){e.exports={}},function(e,t,n){"use strict";var r=n(12),i=n(13),o=n(29),a={};n(11)(a,n(6)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r.create(a,{next:i(1,n)}),o(e,t+" Iterator")}},function(e,t,n){var r=n(12).setDesc,i=n(26),o=n(6)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},function(e,t,n){n(31);var r=n(8),i=n(11),o=n(27),a=n(6)("iterator"),s=r.NodeList,u=r.HTMLCollection,c=s&&s.prototype,l=u&&u.prototype,p=o.NodeList=o.HTMLCollection=o.Array;c&&!c[a]&&i(c,a,p),l&&!l[a]&&i(l,a,p)},function(e,t,n){"use strict";var r=n(32),i=n(33),o=n(27),a=n(34);e.exports=n(21)(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):"keys"==t?i(0,n):"values"==t?i(0,e[n]):i(0,[n,e[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(e,t,n){var r=n(6)("unscopables"),i=Array.prototype;void 0==i[r]&&n(11)(i,r,{}),e.exports=function(e){i[r][e]=!0}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){var r=n(35),i=n(20);e.exports=function(e){return r(i(e))}},function(e,t,n){var r=n(5);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){"use strict";var r,i=n(12),o=n(22),a=n(8),s=n(24),u=n(4),c=n(23),l=n(37),p=n(38),f=n(25),h=n(39),d=n(40),m=n(45).set,v=n(46),y=n(6)("species"),g=n(47),_=n(48),b="Promise",x=a.process,w="process"==u(x),k=a[b],S=function(){},E=function(e){var t,n=new k(S);return e&&(n.constructor=function(e){e(S,S)}),(t=k.resolve(n)).catch(S),t===n},C=function(){function e(t){var n=new k(t);return m(n,e.prototype),n}var t=!1;try{if(t=k&&k.resolve&&E(),m(e,k),e.prototype=i.create(k.prototype,{constructor:{value:e}}),e.resolve(5).then(function(){})instanceof e||(t=!1),t&&n(14)){var r=!1;k.resolve(i.setDesc({},"then",{get:function(){r=!0}})),t=r}}catch(e){t=!1}return t}(),A=function(e,t){return!(!o||e!==k||t!==r)||v(e,t)},T=function(e){var t=p(e)[y];return void 0!=t?t:e},D=function(e){var t;return!(!l(e)||"function"!=typeof(t=e.then))&&t},M=function(e){var t,n;this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r}),this.resolve=f(t),this.reject=f(n)},O=function(e){try{e()}catch(e){return{error:e}}},P=function(e,t){if(!e.n){e.n=!0;var n=e.c;_(function(){for(var r=e.v,i=1==e.s,o=0,s=function(t){var n,o,a=i?t.ok:t.fail,s=t.resolve,u=t.reject;try{a?(i||(e.h=!0),n=a===!0?r:a(r),n===t.promise?u(TypeError("Promise-chain cycle")):(o=D(n))?o.call(n,s,u):s(n)):u(r)}catch(e){u(e)}};n.length>o;)s(n[o++]);n.length=0,e.n=!1,t&&setTimeout(function(){var t,n,i=e.p;I(i)&&(w?x.emit("unhandledRejection",r,i):(t=a.onunhandledrejection)?t({promise:i,reason:r}):(n=a.console)&&n.error&&n.error("Unhandled promise rejection",r)),e.a=void 0},1)})}},I=function(e){var t,n=e._d,r=n.a||n.c,i=0;if(n.h)return!1;for(;r.length>i;)if(t=r[i++],t.fail||!I(t.promise))return!1;return!0},N=function(e){var t=this;t.d||(t.d=!0,t=t.r||t,t.v=e,t.s=2,t.a=t.c.slice(),P(t,!0))},R=function(e){var t,n=this;if(!n.d){n.d=!0,n=n.r||n;try{if(n.p===e)throw TypeError("Promise can't be resolved itself");(t=D(e))?_(function(){var r={r:n,d:!1};try{t.call(e,s(R,r,1),s(N,r,1))}catch(e){N.call(r,e)}}):(n.v=e,n.s=1,P(n,!1))}catch(e){N.call({r:n,d:!1},e)}}};C||(k=function(e){f(e);var t=this._d={p:h(this,k,b),c:[],a:void 0,s:0,d:!1,v:void 0,h:!1,n:!1};try{e(s(R,t,1),s(N,t,1))}catch(e){N.call(t,e)}},n(53)(k.prototype,{then:function(e,t){var n=new M(g(this,k)),r=n.promise,i=this._d;return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,i.c.push(n),i.a&&i.a.push(n),i.s&&P(i,!1),r},catch:function(e){return this.then(void 0,e)}})),c(c.G+c.W+c.F*!C,{Promise:k}),n(29)(k,b),n(54)(b),r=n(16)[b],c(c.S+c.F*!C,b,{reject:function(e){var t=new M(this),n=t.reject;return n(e),t.promise}}),c(c.S+c.F*(!C||E(!0)),b,{resolve:function(e){if(e instanceof k&&A(e.constructor,this))return e;var t=new M(this),n=t.resolve;return n(e),t.promise}}),c(c.S+c.F*!(C&&n(55)(function(e){k.all(e).catch(function(){})})),b,{all:function(e){var t=T(this),n=new M(t),r=n.resolve,o=n.reject,a=[],s=O(function(){d(e,!1,a.push,a);var n=a.length,s=Array(n);n?i.each.call(a,function(e,i){var a=!1;t.resolve(e).then(function(e){a||(a=!0,s[i]=e,--n||r(s))},o)}):r(s)});return s&&o(s.error),n.promise},race:function(e){var t=T(this),n=new M(t),r=n.reject,i=O(function(){d(e,!1,function(e){t.resolve(e).then(n.resolve,r)})});return i&&r(i.error),n.promise}})},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var r=n(37);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e,t,n){if(!(e instanceof t))throw TypeError(n+": use the 'new' operator!");return e}},function(e,t,n){var r=n(24),i=n(41),o=n(42),a=n(38),s=n(43),u=n(44);e.exports=function(e,t,n,c){var l,p,f,h=u(e),d=r(n,c,t?2:1),m=0;if("function"!=typeof h)throw TypeError(e+" is not iterable!");if(o(h))for(l=s(e.length);l>m;m++)t?d(a(p=e[m])[0],p[1]):d(e[m]);else for(f=h.call(e);!(p=f.next()).done;)i(f,d,p.value,t)}},function(e,t,n){var r=n(38);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(t){var o=e.return;throw void 0!==o&&r(o.call(e)),t}}},function(e,t,n){var r=n(27),i=n(6)("iterator"),o=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||o[i]===e)}},function(e,t,n){var r=n(19),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},function(e,t,n){var r=n(4),i=n(6)("iterator"),o=n(27);e.exports=n(16).getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||o[r(e)]}},function(e,t,n){var r=n(12).getDesc,i=n(37),o=n(38),a=function(e,t){if(o(e),!i(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,i){try{i=n(24)(Function.call,r(Object.prototype,"__proto__").set,2),i(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return a(e,n),t?e.__proto__=n:i(e,n),e}}({},!1):void 0),check:a}},function(e,t){e.exports=Object.is||function(e,t){return e===t?0!==e||1/e===1/t:e!=e&&t!=t}},function(e,t,n){var r=n(38),i=n(25),o=n(6)("species");e.exports=function(e,t){var n,a=r(e).constructor;return void 0===a||void 0==(n=r(a)[o])?t:i(n)}},function(e,t,n){var r,i,o,a=n(8),s=n(49).set,u=a.MutationObserver||a.WebKitMutationObserver,c=a.process,l=a.Promise,p="process"==n(5)(c),f=function(){var e,t,n;for(p&&(e=c.domain)&&(c.domain=null,e.exit());r;)t=r.domain,n=r.fn,t&&t.enter(),n(),t&&t.exit(),r=r.next;i=void 0,e&&e.enter()};if(p)o=function(){c.nextTick(f)};else if(u){var h=1,d=document.createTextNode("");new u(f).observe(d,{characterData:!0}),o=function(){d.data=h=-h}}else o=l&&l.resolve?function(){l.resolve().then(f)}:function(){s.call(a,f)};e.exports=function(e){var t={fn:e,next:void 0,domain:p&&c.domain};i&&(i.next=t),r||(r=t,o()),i=t}},function(e,t,n){var r,i,o,a=n(24),s=n(50),u=n(51),c=n(52),l=n(8),p=l.process,f=l.setImmediate,h=l.clearImmediate,d=l.MessageChannel,m=0,v={},y="onreadystatechange",g=function(){var e=+this;if(v.hasOwnProperty(e)){var t=v[e];delete v[e],t()}},_=function(e){g.call(e.data)};f&&h||(f=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return v[++m]=function(){s("function"==typeof e?e:Function(e),t)},r(m),m},h=function(e){delete v[e]},"process"==n(5)(p)?r=function(e){p.nextTick(a(g,e,1))}:d?(i=new d,o=i.port2,i.port1.onmessage=_,r=a(o.postMessage,o,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(e){l.postMessage(e+"","*")},l.addEventListener("message",_,!1)):r=y in c("script")?function(e){u.appendChild(c("script"))[y]=function(){u.removeChild(this),g.call(e)}}:function(e){setTimeout(a(g,e,1),0)}),e.exports={set:f,clear:h}},function(e,t){e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t,n){e.exports=n(8).document&&document.documentElement},function(e,t,n){var r=n(37),i=n(8).document,o=r(i)&&r(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},function(e,t,n){var r=n(10);e.exports=function(e,t){for(var n in t)r(e,n,t[n]);return e}},function(e,t,n){"use strict";var r=n(8),i=n(12),o=n(14),a=n(6)("species");e.exports=function(e){var t=r[e];o&&t&&!t[a]&&i.setDesc(t,a,{configurable:!0,get:function(){return this}})}},function(e,t,n){var r=n(6)("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var o=[7],a=o[r]();a.next=function(){return{done:n=!0}},o[r]=function(){return a},e(o)}catch(e){}return n}},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}var o=n(57),a=i(o),s=n(60),u=i(s),c=n(94),l=i(c),p=n(131),f=i(p),h=n(136),d=i(h),m=n(177),v=i(m),y=n(414),g=i(y),_=n(1175),b=r(_),x=n(183),w=["url","spec","validatorUrl","onComplete","onFailure","authorizations","docExpansion","apisSorter","operationsSorter","supportedSubmitMethods","dom_id","defaultModelRendering","oauth2RedirectUrl","showRequestHeaders","custom","modelPropertyMacro","parameterMacro","displayOperationId"],k={PACKAGE_VERSION:"3.0.17",GIT_COMMIT:"gf3c3c5c",GIT_DIRTY:!0},S=k.GIT_DIRTY,E=k.GIT_COMMIT,C=k.PACKAGE_VERSION;e.exports=function(e){v.default.versions=v.default.versions||{},v.default.versions.swaggerUi=C+"/"+(E||"unknown")+(S?"-dirty":"");var t={dom_id:null,spec:{},url:"",layout:"BaseLayout",docExpansion:"list",validatorUrl:"https://online.swagger.io/validator",configs:{},custom:{},displayOperationId:!1,presets:[],plugins:[],fn:{},components:{},state:{},store:{}},n=(0,f.default)({},t,e),r=(0,f.default)({},n.store,{system:{configs:n.configs},plugins:n.presets,state:{layout:{layout:n.layout},spec:{spec:"",url:n.url}}}),i=function(){return{fn:n.fn,components:n.components,state:n.state}},o=new d.default(r);o.register([n.plugins,i]);var s=o.getSystem(),c=(0,x.parseSeach)();s.initOAuth=s.authActions.configureAuth;var p=function(e){if("object"!==("undefined"==typeof n?"undefined":(0,l.default)(n)))return s;var t=s.specSelectors.getLocalConfig?s.specSelectors.getLocalConfig():{},r=(0,f.default)({},t,n,e||{},c);return o.setConfigs((0,x.filterConfigs)(r,w)),null!==e&&(!c.url&&"object"===(0,l.default)(r.spec)&&(0,u.default)(r.spec).length?(s.specActions.updateUrl(""),s.specActions.updateLoadingStatus("success"),s.specActions.updateSpec((0,a.default)(r.spec))):s.specActions.download&&r.url&&(s.specActions.updateUrl(r.url),s.specActions.download(r.url))),r.dom_id?s.render(r.dom_id,"App"):console.error("Skipped rendering: no `dom_id` was specified"),s},h=c.config||n.configUrl;return!h||!s.specActions.getConfigByUrl||s.specActions.getConfigByUrl&&!s.specActions.getConfigByUrl(h,p)?p():s},e.exports.presets={apis:g.default},e.exports.plugins=b},function(e,t,n){e.exports={default:n(58),__esModule:!0}},function(e,t,n){var r=n(59),i=r.JSON||(r.JSON={stringify:JSON.stringify});e.exports=function(e){return i.stringify.apply(i,arguments)}},function(e,t){var n=e.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},function(e,t,n){e.exports={default:n(61),__esModule:!0}},function(e,t,n){n(62),e.exports=n(59).Object.keys},function(e,t,n){var r=n(63),i=n(65);n(80)("keys",function(){return function(e){return i(r(e))}})},function(e,t,n){var r=n(64);e.exports=function(e){return Object(r(e))}},20,function(e,t,n){var r=n(66),i=n(79);e.exports=Object.keys||function(e){return r(e,i)}},function(e,t,n){var r=n(67),i=n(68),o=n(71)(!1),a=n(75)("IE_PROTO");e.exports=function(e,t){var n,s=i(e),u=0,c=[];for(n in s)n!=a&&r(s,n)&&c.push(n);for(;t.length>u;)r(s,n=t[u++])&&(~o(c,n)||c.push(n));return c}},26,function(e,t,n){var r=n(69),i=n(64);e.exports=function(e){return r(i(e))}},function(e,t,n){var r=n(70);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},5,function(e,t,n){var r=n(68),i=n(72),o=n(74);e.exports=function(e){return function(t,n,a){var s,u=r(t),c=i(u.length),l=o(a,c);if(e&&n!=n){for(;c>l;)if(s=u[l++],s!=s)return!0}else for(;c>l;l++)if((e||l in u)&&u[l]===n)return e||l||0;return!e&&-1}}},function(e,t,n){var r=n(73),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},19,function(e,t,n){var r=n(73),i=Math.max,o=Math.min;e.exports=function(e,t){return e=r(e),e<0?i(e+t,0):o(e,t)}},function(e,t,n){var r=n(76)("keys"),i=n(78);e.exports=function(e){return r[e]||(r[e]=i(e))}},function(e,t,n){var r=n(77),i="__core-js_shared__",o=r[i]||(r[i]={});e.exports=function(e){return o[e]||(o[e]={})}},8,9,function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var r=n(81),i=n(59),o=n(90);e.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],a={};a[e]=t(n),r(r.S+r.F*o(function(){n(1)}),"Object",a)}},function(e,t,n){var r=n(77),i=n(59),o=n(82),a=n(84),s="prototype",u=function(e,t,n){var c,l,p,f=e&u.F,h=e&u.G,d=e&u.S,m=e&u.P,v=e&u.B,y=e&u.W,g=h?i:i[t]||(i[t]={}),_=g[s],b=h?r:d?r[t]:(r[t]||{})[s];h&&(n=t);for(c in n)l=!f&&b&&void 0!==b[c],l&&c in g||(p=l?b[c]:n[c],g[c]=h&&"function"!=typeof b[c]?n[c]:v&&l?o(p,r):y&&b[c]==p?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t[s]=e[s],t}(p):m&&"function"==typeof p?o(Function.call,p):p,m&&((g.virtual||(g.virtual={}))[c]=p,e&u.R&&_&&!_[c]&&a(_,c,p)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},function(e,t,n){var r=n(83);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},25,function(e,t,n){var r=n(85),i=n(93);e.exports=n(89)?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(86),i=n(88),o=n(92),a=Object.defineProperty;t.f=n(89)?Object.defineProperty:function(e,t,n){if(r(e),t=o(t,!0),r(n),i)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){var r=n(87);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},37,function(e,t,n){e.exports=!n(89)&&!n(90)(function(){return 7!=Object.defineProperty(n(91)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){e.exports=!n(90)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},15,function(e,t,n){var r=n(87),i=n(77).document,o=r(i)&&r(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},function(e,t,n){var r=n(87);e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},13,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(95),o=r(i),a=n(115),s=r(a),u="function"==typeof s.default&&"symbol"==typeof o.default?function(e){return typeof e}:function(e){return e&&"function"==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?"symbol":typeof e};t.default="function"==typeof s.default&&"symbol"===u(o.default)?function(e){return"undefined"==typeof e?"undefined":u(e)}:function(e){return e&&"function"==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?"symbol":"undefined"==typeof e?"undefined":u(e)}},function(e,t,n){e.exports={default:n(96),__esModule:!0}},function(e,t,n){n(97),n(110),e.exports=n(114).f("iterator")},function(e,t,n){"use strict";var r=n(98)(!0);n(99)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){var r=n(73),i=n(64);e.exports=function(e){return function(t,n){var o,a,s=String(i(t)),u=r(n),c=s.length;return u<0||u>=c?e?"":void 0:(o=s.charCodeAt(u),o<55296||o>56319||u+1===c||(a=s.charCodeAt(u+1))<56320||a>57343?e?s.charAt(u):o:e?s.slice(u,u+2):(o-55296<<10)+(a-56320)+65536)}}},function(e,t,n){"use strict";var r=n(100),i=n(81),o=n(101),a=n(84),s=n(67),u=n(102),c=n(103),l=n(107),p=n(109),f=n(108)("iterator"),h=!([].keys&&"next"in[].keys()),d="@@iterator",m="keys",v="values",y=function(){return this};e.exports=function(e,t,n,g,_,b,x){c(n,t,g);var w,k,S,E=function(e){if(!h&&e in D)return D[e];switch(e){case m:return function(){return new n(this,e)};case v:return function(){return new n(this,e)}}return function(){return new n(this,e)}},C=t+" Iterator",A=_==v,T=!1,D=e.prototype,M=D[f]||D[d]||_&&D[_],O=M||E(_),P=_?A?E("entries"):O:void 0,I="Array"==t?D.entries||M:M;if(I&&(S=p(I.call(new e)),S!==Object.prototype&&(l(S,C,!0),r||s(S,f)||a(S,f,y))),A&&M&&M.name!==v&&(T=!0,O=function(){return M.call(this)}),r&&!x||!h&&!T&&D[f]||a(D,f,O),u[t]=O,u[C]=y,_)if(w={values:A?O:E(v),keys:b?O:E(m),entries:P},x)for(k in w)k in D||o(D,k,w[k]);else i(i.P+i.F*(h||T),t,w);return w}},function(e,t){e.exports=!0},function(e,t,n){e.exports=n(84)},27,function(e,t,n){"use strict";var r=n(104),i=n(93),o=n(107),a={};n(84)(a,n(108)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(a,{next:i(1,n)}),o(e,t+" Iterator")}},function(e,t,n){var r=n(86),i=n(105),o=n(79),a=n(75)("IE_PROTO"),s=function(){},u="prototype",c=function(){var e,t=n(91)("iframe"),r=o.length,i="<",a=">";for(t.style.display="none",n(106).appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write(i+"script"+a+"document.F=Object"+i+"/script"+a),e.close(),c=e.F;r--;)delete c[u][o[r]];return c()};e.exports=Object.create||function(e,t){var n;return null!==e?(s[u]=r(e),n=new s,s[u]=null,n[a]=e):n=c(),void 0===t?n:i(n,t)}},function(e,t,n){var r=n(85),i=n(86),o=n(65);e.exports=n(89)?Object.defineProperties:function(e,t){i(e);for(var n,a=o(t),s=a.length,u=0;s>u;)r.f(e,n=a[u++],t[n]);return e}},function(e,t,n){e.exports=n(77).document&&document.documentElement},function(e,t,n){var r=n(85).f,i=n(67),o=n(108)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},function(e,t,n){var r=n(76)("wks"),i=n(78),o=n(77).Symbol,a="function"==typeof o,s=e.exports=function(e){return r[e]||(r[e]=a&&o[e]||(a?o:i)("Symbol."+e))};s.store=r},function(e,t,n){var r=n(67),i=n(63),o=n(75)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),r(e,o)?e[o]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,n){n(111);for(var r=n(77),i=n(84),o=n(102),a=n(108)("toStringTag"),s=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],u=0;u<5;u++){var c=s[u],l=r[c],p=l&&l.prototype;p&&!p[a]&&i(p,a,c),o[c]=o.Array}},function(e,t,n){"use strict";var r=n(112),i=n(113),o=n(102),a=n(68);e.exports=n(99)(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):"keys"==t?i(0,n):"values"==t?i(0,e[n]):i(0,[n,e[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(e,t){e.exports=function(){}},33,function(e,t,n){t.f=n(108)},function(e,t,n){e.exports={default:n(116),__esModule:!0}},function(e,t,n){n(117),n(128),n(129),n(130),e.exports=n(59).Symbol},function(e,t,n){"use strict";var r=n(77),i=n(67),o=n(89),a=n(81),s=n(101),u=n(118).KEY,c=n(90),l=n(76),p=n(107),f=n(78),h=n(108),d=n(114),m=n(119),v=n(120),y=n(121),g=n(124),_=n(86),b=n(68),x=n(92),w=n(93),k=n(104),S=n(125),E=n(127),C=n(85),A=n(65),T=E.f,D=C.f,M=S.f,O=r.Symbol,P=r.JSON,I=P&&P.stringify,N="prototype",R=h("_hidden"),j=h("toPrimitive"),F={}.propertyIsEnumerable,B=l("symbol-registry"),L=l("symbols"),z=l("op-symbols"),q=Object[N],U="function"==typeof O,W=r.QObject,K=!W||!W[N]||!W[N].findChild,V=o&&c(function(){return 7!=k(D({},"a",{get:function(){return D(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=T(q,t);r&&delete q[t],D(e,t,n),r&&e!==q&&D(q,t,r)}:D,H=function(e){var t=L[e]=k(O[N]);return t._k=e,t},J=U&&"symbol"==typeof O.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof O},G=function(e,t,n){return e===q&&G(z,t,n),_(e),t=x(t,!0),_(n),i(L,t)?(n.enumerable?(i(e,R)&&e[R][t]&&(e[R][t]=!1),n=k(n,{enumerable:w(0,!1)})):(i(e,R)||D(e,R,w(1,{})),e[R][t]=!0),V(e,t,n)):D(e,t,n)},X=function(e,t){_(e);for(var n,r=y(t=b(t)),i=0,o=r.length;o>i;)G(e,n=r[i++],t[n]);return e},Y=function(e,t){return void 0===t?k(e):X(k(e),t)},$=function(e){var t=F.call(this,e=x(e,!0));return!(this===q&&i(L,e)&&!i(z,e))&&(!(t||!i(this,e)||!i(L,e)||i(this,R)&&this[R][e])||t)},Z=function(e,t){if(e=b(e),t=x(t,!0),e!==q||!i(L,t)||i(z,t)){var n=T(e,t);return!n||!i(L,t)||i(e,R)&&e[R][t]||(n.enumerable=!0),n}},Q=function(e){for(var t,n=M(b(e)),r=[],o=0;n.length>o;)i(L,t=n[o++])||t==R||t==u||r.push(t);return r},ee=function(e){for(var t,n=e===q,r=M(n?z:b(e)),o=[],a=0;r.length>a;)!i(L,t=r[a++])||n&&!i(q,t)||o.push(L[t]);return o};U||(O=function(){if(this instanceof O)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),t=function(n){this===q&&t.call(z,n),i(this,R)&&i(this[R],e)&&(this[R][e]=!1),V(this,e,w(1,n))};return o&&K&&V(q,e,{configurable:!0,set:t}),H(e)},s(O[N],"toString",function(){return this._k}),E.f=Z,C.f=G,n(126).f=S.f=Q,n(123).f=$,n(122).f=ee,o&&!n(100)&&s(q,"propertyIsEnumerable",$,!0),d.f=function(e){return H(h(e))}),a(a.G+a.W+a.F*!U,{Symbol:O});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ne=0;te.length>ne;)h(te[ne++]);for(var te=A(h.store),ne=0;te.length>ne;)m(te[ne++]);a(a.S+a.F*!U,"Symbol",{for:function(e){return i(B,e+="")?B[e]:B[e]=O(e)},keyFor:function(e){if(J(e))return v(B,e);throw TypeError(e+" is not a symbol!")},useSetter:function(){K=!0},useSimple:function(){K=!1}}),a(a.S+a.F*!U,"Object",{create:Y,defineProperty:G,defineProperties:X,getOwnPropertyDescriptor:Z,getOwnPropertyNames:Q,getOwnPropertySymbols:ee}),P&&a(a.S+a.F*(!U||c(function(){var e=O();return"[null]"!=I([e])||"{}"!=I({a:e})||"{}"!=I(Object(e))})),"JSON",{stringify:function(e){if(void 0!==e&&!J(e)){for(var t,n,r=[e],i=1;arguments.length>i;)r.push(arguments[i++]);return t=r[1],"function"==typeof t&&(n=t),!n&&g(t)||(t=function(e,t){if(n&&(t=n.call(this,e,t)),!J(t))return t}),r[1]=t,I.apply(P,r)}}}),O[N][j]||n(84)(O[N],j,O[N].valueOf),p(O,"Symbol"),p(Math,"Math",!0),p(r.JSON,"JSON",!0)},function(e,t,n){var r=n(78)("meta"),i=n(87),o=n(67),a=n(85).f,s=0,u=Object.isExtensible||function(){return!0},c=!n(90)(function(){return u(Object.preventExtensions({}))}),l=function(e){a(e,r,{value:{i:"O"+ ++s,w:{}}})},p=function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!o(e,r)){if(!u(e))return"F";if(!t)return"E";l(e)}return e[r].i},f=function(e,t){if(!o(e,r)){if(!u(e))return!0;if(!t)return!1;l(e)}return e[r].w},h=function(e){return c&&d.NEED&&u(e)&&!o(e,r)&&l(e),e},d=e.exports={KEY:r,NEED:!1,fastKey:p,getWeak:f,onFreeze:h}},function(e,t,n){var r=n(77),i=n(59),o=n(100),a=n(114),s=n(85).f;e.exports=function(e){var t=i.Symbol||(i.Symbol=o?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:a.f(e)})}},function(e,t,n){var r=n(65),i=n(68);e.exports=function(e,t){for(var n,o=i(e),a=r(o),s=a.length,u=0;s>u;)if(o[n=a[u++]]===t)return n}},function(e,t,n){var r=n(65),i=n(122),o=n(123);e.exports=function(e){var t=r(e),n=i.f;if(n)for(var a,s=n(e),u=o.f,c=0;s.length>c;)u.call(e,a=s[c++])&&t.push(a);return t}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var r=n(70);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(68),i=n(126).f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){try{return i(e)}catch(e){return a.slice()}};e.exports.f=function(e){return a&&"[object Window]"==o.call(e)?s(e):i(r(e))}},function(e,t,n){var r=n(66),i=n(79).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},function(e,t,n){var r=n(123),i=n(93),o=n(68),a=n(92),s=n(67),u=n(88),c=Object.getOwnPropertyDescriptor;t.f=n(89)?c:function(e,t){if(e=o(e),t=a(t,!0),u)try{return c(e,t)}catch(e){}if(s(e,t))return i(!r.f.call(e,t),e[t])}},function(e,t){},function(e,t,n){n(119)("asyncIterator")},function(e,t,n){n(119)("observable")},function(e,t,n){(function(t){/*! - * @description Recursive object extending - * @author Viacheslav Lotsmanov - * @license MIT - * - * The MIT License (MIT) - * - * Copyright (c) 2013-2015 Viacheslav Lotsmanov - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ -"use strict";function n(e){return e instanceof t||e instanceof Date||e instanceof RegExp}function r(e){if(e instanceof t){var n=new t(e.length);return e.copy(n),n}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e);throw new Error("Unexpected situation")}function i(e){var t=[];return e.forEach(function(e,a){"object"==typeof e&&null!==e?Array.isArray(e)?t[a]=i(e):n(e)?t[a]=r(e):t[a]=o({},e):t[a]=e}),t}var o=e.exports=function(){if(arguments.length<1||"object"!=typeof arguments[0])return!1;if(arguments.length<2)return arguments[0];var e,t,a=arguments[0],s=Array.prototype.slice.call(arguments,1);return s.forEach(function(s){"object"!=typeof s||Array.isArray(s)||Object.keys(s).forEach(function(u){return t=a[u],e=s[u],e===a?void 0:"object"!=typeof e||null===e?void(a[u]=e):Array.isArray(e)?void(a[u]=i(e)):n(e)?void(a[u]=r(e)):"object"!=typeof t||null===t||Array.isArray(t)?void(a[u]=o({},e)):void(a[u]=o(t,e))})}),a}}).call(t,n(132).Buffer)},function(e,t,n){(function(e){/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -"use strict";function r(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}function i(){return a.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function o(e,t){if(i()=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function v(e){return+e!=e&&(e=0),a.alloc(+e)}function y(e,t){if(a.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return V(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return G(e).length;default:if(r)return V(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,t>>>=0,n<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return I(this,t,n);case"utf8":case"utf-8":return D(this,t,n);case"ascii":return O(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return T(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function _(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function b(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=a.from(t,r)),a.isBuffer(t))return 0===t.length?-1:x(e,t,n,r,i);if("number"==typeof t)return t&=255,a.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):x(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function x(e,t,n,r,i){function o(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}var a=1,s=e.length,u=t.length;if(void 0!==r&&(r=String(r).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,n/=2}var c;if(i){var l=-1;for(c=n;cs&&(n=s-u),c=n;c>=0;c--){for(var p=!0,f=0;fi&&(r=i)):r=i;var o=t.length;if(o%2!==0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var a=0;a239?4:o>223?3:o>191?2:1;if(i+s<=n){var u,c,l,p;switch(s){case 1:o<128&&(a=o);break;case 2:u=e[i+1],128===(192&u)&&(p=(31&o)<<6|63&u,p>127&&(a=p));break;case 3:u=e[i+1],c=e[i+2],128===(192&u)&&128===(192&c)&&(p=(15&o)<<12|(63&u)<<6|63&c,p>2047&&(p<55296||p>57343)&&(a=p));break;case 4:u=e[i+1],c=e[i+2],l=e[i+3],128===(192&u)&&128===(192&c)&&128===(192&l)&&(p=(15&o)<<18|(63&u)<<12|(63&c)<<6|63&l,p>65535&&p<1114112&&(a=p))}}null===a?(a=65533,s=1):a>65535&&(a-=65536,r.push(a>>>10&1023|55296),a=56320|1023&a),r.push(a),i+=s}return M(r)}function M(e){var t=e.length;if(t<=ee)return String.fromCharCode.apply(String,e);for(var n="",r=0;rr)&&(n=r);for(var i="",o=t;on)throw new RangeError("Trying to access beyond buffer length")}function j(e,t,n,r,i,o){if(!a.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function F(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-n,2);i>>8*(r?i:1-i)}function B(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-n,4);i>>8*(r?i:3-i)&255}function L(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function z(e,t,n,r,i){return i||L(e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38),Z.write(e,t,n,r,23,4),n+4}function q(e,t,n,r,i){return i||L(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308),Z.write(e,t,n,r,52,8),n+8}function U(e){if(e=W(e).replace(te,""),e.length<2)return"";for(;e.length%4!==0;)e+="=";return e}function W(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function K(e){return e<16?"0"+e.toString(16):e.toString(16)}function V(e,t){t=t||1/0;for(var n,r=e.length,i=null,o=[],a=0;a55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=(i-55296<<10|n-56320)+65536}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function H(e){for(var t=[],n=0;n>8,i=n%256,o.push(i),o.push(r);return o}function G(e){return $.toByteArray(U(e))}function X(e,t,n,r){for(var i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function Y(e){return e!==e}var $=n(133),Z=n(134),Q=n(135);t.Buffer=a,t.SlowBuffer=v,t.INSPECT_MAX_BYTES=50,a.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:r(),t.kMaxLength=i(),a.poolSize=8192,a._augment=function(e){return e.__proto__=a.prototype,e},a.from=function(e,t,n){return s(null,e,t,n)},a.TYPED_ARRAY_SUPPORT&&(a.prototype.__proto__=Uint8Array.prototype,a.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&a[Symbol.species]===a&&Object.defineProperty(a,Symbol.species,{value:null,configurable:!0})),a.alloc=function(e,t,n){return c(null,e,t,n)},a.allocUnsafe=function(e){return l(null,e)},a.allocUnsafeSlow=function(e){return l(null,e)},a.isBuffer=function(e){return!(null==e||!e._isBuffer)},a.compare=function(e,t){if(!a.isBuffer(e)||!a.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,o=Math.min(n,r);i0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},a.prototype.compare=function(e,t,n,r,i){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;for(var o=i-r,s=n-t,u=Math.min(o,s),c=this.slice(r,i),l=e.slice(t,n),p=0;pi)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return w(this,e,t,n);case"utf8":case"utf-8":return k(this,e,t,n);case"ascii":return S(this,e,t,n);case"latin1":case"binary":return E(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var ee=4096;a.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t0&&(i*=256);)r+=this[e+--t]*i;return r},a.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},a.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},a.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},a.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],i=1,o=0;++o=i&&(r-=Math.pow(2,8*t)),r},a.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=t,i=1,o=this[e+--r];r>0&&(i*=256);)o+=this[e+--r]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},a.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?(255-this[e]+1)*-1:this[e]},a.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},a.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},a.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},a.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},a.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),Z.read(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),Z.read(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),Z.read(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),Z.read(this,e,!1,52,8)},a.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t|=0,n|=0,!r){var i=Math.pow(2,8*n)-1;j(this,e,t,n,i,0)}var o=1,a=0;for(this[t]=255&e;++a=0&&(a*=256);)this[t+o]=e/a&255;return t+n},a.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,1,255,0),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},a.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):F(this,e,t,!0),t+2},a.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):F(this,e,t,!1),t+2},a.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):B(this,e,t,!0),t+4},a.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},a.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);j(this,e,t,n,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o>0)-s&255;return t+n},a.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);j(this,e,t,n,i-1,-i)}var o=n-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+n},a.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,1,127,-128),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},a.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):F(this,e,t,!0),t+2},a.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):F(this,e,t,!1),t+2},a.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):B(this,e,t,!0),t+4},a.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},a.prototype.writeFloatLE=function(e,t,n){return z(this,e,t,!0,n)},a.prototype.writeFloatBE=function(e,t,n){return z(this,e,t,!1,n)},a.prototype.writeDoubleLE=function(e,t,n){return q(this,e,t,!0,n)},a.prototype.writeDoubleBE=function(e,t,n){return q(this,e,t,!1,n)},a.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else if(o<1e3||!a.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var o;if("number"==typeof e)for(o=t;o0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function r(e){return 3*e.length/4-n(e)}function i(e){var t,r,i,o,a,s=e.length;o=n(e),a=new l(3*s/4-o),r=o>0?s-4:s;var u=0;for(t=0;t>16&255,a[u++]=i>>8&255,a[u++]=255&i;return 2===o?(i=c[e.charCodeAt(t)]<<2|c[e.charCodeAt(t+1)]>>4,a[u++]=255&i):1===o&&(i=c[e.charCodeAt(t)]<<10|c[e.charCodeAt(t+1)]<<4|c[e.charCodeAt(t+2)]>>2,a[u++]=i>>8&255,a[u++]=255&i),a}function o(e){return u[e>>18&63]+u[e>>12&63]+u[e>>6&63]+u[63&e]}function a(e,t,n){for(var r,i=[],a=t;al?l:c+s));return 1===r?(t=e[n-1],i+=u[t>>2],i+=u[t<<4&63],i+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],i+=u[t>>10],i+=u[t>>4&63],i+=u[t<<2&63],i+="="),o.push(i),o.join("")}t.byteLength=r,t.toByteArray=i,t.fromByteArray=s;for(var u=[],c=[],l="undefined"!=typeof Uint8Array?Uint8Array:Array,p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=0,h=p.length;f>1,l=-7,p=n?i-1:0,f=n?-1:1,h=e[t+p];for(p+=f,o=h&(1<<-l)-1,h>>=-l,l+=s;l>0;o=256*o+e[t+p],p+=f,l-=8);for(a=o&(1<<-l)-1,o>>=-l,l+=r;l>0;a=256*a+e[t+p],p+=f,l-=8);if(0===o)o=1-c;else{if(o===u)return a?NaN:(h?-1:1)*(1/0);a+=Math.pow(2,r),o-=c}return(h?-1:1)*a*Math.pow(2,o-r)},t.write=function(e,t,n,r,i,o){var a,s,u,c=8*o-i-1,l=(1<>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:o-1,d=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),t+=a+p>=1?f/u:f*Math.pow(2,1-p),t*u>=2&&(a++,u/=2),a+p>=l?(s=0,a=l):a+p>=1?(s=(t*u-1)*Math.pow(2,i),a+=p):(s=t*Math.pow(2,p-1)*Math.pow(2,i),a=0));i>=8;e[n+h]=255&s,h+=d,s/=256,i-=8);for(a=a<0;e[n+h]=255&a,h+=d,a/=256,c-=8);e[n+h-d]|=128*m}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){var r=[(0,P.systemThunkMiddleware)(n)],i=O.default.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||x.compose;return(0,x.createStore)(e,t,i(x.applyMiddleware.apply(void 0,r)))}function o(e,t){return(0,P.isObject)(e)&&!(0,P.isArray)(e)?e:(0,P.isFunc)(e)?o(e(t),t):(0,P.isArray)(e)?e.map(function(e){return o(e,t)}).reduce(a,{}):{}}function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!(0,P.isObject)(e))return{};if(!(0,P.isObject)(t))return e;var n=e.statePlugins;if((0,P.isObject)(n))for(var r in n){var i=n[r];if((0,P.isObject)(i)&&(0,P.isObject)(i.wrapActions)){var o=i.wrapActions;for(var a in o){var s=o[a];Array.isArray(s)||(s=[s],o[a]=s),t&&t.statePlugins&&t.statePlugins[r]&&t.statePlugins[r].wrapActions&&t.statePlugins[r].wrapActions[a]&&(t.statePlugins[r].wrapActions[a]=o[a].concat(t.statePlugins[r].wrapActions[a]))}}}return(0,E.default)(e,t)}function s(e){var t=(0,P.objMap)(e,function(e){return e.reducers});return u(t)}function u(e){var t=(0,f.default)(e).reduce(function(t,n){return t[n]=c(e[n]),t},{});return(0,f.default)(t).length?(0,C.combineReducers)(t):I}function c(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new w.Map,n=arguments[1];if(!e)return t;var r=e[n.type];return r?r(t,n):t}}function l(e,t,n){var r=i(e,t,n);return r}Object.defineProperty(t,"__esModule",{value:!0});var p=n(60),f=r(p),h=n(137),d=r(h),m=n(141),v=r(m),y=n(145),g=r(y),_=n(146),b=r(_),x=n(147),w=n(168),k=r(w),S=n(131),E=r(S),C=n(169),A=n(175),T=r(A),D=n(176),M=n(177),O=r(M),P=n(183),I=function(e){return e},N=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,g.default)(this,e),(0,E.default)(this,{state:{},plugins:[],system:{configs:{},fn:{},components:{},rootInjects:{},statePlugins:{}},boundSystem:{},toolbox:{}},t),this.getSystem=this._getSystem.bind(this),this.store=l(I,(0,w.fromJS)(this.state),this.getSystem),this.buildSystem(!1),this.register(this.plugins)}return(0,b.default)(e,[{key:"getStore",value:function(){return this.store}},{key:"register",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=o(e,this.getSystem());a(this.system,n),t&&this.buildSystem()}},{key:"buildSystem",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.getStore().dispatch,n=this.getStore().getState;this.boundSystem=(0,v.default)({},this.getRootInjects(),this.getWrappedAndBoundActions(t),this.getBoundSelectors(n,this.getSystem),this.getStateThunks(n),this.getFn(),this.getConfigs()),e&&this.rebuildReducer()}},{key:"_getSystem",value:function(){return this.boundSystem}},{key:"getRootInjects",value:function(){return(0,v.default)({getSystem:this.getSystem,getStore:this.getStore.bind(this),getComponents:this.getComponents.bind(this),getState:this.getStore().getState,getConfigs:this._getConfigs.bind(this),Im:k.default},this.system.rootInjects||{})}},{key:"_getConfigs",value:function(){return this.system.configs}},{key:"getConfigs",value:function(){return{configs:this.system.configs}}},{key:"setConfigs",value:function(e){this.system.configs=e}},{key:"rebuildReducer",value:function(){this.store.replaceReducer(s(this.system.statePlugins))}},{key:"getType",value:function(e){var t=e[0].toUpperCase()+e.slice(1);return(0,P.objReduce)(this.system.statePlugins,function(n,r){var i=n[e];if(i)return(0,d.default)({},r+t,i)})}},{key:"getSelectors",value:function(){return this.getType("selectors")}},{key:"getActions",value:function(){var e=this.getType("actions");return(0,P.objMap)(e,function(e){return(0,P.objReduce)(e,function(e,t){if((0,P.isFn)(e))return(0,d.default)({},t,e)})})}},{key:"getWrappedAndBoundActions",value:function(e){var t=this,n=this.getBoundActions(e);return(0,P.objMap)(n,function(e,n){var r=t.system.statePlugins[n.slice(0,-7)].wrapActions;return r?(0,P.objMap)(e,function(e,n){var i=r[n];return i?(Array.isArray(i)||(i=[i]),i.reduce(function(e,n){var r=function(){return n(e,t.getSystem()).apply(void 0,arguments)};if(!(0,P.isFn)(r))throw new TypeError("wrapActions needs to return a function that returns a new function (ie the wrapped action)");return r},e||Function.prototype)):e}):e})}},{key:"getStates",value:function(e){return(0,f.default)(this.system.statePlugins).reduce(function(t,n){return t[n]=e.get(n),t},{})}},{key:"getStateThunks",value:function(e){return(0,f.default)(this.system.statePlugins).reduce(function(t,n){return t[n]=function(){return e().get(n)},t},{})}},{key:"getFn",value:function(){return{fn:this.system.fn}}},{key:"getComponents",value:function(e){return"undefined"!=typeof e?this.system.components[e]:this.system.components}},{key:"getBoundSelectors",value:function(e,t){return(0,P.objMap)(this.getSelectors(),function(n,r){var i=[r.slice(0,-9)],o=function(){return e().getIn(i)};return(0,P.objMap)(n,function(e){return function(){for(var n=arguments.length,r=Array(n),i=0;ic;)for(var f,h=s(arguments[c++]),d=l?r(h).concat(l(h)):r(h),m=d.length,v=0;m>v;)p.call(h,f=d[v++])&&(n[f]=h[f]);return n}:u},function(e,t){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(138),o=r(i);t.default=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];if(u)throw u;for(var r=!1,o={},a=0;a>>0;if(""+n!==t||4294967295===n)return NaN;t=n}return t<0?d(e)+t:t}function v(){return!0}function y(e,t,n){return(0===e||void 0!==n&&e<=-n)&&(void 0===t||void 0!==n&&t>=n)}function g(e,t){return b(e,t,0)}function _(e,t){return b(e,t,t)}function b(e,t,n){return void 0===e?n:e<0?Math.max(0,t+e):void 0===t?e:Math.min(t,e)}function x(e){this.next=e}function w(e,t,n,r){var i=0===e?t:1===e?n:[t,n];return r?r.value=i:r={value:i,done:!1},r}function k(){return{value:void 0,done:!0}}function S(e){return!!A(e)}function E(e){return e&&"function"==typeof e.next}function C(e){var t=A(e);return t&&t.call(e)}function A(e){var t=e&&(kn&&e[kn]||e[Sn]);if("function"==typeof t)return t}function T(e){return e&&"number"==typeof e.length}function D(e){return null===e||void 0===e?B():o(e)?e.toSeq():q(e)}function M(e){return null===e||void 0===e?B().toKeyedSeq():o(e)?a(e)?e.toSeq():e.fromEntrySeq():L(e)}function O(e){return null===e||void 0===e?B():o(e)?a(e)?e.entrySeq():e.toIndexedSeq():z(e)}function P(e){return(null===e||void 0===e?B():o(e)?a(e)?e.entrySeq():e:z(e)).toSetSeq()}function I(e){this._array=e,this.size=e.length}function N(e){var t=Object.keys(e);this._object=e,this._keys=t,this.size=t.length}function R(e){this._iterable=e,this.size=e.length||e.size}function j(e){this._iterator=e,this._iteratorCache=[]}function F(e){return!(!e||!e[Cn])}function B(){return An||(An=new I([]))}function L(e){var t=Array.isArray(e)?new I(e).fromEntrySeq():E(e)?new j(e).fromEntrySeq():S(e)?new R(e).fromEntrySeq():"object"==typeof e?new N(e):void 0;if(!t)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+e);return t}function z(e){var t=U(e);if(!t)throw new TypeError("Expected Array or iterable object of values: "+e);return t}function q(e){var t=U(e)||"object"==typeof e&&new N(e);if(!t)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+e);return t}function U(e){return T(e)?new I(e):E(e)?new j(e):S(e)?new R(e):void 0}function W(e,t,n,r){var i=e._cache;if(i){for(var o=i.length-1,a=0;a<=o;a++){var s=i[n?o-a:a];if(t(s[1],r?s[0]:a,e)===!1)return a+1}return a}return e.__iterateUncached(t,n)}function K(e,t,n,r){var i=e._cache;if(i){var o=i.length-1,a=0;return new x(function(){var e=i[n?o-a:a];return a++>o?k():w(t,r?e[0]:a-1,e[1])})}return e.__iteratorUncached(t,n)}function V(e,t){return t?H(t,e,"",{"":e}):J(e)}function H(e,t,n,r){return Array.isArray(t)?e.call(r,n,O(t).map(function(n,r){return H(e,n,r,t)})):G(t)?e.call(r,n,M(t).map(function(n,r){return H(e,n,r,t)})):t}function J(e){return Array.isArray(e)?O(e).map(J).toList():G(e)?M(e).map(J).toMap():e}function G(e){return e&&(e.constructor===Object||void 0===e.constructor)}function X(e,t){if(e===t||e!==e&&t!==t)return!0;if(!e||!t)return!1;if("function"==typeof e.valueOf&&"function"==typeof t.valueOf){if(e=e.valueOf(),t=t.valueOf(),e===t||e!==e&&t!==t)return!0;if(!e||!t)return!1}return!("function"!=typeof e.equals||"function"!=typeof t.equals||!e.equals(t))}function Y(e,t){if(e===t)return!0;if(!o(t)||void 0!==e.size&&void 0!==t.size&&e.size!==t.size||void 0!==e.__hash&&void 0!==t.__hash&&e.__hash!==t.__hash||a(e)!==a(t)||s(e)!==s(t)||c(e)!==c(t))return!1;if(0===e.size&&0===t.size)return!0;var n=!u(e);if(c(e)){var r=e.entries();return t.every(function(e,t){var i=r.next().value;return i&&X(i[1],e)&&(n||X(i[0],t))})&&r.next().done}var i=!1;if(void 0===e.size)if(void 0===t.size)"function"==typeof e.cacheResult&&e.cacheResult();else{i=!0;var l=e;e=t,t=l}var p=!0,f=t.__iterate(function(t,r){if(n?!e.has(t):i?!X(t,e.get(r,yn)):!X(e.get(r,yn),t))return p=!1,!1});return p&&e.size===f}function $(e,t){if(!(this instanceof $))return new $(e,t);if(this._value=e,this.size=void 0===t?1/0:Math.max(0,t),0===this.size){if(Tn)return Tn;Tn=this}}function Z(e,t){if(!e)throw new Error(t)}function Q(e,t,n){if(!(this instanceof Q))return new Q(e,t,n);if(Z(0!==n,"Cannot step a Range by 0"),e=e||0,void 0===t&&(t=1/0),n=void 0===n?1:Math.abs(n),t>>1&1073741824|3221225471&e}function oe(e){if(e===!1||null===e||void 0===e)return 0;if("function"==typeof e.valueOf&&(e=e.valueOf(),e===!1||null===e||void 0===e))return 0;if(e===!0)return 1;var t=typeof e;if("number"===t){if(e!==e||e===1/0)return 0;var n=0|e;for(n!==e&&(n^=4294967295*e);e>4294967295;)e/=4294967295,n^=e;return ie(n)}if("string"===t)return e.length>Fn?ae(e):se(e);if("function"==typeof e.hashCode)return e.hashCode();if("object"===t)return ue(e);if("function"==typeof e.toString)return se(e.toString());throw new Error("Value type "+t+" cannot be hashed.")}function ae(e){var t=zn[e];return void 0===t&&(t=se(e),Ln===Bn&&(Ln=0,zn={}),Ln++,zn[e]=t),t}function se(e){for(var t=0,n=0;n0)switch(e.nodeType){case 1:return e.uniqueID;case 9:return e.documentElement&&e.documentElement.uniqueID}}function le(e){Z(e!==1/0,"Cannot perform this action with an infinite size.")}function pe(e){return null===e||void 0===e?we():fe(e)&&!c(e)?e:we().withMutations(function(t){var r=n(e);le(r.size),r.forEach(function(e,n){return t.set(n,e)})})}function fe(e){return!(!e||!e[qn])}function he(e,t){this.ownerID=e,this.entries=t}function de(e,t,n){this.ownerID=e,this.bitmap=t,this.nodes=n}function me(e,t,n){this.ownerID=e,this.count=t,this.nodes=n}function ve(e,t,n){this.ownerID=e,this.keyHash=t,this.entries=n}function ye(e,t,n){this.ownerID=e,this.keyHash=t,this.entry=n}function ge(e,t,n){this._type=t,this._reverse=n,this._stack=e._root&&be(e._root)}function _e(e,t){return w(e,t[0],t[1])}function be(e,t){return{node:e,index:0,__prev:t}}function xe(e,t,n,r){var i=Object.create(Un);return i.size=e,i._root=t,i.__ownerID=n,i.__hash=r,i.__altered=!1,i}function we(){return Wn||(Wn=xe(0))}function ke(e,t,n){var r,i;if(e._root){var o=l(gn),a=l(_n);if(r=Se(e._root,e.__ownerID,0,void 0,t,n,o,a),!a.value)return e;i=e.size+(o.value?n===yn?-1:1:0)}else{if(n===yn)return e;i=1,r=new he(e.__ownerID,[[t,n]])}return e.__ownerID?(e.size=i,e._root=r,e.__hash=void 0,e.__altered=!0,e):r?xe(i,r):we()}function Se(e,t,n,r,i,o,a,s){return e?e.update(t,n,r,i,o,a,s):o===yn?e:(p(s),p(a),new ye(t,r,[i,o]))}function Ee(e){return e.constructor===ye||e.constructor===ve}function Ce(e,t,n,r,i){if(e.keyHash===r)return new ve(t,r,[e.entry,i]);var o,a=(0===n?e.keyHash:e.keyHash>>>n)&vn,s=(0===n?r:r>>>n)&vn,u=a===s?[Ce(e,t,n+dn,r,i)]:(o=new ye(t,r,i),a>>=1)a[s]=1&n?t[o++]:void 0;return a[r]=i,new me(e,o+1,a)}function Me(e,t,r){for(var i=[],a=0;a>1&1431655765,e=(858993459&e)+(e>>2&858993459),e=e+(e>>4)&252645135,e+=e>>8,e+=e>>16,127&e}function je(e,t,n,r){var i=r?e:h(e);return i[t]=n,i}function Fe(e,t,n,r){var i=e.length+1;if(r&&t+1===i)return e[t]=n,e;for(var o=new Array(i),a=0,s=0;s0&&io?0:o-n,c=a-n;return c>mn&&(c=mn),function(){if(i===c)return Yn;var e=t?--c:i++;return r&&r[e]}}function i(e,r,i){var s,u=e&&e.array,c=i>o?0:o-i>>r,l=(a-i>>r)+1;return l>mn&&(l=mn),function(){for(;;){if(s){var e=s();if(e!==Yn)return e;s=null}if(c===l)return Yn;var o=t?--l:c++;s=n(u&&u[o],r-dn,i+(o<=e.size||t<0)return e.withMutations(function(e){t<0?Xe(e,t).set(0,n):Xe(e,0,t+1).set(t,n)});t+=e._origin;var r=e._tail,i=e._root,o=l(_n);return t>=$e(e._capacity)?r=He(r,e.__ownerID,0,t,n,o):i=He(i,e.__ownerID,e._level,t,n,o),o.value?e.__ownerID?(e._root=i,e._tail=r,e.__hash=void 0,e.__altered=!0,e):We(e._origin,e._capacity,e._level,i,r):e}function He(e,t,n,r,i,o){var a=r>>>n&vn,s=e&&a0){var c=e&&e.array[a],l=He(c,t,n-dn,r,i,o);return l===c?e:(u=Je(e,t),u.array[a]=l,u)}return s&&e.array[a]===i?e:(p(o),u=Je(e,t),void 0===i&&a===u.array.length-1?u.array.pop():u.array[a]=i,u)}function Je(e,t){return t&&e&&t===e.ownerID?e:new qe(e?e.array.slice():[],t)}function Ge(e,t){if(t>=$e(e._capacity))return e._tail;if(t<1<0;)n=n.array[t>>>r&vn],r-=dn;return n}}function Xe(e,t,n){void 0!==t&&(t|=0),void 0!==n&&(n|=0);var r=e.__ownerID||new f,i=e._origin,o=e._capacity,a=i+t,s=void 0===n?o:n<0?o+n:i+n;if(a===i&&s===o)return e;if(a>=s)return e.clear();for(var u=e._level,c=e._root,l=0;a+l<0;)c=new qe(c&&c.array.length?[void 0,c]:[],r),u+=dn,l+=1<=1<p?new qe([],r):d;if(d&&h>p&&adn;y-=dn){var g=p>>>y&vn;v=v.array[g]=Je(v.array[g],r)}v.array[p>>>dn&vn]=d}if(s=h)a-=h,s-=h,u=dn,c=null,m=m&&m.removeBefore(r,0,a);else if(a>i||h>>u&vn;if(_!==h>>>u&vn)break;_&&(l+=(1<i&&(c=c.removeBefore(r,u,a-l)),c&&ha&&(a=c.size),o(u)||(c=c.map(function(e){return V(e)})),i.push(c)}return a>e.size&&(e=e.setSize(a)),Ie(e,t,i)}function $e(e){return e>>dn<=mn&&a.size>=2*o.size?(i=a.filter(function(e,t){return void 0!==e&&s!==t}),r=i.toKeyedSeq().map(function(e){return e[0]}).flip().toMap(),e.__ownerID&&(r.__ownerID=i.__ownerID=e.__ownerID)):(r=o.remove(t),i=s===a.size-1?a.pop():a.set(s,void 0))}else if(u){if(n===a.get(s)[1])return e;r=o,i=a.set(s,[t,n])}else r=o.set(t,a.size),i=a.set(a.size,[t,n]);return e.__ownerID?(e.size=r.size,e._map=r,e._list=i,e.__hash=void 0,e):et(r,i)}function rt(e,t){this._iter=e,this._useKeys=t,this.size=e.size}function it(e){this._iter=e,this.size=e.size}function ot(e){this._iter=e,this.size=e.size}function at(e){this._iter=e,this.size=e.size}function st(e){var t=Tt(e);return t._iter=e,t.size=e.size,t.flip=function(){return e},t.reverse=function(){var t=e.reverse.apply(this);return t.flip=function(){return e.reverse()},t},t.has=function(t){return e.includes(t)},t.includes=function(t){return e.has(t)},t.cacheResult=Dt,t.__iterateUncached=function(t,n){var r=this;return e.__iterate(function(e,n){return t(n,e,r)!==!1},n)},t.__iteratorUncached=function(t,n){if(t===wn){var r=e.__iterator(t,n);return new x(function(){var e=r.next();if(!e.done){var t=e.value[0];e.value[0]=e.value[1],e.value[1]=t}return e})}return e.__iterator(t===xn?bn:xn,n)},t}function ut(e,t,n){var r=Tt(e);return r.size=e.size,r.has=function(t){return e.has(t)},r.get=function(r,i){var o=e.get(r,yn);return o===yn?i:t.call(n,o,r,e)},r.__iterateUncached=function(r,i){var o=this;return e.__iterate(function(e,i,a){return r(t.call(n,e,i,a),i,o)!==!1},i)},r.__iteratorUncached=function(r,i){var o=e.__iterator(wn,i);return new x(function(){var i=o.next();if(i.done)return i;var a=i.value,s=a[0];return w(r,s,t.call(n,a[1],s,e),i)})},r}function ct(e,t){var n=Tt(e);return n._iter=e,n.size=e.size,n.reverse=function(){return e},e.flip&&(n.flip=function(){var t=st(e);return t.reverse=function(){return e.flip()},t}),n.get=function(n,r){return e.get(t?n:-1-n,r)},n.has=function(n){return e.has(t?n:-1-n)},n.includes=function(t){return e.includes(t)},n.cacheResult=Dt,n.__iterate=function(t,n){var r=this;return e.__iterate(function(e,n){return t(e,n,r)},!n)},n.__iterator=function(t,n){return e.__iterator(t,!n)},n}function lt(e,t,n,r){var i=Tt(e);return r&&(i.has=function(r){var i=e.get(r,yn);return i!==yn&&!!t.call(n,i,r,e)},i.get=function(r,i){var o=e.get(r,yn);return o!==yn&&t.call(n,o,r,e)?o:i}),i.__iterateUncached=function(i,o){var a=this,s=0;return e.__iterate(function(e,o,u){if(t.call(n,e,o,u))return s++,i(e,r?o:s-1,a)},o),s},i.__iteratorUncached=function(i,o){var a=e.__iterator(wn,o),s=0;return new x(function(){for(;;){var o=a.next();if(o.done)return o;var u=o.value,c=u[0],l=u[1];if(t.call(n,l,c,e))return w(i,r?c:s++,l,o)}})},i}function pt(e,t,n){var r=pe().asMutable();return e.__iterate(function(i,o){r.update(t.call(n,i,o,e),0,function(e){return e+1})}),r.asImmutable()}function ft(e,t,n){var r=a(e),i=(c(e)?Ze():pe()).asMutable();e.__iterate(function(o,a){i.update(t.call(n,o,a,e),function(e){return e=e||[],e.push(r?[a,o]:o),e})});var o=At(e);return i.map(function(t){return St(e,o(t))})}function ht(e,t,n,r){var i=e.size;if(void 0!==t&&(t|=0),void 0!==n&&(n===1/0?n=i:n|=0),y(t,n,i))return e;var o=g(t,i),a=_(n,i);if(o!==o||a!==a)return ht(e.toSeq().cacheResult(),t,n,r);var s,u=a-o;u===u&&(s=u<0?0:u);var c=Tt(e);return c.size=0===s?s:e.size&&s||void 0,!r&&F(e)&&s>=0&&(c.get=function(t,n){return t=m(this,t),t>=0&&ts)return k();var e=i.next();return r||t===xn?e:t===bn?w(t,u-1,void 0,e):w(t,u-1,e.value[1],e)})},c}function dt(e,t,n){var r=Tt(e);return r.__iterateUncached=function(r,i){var o=this;if(i)return this.cacheResult().__iterate(r,i);var a=0;return e.__iterate(function(e,i,s){return t.call(n,e,i,s)&&++a&&r(e,i,o)}),a},r.__iteratorUncached=function(r,i){var o=this;if(i)return this.cacheResult().__iterator(r,i);var a=e.__iterator(wn,i),s=!0;return new x(function(){if(!s)return k();var e=a.next();if(e.done)return e;var i=e.value,u=i[0],c=i[1];return t.call(n,c,u,o)?r===wn?e:w(r,u,c,e):(s=!1,k())})},r}function mt(e,t,n,r){var i=Tt(e);return i.__iterateUncached=function(i,o){var a=this;if(o)return this.cacheResult().__iterate(i,o);var s=!0,u=0;return e.__iterate(function(e,o,c){if(!s||!(s=t.call(n,e,o,c)))return u++,i(e,r?o:u-1,a)}),u},i.__iteratorUncached=function(i,o){var a=this;if(o)return this.cacheResult().__iterator(i,o);var s=e.__iterator(wn,o),u=!0,c=0;return new x(function(){var e,o,l;do{if(e=s.next(),e.done)return r||i===xn?e:i===bn?w(i,c++,void 0,e):w(i,c++,e.value[1],e);var p=e.value;o=p[0],l=p[1],u&&(u=t.call(n,l,o,a))}while(u);return i===wn?e:w(i,o,l,e)})},i}function vt(e,t){var r=a(e),i=[e].concat(t).map(function(e){return o(e)?r&&(e=n(e)):e=r?L(e):z(Array.isArray(e)?e:[e]),e}).filter(function(e){return 0!==e.size});if(0===i.length)return e;if(1===i.length){var u=i[0];if(u===e||r&&a(u)||s(e)&&s(u))return u}var c=new I(i);return r?c=c.toKeyedSeq():s(e)||(c=c.toSetSeq()),c=c.flatten(!0),c.size=i.reduce(function(e,t){if(void 0!==e){var n=t.size;if(void 0!==n)return e+n}},0),c}function yt(e,t,n){var r=Tt(e);return r.__iterateUncached=function(r,i){function a(e,c){var l=this;e.__iterate(function(e,i){return(!t||c0}function kt(e,n,r){var i=Tt(e);return i.size=new I(r).map(function(e){return e.size}).min(),i.__iterate=function(e,t){for(var n,r=this.__iterator(xn,t),i=0;!(n=r.next()).done&&e(n.value,i++,this)!==!1;);return i},i.__iteratorUncached=function(e,i){var o=r.map(function(e){return e=t(e),C(i?e.reverse():e)}),a=0,s=!1;return new x(function(){var t;return s||(t=o.map(function(e){return e.next()}),s=t.some(function(e){return e.done})),s?k():w(e,a++,n.apply(null,t.map(function(e){return e.value})))})},i}function St(e,t){return F(e)?t:e.constructor(t)}function Et(e){if(e!==Object(e))throw new TypeError("Expected [K, V] tuple: "+e)}function Ct(e){return le(e.size),d(e)}function At(e){return a(e)?n:s(e)?r:i}function Tt(e){return Object.create((a(e)?M:s(e)?O:P).prototype)}function Dt(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):D.prototype.cacheResult.call(this)}function Mt(e,t){return e>t?1:et?-1:0}function on(e){if(e.size===1/0)return 0;var t=c(e),n=a(e),r=t?1:0,i=e.__iterate(n?t?function(e,t){r=31*r+sn(oe(e),oe(t))|0}:function(e,t){r=r+sn(oe(e),oe(t))|0}:t?function(e){r=31*r+oe(e)|0}:function(e){r=r+oe(e)|0});return an(i,r)}function an(e,t){return t=On(t,3432918353),t=On(t<<15|t>>>-15,461845907),t=On(t<<13|t>>>-13,5),t=(t+3864292196|0)^e,t=On(t^t>>>16,2246822507),t=On(t^t>>>13,3266489909),t=ie(t^t>>>16)}function sn(e,t){return e^t+2654435769+(e<<6)+(e>>2)|0}var un=Array.prototype.slice;e(n,t),e(r,t),e(i,t),t.isIterable=o,t.isKeyed=a,t.isIndexed=s,t.isAssociative=u,t.isOrdered=c,t.Keyed=n,t.Indexed=r,t.Set=i;var cn="@@__IMMUTABLE_ITERABLE__@@",ln="@@__IMMUTABLE_KEYED__@@",pn="@@__IMMUTABLE_INDEXED__@@",fn="@@__IMMUTABLE_ORDERED__@@",hn="delete",dn=5,mn=1<r?k():w(e,i,n[t?r-i++:i++])})},e(N,M),N.prototype.get=function(e,t){return void 0===t||this.has(e)?this._object[e]:t},N.prototype.has=function(e){return this._object.hasOwnProperty(e)},N.prototype.__iterate=function(e,t){for(var n=this._object,r=this._keys,i=r.length-1,o=0;o<=i;o++){var a=r[t?i-o:o];if(e(n[a],a,this)===!1)return o+1}return o},N.prototype.__iterator=function(e,t){var n=this._object,r=this._keys,i=r.length-1,o=0;return new x(function(){var a=r[t?i-o:o];return o++>i?k():w(e,a,n[a])})},N.prototype[fn]=!0, -e(R,O),R.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);var n=this._iterable,r=C(n),i=0;if(E(r))for(var o;!(o=r.next()).done&&e(o.value,i++,this)!==!1;);return i},R.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var n=this._iterable,r=C(n);if(!E(r))return new x(k);var i=0;return new x(function(){var t=r.next();return t.done?t:w(e,i++,t.value)})},e(j,O),j.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);for(var n=this._iterator,r=this._iteratorCache,i=0;i=r.length){var t=n.next();if(t.done)return t;r[i]=t.value}return w(e,i,r[i++])})};var An;e($,O),$.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},$.prototype.get=function(e,t){return this.has(e)?this._value:t},$.prototype.includes=function(e){return X(this._value,e)},$.prototype.slice=function(e,t){var n=this.size;return y(e,t,n)?this:new $(this._value,_(t,n)-g(e,n))},$.prototype.reverse=function(){return this},$.prototype.indexOf=function(e){return X(this._value,e)?0:-1},$.prototype.lastIndexOf=function(e){return X(this._value,e)?this.size:-1},$.prototype.__iterate=function(e,t){for(var n=0;n=0&&t=0&&nn?k():w(e,o++,a)})},Q.prototype.equals=function(e){return e instanceof Q?this._start===e._start&&this._end===e._end&&this._step===e._step:Y(this,e)};var Dn;e(ee,t),e(te,ee),e(ne,ee),e(re,ee),ee.Keyed=te,ee.Indexed=ne,ee.Set=re;var Mn,On="function"==typeof Math.imul&&Math.imul(4294967295,2)===-2?Math.imul:function(e,t){e|=0,t|=0;var n=65535&e,r=65535&t;return n*r+((e>>>16)*r+n*(t>>>16)<<16>>>0)|0},Pn=Object.isExtensible,In=function(){try{return Object.defineProperty({},"@",{}),!0}catch(e){return!1}}(),Nn="function"==typeof WeakMap;Nn&&(Mn=new WeakMap);var Rn=0,jn="__immutablehash__";"function"==typeof Symbol&&(jn=Symbol(jn));var Fn=16,Bn=255,Ln=0,zn={};e(pe,te),pe.of=function(){var e=un.call(arguments,0);return we().withMutations(function(t){for(var n=0;n=e.length)throw new Error("Missing value for key: "+e[n]);t.set(e[n],e[n+1])}})},pe.prototype.toString=function(){return this.__toString("Map {","}")},pe.prototype.get=function(e,t){return this._root?this._root.get(0,void 0,e,t):t},pe.prototype.set=function(e,t){return ke(this,e,t)},pe.prototype.setIn=function(e,t){return this.updateIn(e,yn,function(){return t})},pe.prototype.remove=function(e){return ke(this,e,yn)},pe.prototype.deleteIn=function(e){return this.updateIn(e,function(){return yn})},pe.prototype.update=function(e,t,n){return 1===arguments.length?e(this):this.updateIn([e],t,n)},pe.prototype.updateIn=function(e,t,n){n||(n=t,t=void 0);var r=Ne(this,Ot(e),t,n);return r===yn?void 0:r},pe.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):we()},pe.prototype.merge=function(){return Me(this,void 0,arguments)},pe.prototype.mergeWith=function(e){var t=un.call(arguments,1);return Me(this,e,t)},pe.prototype.mergeIn=function(e){var t=un.call(arguments,1);return this.updateIn(e,we(),function(e){return"function"==typeof e.merge?e.merge.apply(e,t):t[t.length-1]})},pe.prototype.mergeDeep=function(){return Me(this,Oe,arguments)},pe.prototype.mergeDeepWith=function(e){var t=un.call(arguments,1);return Me(this,Pe(e),t)},pe.prototype.mergeDeepIn=function(e){var t=un.call(arguments,1);return this.updateIn(e,we(),function(e){return"function"==typeof e.mergeDeep?e.mergeDeep.apply(e,t):t[t.length-1]})},pe.prototype.sort=function(e){return Ze(bt(this,e))},pe.prototype.sortBy=function(e,t){return Ze(bt(this,t,e))},pe.prototype.withMutations=function(e){var t=this.asMutable();return e(t),t.wasAltered()?t.__ensureOwner(this.__ownerID):this},pe.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new f)},pe.prototype.asImmutable=function(){return this.__ensureOwner()},pe.prototype.wasAltered=function(){return this.__altered},pe.prototype.__iterator=function(e,t){return new ge(this,e,t)},pe.prototype.__iterate=function(e,t){var n=this,r=0;return this._root&&this._root.iterate(function(t){return r++,e(t[1],t[0],n)},t),r},pe.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?xe(this.size,this._root,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},pe.isMap=fe;var qn="@@__IMMUTABLE_MAP__@@",Un=pe.prototype;Un[qn]=!0,Un[hn]=Un.remove,Un.removeIn=Un.deleteIn,he.prototype.get=function(e,t,n,r){for(var i=this.entries,o=0,a=i.length;o=Kn)return Ae(e,u,r,i);var d=e&&e===this.ownerID,m=d?u:h(u);return f?s?c===l-1?m.pop():m[c]=m.pop():m[c]=[r,i]:m.push([r,i]),d?(this.entries=m,this):new he(e,m)}},de.prototype.get=function(e,t,n,r){void 0===t&&(t=oe(n));var i=1<<((0===e?t:t>>>e)&vn),o=this.bitmap;return 0===(o&i)?r:this.nodes[Re(o&i-1)].get(e+dn,t,n,r)},de.prototype.update=function(e,t,n,r,i,o,a){void 0===n&&(n=oe(r));var s=(0===t?n:n>>>t)&vn,u=1<=Vn)return De(e,f,c,s,d);if(l&&!d&&2===f.length&&Ee(f[1^p]))return f[1^p];if(l&&d&&1===f.length&&Ee(d))return d;var m=e&&e===this.ownerID,v=l?d?c:c^u:c|u,y=l?d?je(f,p,d,m):Be(f,p,m):Fe(f,p,d,m);return m?(this.bitmap=v,this.nodes=y,this):new de(e,v,y)},me.prototype.get=function(e,t,n,r){void 0===t&&(t=oe(n));var i=(0===e?t:t>>>e)&vn,o=this.nodes[i];return o?o.get(e+dn,t,n,r):r},me.prototype.update=function(e,t,n,r,i,o,a){void 0===n&&(n=oe(r));var s=(0===t?n:n>>>t)&vn,u=i===yn,c=this.nodes,l=c[s];if(u&&!l)return this;var p=Se(l,e,t+dn,n,r,i,o,a);if(p===l)return this;var f=this.count;if(l){if(!p&&(f--,f=0&&e>>t&vn;if(r>=this.array.length)return new qe([],e);var i,o=0===r;if(t>0){var a=this.array[r];if(i=a&&a.removeBefore(e,t-dn,n),i===a&&o)return this}if(o&&!i)return this;var s=Je(this,e);if(!o)for(var u=0;u>>t&vn;if(r>=this.array.length)return this;var i;if(t>0){var o=this.array[r];if(i=o&&o.removeAfter(e,t-dn,n),i===o&&r===this.array.length-1)return this}var a=Je(this,e);return a.array.splice(r+1),i&&(a.array[r]=i),a};var Xn,Yn={};e(Ze,pe),Ze.of=function(){return this(arguments)},Ze.prototype.toString=function(){return this.__toString("OrderedMap {","}")},Ze.prototype.get=function(e,t){var n=this._map.get(e);return void 0!==n?this._list.get(n)[1]:t},Ze.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):tt()},Ze.prototype.set=function(e,t){return nt(this,e,t)},Ze.prototype.remove=function(e){return nt(this,e,yn)},Ze.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},Ze.prototype.__iterate=function(e,t){var n=this;return this._list.__iterate(function(t){return t&&e(t[1],t[0],n)},t)},Ze.prototype.__iterator=function(e,t){return this._list.fromEntrySeq().__iterator(e,t)},Ze.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map.__ensureOwner(e),n=this._list.__ensureOwner(e);return e?et(t,n,e,this.__hash):(this.__ownerID=e,this._map=t,this._list=n,this)},Ze.isOrderedMap=Qe,Ze.prototype[fn]=!0,Ze.prototype[hn]=Ze.prototype.remove;var $n;e(rt,M),rt.prototype.get=function(e,t){return this._iter.get(e,t)},rt.prototype.has=function(e){return this._iter.has(e)},rt.prototype.valueSeq=function(){return this._iter.valueSeq()},rt.prototype.reverse=function(){var e=this,t=ct(this,!0);return this._useKeys||(t.valueSeq=function(){return e._iter.toSeq().reverse()}),t},rt.prototype.map=function(e,t){var n=this,r=ut(this,e,t);return this._useKeys||(r.valueSeq=function(){return n._iter.toSeq().map(e,t)}),r},rt.prototype.__iterate=function(e,t){var n,r=this;return this._iter.__iterate(this._useKeys?function(t,n){return e(t,n,r)}:(n=t?Ct(this):0,function(i){return e(i,t?--n:n++,r)}),t)},rt.prototype.__iterator=function(e,t){if(this._useKeys)return this._iter.__iterator(e,t);var n=this._iter.__iterator(xn,t),r=t?Ct(this):0;return new x(function(){var i=n.next();return i.done?i:w(e,t?--r:r++,i.value,i)})},rt.prototype[fn]=!0,e(it,O),it.prototype.includes=function(e){return this._iter.includes(e)},it.prototype.__iterate=function(e,t){var n=this,r=0;return this._iter.__iterate(function(t){return e(t,r++,n)},t)},it.prototype.__iterator=function(e,t){var n=this._iter.__iterator(xn,t),r=0;return new x(function(){var t=n.next();return t.done?t:w(e,r++,t.value,t)})},e(ot,P),ot.prototype.has=function(e){return this._iter.includes(e)},ot.prototype.__iterate=function(e,t){var n=this;return this._iter.__iterate(function(t){return e(t,t,n)},t)},ot.prototype.__iterator=function(e,t){var n=this._iter.__iterator(xn,t);return new x(function(){var t=n.next();return t.done?t:w(e,t.value,t.value,t)})},e(at,M),at.prototype.entrySeq=function(){return this._iter.toSeq()},at.prototype.__iterate=function(e,t){var n=this;return this._iter.__iterate(function(t){if(t){Et(t);var r=o(t);return e(r?t.get(1):t[1],r?t.get(0):t[0],n)}},t)},at.prototype.__iterator=function(e,t){var n=this._iter.__iterator(xn,t);return new x(function(){for(;;){var t=n.next();if(t.done)return t;var r=t.value;if(r){Et(r);var i=o(r);return w(e,i?r.get(0):r[0],i?r.get(1):r[1],t)}}})},it.prototype.cacheResult=rt.prototype.cacheResult=ot.prototype.cacheResult=at.prototype.cacheResult=Dt,e(Pt,te),Pt.prototype.toString=function(){return this.__toString(Nt(this)+" {","}")},Pt.prototype.has=function(e){return this._defaultValues.hasOwnProperty(e)},Pt.prototype.get=function(e,t){if(!this.has(e))return t;var n=this._defaultValues[e];return this._map?this._map.get(e,n):n},Pt.prototype.clear=function(){if(this.__ownerID)return this._map&&this._map.clear(),this;var e=this.constructor;return e._empty||(e._empty=It(this,we()))},Pt.prototype.set=function(e,t){if(!this.has(e))throw new Error('Cannot set unknown key "'+e+'" on '+Nt(this));if(this._map&&!this._map.has(e)){var n=this._defaultValues[e];if(t===n)return this}var r=this._map&&this._map.set(e,t);return this.__ownerID||r===this._map?this:It(this,r)},Pt.prototype.remove=function(e){if(!this.has(e))return this;var t=this._map&&this._map.remove(e);return this.__ownerID||t===this._map?this:It(this,t)},Pt.prototype.wasAltered=function(){return this._map.wasAltered()},Pt.prototype.__iterator=function(e,t){var r=this;return n(this._defaultValues).map(function(e,t){return r.get(t)}).__iterator(e,t)},Pt.prototype.__iterate=function(e,t){var r=this;return n(this._defaultValues).map(function(e,t){return r.get(t)}).__iterate(e,t)},Pt.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map&&this._map.__ensureOwner(e);return e?It(this,t,e):(this.__ownerID=e,this._map=t,this)};var Zn=Pt.prototype;Zn[hn]=Zn.remove,Zn.deleteIn=Zn.removeIn=Un.removeIn,Zn.merge=Un.merge,Zn.mergeWith=Un.mergeWith,Zn.mergeIn=Un.mergeIn,Zn.mergeDeep=Un.mergeDeep,Zn.mergeDeepWith=Un.mergeDeepWith,Zn.mergeDeepIn=Un.mergeDeepIn,Zn.setIn=Un.setIn,Zn.update=Un.update,Zn.updateIn=Un.updateIn,Zn.withMutations=Un.withMutations,Zn.asMutable=Un.asMutable,Zn.asImmutable=Un.asImmutable,e(Ft,re),Ft.of=function(){return this(arguments)},Ft.fromKeys=function(e){return this(n(e).keySeq())},Ft.prototype.toString=function(){return this.__toString("Set {","}")},Ft.prototype.has=function(e){return this._map.has(e)},Ft.prototype.add=function(e){return Lt(this,this._map.set(e,!0))},Ft.prototype.remove=function(e){return Lt(this,this._map.remove(e))},Ft.prototype.clear=function(){return Lt(this,this._map.clear())},Ft.prototype.union=function(){var e=un.call(arguments,0);return e=e.filter(function(e){return 0!==e.size}),0===e.length?this:0!==this.size||this.__ownerID||1!==e.length?this.withMutations(function(t){for(var n=0;n=0;n--)t={value:arguments[n],next:t};return this.__ownerID?(this.size=e,this._head=t,this.__hash=void 0,this.__altered=!0,this):Gt(e,t)},Ht.prototype.pushAll=function(e){if(e=r(e),0===e.size)return this;le(e.size);var t=this.size,n=this._head;return e.reverse().forEach(function(e){t++,n={value:e,next:n}}),this.__ownerID?(this.size=t,this._head=n,this.__hash=void 0,this.__altered=!0,this):Gt(t,n)},Ht.prototype.pop=function(){return this.slice(1)},Ht.prototype.unshift=function(){return this.push.apply(this,arguments)},Ht.prototype.unshiftAll=function(e){return this.pushAll(e)},Ht.prototype.shift=function(){return this.pop.apply(this,arguments)},Ht.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Xt()},Ht.prototype.slice=function(e,t){if(y(e,t,this.size))return this;var n=g(e,this.size),r=_(t,this.size);if(r!==this.size)return ne.prototype.slice.call(this,e,t);for(var i=this.size-n,o=this._head;n--;)o=o.next;return this.__ownerID?(this.size=i,this._head=o,this.__hash=void 0,this.__altered=!0,this):Gt(i,o)},Ht.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?Gt(this.size,this._head,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},Ht.prototype.__iterate=function(e,t){if(t)return this.reverse().__iterate(e);for(var n=0,r=this._head;r&&e(r.value,n++,this)!==!1;)r=r.next;return n},Ht.prototype.__iterator=function(e,t){if(t)return this.reverse().__iterator(e);var n=0,r=this._head;return new x(function(){if(r){var t=r.value;return r=r.next,w(e,n++,t)}return k()})},Ht.isStack=Jt;var ir="@@__IMMUTABLE_STACK__@@",or=Ht.prototype;or[ir]=!0,or.withMutations=Un.withMutations,or.asMutable=Un.asMutable,or.asImmutable=Un.asImmutable,or.wasAltered=Un.wasAltered;var ar;t.Iterator=x,Yt(t,{toArray:function(){le(this.size);var e=new Array(this.size||0);return this.valueSeq().__iterate(function(t,n){e[n]=t}),e},toIndexedSeq:function(){return new it(this)},toJS:function(){return this.toSeq().map(function(e){return e&&"function"==typeof e.toJS?e.toJS():e}).__toJS()},toJSON:function(){return this.toSeq().map(function(e){return e&&"function"==typeof e.toJSON?e.toJSON():e}).__toJS()},toKeyedSeq:function(){return new rt(this,!0)},toMap:function(){return pe(this.toKeyedSeq())},toObject:function(){le(this.size);var e={};return this.__iterate(function(t,n){e[n]=t}),e},toOrderedMap:function(){return Ze(this.toKeyedSeq())},toOrderedSet:function(){return Ut(a(this)?this.valueSeq():this)},toSet:function(){return Ft(a(this)?this.valueSeq():this)},toSetSeq:function(){return new ot(this)},toSeq:function(){return s(this)?this.toIndexedSeq():a(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return Ht(a(this)?this.valueSeq():this)},toList:function(){return Le(a(this)?this.valueSeq():this)},toString:function(){return"[Iterable]"},__toString:function(e,t){return 0===this.size?e+t:e+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+t},concat:function(){var e=un.call(arguments,0);return St(this,vt(this,e))},includes:function(e){return this.some(function(t){return X(t,e)})},entries:function(){return this.__iterator(wn)},every:function(e,t){le(this.size);var n=!0;return this.__iterate(function(r,i,o){if(!e.call(t,r,i,o))return n=!1,!1}),n},filter:function(e,t){return St(this,lt(this,e,t,!0))},find:function(e,t,n){var r=this.findEntry(e,t);return r?r[1]:n},forEach:function(e,t){return le(this.size),this.__iterate(t?e.bind(t):e)},join:function(e){le(this.size),e=void 0!==e?""+e:",";var t="",n=!0;return this.__iterate(function(r){n?n=!1:t+=e,t+=null!==r&&void 0!==r?r.toString():""}),t},keys:function(){return this.__iterator(bn)},map:function(e,t){return St(this,ut(this,e,t))},reduce:function(e,t,n){le(this.size);var r,i;return arguments.length<2?i=!0:r=t,this.__iterate(function(t,o,a){i?(i=!1,r=t):r=e.call(n,r,t,o,a)}),r},reduceRight:function(e,t,n){var r=this.toKeyedSeq().reverse();return r.reduce.apply(r,arguments)},reverse:function(){return St(this,ct(this,!0))},slice:function(e,t){return St(this,ht(this,e,t,!0))},some:function(e,t){return!this.every(Qt(e),t)},sort:function(e){return St(this,bt(this,e))},values:function(){return this.__iterator(xn)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some(function(){return!0})},count:function(e,t){return d(e?this.toSeq().filter(e,t):this)},countBy:function(e,t){return pt(this,e,t)},equals:function(e){return Y(this,e)},entrySeq:function(){var e=this;if(e._cache)return new I(e._cache);var t=e.toSeq().map(Zt).toIndexedSeq();return t.fromEntrySeq=function(){return e.toSeq()},t},filterNot:function(e,t){return this.filter(Qt(e),t)},findEntry:function(e,t,n){var r=n;return this.__iterate(function(n,i,o){if(e.call(t,n,i,o))return r=[i,n],!1}),r},findKey:function(e,t){var n=this.findEntry(e,t);return n&&n[0]},findLast:function(e,t,n){return this.toKeyedSeq().reverse().find(e,t,n)},findLastEntry:function(e,t,n){return this.toKeyedSeq().reverse().findEntry(e,t,n)},findLastKey:function(e,t){return this.toKeyedSeq().reverse().findKey(e,t)},first:function(){return this.find(v)},flatMap:function(e,t){return St(this,gt(this,e,t))},flatten:function(e){return St(this,yt(this,e,!0))},fromEntrySeq:function(){return new at(this)},get:function(e,t){return this.find(function(t,n){return X(n,e)},void 0,t)},getIn:function(e,t){for(var n,r=this,i=Ot(e);!(n=i.next()).done;){var o=n.value;if(r=r&&r.get?r.get(o,yn):yn,r===yn)return t}return r},groupBy:function(e,t){return ft(this,e,t)},has:function(e){return this.get(e,yn)!==yn},hasIn:function(e){return this.getIn(e,yn)!==yn},isSubset:function(e){return e="function"==typeof e.includes?e:t(e),this.every(function(t){return e.includes(t)})},isSuperset:function(e){return e="function"==typeof e.isSubset?e:t(e),e.isSubset(this)},keyOf:function(e){return this.findKey(function(t){return X(t,e)})},keySeq:function(){return this.toSeq().map($t).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},lastKeyOf:function(e){return this.toKeyedSeq().reverse().keyOf(e)},max:function(e){return xt(this,e)},maxBy:function(e,t){return xt(this,t,e)},min:function(e){return xt(this,e?en(e):rn)},minBy:function(e,t){return xt(this,t?en(t):rn,e)},rest:function(){return this.slice(1)},skip:function(e){return this.slice(Math.max(0,e))},skipLast:function(e){return St(this,this.toSeq().reverse().skip(e).reverse())},skipWhile:function(e,t){return St(this,mt(this,e,t,!0))},skipUntil:function(e,t){return this.skipWhile(Qt(e),t)},sortBy:function(e,t){return St(this,bt(this,t,e))},take:function(e){return this.slice(0,Math.max(0,e))},takeLast:function(e){return St(this,this.toSeq().reverse().take(e).reverse())},takeWhile:function(e,t){return St(this,dt(this,e,t))},takeUntil:function(e,t){return this.takeWhile(Qt(e),t)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=on(this))}});var sr=t.prototype;sr[cn]=!0,sr[En]=sr.values,sr.__toJS=sr.toArray,sr.__toStringMapper=tn,sr.inspect=sr.toSource=function(){return this.toString()},sr.chain=sr.flatMap,sr.contains=sr.includes,Yt(n,{flip:function(){return St(this,st(this))},mapEntries:function(e,t){var n=this,r=0;return St(this,this.toSeq().map(function(i,o){return e.call(t,[o,i],r++,n)}).fromEntrySeq())},mapKeys:function(e,t){var n=this;return St(this,this.toSeq().flip().map(function(r,i){return e.call(t,r,i,n)}).flip())}});var ur=n.prototype;ur[ln]=!0,ur[En]=sr.entries,ur.__toJS=sr.toObject,ur.__toStringMapper=function(e,t){return JSON.stringify(t)+": "+tn(e)},Yt(r,{toKeyedSeq:function(){return new rt(this,!1)},filter:function(e,t){return St(this,lt(this,e,t,!1))},findIndex:function(e,t){var n=this.findEntry(e,t);return n?n[0]:-1},indexOf:function(e){var t=this.keyOf(e);return void 0===t?-1:t},lastIndexOf:function(e){var t=this.lastKeyOf(e);return void 0===t?-1:t},reverse:function(){return St(this,ct(this,!1))},slice:function(e,t){return St(this,ht(this,e,t,!1))},splice:function(e,t){var n=arguments.length;if(t=Math.max(0|t,0),0===n||2===n&&!t)return this;e=g(e,e<0?this.count():this.size);var r=this.slice(0,e);return St(this,1===n?r:r.concat(h(arguments,2),this.slice(e+t)))},findLastIndex:function(e,t){var n=this.findLastEntry(e,t);return n?n[0]:-1},first:function(){return this.get(0)},flatten:function(e){return St(this,yt(this,e,!1))},get:function(e,t){return e=m(this,e),e<0||this.size===1/0||void 0!==this.size&&e>this.size?t:this.find(function(t,n){return n===e},void 0,t)},has:function(e){return e=m(this,e),e>=0&&(void 0!==this.size?this.size===1/0||e0?"Unexpected "+(1===a.length?"property":"properties")+' "'+a.join('", "')+'" found in '+i+'. Expected to find one of the known reducer property names instead: "'+r.join('", "')+'". Unexpected properties will be ignored.':null; -},e.exports=t.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){if(void 0===e)throw new Error('Reducer "'+t+'" returned undefined when handling "'+n.type+'" action. To ignore an action, you must explicitly return the previous state.');return null},e.exports=t.default},function(e,t){"use strict";function n(e,t){var r;return r=Array.isArray(e)?[]:{},t.push(e),Object.keys(e).forEach(function(i){var o=e[i];if("function"!=typeof o)return o&&"object"==typeof o?t.indexOf(e[i])===-1?void(r[i]=n(e[i],t.slice(0))):void(r[i]="[Circular]"):void(r[i]=o)}),r}e.exports=function(e){if("object"==typeof e){var t=n(e,[]);return"string"==typeof e.name&&(t.name=e.name),"string"==typeof e.message&&(t.message=e.message),"string"==typeof e.stack&&(t.stack=e.stack),t}return"function"==typeof e?"[Function: "+(e.name||"anonymous")+"]":e}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){return{type:p,payload:{action:t,error:(0,l.default)(e)}}}function o(e){return{type:f,payload:e}}function a(e){return{type:h,payload:e}}function s(e){return{type:d,payload:e}}function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{type:m,payload:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.CLEAR=t.NEW_AUTH_ERR=t.NEW_SPEC_ERR=t.NEW_THROWN_ERR_BATCH=t.NEW_THROWN_ERR=void 0,t.newThrownErr=i,t.newThrownErrBatch=o,t.newSpecErr=a,t.newAuthErr=s,t.clear=u;var c=n(175),l=r(c),p=t.NEW_THROWN_ERR="err_new_thrown_err",f=t.NEW_THROWN_ERR_BATCH="err_new_thrown_err_batch",h=t.NEW_SPEC_ERR="err_new_spec_err",d=t.NEW_AUTH_ERR="err_new_auth_err",m=t.CLEAR="err_clear"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){var e={location:{},history:{},open:function(){},close:function(){},File:function(){}};if("undefined"==typeof window)return e;try{e=window;var t=["File","Blob","FormData"],n=!0,r=!1,i=void 0;try{for(var o,s=(0,a.default)(t);!(n=(o=s.next()).done);n=!0){var u=o.value;u in window&&(e[u]=window[u])}}catch(e){r=!0,i=e}finally{try{!n&&s.return&&s.return()}finally{if(r)throw i}}}catch(e){console.error(e)}return e}var o=n(178),a=r(o);e.exports=i()},function(e,t,n){e.exports={default:n(179),__esModule:!0}},function(e,t,n){n(110),n(97),e.exports=n(180)},function(e,t,n){var r=n(86),i=n(181);e.exports=n(59).getIterator=function(e){var t=i(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return r(t.call(e))}},function(e,t,n){var r=n(182),i=n(108)("iterator"),o=n(102);e.exports=n(59).getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||o[r(e)]}},function(e,t,n){var r=n(70),i=n(108)("toStringTag"),o="Arguments"==r(function(){return arguments}()),a=function(e,t){try{return e[t]}catch(e){}};e.exports=function(e){var t,n,s;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=a(t=Object(e),i))?n:o?r(t):"Object"==(s=r(t))&&"function"==typeof t.callee?"Arguments":s}},function(e,t,n){(function(e){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return l(e)?Q(e)?e.toObject():e:{}}function o(e){return e?e.toArray?e.toArray():u(e):[]}function a(e){return Q(e)?e:e instanceof $.default.File?e:l(e)?Array.isArray(e)?j.default.Seq(e).map(a).toList():j.default.Seq(e).map(a).toOrderedMap():e}function s(e,t){var n={};return(0,N.default)(e).filter(function(t){return"function"==typeof e[t]}).forEach(function(r){return n[r]=e[r].bind(null,t)}),n}function u(e){return Array.isArray(e)?e:[e]}function c(e){return"function"==typeof e}function l(e){return!!e&&"object"===("undefined"==typeof e?"undefined":(0,P.default)(e))}function p(e){return"function"==typeof e}function f(e){return Array.isArray(e)}function h(e,t){return(0,N.default)(e).reduce(function(n,r){return n[r]=t(e[r],r),n},{})}function d(e,t){return(0,N.default)(e).reduce(function(n,r){var i=t(e[r],r);return i&&"object"===("undefined"==typeof i?"undefined":(0,P.default)(i))&&(0,M.default)(n,i),n},{})}function m(e){return function(t){t.dispatch,t.getState;return function(t){return function(n){return"function"==typeof n?n(e()):t(n)}}}}function v(e){var t=e.keySeq();return t.contains(Z)?Z:t.filter(function(e){return"2"===(e+"")[0]}).sort().first()}function y(e,t){if(!j.default.Iterable.isIterable(e))return j.default.List();var n=e.getIn(Array.isArray(t)?t:[t]);return j.default.List.isList(n)?n:j.default.List()}function g(e){var t,n,r,i,o,a,s,u,c,l,p,f;for(l=/(>)(<)(\/*)/g,f=/[ ]*(.*)[ ]+\n/g,t=/(<.+>)(.+\n)/g,e=e.replace(/\r\n/g,"\n").replace(l,"$1\n$2$3").replace(f,"$1\n").replace(t,"$1\n$2"),r="",u=e.split("\n"),i=0,a="other",p={"single->single":0,"single->closing":-1,"single->opening":0,"single->other":0,"closing->single":0,"closing->closing":-1,"closing->opening":0,"closing->other":0,"opening->single":1,"opening->closing":0,"opening->opening":1,"opening->other":1,"other->single":0,"other->closing":-1,"other->opening":0,"other->other":0},n=function(e){var t,n,o,s,u,c;u={single:Boolean(e.match(/<.+\/>/)),closing:Boolean(e.match(/<\/.+>/)),opening:Boolean(e.match(/<[^!?].*>/))},s=function(){var e;e=[];for(n in u)c=u[n],c&&e.push(n);return e}()[0],s=void 0===s?"other":s,t=a+"->"+s,a=s,o="",i+=p[t],o=function(){var e,t,n,r;for(n=[],r=e=0,t=i;0<=t?et;r=0<=t?++e:--e)n.push(" ");return n}().join(""),"opening->closing"===t?r=r.substr(0,r.length-1)+e+"\n":r+=o+e+"\n"},o=0,s=u.length;ot)return e.textContent;var o=function(e){for(var t,o,a,s,u,c=e.textContent,l=0,p=c[0],f=1,h=e.innerHTML="",d=0;o=t,t=d<7&&"\\"==t?1:f;){if(f=p,p=c[++l],s=h.length>1,!f||d>8&&"\n"==f||[/\S/[i](f),1,1,!/[$\w]/[i](f),("/"==t||"\n"==t)&&s,'"'==t&&s,"'"==t&&s,c[l-4]+o+t=="-->",o+t=="*/"][d])for(h&&(e[r](u=n.createElement("span")).setAttribute("style",["color: #555; font-weight: bold;","","","color: #555;",""][d?d<3?2:d>6?4:d>3?3:+/^(a(bstract|lias|nd|rguments|rray|s(m|sert)?|uto)|b(ase|egin|ool(ean)?|reak|yte)|c(ase|atch|har|hecked|lass|lone|ompl|onst|ontinue)|de(bugger|cimal|clare|f(ault|er)?|init|l(egate|ete)?)|do|double|e(cho|ls?if|lse(if)?|nd|nsure|num|vent|x(cept|ec|p(licit|ort)|te(nds|nsion|rn)))|f(allthrough|alse|inal(ly)?|ixed|loat|or(each)?|riend|rom|unc(tion)?)|global|goto|guard|i(f|mp(lements|licit|ort)|n(it|clude(_once)?|line|out|stanceof|t(erface|ernal)?)?|s)|l(ambda|et|ock|ong)|m(icrolight|odule|utable)|NaN|n(amespace|ative|ext|ew|il|ot|ull)|o(bject|perator|r|ut|verride)|p(ackage|arams|rivate|rotected|rotocol|ublic)|r(aise|e(adonly|do|f|gister|peat|quire(_once)?|scue|strict|try|turn))|s(byte|ealed|elf|hort|igned|izeof|tatic|tring|truct|ubscript|uper|ynchronized|witch)|t(emplate|hen|his|hrows?|ransient|rue|ry|ype(alias|def|id|name|of))|u(n(checked|def(ined)?|ion|less|signed|til)|se|sing)|v(ar|irtual|oid|olatile)|w(char_t|hen|here|hile|ith)|xor|yield)$/[i](h):0]),u[r](n.createTextNode(h))),a=d&&d<7?d:a,h="",d=11;![1,/[\/{}[(\-+*=<>:;|\\.,?!&@~]/[i](f),/[\])]/[i](f),/[$\w]/[i](f),"/"==f&&a<2&&"<"!=t,'"'==f,"'"==f,f+p+c[l+1]+c[l+2]=="':null;var r=e.$$ref.match(/\S*\/(\S+)$/);e.xml.name=r[1]}return(0,X.memoizedCreateXMLExample)(e,n)}return(0,S.default)((0,X.memoizedSampleFromSchema)(e,n),null,2)},t.parseSeach=function(){var e={},t=window.location.search;if(""!=t){var n=t.substr(1).split("&");for(var r in n)r=n[r].split("="),e[decodeURIComponent(r[0])]=decodeURIComponent(r[1])}return e},t.btoa=function(t){var n=void 0;return n=t instanceof e?t:new e(t.toString(),"utf-8"),n.toString("base64")},t.sorters={operationsSorter:{alpha:function(e,t){return e.get("path").localeCompare(t.get("path"))},method:function(e,t){return e.get("method").localeCompare(t.get("method"))}}},t.buildFormData=function(e){var t=[];for(var n in e){var r=e[n];void 0!==r&&""!==r&&t.push([n,"=",encodeURIComponent(r).replace(/%20/g,"+")].join(""))}return t.join("&")},t.filterConfigs=function(e,t){var n=void 0,r={};for(n in e)t.indexOf(n)!==-1&&(r[n]=e[n]);return r},t.shallowEqualKeys=function(e,t,n){return!!(0,K.default)(n,function(n){return(0,G.default)(e[n],t[n])})}}).call(t,n(132).Buffer)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(185),o=r(i),a=n(178),s=r(a);t.default=function(){function e(e,t){var n=[],r=!0,i=!1,o=void 0;try{for(var a,u=(0,s.default)(e);!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{!r&&u.return&&u.return()}finally{if(i)throw o}}return n}return function(t,n){if(Array.isArray(t))return t;if((0,o.default)(Object(t)))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(e,t,n){e.exports={default:n(186),__esModule:!0}},function(e,t,n){n(110),n(97),e.exports=n(187)},function(e,t,n){var r=n(182),i=n(108)("iterator"),o=n(102);e.exports=n(59).isIterable=function(e){var t=Object(e);return void 0!==t[i]||"@@iterator"in t||o.hasOwnProperty(r(t))}},function(e,t,n){var r=n(189),i=n(203),o=i(function(e,t,n){return t=t.toLowerCase(),e+(n?r(t):t)});e.exports=o},function(e,t,n){function r(e){return o(i(e).toLowerCase())}var i=n(190),o=n(195);e.exports=r},function(e,t,n){function r(e){return null==e?"":i(e)}var i=n(191);e.exports=r},function(e,t,n){function r(e){if("string"==typeof e)return e;if(a(e))return o(e,r)+"";if(s(e))return l?l.call(e):"";var t=e+"";return"0"==t&&1/e==-u?"-0":t}var i=n(151),o=n(192),a=n(193),s=n(194),u=1/0,c=i?i.prototype:void 0,l=c?c.toString:void 0;e.exports=r},function(e,t){function n(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n=r?e:i(e,t,n)}var i=n(198);e.exports=r},function(e,t){function n(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(i);++rf))return!1;var d=l.get(e);if(d&&l.get(t))return d==t;var m=-1,v=!0,y=n&u?new i:void 0;for(l.set(e,t),l.set(t,e);++m-1&&e%1==0&&e-1&&e%1==0&&e<=r}var r=9007199254740991;e.exports=n},function(e,t){function n(e){return function(t){return e(t)}}e.exports=n},function(e,t,n){(function(e){var r=n(153),i="object"==typeof t&&t&&!t.nodeType&&t,o=i&&"object"==typeof e&&e&&!e.nodeType&&e,a=o&&o.exports===i,s=a&&r.process,u=function(){try{return s&&s.binding&&s.binding("util")}catch(e){}}();e.exports=u}).call(t,n(161)(e))},[1211,283,284],function(e,t){function n(e){var t=e&&e.constructor,n="function"==typeof t&&t.prototype||r;return e===n}var r=Object.prototype;e.exports=n},[1212,157],[1213,220,279],function(e,t,n){var r=n(287),i=n(238),o=n(288),a=n(289),s=n(290),u=n(150),c=n(224),l="[object Map]",p="[object Object]",f="[object Promise]",h="[object Set]",d="[object WeakMap]",m="[object DataView]",v=c(r),y=c(i),g=c(o),_=c(a),b=c(s),x=u;(r&&x(new r(new ArrayBuffer(1)))!=m||i&&x(new i)!=l||o&&x(o.resolve())!=f||a&&x(new a)!=h||s&&x(new s)!=d)&&(x=function(e){var t=u(e),n=t==p?e.constructor:void 0,r=n?c(n):"";if(r)switch(r){case v:return m;case y:return l;case g:return f;case _:return h;case b:return d}return t}),e.exports=x},[1214,218,152],[1215,218,152],[1216,218,152],[1217,218,152],[1218,292,269],[1219,221],function(e,t){function n(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}e.exports=n},function(e,t,n){function r(e,t){return s(e)&&u(t)?c(l(e),t):function(n){var r=o(n,e);return void 0===r&&r===t?a(n,e):i(t,r,p|f)}}var i=n(256),o=n(295),a=n(302),s=n(298),u=n(292),c=n(293),l=n(301),p=1,f=2;e.exports=r},[1220,296],function(e,t,n){function r(e,t){t=i(t,e);for(var n=0,r=t.length;null!=e&&n1&&void 0!==arguments[1]?arguments[1]:{},r=(0, -o.objectify)(t),i=r.type,a=r.example,s=r.properties,u=r.additionalProperties,c=r.items,l=n.includeReadOnly;if(void 0!==a)return a;if(!i)if(s)i="object";else{if(!c)return;i="array"}if("object"===i){var f=(0,o.objectify)(s),h={};for(var d in f)f[d].readOnly&&!l||(h[d]=e(f[d],{includeReadOnly:l}));if(u===!0)h.additionalProp1={};else if(u)for(var m=(0,o.objectify)(u),v=e(m,{includeReadOnly:l}),y=1;y<4;y++)h["additionalProp"+y]=v;return h}return"array"===i?[e(c,{includeReadOnly:l})]:t.enum?t.default?t.default:(0,o.normalizeArray)(t.enum)[0]:p(t)},h=(t.inferSchema=function(e){return e.schema&&(e=e.schema),e.properties&&(e.type="object"),e},t.sampleXmlFromSchema=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(0,o.objectify)(t),i=r.type,a=r.properties,s=r.additionalProperties,u=r.items,c=r.example,l=n.includeReadOnly,f=r.default,h={},d={},m=t.xml,v=m.name,y=m.prefix,g=m.namespace,_=r.enum,b=void 0,x=void 0;if(!i)if(a||s)i="object";else{if(!u)return;i="array"}if(v=v||"notagname",b=(y?y+":":"")+v,g){var w=y?"xmlns:"+y:"xmlns";d[w]=g}if("array"===i&&u){if(u.xml=u.xml||m||{},u.xml.name=u.xml.name||m.name,m.wrapped)return h[b]=[],Array.isArray(c)?c.forEach(function(t){u.example=t,h[b].push(e(u,n))}):Array.isArray(f)?f.forEach(function(t){u.default=t,h[b].push(e(u,n))}):h[b]=[e(u,n)],d&&h[b].push({_attr:d}),h;var k=[];return Array.isArray(c)?(c.forEach(function(t){u.example=t,k.push(e(u,n))}),k):Array.isArray(f)?(f.forEach(function(t){u.default=t,k.push(e(u,n))}),k):e(u,n)}if("object"===i){var S=(0,o.objectify)(a);h[b]=[],c=c||{};for(var E in S)if(!S[E].readOnly||l)if(S[E].xml=S[E].xml||{},S[E].xml.attribute){var C=Array.isArray(S[E].enum)&&S[E].enum[0],A=S[E].example,T=S[E].default;d[S[E].xml.name||E]=void 0!==A&&A||void 0!==c[E]&&c[E]||void 0!==T&&T||C||p(S[E])}else{S[E].xml.name=S[E].xml.name||E,S[E].example=void 0!==S[E].example?S[E].example:c[E];var D=e(S[E]);Array.isArray(D)?h[b]=h[b].concat(D):h[b].push(D)}return s===!0?h[b].push({additionalProp:"Anything can be here"}):s&&h[b].push({additionalProp:p(s)}),d&&h[b].push({_attr:d}),h}return x=void 0!==c?c:void 0!==f?f:Array.isArray(_)?_[0]:p(t),h[b]=d?[{_attr:d},x]:x,h});t.memoizedCreateXMLExample=(0,c.default)(i),t.memoizedSampleFromSchema=(0,c.default)(f)},function(e,t,n){(function(t){function r(e,n){function r(e){v?t.nextTick(e):e()}function i(e,t){if(void 0!==t&&(h+=t),e&&!d&&(f=f||new l,d=!0),e&&d){var n=h;r(function(){f.emit("data",n)}),h=""}}function o(e,t){s(i,a(e,m,m?1:0),t)}function u(){if(f){var e=h;r(function(){f.emit("data",e),f.emit("end"),f.readable=!1,f.emit("close")})}}function c(e){var t=e.encoding||"UTF-8",n={version:"1.0",encoding:t};e.standalone&&(n.standalone=e.standalone),o({"?xml":{_attr:n}}),h=h.replace("/>","?>")}"object"!=typeof n&&(n={indent:n});var f=n.stream?new l:null,h="",d=!1,m=n.indent?n.indent===!0?p:n.indent:"",v=!0;return r(function(){v=!1}),n.declaration&&c(n.declaration),e&&e.forEach?e.forEach(function(t,n){var r;n+1===e.length&&(r=u),o(t,r)}):o(e,u),f?(f.readable=!0,f):h}function i(){var e=Array.prototype.slice.call(arguments),t={_elem:a(e)};return t.push=function(e){if(!this.append)throw new Error("not assigned to a parent!");var t=this,n=this._elem.indent;s(this.append,a(e,n,this._elem.icount+(n?1:0)),function(){t.append(!0)})},t.close=function(e){void 0!==e&&this.push(e),this.end&&this.end()},t}function o(e,t){return new Array(t||0).join(e||"")}function a(e,t,n){function r(e){var t=Object.keys(e);t.forEach(function(t){d.push(u(t,e[t]))})}n=n||0;var i,s=o(t,n),l=e,p=!1;if("object"==typeof e){var f=Object.keys(e);if(i=f[0],l=e[i],l&&l._elem)return l._elem.name=i,l._elem.icount=n,l._elem.indent=t,l._elem.indents=s,l._elem.interrupt=l,l._elem}var h,d=[],m=[];switch(typeof l){case"object":if(null===l)break;l._attr&&r(l._attr),l._cdata&&m.push(("/g,"]]]]>")+"]]>"),l.forEach&&(h=!1,m.push(""),l.forEach(function(e){if("object"==typeof e){var i=Object.keys(e)[0];"_attr"==i?r(e._attr):m.push(a(e,t,n+1))}else m.pop(),h=!0,m.push(c(e))}),h||m.push(""));break;default:m.push(c(l))}return{name:i,interrupt:p,attributes:d,content:m,icount:n,indents:s,indent:t}}function s(e,t,n){function r(){for(;t.content.length;){var r=t.content.shift();if(void 0!==r){if(i(r))return;s(e,r)}}e(!1,(o>1?t.indents:"")+(t.name?"":"")+(t.indent&&!n?"\n":"")),n&&n()}function i(t){return!!t.interrupt&&(t.interrupt.append=e,t.interrupt.end=r,t.interrupt=!1,e(!0),!0)}if("object"!=typeof t)return e(!1,t);var o=t.interrupt?1:t.content.length;return e(!1,t.indents+(t.name?"<"+t.name:"")+(t.attributes.length?" "+t.attributes.join(" "):"")+(o?t.name?">":"":t.name?"/>":"")+(t.indent&&o>1?"\n":"")),o?void(i(t)||r()):e(!1,t.indent?"\n":"")}function u(e,t){return e+'="'+c(t)+'"'}var c=n(325),l=n(326).Stream,p=" ";e.exports=r,e.exports.element=e.exports.Element=i}).call(t,n(324))},function(e,t){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function i(e){if(l===setTimeout)return setTimeout(e,0);if((l===n||!l)&&setTimeout)return l=setTimeout,setTimeout(e,0);try{return l(e,0)}catch(t){try{return l.call(null,e,0)}catch(t){return l.call(this,e,0)}}}function o(e){if(p===clearTimeout)return clearTimeout(e);if((p===r||!p)&&clearTimeout)return p=clearTimeout,clearTimeout(e);try{return p(e)}catch(t){try{return p.call(null,e)}catch(t){return p.call(this,e)}}}function a(){m&&h&&(m=!1,h.length?d=h.concat(d):v=-1,d.length&&s())}function s(){if(!m){var e=i(a);m=!0;for(var t=d.length;t;){for(h=d,d=[];++v1)for(var n=1;n'])/g,function(e,t){return r[t]}):e}var r={"&":"&",'"':""","'":"'","<":"<",">":">"};e.exports=n},function(e,t,n){function r(){i.call(this)}e.exports=r;var i=n(327).EventEmitter,o=n(328);o(r,i),r.Readable=n(329),r.Writable=n(346),r.Duplex=n(347),r.Transform=n(348),r.PassThrough=n(349),r.Stream=r,r.prototype.pipe=function(e,t){function n(t){e.writable&&!1===e.write(t)&&c.pause&&c.pause()}function r(){c.readable&&c.resume&&c.resume()}function o(){l||(l=!0,e.end())}function a(){l||(l=!0,"function"==typeof e.destroy&&e.destroy())}function s(e){if(u(),0===i.listenerCount(this,"error"))throw e}function u(){c.removeListener("data",n),e.removeListener("drain",r),c.removeListener("end",o),c.removeListener("close",a),c.removeListener("error",s),e.removeListener("error",s),c.removeListener("end",u),c.removeListener("close",u),e.removeListener("close",u)}var c=this;c.on("data",n),e.on("drain",r),e._isStdio||t&&t.end===!1||(c.on("end",o),c.on("close",a));var l=!1;return c.on("error",s),e.on("error",s),c.on("end",u),c.on("close",u),e.on("close",u),e.emit("pipe",c),e}},function(e,t){function n(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function r(e){return"function"==typeof e}function i(e){return"number"==typeof e}function o(e){return"object"==typeof e&&null!==e}function a(e){return void 0===e}e.exports=n,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._maxListeners=void 0,n.defaultMaxListeners=10,n.prototype.setMaxListeners=function(e){if(!i(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},n.prototype.emit=function(e){var t,n,i,s,u,c;if(this._events||(this._events={}),"error"===e&&(!this._events.error||o(this._events.error)&&!this._events.error.length)){if(t=arguments[1],t instanceof Error)throw t;var l=new Error('Uncaught, unspecified "error" event. ('+t+")");throw l.context=t,l}if(n=this._events[e],a(n))return!1;if(r(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:s=Array.prototype.slice.call(arguments,1),n.apply(this,s)}else if(o(n))for(s=Array.prototype.slice.call(arguments,1),c=n.slice(),i=c.length,u=0;u0&&this._events[e].length>i&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(e,t){function n(){this.removeListener(e,n),i||(i=!0,t.apply(this,arguments))}if(!r(t))throw TypeError("listener must be a function");var i=!1;return n.listener=t,this.on(e,n),this},n.prototype.removeListener=function(e,t){var n,i,a,s;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(n=this._events[e],a=n.length,i=-1,n===t||r(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(n)){for(s=a;s-- >0;)if(n[s]===t||n[s].listener&&n[s].listener===t){i=s;break}if(i<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(i,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},n.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(n=this._events[e],r(n))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},n.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},n.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},n.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){t=e.exports=n(330),t.Stream=t,t.Readable=t,t.Writable=n(339),t.Duplex=n(338),t.Transform=n(344),t.PassThrough=n(345)},function(e,t,n){(function(t){"use strict";function r(e){return j.from(e)}function i(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)||j.isBuffer(e)}function o(e,t,n){return"function"==typeof e.prependListener?e.prependListener(t,n):void(e._events&&e._events[t]?I(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n))}function a(e,t){P=P||n(338),e=e||{},this.objectMode=!!e.objectMode,t instanceof P&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var r=e.highWaterMark,i=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:i,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new q,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(z||(z=n(343).StringDecoder),this.decoder=new z(e.encoding),this.encoding=e.encoding)}function s(e){return P=P||n(338),this instanceof s?(this._readableState=new a(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),void R.call(this)):new s(e)}function u(e,t,n,i,o){var a=e._readableState;if(null===t)a.reading=!1,d(e,a);else{var s;o||(s=l(a,t)),s?e.emit("error",s):a.objectMode||t&&t.length>0?("string"==typeof t||Object.getPrototypeOf(t)===j.prototype||a.objectMode||(t=r(t)),i?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):c(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?c(e,a,t,!1):y(e,a)):c(e,a,t,!1))):i||(a.reading=!1)}return p(a)}function c(e,t,n,r){t.flowing&&0===t.length&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&m(e)),y(e,t)}function l(e,t){var n;return i(t)||"string"==typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk")),n}function p(e){return!e.ended&&(e.needReadable||e.length=K?e=K:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function h(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=f(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function d(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,m(e)}}function m(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(L("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?O(v,e):v(e))}function v(e){L("emit readable"),e.emit("readable"),k(e)}function y(e,t){t.readingMore||(t.readingMore=!0,O(g,e,t))}function g(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=E(e,t.buffer,t.decoder),n}function E(e,t,n){var r;return eo.length?o.length:e;if(i+=a===o.length?o:o.slice(0,e),e-=a,0===e){a===o.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=o.slice(a));break}++r}return t.length-=r,i}function A(e,t){var n=j.allocUnsafe(e),r=t.head,i=1;for(r.data.copy(n),e-=r.data.length;r=r.next;){var o=r.data,a=e>o.length?o.length:e;if(o.copy(n,n.length-e,0,a),e-=a,0===e){a===o.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=o.slice(a));break}++i}return t.length-=i,n}function T(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,O(D,t,e))}function D(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function M(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return L("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?T(this):m(this),null;if(e=h(e,t),0===e&&t.ended)return 0===t.length&&T(this),null;var r=t.needReadable;L("need readable",r),(0===t.length||t.length-e0?S(e,t):null,null===i?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&T(this)),null!==i&&this.emit("data",i),i},s.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},s.prototype.pipe=function(e,n){function r(e,t){L("onunpipe"),e===f&&t&&t.hasUnpiped===!1&&(t.hasUnpiped=!0,a())}function i(){L("onend"),e.end()}function a(){L("cleanup"),e.removeListener("close",c),e.removeListener("finish",l),e.removeListener("drain",v),e.removeListener("error",u),e.removeListener("unpipe",r),f.removeListener("end",i),f.removeListener("end",p),f.removeListener("data",s),y=!0,!h.awaitDrain||e._writableState&&!e._writableState.needDrain||v()}function s(t){L("ondata"),g=!1;var n=e.write(t);!1!==n||g||((1===h.pipesCount&&h.pipes===e||h.pipesCount>1&&M(h.pipes,e)!==-1)&&!y&&(L("false write response, pause",f._readableState.awaitDrain),f._readableState.awaitDrain++,g=!0),f.pause())}function u(t){L("onerror",t),p(),e.removeListener("error",u),0===N(e,"error")&&e.emit("error",t)}function c(){e.removeListener("finish",l),p()}function l(){L("onfinish"),e.removeListener("close",c),p()}function p(){L("unpipe"),f.unpipe(e)}var f=this,h=this._readableState;switch(h.pipesCount){case 0:h.pipes=e;break;case 1:h.pipes=[h.pipes,e];break;default:h.pipes.push(e)}h.pipesCount+=1,L("pipe count=%d opts=%j",h.pipesCount,n);var d=(!n||n.end!==!1)&&e!==t.stdout&&e!==t.stderr,m=d?i:p;h.endEmitted?O(m):f.once("end",m),e.on("unpipe",r);var v=_(f);e.on("drain",v);var y=!1,g=!1;return f.on("data",s),o(e,"error",u),e.once("close",c),e.once("finish",l),e.emit("pipe",f),h.flowing||(L("pipe resume"),f.resume()),e},s.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n),this);if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return o.alloc(0);if(1===this.length)return this.head.data;for(var t=o.allocUnsafe(e>>>0),n=this.head,r=0;n;)i(n.data,t,r),r+=n.data.length,n=n.next;return t},e}()},function(e,t,n){"use strict";function r(e,t){var n=this,r=this._readableState&&this._readableState.destroyed,i=this._writableState&&this._writableState.destroyed;return r||i?void(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||a(o,this,e)):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),void this._destroy(e||null,function(e){!t&&e?(a(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)}))}function i(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function o(e,t){e.emit("error",t)}var a=n(331);e.exports={destroy:r,undestroy:i}},function(e,t,n){"use strict";function r(e){return this instanceof r?(c.call(this,e),l.call(this,e),e&&e.readable===!1&&(this.readable=!1),e&&e.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,e&&e.allowHalfOpen===!1&&(this.allowHalfOpen=!1),void this.once("end",i)):new r(e)}function i(){this.allowHalfOpen||this._writableState.ended||a(o,this)}function o(e){e.end()}var a=n(331),s=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=r;var u=n(334);u.inherits=n(328);var c=n(330),l=n(339);u.inherits(r,c);for(var p=s(l.prototype),f=0;f-1?r:A; -c.WritableState=u;var M=n(334);M.inherits=n(328);var O={deprecate:n(342)},P=n(332),I=n(333).Buffer,N=n(337);M.inherits(c,P),u.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(u.prototype,"buffer",{get:O.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}();var R;"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(R=Function.prototype[Symbol.hasInstance],Object.defineProperty(c,Symbol.hasInstance,{value:function(e){return!!R.call(this,e)||e&&e._writableState instanceof u}})):R=function(e){return e instanceof this},c.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},c.prototype.write=function(e,t,n){var r=this._writableState,i=!1,u=a(e)&&!r.objectMode;return u&&!I.isBuffer(e)&&(e=o(e)),"function"==typeof t&&(n=t,t=null),u?t="buffer":t||(t=r.defaultEncoding),"function"!=typeof n&&(n=s),r.ended?l(this,n):(u||p(this,r,e,n))&&(r.pendingcb++,i=h(this,r,u,e,t,n)),i},c.prototype.cork=function(){var e=this._writableState;e.corked++},c.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||b(this,e))},c.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},c.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},c.prototype._writev=null,c.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!==e&&void 0!==e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||E(this,r,n)},Object.defineProperty(c.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),c.prototype.destroy=N.destroy,c.prototype._undestroy=N.undestroy,c.prototype._destroy=function(e,t){this.end(),t(e)}}).call(t,n(324),n(340).setImmediate)},function(e,t,n){function r(e,t){this._id=e,this._clearFn=t}var i=Function.prototype.apply;t.setTimeout=function(){return new r(i.call(setTimeout,window,arguments),clearTimeout)},t.setInterval=function(){return new r(i.call(setInterval,window,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},r.prototype.unref=r.prototype.ref=function(){},r.prototype.close=function(){this._clearFn.call(window,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n(341),t.setImmediate=setImmediate,t.clearImmediate=clearImmediate},function(e,t,n){(function(e,t){!function(e,n){"use strict";function r(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n>5===6?2:e>>4===14?3:e>>3===30?4:-1}function s(e,t,n){var r=t.length-1;if(r=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0))}function u(e,t,n){if(128!==(192&t[0]))return e.lastNeed=0,"�".repeat(n);if(e.lastNeed>1&&t.length>1){if(128!==(192&t[1]))return e.lastNeed=1,"�".repeat(n+1);if(e.lastNeed>2&&t.length>2&&128!==(192&t[2]))return e.lastNeed=2,"�".repeat(n+2)}}function c(e){var t=this.lastTotal-this.lastNeed,n=u(this,e,t);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function l(e,t){var n=s(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function p(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�".repeat(this.lastTotal-this.lastNeed):t}function f(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function h(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function d(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function m(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function v(e){return e.toString(this.encoding)}function y(e){return e&&e.length?this.write(e):""}var g=n(333).Buffer,_=g.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};t.StringDecoder=o,o.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(t=this.fillLast(e),void 0===t)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n1&&(a.normalizer=n(397)(t)):t===!1?a.normalizer=n(398)():1===t?a.normalizer=n(400)():a.normalizer=n(401)(t))),a.async&&n(402),a.promise&&n(405),a.dispose&&n(407),a.maxAge&&n(408),a.max&&n(411),a.refCounter&&n(413),o(e,a)}},function(e,t){"use strict";var n=Array.prototype.forEach,r=Object.create,i=function(e,t){var n;for(n in e)t[n]=e[n]};e.exports=function(e){var t=r(null);return n.call(arguments,function(e){null!=e&&i(Object(e),t)}),t}},function(e,t,n){"use strict";var r=n(353);e.exports=function(e,t,n){var i;return isNaN(e)?(i=t,i>=0?n&&i?i-1:i:1):e!==!1&&r(e)}},function(e,t,n){"use strict";var r=n(354),i=Math.max;e.exports=function(e){return i(0,r(e))}},function(e,t,n){"use strict";var r=n(355),i=Math.abs,o=Math.floor;e.exports=function(e){return isNaN(e)?0:(e=Number(e),0!==e&&isFinite(e)?r(e)*o(i(e)):e)}},function(e,t,n){"use strict";e.exports=n(356)()?Math.sign:n(357)},function(e,t){"use strict";e.exports=function(){var e=Math.sign;return"function"==typeof e&&(1===e(10)&&e(-20)===-1)}},function(e,t){"use strict";e.exports=function(e){return e=Number(e),isNaN(e)||0===e?e:e>0?1:-1}},function(e,t,n){"use strict";var r=n(359),i=n(360),o=n(363),a=n(364),s=n(352),u=Object.prototype.hasOwnProperty;e.exports=function e(t){var n,c,l;if(r(t),n=Object(arguments[1]),n.async&&n.promise)throw new Error("Options 'async' and 'promise' cannot be used together");return u.call(t,"__memoized__")&&!n.force?t:(c=s(n.length,t.length,n.async&&o.async),l=a(t,c,n),i(o,function(e,t){n[t]&&e(n[t],l,n)}),e.__profiler__&&e.__profiler__(l),l.updateEnv(),l.memoized)}},function(e,t){"use strict";e.exports=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e}},function(e,t,n){"use strict";e.exports=n(361)("forEach")},function(e,t,n){"use strict";var r=n(359),i=n(362),o=Function.prototype.bind,a=Function.prototype.call,s=Object.keys,u=Object.prototype.propertyIsEnumerable;e.exports=function(e,t){return function(n,c){var l,p=arguments[2],f=arguments[3];return n=Object(i(n)),r(c),l=s(n),f&&l.sort("function"==typeof f?o.call(f,n):void 0),"function"!=typeof e&&(e=l[e]),a.call(e,l,function(e,r){return u.call(n,e)?a.call(c,p,n[e],e,n,r):t})}}},function(e,t){"use strict";e.exports=function(e){if(null==e)throw new TypeError("Cannot use null or undefined");return e}},function(e,t){"use strict"},function(e,t,n){"use strict";var r=n(365),i=n(373),o=n(375),a=n(380).methods,s=n(381),u=n(395),c=Function.prototype.apply,l=Function.prototype.call,p=Object.create,f=Object.prototype.hasOwnProperty,h=Object.defineProperties,d=a.on,m=a.emit;e.exports=function(e,t,n){var a,v,y,g,_,b,x,w,k,S,E,C,A,T=p(null);return v=t!==!1?t:isNaN(e.length)?1:e.length,n.normalizer&&(w=u(n.normalizer),y=w.get,g=w.set,_=w.delete,b=w.clear),null!=n.resolvers&&(A=s(n.resolvers)),C=y?i(function(t){var n,i,o=arguments;if(A&&(o=A(o)),n=y(o),null!==n&&f.call(T,n))return k&&a.emit("get",n,o,this),T[n];if(i=1===o.length?l.call(e,this,o[0]):c.call(e,this,o),null===n){if(n=y(o),null!==n)throw r("Circular invocation","CIRCULAR_INVOCATION");n=g(o)}else if(f.call(T,n))throw r("Circular invocation","CIRCULAR_INVOCATION");return T[n]=i,S&&a.emit("set",n,null,i),i},v):0===t?function(){var t;if(f.call(T,"data"))return k&&a.emit("get","data",arguments,this),T.data;if(t=arguments.length?c.call(e,this,arguments):l.call(e,this),f.call(T,"data"))throw r("Circular invocation","CIRCULAR_INVOCATION");return T.data=t,S&&a.emit("set","data",null,t),t}:function(t){var n,i,o=arguments;if(A&&(o=A(arguments)),i=String(o[0]),f.call(T,i))return k&&a.emit("get",i,o,this),T[i];if(n=1===o.length?l.call(e,this,o[0]):c.call(e,this,o),f.call(T,i))throw r("Circular invocation","CIRCULAR_INVOCATION");return T[i]=n,S&&a.emit("set",i,null,n),n},a={original:e,memoized:C,get:function(e){return A&&(e=A(e)),y?y(e):String(e[0])},has:function(e){return f.call(T,e)},delete:function(e){var t;f.call(T,e)&&(_&&_(e),t=T[e],delete T[e],E&&a.emit("delete",e,t))},clear:function(){var e=T;b&&b(),T=p(null),a.emit("clear",e)},on:function(e,t){return"get"===e?k=!0:"set"===e?S=!0:"delete"===e&&(E=!0),d.call(this,e,t)},emit:m,updateEnv:function(){e=a.original}},x=y?i(function(e){var t,n=arguments;A&&(n=A(n)),t=y(n),null!==t&&a.delete(t)},v):0===t?function(){return a.delete("data")}:function(e){return A&&(e=A(arguments)[0]),a.delete(e)},h(C,{__memoized__:o(!0),delete:o(x),clear:o(a.clear)}),a}},function(e,t,n){"use strict";var r=n(366),i=n(372),o=Error.captureStackTrace;t=e.exports=function(e){var n=new Error(e),a=arguments[1],s=arguments[2];return null==s&&i(a)&&(s=a,a=null),null!=s&&r(n,s),null!=a&&(n.code=a),o&&o(n,t),n}},function(e,t,n){"use strict";e.exports=n(367)()?Object.assign:n(368)},function(e,t){"use strict";e.exports=function(){var e,t=Object.assign;return"function"==typeof t&&(e={foo:"raz"},t(e,{bar:"dwa"},{trzy:"trzy"}),e.foo+e.bar+e.trzy==="razdwatrzy")}},function(e,t,n){"use strict";var r=n(369),i=n(362),o=Math.max;e.exports=function(e,t){var n,a,s,u=o(arguments.length,2);for(e=Object(i(e)),s=function(r){try{e[r]=t[r]}catch(e){n||(n=e)}},a=1;a-1}},function(e,t,n){"use strict";var r,i,o,a,s,u,c,l=n(375),p=n(359),f=Function.prototype.apply,h=Function.prototype.call,d=Object.create,m=Object.defineProperty,v=Object.defineProperties,y=Object.prototype.hasOwnProperty,g={configurable:!0,enumerable:!1,writable:!0};r=function(e,t){var n;return p(t),y.call(this,"__ee__")?n=this.__ee__:(n=g.value=d(null),m(this,"__ee__",g),g.value=null),n[e]?"object"==typeof n[e]?n[e].push(t):n[e]=[n[e],t]:n[e]=t,this},i=function(e,t){var n,i;return p(t),i=this,r.call(this,e,n=function(){o.call(i,e,n),f.call(t,this,arguments)}),n.__eeOnceListener__=t,this},o=function(e,t){var n,r,i,o;if(p(t),!y.call(this,"__ee__"))return this;if(n=this.__ee__,!n[e])return this;if(r=n[e],"object"==typeof r)for(o=0;i=r[o];++o)i!==t&&i.__eeOnceListener__!==t||(2===r.length?n[e]=r[o?0:1]:r.splice(o,1));else r!==t&&r.__eeOnceListener__!==t||delete n[e];return this},a=function(e){var t,n,r,i,o;if(y.call(this,"__ee__")&&(i=this.__ee__[e]))if("object"==typeof i){for(n=arguments.length,o=new Array(n-1),t=1;t=55296&&y<=56319&&(x+=e[++n])),x=w?p.call(w,k,x,d):x,t?(f.value=x,h(m,d,f)):m[d]=x,++d;v=d}if(void 0===v)for(v=a(e.length),t&&(m=new t(v)),n=0;n=0?u(c):r(this.length)-u(s(c)),t=c;ti)throw new TypeError(e+" exceeds maximum possible timeout");return e}},function(e,t){"use strict";e.exports=2147483647},function(e,t,n){"use strict";var r=n(353),i=n(412),o=n(363);o.max=function(e,t,n){var a,s,u;e=r(e),e&&(s=i(e),a=n.async&&o.async||n.promise&&o.promise?"async":"",t.on("set"+a,u=function(e){e=s.hit(e),void 0!==e&&t.delete(e)}),t.on("get"+a,u),t.on("delete"+a,s.delete),t.on("clear"+a,s.clear))}},function(e,t,n){"use strict";var r=n(353),i=Object.create,o=Object.prototype.hasOwnProperty;e.exports=function(e){var t,n=0,a=1,s=i(null),u=i(null),c=0;return e=r(e),{hit:function(r){var i=u[r],l=++c;if(s[l]=r,u[r]=l,!i){if(++n,n<=e)return;return r=s[a],t(r),r}if(delete s[i],a===i)for(;!o.call(s,++a);)continue},delete:t=function(e){var t=u[e];if(t&&(delete s[t],delete u[e],--n,a===t)){if(!n)return c=0,void(a=1);for(;!o.call(s,++a);)continue}},clear:function(){n=0,a=1,s=i(null),u=i(null),c=0}}}},function(e,t,n){"use strict";var r=n(375),i=n(363),o=Object.create,a=Object.defineProperties;i.refCounter=function(e,t,n){var s,u;s=o(null),u=n.async&&i.async||n.promise&&i.promise?"async":"",t.on("set"+u,function(e,t){s[e]=t||1}),t.on("get"+u,function(e){++s[e]}),t.on("delete"+u,function(e){delete s[e]}),t.on("clear"+u,function(){s={}}),a(t.memoized,{deleteRef:r(function(){var e=t.get(arguments);return null===e?null:s[e]?!--s[e]&&(t.delete(e),!0):null}),getRefCount:r(function(){var e=t.get(arguments);return null===e?0:s[e]?s[e]:0})})}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){return[a.default]}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(415),a=r(o)},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e={components:{App:M.default,authorizationPopup:P.default,authorizeBtn:N.default,authorizeOperationBtn:j.default,auths:B.default,authError:z.default,oauth2:H.default,apiKeyAuth:U.default,basicAuth:K.default,clear:G.default,liveResponse:Y.default,info:Ce.default,onlineValidatorBadge:Z.default,operations:ee.default,operation:ne.default,highlightCode:ie.default,responses:ae.default,response:ue.default,responseBody:le.default,parameters:fe.default,parameterRow:de.default,execute:ve.default,headers:ge.default,errors:be.default,contentType:we.default,overview:Se.default,footer:Te.default,ParamBody:Me.default,curl:Pe.default,schemes:Ne.default,modelExample:je.default,model:Be.default,models:ze.default,TryItOutButton:Ue.default,Markdown:Ke.default,BaseLayout:He.default}},t={components:Ge},n={components:Ye};return[S.default,v.default,f.default,l.default,a.default,u.default,d.default,e,t,b.default,n,w.default,g.default,C.default,T.default]};var o=n(416),a=i(o),s=n(431),u=i(s),c=n(443),l=i(c),p=n(484),f=i(p),h=n(726),d=i(h),m=n(727),v=i(m),y=n(728),g=i(y),_=n(762),b=i(_),x=n(954),w=i(x),k=n(959),S=i(k),E=n(961),C=i(E),A=n(1010),T=i(A),D=n(1011),M=i(D),O=n(1012),P=i(O),I=n(1013),N=i(I),R=n(1014),j=i(R),F=n(1016),B=i(F),L=n(1017),z=i(L),q=n(1018),U=i(q),W=n(1019),K=i(W),V=n(1020),H=i(V),J=n(1022),G=i(J),X=n(1023),Y=i(X),$=n(1024),Z=i($),Q=n(1025),ee=i(Q),te=n(1026),ne=i(te),re=n(1030),ie=i(re),oe=n(1031),ae=i(oe),se=n(1032),ue=i(se),ce=n(1033),le=i(ce),pe=n(1035),fe=i(pe),he=n(1036),de=i(he),me=n(1037),ve=i(me),ye=n(1038),ge=i(ye),_e=n(1039),be=i(_e),xe=n(1064),we=i(xe),ke=n(1065),Se=i(ke),Ee=n(1067),Ce=i(Ee),Ae=n(1068),Te=i(Ae),De=n(1069),Me=i(De),Oe=n(1070),Pe=i(Oe),Ie=n(1072),Ne=i(Ie),Re=n(1073),je=i(Re),Fe=n(1074),Be=i(Fe),Le=n(1075),ze=i(Le),qe=n(1076),Ue=i(qe),We=n(1077),Ke=i(We),Ve=n(1173),He=i(Ve),Je=n(1066),Ge=r(Je),Xe=n(1174),Ye=r(Xe)},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return{statePlugins:{err:{reducers:(0,a.default)(e),actions:u,selectors:l}}}};var o=n(417),a=i(o),s=n(176),u=r(s),c=n(429),l=r(c)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(137),o=r(i),a=n(141),s=r(a);t.default=function(e){var t;return t={},(0,o.default)(t,u.NEW_THROWN_ERR,function(t,n){var r=n.payload,i=(0,s.default)(m,r,{type:"thrown"});return t.update("errors",function(e){return(e||(0,p.List)()).push((0,p.fromJS)(i))}).update("errors",function(t){return(0,d.default)(t,e.getSystem())})}),(0,o.default)(t,u.NEW_THROWN_ERR_BATCH,function(t,n){var r=n.payload;return r=r.map(function(e){return(0,p.fromJS)((0,s.default)(m,e,{type:"thrown"}))}),t.update("errors",function(e){return(e||(0,p.List)()).concat((0,p.fromJS)(r))}).update("errors",function(t){return(0,d.default)(t,e.getSystem())})}),(0,o.default)(t,u.NEW_SPEC_ERR,function(t,n){var r=n.payload,i=(0,p.fromJS)(r);return i=i.set("type","spec"),t.update("errors",function(e){return(e||(0,p.List)()).push((0,p.fromJS)(i)).sortBy(function(e){return e.get("line")})}).update("errors",function(t){return(0,d.default)(t,e.getSystem())})}),(0,o.default)(t,u.NEW_AUTH_ERR,function(t,n){var r=n.payload,i=(0,p.fromJS)((0,s.default)({},r));return i=i.set("type","auth"),t.update("errors",function(e){return(e||(0,p.List)()).push((0,p.fromJS)(i))}).update("errors",function(t){return(0,d.default)(t,e.getSystem())})}),(0,o.default)(t,u.CLEAR,function(e,t){var n=t.payload;if(n){var r=f.default.fromJS((0,l.default)((e.get("errors")||(0,p.List)()).toJS(),n));return e.merge({errors:r})}}),t};var u=n(176),c=n(418),l=r(c),p=n(168),f=r(p),h=n(422),d=r(h),m={line:0,level:"error",message:"Unknown error"}},function(e,t,n){function r(e,t){var n=s(e)?i:o;return n(e,u(a(t,3)))}var i=n(419),o=n(420),a=n(247),s=n(193),u=n(421);e.exports=r},function(e,t){function n(e,t){for(var n=-1,r=null==e?0:e.length,i=0,o=[];++n-1||c.push({name:o(e).replace(".js","").replace("./",""),transform:u(e).transform}))})},function(e,t,n){function r(e,t,n){var r=u(e)?i:s,c=arguments.length<3;return r(e,a(t,4),n,c,o)}var i=n(204),o=n(316),a=n(247),s=n(424),u=n(193);e.exports=r},function(e,t){function n(e,t,n,r,i){return i(e,function(e,i,o){n=r?(r=!1,e):t(n,e,i,o)}),n}e.exports=n},function(e,t,n){function r(e){return n(i(e))}function i(e){return o[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var o={"./not-of-type.js":426,"./parameter-oneof.js":427,"./strip-instance.js":428};r.keys=function(){return Object.keys(o)},r.resolve=i,e.exports=r,r.id=425},function(e,t){"use strict";function n(e){return e.map(function(e){var t="is not of a type(s)",n=e.get("message").indexOf(t);if(n>-1){var i=e.get("message").slice(n+t.length).split(",");return e.set("message",e.get("message").slice(0,n)+r(i))}return e})}function r(e){return e.reduce(function(e,t,n,r){return n===r.length-1&&r.length>1?e+"or "+t:r[n+1]&&r.length>2?e+t+", ":r[n+1]?e+t+" ":e+t},"should be a")}Object.defineProperty(t,"__esModule",{value:!0}),t.transform=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){t.jsSpec;return e}Object.defineProperty(t,"__esModule",{value:!0}),t.transform=i;var o=n(295);r(o),n(168)},function(e,t){"use strict";function n(e){return e.map(function(e){return e.set("message",r(e.get("message"),"instance."))})}function r(e,t){return e.replace(new RegExp(t,"g"),"")}Object.defineProperty(t,"__esModule",{value:!0}),t.transform=n},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.lastError=t.allErrors=void 0;var r=n(168),i=n(430),o=function(e){return e},a=t.allErrors=(0,i.createSelector)(o,function(e){return e.get("errors",(0,r.List)())});t.lastError=(0,i.createSelector)(a,function(e){return e.last()})},function(e,t){"use strict";function n(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t1?t-1:0),i=1;i2?r-2:0),o=2;o1&&void 0!==arguments[1])||arguments[1];return e=(0,a.normalizeArray)(e),{type:c,payload:{thing:e,shown:t}}}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return e=(0,a.normalizeArray)(e),{type:u,payload:{thing:e,mode:t}}}Object.defineProperty(t,"__esModule",{value:!0}),t.SHOW=t.UPDATE_MODE=t.UPDATE_LAYOUT=void 0,t.updateLayout=r,t.show=i,t.changeMode=o;var a=n(183),s=t.UPDATE_LAYOUT="layout_update_layout",u=t.UPDATE_MODE="layout_update_mode",c=t.SHOW="layout_show"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.showSummary=t.whatMode=t.isShown=t.current=void 0;var i=n(435),o=r(i),a=n(430),s=n(183),u=function(e){return e},c=(t.current=function(e){return e.get("layout")},t.isShown=function(e,t,n){return t=(0,s.normalizeArray)(t),Boolean(e.getIn(["shown"].concat((0,o.default)(t)),n))});t.whatMode=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return t=(0,s.normalizeArray)(t),e.getIn(["modes"].concat((0,o.default)(t)),n)},t.showSummary=(0,a.createSelector)(u,function(e){return!c(e,"editor")})},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(436),o=r(i);t.default=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t1?arguments[1]:void 0,v=void 0!==m,y=0,g=l(f);if(v&&(m=r(m,d>2?arguments[2]:void 0,2)),void 0==g||h==Array&&s(g))for(t=u(f.length),n=new h(t);t>y;y++)c(n,y,v?m(f[y],y):f[y]);else for(p=g.call(f),n=new h;!(i=p.next()).done;y++)c(n,y,v?a(p,m,[i.value,y],!0):i.value);return n.length=y,n}})},function(e,t,n){var r=n(86);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(t){var o=e.return;throw void 0!==o&&r(o.call(e)),t}}},function(e,t,n){var r=n(102),i=n(108)("iterator"),o=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||o[i]===e)}},function(e,t,n){"use strict";var r=n(85),i=n(93);e.exports=function(e,t,n){t in e?r.f(e,t,i(0,n)):e[t]=n}},function(e,t,n){var r=n(108)("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var o=[7],a=o[r]();a.next=function(){return{done:n=!0}},o[r]=function(){return a},e(o)}catch(e){}return n}},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return{statePlugins:{spec:{wrapActions:f,reducers:a.default,actions:u,selectors:l}}}};var o=n(444),a=i(o),s=n(445),u=r(s),c=n(482),l=r(c),p=n(483),f=r(p)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i,o=n(137),a=r(o),s=n(141),u=r(s),c=n(435),l=r(c),p=n(168),f=n(183),h=n(177),d=r(h),m=n(445);t.default=(i={},(0,a.default)(i,m.UPDATE_SPEC,function(e,t){return"string"==typeof t.payload?e.set("spec",t.payload):e}),(0,a.default)(i,m.UPDATE_URL,function(e,t){return e.set("url",t.payload+"")}),(0,a.default)(i,m.UPDATE_JSON,function(e,t){return e.set("json",(0,f.fromJSOrdered)(t.payload))}),(0,a.default)(i,m.UPDATE_RESOLVED,function(e,t){return e.setIn(["resolved"],(0,f.fromJSOrdered)(t.payload))}),(0,a.default)(i,m.UPDATE_PARAM,function(e,t){var n=t.payload,r=n.path,i=n.paramName,o=n.value,a=n.isXml;return e.updateIn(["resolved","paths"].concat((0,l.default)(r),["parameters"]),(0,p.fromJS)([]),function(e){var t=e.findIndex(function(e){return e.get("name")===i});return o instanceof d.default.File||(o=(0,f.fromJSOrdered)(o)),e.setIn([t,a?"value_xml":"value"],o)})}),(0,a.default)(i,m.VALIDATE_PARAMS,function(e,t){var n=t.payload.pathMethod,r=e.getIn(["resolved","paths"].concat((0,l.default)(n))),i=/xml/i.test(r.get("consumes_value"));return e.updateIn(["resolved","paths"].concat((0,l.default)(n),["parameters"]),(0,p.fromJS)([]),function(e){return e.withMutations(function(e){for(var t=0,n=e.count();t0){var i=n.map(function(e){return console.error(e),e.line=e.fullPath?d(m,e.fullPath):null,e.path=e.fullPath?e.fullPath.join("."):null,e.level="error",e.type="thrown",e.source="resolver",Object.defineProperty(e,"message",{enumerable:!0,value:e.message}),e});o.newThrownErrBatch(i)}return r.updateResolved(t)})}},t.formatIntoYaml=function(){return function(e){var t=e.specActions,n=e.specSelectors,r=n.specStr,i=t.updateSpec;try{var o=E.default.safeDump(E.default.safeLoad(r()),{indent:2});i(o)}catch(e){i(e)}}},t.setResponse=function(e,t,n){return{payload:{path:e,method:t,res:n},type:R}},t.setRequest=function(e,t,n){return{payload:{path:e,method:t,req:n},type:j}},t.logRequest=function(e){return{payload:e,type:F}},t.executeRequest=function(e){return function(t){var n=t.fn,r=t.specActions,i=t.specSelectors,o=e.pathName,a=e.method,s=e.operation,u=s.toJS();e.contextUrl=(0,A.default)(i.url()).toString(),u&&u.operationId?e.operationId=u.operationId:u&&o&&a&&(e.operationId=n.opId(u,o,a));var c=(0,x.default)({},e);return c=n.buildRequest(c),r.setRequest(e.pathName,e.method,c),n.execute(e).then(function(t){return r.setResponse(e.pathName,e.method,t)}).catch(function(t){return r.setResponse(e.pathName,e.method,{error:!0,err:(0,D.default)(t)})})}},function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.path,n=e.method,r=(0,_.default)(e,["path","method"]);return function(e){var i=e.fn.fetch,o=e.specSelectors,a=e.specActions,s=o.spec().toJS(),u=o.operationScheme(t,n),c=o.contentTypeValues([t,n]).toJS(),l=c.requestContentType,p=c.responseContentType,f=/xml/i.test(l),h=o.parameterValues([t,n],f).toJS();return a.executeRequest((0,y.default)({fetch:i,spec:s,pathName:t,method:n,parameters:h,requestContentType:l,scheme:u,responseContentType:p},r))}});t.execute=K},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(141),o=r(i);t.default=o.default||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}},function(e,t,n){"use strict";var r=n(449);e.exports=r},function(e,t,n){"use strict";function r(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}var i=n(450),o=n(478);e.exports.Type=n(456),e.exports.Schema=n(455),e.exports.FAILSAFE_SCHEMA=n(459),e.exports.JSON_SCHEMA=n(458),e.exports.CORE_SCHEMA=n(457),e.exports.DEFAULT_SAFE_SCHEMA=n(454),e.exports.DEFAULT_FULL_SCHEMA=n(473),e.exports.load=i.load,e.exports.loadAll=i.loadAll,e.exports.safeLoad=i.safeLoad,e.exports.safeLoadAll=i.safeLoadAll,e.exports.dump=o.dump,e.exports.safeDump=o.safeDump,e.exports.YAMLException=n(452),e.exports.MINIMAL_SCHEMA=n(459),e.exports.SAFE_SCHEMA=n(454),e.exports.DEFAULT_SCHEMA=n(473),e.exports.scan=r("scan"),e.exports.parse=r("parse"),e.exports.compose=r("compose"),e.exports.addConstructor=r("addConstructor")},function(e,t,n){"use strict";function r(e){return 10===e||13===e}function i(e){return 9===e||32===e}function o(e){return 9===e||32===e||10===e||13===e}function a(e){return 44===e||91===e||93===e||123===e||125===e}function s(e){var t;return 48<=e&&e<=57?e-48:(t=32|e,97<=t&&t<=102?t-97+10:-1)}function u(e){return 120===e?2:117===e?4:85===e?8:0}function c(e){return 48<=e&&e<=57?e-48:-1}function l(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e?"\t":9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function p(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function f(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||K,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function h(e,t){return new q(t,new U(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function d(e,t){throw h(e,t)}function m(e,t){e.onWarning&&e.onWarning.call(null,h(e,t))}function v(e,t,n,r){var i,o,a,s;if(t1&&(e.result+=z.repeat("\n",t-1))}function k(e,t,n){var s,u,c,l,p,f,h,d,m,y=e.kind,g=e.result;if(m=e.input.charCodeAt(e.position),o(m)||a(m)||35===m||38===m||42===m||33===m||124===m||62===m||39===m||34===m||37===m||64===m||96===m)return!1;if((63===m||45===m)&&(u=e.input.charCodeAt(e.position+1),o(u)||n&&a(u)))return!1;for(e.kind="scalar",e.result="",c=l=e.position,p=!1;0!==m;){if(58===m){if(u=e.input.charCodeAt(e.position+1),o(u)||n&&a(u))break}else if(35===m){if(s=e.input.charCodeAt(e.position-1),o(s))break}else{if(e.position===e.lineStart&&x(e)||n&&a(m))break;if(r(m)){if(f=e.line,h=e.lineStart,d=e.lineIndent,b(e,!1,-1),e.lineIndent>=t){p=!0,m=e.input.charCodeAt(e.position);continue}e.position=l,e.line=f,e.lineStart=h,e.lineIndent=d;break}}p&&(v(e,c,l,!1),w(e,e.line-f),c=l=e.position,p=!1),i(m)||(l=e.position+1),m=e.input.charCodeAt(++e.position)}return v(e,c,l,!1),!!e.result||(e.kind=y,e.result=g,!1)}function S(e,t){var n,i,o;if(n=e.input.charCodeAt(e.position),39!==n)return!1;for(e.kind="scalar",e.result="",e.position++,i=o=e.position;0!==(n=e.input.charCodeAt(e.position));)if(39===n){if(v(e,i,e.position,!0),n=e.input.charCodeAt(++e.position),39!==n)return!0;i=e.position,e.position++,o=e.position}else r(n)?(v(e,i,o,!0),w(e,b(e,!1,t)),i=o=e.position):e.position===e.lineStart&&x(e)?d(e,"unexpected end of the document within a single quoted scalar"):(e.position++,o=e.position);d(e,"unexpected end of the stream within a single quoted scalar")}function E(e,t){var n,i,o,a,c,l;if(l=e.input.charCodeAt(e.position),34!==l)return!1;for(e.kind="scalar",e.result="",e.position++,n=i=e.position;0!==(l=e.input.charCodeAt(e.position));){if(34===l)return v(e,n,e.position,!0),e.position++,!0;if(92===l){if(v(e,n,e.position,!0),l=e.input.charCodeAt(++e.position),r(l))b(e,!1,t);else if(l<256&&ie[l])e.result+=oe[l],e.position++;else if((c=u(l))>0){for(o=c,a=0;o>0;o--)l=e.input.charCodeAt(++e.position),(c=s(l))>=0?a=(a<<4)+c:d(e,"expected hexadecimal character");e.result+=p(a),e.position++}else d(e,"unknown escape sequence");n=i=e.position}else r(l)?(v(e,n,i,!0),w(e,b(e,!1,t)),n=i=e.position):e.position===e.lineStart&&x(e)?d(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}d(e,"unexpected end of the stream within a double quoted scalar")}function C(e,t){var n,r,i,a,s,u,c,l,p,f,h,m=!0,v=e.tag,y=e.anchor,_={};if(h=e.input.charCodeAt(e.position),91===h)a=93,c=!1,r=[];else{if(123!==h)return!1;a=125,c=!0,r={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=r),h=e.input.charCodeAt(++e.position);0!==h;){if(b(e,!0,t),h=e.input.charCodeAt(e.position),h===a)return e.position++,e.tag=v,e.anchor=y,e.kind=c?"mapping":"sequence",e.result=r,!0;m||d(e,"missed comma between flow collection entries"),p=l=f=null,s=u=!1,63===h&&(i=e.input.charCodeAt(e.position+1),o(i)&&(s=u=!0,e.position++,b(e,!0,t))),n=e.line,I(e,t,H,!1,!0),p=e.tag,l=e.result, -b(e,!0,t),h=e.input.charCodeAt(e.position),!u&&e.line!==n||58!==h||(s=!0,h=e.input.charCodeAt(++e.position),b(e,!0,t),I(e,t,H,!1,!0),f=e.result),c?g(e,r,_,p,l,f):s?r.push(g(e,null,_,p,l,f)):r.push(l),b(e,!0,t),h=e.input.charCodeAt(e.position),44===h?(m=!0,h=e.input.charCodeAt(++e.position)):m=!1}d(e,"unexpected end of the stream within a flow collection")}function A(e,t){var n,o,a,s,u=Y,l=!1,p=!1,f=t,h=0,m=!1;if(s=e.input.charCodeAt(e.position),124===s)o=!1;else{if(62!==s)return!1;o=!0}for(e.kind="scalar",e.result="";0!==s;)if(s=e.input.charCodeAt(++e.position),43===s||45===s)Y===u?u=43===s?Z:$:d(e,"repeat of a chomping mode identifier");else{if(!((a=c(s))>=0))break;0===a?d(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):p?d(e,"repeat of an indentation width identifier"):(f=t+a-1,p=!0)}if(i(s)){do s=e.input.charCodeAt(++e.position);while(i(s));if(35===s)do s=e.input.charCodeAt(++e.position);while(!r(s)&&0!==s)}for(;0!==s;){for(_(e),e.lineIndent=0,s=e.input.charCodeAt(e.position);(!p||e.lineIndentf&&(f=e.lineIndent),r(s))h++;else{if(e.lineIndentt)&&0!==i)d(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(I(e,t,X,!0,a)&&(_?v=e.result:y=e.result),_||(g(e,f,h,m,v,y,s,u),m=v=y=null),b(e,!0,-1),c=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==c)d(e,"bad indentation of a mapping entry");else if(e.lineIndentt?h=1:e.lineIndent===t?h=0:e.lineIndentt?h=1:e.lineIndent===t?h=0:e.lineIndent tag; it should be "'+l.kind+'", not "'+e.kind+'"'),l.resolve(e.result)?(e.result=l.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):d(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):d(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||v}function N(e){var t,n,a,s,u=e.position,c=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(s=e.input.charCodeAt(e.position))&&(b(e,!0,-1),s=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==s));){for(c=!0,s=e.input.charCodeAt(++e.position),t=e.position;0!==s&&!o(s);)s=e.input.charCodeAt(++e.position);for(n=e.input.slice(t,e.position),a=[],n.length<1&&d(e,"directive name must not be less than one character in length");0!==s;){for(;i(s);)s=e.input.charCodeAt(++e.position);if(35===s){do s=e.input.charCodeAt(++e.position);while(0!==s&&!r(s));break}if(r(s))break;for(t=e.position;0!==s&&!o(s);)s=e.input.charCodeAt(++e.position);a.push(e.input.slice(t,e.position))}0!==s&&_(e),V.call(se,n)?se[n](e,n,a):m(e,'unknown document directive "'+n+'"')}return b(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,b(e,!0,-1)):c&&d(e,"directives end mark is expected"),I(e,e.lineIndent-1,X,!1,!0),b(e,!0,-1),e.checkLineBreaks&&ee.test(e.input.slice(u,e.position))&&m(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&x(e)?void(46===e.input.charCodeAt(e.position)&&(e.position+=3,b(e,!0,-1))):void(e.position0&&"\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(r-1))===-1;)if(r-=1,this.position-r>t/2-1){n=" ... ",r+=5;break}for(o="",a=this.position;at/2-1){o=" ... ",a-=5;break}return s=this.buffer.slice(r,a),i.repeat(" ",e)+n+s+o+"\n"+i.repeat(" ",e+this.position-r+n.length)+"^"},r.prototype.toString=function(e){var t,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(n+=":\n"+t)),n},e.exports=r},function(e,t,n){"use strict";var r=n(455);e.exports=new r({include:[n(457)],implicit:[n(467),n(468)],explicit:[n(469),n(470),n(471),n(472)]})},function(e,t,n){"use strict";function r(e,t,n){var i=[];return e.include.forEach(function(e){n=r(e,t,n)}),e[t].forEach(function(e){n.forEach(function(t,n){t.tag===e.tag&&t.kind===e.kind&&i.push(n)}),n.push(e)}),n.filter(function(e,t){return i.indexOf(t)===-1})}function i(){function e(e){r[e.kind][e.tag]=r.fallback[e.tag]=e}var t,n,r={scalar:{},sequence:{},mapping:{},fallback:{}};for(t=0,n=arguments.length;t=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(e){i.unshift(parseFloat(e,10))}),t=0,r=1,i.forEach(function(e){t+=e*r,r*=60}),n*t):n*parseFloat(t,10)}function o(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(s.isNegativeZero(e))return"-0.0";return n=e.toString(10),l.test(n)?n.replace("e",".e"):n}function a(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!==0||s.isNegativeZero(e))}var s=n(451),u=n(456),c=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),l=/^[-+]?[0-9]+e/;e.exports=new u("tag:yaml.org,2002:float",{kind:"scalar",resolve:r,construct:i,predicate:a,represent:o,defaultStyle:"lowercase"})},function(e,t,n){"use strict";function r(e){return null!==e&&(null!==s.exec(e)||null!==u.exec(e))}function i(e){var t,n,r,i,o,a,c,l,p,f,h=0,d=null;if(t=s.exec(e),null===t&&(t=u.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,r,i));if(o=+t[4],a=+t[5],c=+t[6],t[7]){for(h=t[7].slice(0,3);h.length<3;)h+="0";h=+h}return t[9]&&(l=+t[10],p=+(t[11]||0),d=6e4*(60*l+p),"-"===t[9]&&(d=-d)),f=new Date(Date.UTC(n,r,i,o,a,c,h)),d&&f.setTime(f.getTime()-d),f}function o(e){return e.toISOString()}var a=n(456),s=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),u=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");e.exports=new a("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:r,construct:i,instanceOf:Date,represent:o})},function(e,t,n){"use strict";function r(e){return"<<"===e||null===e}var i=n(456);e.exports=new i("tag:yaml.org,2002:merge",{kind:"scalar",resolve:r})},function(e,t,n){function r(e){if(null===e)return!1;var t,n,r=0,i=e.length,o=c;for(n=0;n64)){if(t<0)return!1;r+=6}return r%8===0}function i(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,o=c,a=0,u=[];for(t=0;t>16&255),u.push(a>>8&255),u.push(255&a)),a=a<<6|o.indexOf(r.charAt(t));return n=i%4*6,0===n?(u.push(a>>16&255),u.push(a>>8&255),u.push(255&a)):18===n?(u.push(a>>10&255),u.push(a>>2&255)):12===n&&u.push(a>>4&255),s?s.from?s.from(u):new s(u):u}function o(e){var t,n,r="",i=0,o=e.length,a=c;for(t=0;t>18&63],r+=a[i>>12&63],r+=a[i>>6&63],r+=a[63&i]),i=(i<<8)+e[t];return n=o%3,0===n?(r+=a[i>>18&63],r+=a[i>>12&63],r+=a[i>>6&63],r+=a[63&i]):2===n?(r+=a[i>>10&63],r+=a[i>>4&63],r+=a[i<<2&63],r+=a[64]):1===n&&(r+=a[i>>2&63],r+=a[i<<4&63],r+=a[64],r+=a[64]),r}function a(e){return s&&s.isBuffer(e)}var s;try{s=n(132).Buffer}catch(e){}var u=n(456),c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";e.exports=new u("tag:yaml.org,2002:binary",{kind:"scalar",resolve:r,construct:i,predicate:a,represent:o})},function(e,t,n){"use strict";function r(e){if(null===e)return!0;var t,n,r,i,o,u=[],c=e;for(t=0,n=c.length;t3)return!1;if("/"!==t[t.length-r.length-1])return!1}return!0}function i(e){var t=e,n=/\/([gim]*)$/.exec(e),r="";return"/"===t[0]&&(n&&(r=n[1]),t=t.slice(1,t.length-r.length-1)),new RegExp(t,r)}function o(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function a(e){return"[object RegExp]"===Object.prototype.toString.call(e)}var s=n(456);e.exports=new s("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:r,construct:i,predicate:a,represent:o})},function(e,t,n){function r(e){if(null===e)return!1;try{var t="("+e+")",n=s.parse(t,{range:!0});return"Program"===n.type&&1===n.body.length&&"ExpressionStatement"===n.body[0].type&&"FunctionExpression"===n.body[0].expression.type}catch(e){return!1}}function i(e){var t,n="("+e+")",r=s.parse(n,{range:!0}),i=[];if("Program"!==r.type||1!==r.body.length||"ExpressionStatement"!==r.body[0].type||"FunctionExpression"!==r.body[0].expression.type)throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(e){i.push(e.name)}),t=r.body[0].expression.body.range,new Function(i,n.slice(t[0]+1,t[1]-1))}function o(e){return e.toString()}function a(e){return"[object Function]"===Object.prototype.toString.call(e)}var s;try{s=n(477)}catch(e){"undefined"!=typeof window&&(s=window.esprima)}var u=n(456);e.exports=new u("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:r,construct:i,predicate:a,represent:o})},function(e,t,n){!function(t,n){e.exports=n()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e,t,n){var r=null,i=function(e,t){n&&n(e,t),r&&r.visit(e,t)},u="function"==typeof n?i:null,c=!1;if(t){c="boolean"==typeof t.comment&&t.comment;var l="boolean"==typeof t.attachComment&&t.attachComment;(c||l)&&(r=new o.CommentHandler,r.attach=l,t.comment=!0,u=i)}var p;p=t&&"boolean"==typeof t.jsx&&t.jsx?new s.JSXParser(e,t,u):new a.Parser(e,t,u);var f=p.parseProgram();return c&&(f.comments=r.comments),p.config.tokens&&(f.tokens=p.tokens),p.config.tolerant&&(f.errors=p.errorHandler.errors),f}function i(e,t,n){var r,i=new u.Tokenizer(e,t);r=[];try{for(;;){var o=i.getNextToken();if(!o)break;n&&(o=n(o)),r.push(o)}}catch(e){i.errorHandler.tolerate(e)}return i.errorHandler.tolerant&&(r.errors=i.errors()),r}var o=n(1),a=n(3),s=n(11),u=n(15);t.parse=r,t.tokenize=i;var c=n(2);t.Syntax=c.Syntax,t.version="3.1.3"},function(e,t,n){"use strict";var r=n(2),i=function(){function e(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return e.prototype.insertInnerComments=function(e,t){if(e.type===r.Syntax.BlockStatement&&0===e.body.length){for(var n=[],i=this.leading.length-1;i>=0;--i){var o=this.leading[i];t.end.offset>=o.start&&(n.unshift(o.comment),this.leading.splice(i,1),this.trailing.splice(i,1))}n.length&&(e.innerComments=n)}},e.prototype.findTrailingComments=function(e,t){var n=[];if(this.trailing.length>0){for(var r=this.trailing.length-1;r>=0;--r){var i=this.trailing[r];i.start>=t.end.offset&&n.unshift(i.comment)}return this.trailing.length=0,n}var o=this.stack[this.stack.length-1];if(o&&o.node.trailingComments){var a=o.node.trailingComments[0];a&&a.range[0]>=t.end.offset&&(n=o.node.trailingComments,delete o.node.trailingComments)}return n},e.prototype.findLeadingComments=function(e,t){for(var n,r=[];this.stack.length>0;){var i=this.stack[this.stack.length-1];if(!(i&&i.start>=t.start.offset))break;n=this.stack.pop().node}if(n){for(var o=n.leadingComments?n.leadingComments.length:0,a=o-1;a>=0;--a){var s=n.leadingComments[a];s.range[1]<=t.start.offset&&(r.unshift(s),n.leadingComments.splice(a,1))}return n.leadingComments&&0===n.leadingComments.length&&delete n.leadingComments,r}for(var a=this.leading.length-1;a>=0;--a){var i=this.leading[a];i.start<=t.start.offset&&(r.unshift(i.comment),this.leading.splice(a,1))}return r},e.prototype.visitNode=function(e,t){if(!(e.type===r.Syntax.Program&&e.body.length>0)){this.insertInnerComments(e,t);var n=this.findTrailingComments(e,t),i=this.findLeadingComments(e,t);i.length>0&&(e.leadingComments=i),n.length>0&&(e.trailingComments=n),this.stack.push({node:e,start:t.start.offset})}},e.prototype.visitComment=function(e,t){var n="L"===e.type[0]?"Line":"Block",r={type:n,value:e.value};if(e.range&&(r.range=e.range),e.loc&&(r.loc=e.loc),this.comments.push(r),this.attach){var i={comment:{type:n,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(i.comment.loc=e.loc),e.type=n,this.leading.push(i),this.trailing.push(i)}},e.prototype.visit=function(e,t){"LineComment"===e.type?this.visitComment(e,t):"BlockComment"===e.type?this.visitComment(e,t):this.attach&&this.visitNode(e,t)},e}();t.CommentHandler=i},function(e,t){"use strict";t.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,t,n){"use strict";var r=n(4),i=n(5),o=n(6),a=n(7),s=n(8),u=n(2),c=n(10),l="ArrowParameterPlaceHolder",p=function(){function e(e,t,n){void 0===t&&(t={}),this.config={range:"boolean"==typeof t.range&&t.range,loc:"boolean"==typeof t.loc&&t.loc,source:null,tokens:"boolean"==typeof t.tokens&&t.tokens,comment:"boolean"==typeof t.comment&&t.comment,tolerant:"boolean"==typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=String(t.source)),this.delegate=n,this.errorHandler=new o.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new s.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.sourceType=t&&"module"===t.sourceType?"module":"script",this.lookahead=null,this.hasLineTerminator=!1,this.context={allowIn:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:"module"===this.sourceType},this.tokens=[],this.startMarker={index:0,lineNumber:this.scanner.lineNumber, -lineStart:0},this.lastMarker={index:0,lineNumber:this.scanner.lineNumber,lineStart:0},this.nextToken(),this.lastMarker={index:this.scanner.index,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],n=1;n0&&this.delegate)for(var t=0;t>="===e||">>>="===e||"&="===e||"^="===e||"|="===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,n=this.context.isAssignmentTarget,r=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=n,this.context.firstCoverInitializedNameError=r,i},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,n=this.context.isAssignmentTarget,r=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&n,this.context.firstCoverInitializedNameError=r||this.context.firstCoverInitializedNameError,i},e.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(this.lookahead.type===a.Token.EOF||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.lineNumber=this.startMarker.lineNumber,this.lastMarker.lineStart=this.startMarker.lineStart)},e.prototype.parsePrimaryExpression=function(){var e,t,n,r,o=this.createNode();switch(this.lookahead.type){case a.Token.Identifier:"module"===this.sourceType&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.finalize(o,new c.Identifier(this.nextToken().value));break;case a.Token.NumericLiteral:case a.Token.StringLiteral:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,i.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),r=this.getTokenRaw(n),e=this.finalize(o,new c.Literal(n.value,r));break;case a.Token.BooleanLiteral:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),n.value="true"===n.value,r=this.getTokenRaw(n),e=this.finalize(o,new c.Literal(n.value,r));break;case a.Token.NullLiteral:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),n.value=null,r=this.getTokenRaw(n),e=this.finalize(o,new c.Literal(n.value,r));break;case a.Token.Template:e=this.parseTemplateLiteral();break;case a.Token.Punctuator:switch(t=this.lookahead.value){case"(":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,n=this.nextRegexToken(),r=this.getTokenRaw(n),e=this.finalize(o,new c.RegexLiteral(n.value,r,n.regex));break;default:this.throwUnexpectedToken(this.nextToken())}break;case a.Token.Keyword:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?e=this.finalize(o,new c.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?e=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),e=this.finalize(o,new c.ThisExpression)):this.matchKeyword("class")?e=this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:this.throwUnexpectedToken(this.nextToken())}return e},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new c.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){var n=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(n)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new c.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,n=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,n},e.prototype.parsePropertyMethodFunction=function(){var e=!1,t=this.createNode(),n=this.context.allowYield;this.context.allowYield=!1;var r=this.parseFormalParameters(),i=this.parsePropertyMethod(r);return this.context.allowYield=n,this.finalize(t,new c.FunctionExpression(null,r.params,i,e))},e.prototype.parseObjectPropertyKey=function(){var e=this.createNode(),t=this.nextToken(),n=null;switch(t.type){case a.Token.StringLiteral:case a.Token.NumericLiteral:this.context.strict&&t.octal&&this.tolerateUnexpectedToken(t,i.Messages.StrictOctalLiteral);var r=this.getTokenRaw(t);n=this.finalize(e,new c.Literal(t.value,r));break;case a.Token.Identifier:case a.Token.BooleanLiteral:case a.Token.NullLiteral:case a.Token.Keyword:n=this.finalize(e,new c.Identifier(t.value));break;case a.Token.Punctuator:"["===t.value?(n=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):this.throwUnexpectedToken(t);break;default:this.throwUnexpectedToken(t)}return n},e.prototype.isPropertyKey=function(e,t){return e.type===u.Syntax.Identifier&&e.name===t||e.type===u.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t,n,r,o=this.createNode(),s=this.lookahead,u=!1,l=!1,p=!1;s.type===a.Token.Identifier?(this.nextToken(),n=this.finalize(o,new c.Identifier(s.value))):this.match("*")?this.nextToken():(u=this.match("["),n=this.parseObjectPropertyKey());var f=this.qualifiedPropertyName(this.lookahead);if(s.type===a.Token.Identifier&&"get"===s.value&&f)t="get",u=this.match("["),n=this.parseObjectPropertyKey(),this.context.allowYield=!1,r=this.parseGetterMethod();else if(s.type===a.Token.Identifier&&"set"===s.value&&f)t="set",u=this.match("["),n=this.parseObjectPropertyKey(),r=this.parseSetterMethod();else if(s.type===a.Token.Punctuator&&"*"===s.value&&f)t="init",u=this.match("["),n=this.parseObjectPropertyKey(),r=this.parseGeneratorMethod(),l=!0;else if(n||this.throwUnexpectedToken(this.lookahead),t="init",this.match(":"))!u&&this.isPropertyKey(n,"__proto__")&&(e.value&&this.tolerateError(i.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),r=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))r=this.parsePropertyMethodFunction(),l=!0;else if(s.type===a.Token.Identifier){var h=this.finalize(o,new c.Identifier(s.value));if(this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),p=!0;var d=this.isolateCoverGrammar(this.parseAssignmentExpression);r=this.finalize(o,new c.AssignmentPattern(h,d))}else p=!0,r=h}else this.throwUnexpectedToken(this.nextToken());return this.finalize(o,new c.Property(t,n,u,r,l,p))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var t=[],n={value:!1};!this.match("}");)t.push(this.parseObjectProperty(n)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new c.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){r.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),t=this.nextToken(),n={raw:t.value.raw,cooked:t.value.cooked};return this.finalize(e,new c.TemplateElement(n,t.tail))},e.prototype.parseTemplateElement=function(){this.lookahead.type!==a.Token.Template&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),n={raw:t.value.raw,cooked:t.value.cooked};return this.finalize(e,new c.TemplateElement(n,t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],n=[],r=this.parseTemplateHead();for(n.push(r);!r.tail;)t.push(this.parseExpression()),r=this.parseTemplateElement(),n.push(r);return this.finalize(e,new c.TemplateLiteral(n,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case u.Syntax.Identifier:case u.Syntax.MemberExpression:case u.Syntax.RestElement:case u.Syntax.AssignmentPattern:break;case u.Syntax.SpreadElement:e.type=u.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case u.Syntax.ArrayExpression:e.type=u.Syntax.ArrayPattern;for(var t=0;t")||this.expect("=>"),e={type:l,params:[]};else{var t=this.lookahead,n=[];if(this.match("..."))e=this.parseRestElement(n),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:l,params:[e]};else{var r=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var i=[];for(this.context.isAssignmentTarget=!1,i.push(e);this.startMarker.index")||this.expect("=>"),this.context.isBindingElement=!1;for(var o=0;o")&&(e.type===u.Syntax.Identifier&&"yield"===e.name&&(r=!0,e={type:l,params:[e]}),!r)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===u.Syntax.SequenceExpression)for(var o=0;o0){this.nextToken(),n.prec=r,this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var i=[e,this.lookahead],o=t,a=this.isolateCoverGrammar(this.parseExponentiationExpression),s=[o,n,a];;){if(r=this.binaryPrecedence(this.lookahead),r<=0)break;for(;s.length>2&&r<=s[s.length-2].prec;){a=s.pop();var u=s.pop().value;o=s.pop(),i.pop();var l=this.startNode(i[i.length-1]);s.push(this.finalize(l,new c.BinaryExpression(u,o,a)))}n=this.nextToken(),n.prec=r,s.push(n),i.push(this.lookahead),s.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var p=s.length-1;for(t=s[p],i.pop();p>1;){var l=this.startNode(i.pop());t=this.finalize(l,new c.BinaryExpression(s[p-1].value,s[p-2],t)),p-=2}}return t},e.prototype.parseConditionalExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var n=this.context.allowIn;this.context.allowIn=!0;var r=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=n,this.expect(":");var i=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new c.ConditionalExpression(t,r,i)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t},e.prototype.checkPatternParam=function(e,t){switch(t.type){case u.Syntax.Identifier:this.validateParam(e,t,t.name);break;case u.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case u.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case u.Syntax.ArrayPattern:for(var n=0;n")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var r=this.reinterpretAsCoverFormalsList(e);if(r){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var o=this.context.strict,a=this.context.allowYield;this.context.allowYield=!0;var s=this.startNode(t);this.expect("=>");var p=this.match("{")?this.parseFunctionSourceElements():this.isolateCoverGrammar(this.parseAssignmentExpression),f=p.type!==u.Syntax.BlockStatement;this.context.strict&&r.firstRestricted&&this.throwUnexpectedToken(r.firstRestricted,r.message),this.context.strict&&r.stricted&&this.tolerateUnexpectedToken(r.stricted,r.message),e=this.finalize(s,new c.ArrowFunctionExpression(r.params,p,f)),this.context.strict=o,this.context.allowYield=a}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(i.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===u.Syntax.Identifier){var h=e;this.scanner.isRestrictedWord(h.name)&&this.tolerateUnexpectedToken(n,i.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(h.name)&&this.tolerateUnexpectedToken(n,i.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1),n=this.nextToken();var d=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new c.AssignmentExpression(n.value,e,d)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var n=[];for(n.push(t);this.startMarker.index",t.TokenName[n.Identifier]="Identifier",t.TokenName[n.Keyword]="Keyword",t.TokenName[n.NullLiteral]="Null",t.TokenName[n.NumericLiteral]="Numeric", -t.TokenName[n.Punctuator]="Punctuator",t.TokenName[n.StringLiteral]="String",t.TokenName[n.RegularExpression]="RegularExpression",t.TokenName[n.Template]="Template"},function(e,t,n){"use strict";function r(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function i(e){return"01234567".indexOf(e)}var o=n(4),a=n(5),s=n(9),u=n(7),c=function(){function e(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return e.prototype.eof=function(){return this.index>=this.length},e.prototype.throwUnexpectedToken=function(e){void 0===e&&(e=a.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(){this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,a.Messages.UnexpectedTokenIllegal)},e.prototype.skipSingleLineComment=function(e){var t,n,r;for(this.trackComment&&(t=[],n=this.index-e,r={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var i=this.source.charCodeAt(this.index);if(++this.index,s.Character.isLineTerminator(i)){if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart-1};var o={multiLine:!1,slice:[n+e,this.index-1],range:[n,this.index-1],loc:r};t.push(o)}return 13===i&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t}}if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart};var o={multiLine:!1,slice:[n+e,this.index],range:[n,this.index],loc:r};t.push(o)}return t},e.prototype.skipMultiLineComment=function(){var e,t,n;for(this.trackComment&&(e=[],t=this.index-2,n={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var r=this.source.charCodeAt(this.index);if(s.Character.isLineTerminator(r))13===r&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===r){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart};var i={multiLine:!0,slice:[t+2,this.index-2],range:[t,this.index],loc:n};e.push(i)}return e}++this.index}else++this.index}if(this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart};var i={multiLine:!0,slice:[t+2,this.index],range:[t,this.index],loc:n};e.push(i)}return this.tolerateUnexpectedToken(),e},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index;!this.eof();){var n=this.source.charCodeAt(this.index);if(s.Character.isWhiteSpace(n))++this.index;else if(s.Character.isLineTerminator(n))++this.index,13===n&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===n)if(n=this.source.charCodeAt(this.index+1),47===n){this.index+=2;var r=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(r)),t=!0}else{if(42!==n)break;this.index+=2;var r=this.skipMultiLineComment();this.trackComment&&(e=e.concat(r))}else if(t&&45===n){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3;var r=this.skipSingleLineComment(3);this.trackComment&&(e=e.concat(r))}else{if(60!==n)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4;var r=this.skipSingleLineComment(4);this.trackComment&&(e=e.concat(r))}}return e},e.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}},e.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},e.prototype.isRestrictedWord=function(e){return"eval"===e||"arguments"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var n=this.source.charCodeAt(e+1);if(n>=56320&&n<=57343){var r=t;t=1024*(r-55296)+n-56320+65536}}return t},e.prototype.scanHexEscape=function(e){for(var t="u"===e?4:2,n=0,i=0;i1114111||"}"!==e)&&this.throwUnexpectedToken(),s.Character.fromCodePoint(t)},e.prototype.getIdentifier=function(){for(var e=this.index++;!this.eof();){var t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!s.Character.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e=this.codePointAt(this.index),t=s.Character.fromCodePoint(e);this.index+=t.length;var n;for(92===e&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,n=this.scanUnicodeCodePointEscape()):(n=this.scanHexEscape("u"),e=n.charCodeAt(0),n&&"\\"!==n&&s.Character.isIdentifierStart(e)||this.throwUnexpectedToken()),t=n);!this.eof()&&(e=this.codePointAt(this.index),s.Character.isIdentifierPart(e));)n=s.Character.fromCodePoint(e),t+=n,this.index+=n.length,92===e&&(t=t.substr(0,t.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,n=this.scanUnicodeCodePointEscape()):(n=this.scanHexEscape("u"),e=n.charCodeAt(0),n&&"\\"!==n&&s.Character.isIdentifierPart(e)||this.throwUnexpectedToken()),t+=n);return t},e.prototype.octalToDecimal=function(e){var t="0"!==e,n=i(e);return!this.eof()&&s.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,n=8*n+i(this.source[this.index++]),"0123".indexOf(e)>=0&&!this.eof()&&s.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(n=8*n+i(this.source[this.index++]))),{code:n,octal:t}},e.prototype.scanIdentifier=function(){var e,t=this.index,n=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();return e=1===n.length?u.Token.Identifier:this.isKeyword(n)?u.Token.Keyword:"null"===n?u.Token.NullLiteral:"true"===n||"false"===n?u.Token.BooleanLiteral:u.Token.Identifier,{type:e,value:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.scanPunctuator=function(){var e={type:u.Token.Punctuator,value:"",lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index},t=this.source[this.index];switch(t){case"(":case"{":"{"===t&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,t="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:t=this.source.substr(this.index,4),">>>="===t?this.index+=4:(t=t.substr(0,3),"==="===t||"!=="===t||">>>"===t||"<<="===t||">>="===t||"**="===t?this.index+=3:(t=t.substr(0,2),"&&"===t||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t||"**"===t?this.index+=2:(t=this.source[this.index],"<>=!+-*%&|^/".indexOf(t)>=0&&++this.index)))}return this.index===e.start&&this.throwUnexpectedToken(),e.end=this.index,e.value=t,e},e.prototype.scanHexLiteral=function(e){for(var t="";!this.eof()&&s.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),s.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:u.Token.NumericLiteral,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t,n="";!this.eof()&&(t=this.source[this.index],"0"===t||"1"===t);)n+=this.source[this.index++];return 0===n.length&&this.throwUnexpectedToken(),this.eof()||(t=this.source.charCodeAt(this.index),(s.Character.isIdentifierStart(t)||s.Character.isDecimalDigit(t))&&this.throwUnexpectedToken()),{type:u.Token.NumericLiteral,value:parseInt(n,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var n="",r=!1;for(s.Character.isOctalDigit(e.charCodeAt(0))?(r=!0,n="0"+this.source[this.index++]):++this.index;!this.eof()&&s.Character.isOctalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];return r||0!==n.length||this.throwUnexpectedToken(),(s.Character.isIdentifierStart(this.source.charCodeAt(this.index))||s.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:u.Token.NumericLiteral,value:parseInt(n,8),octal:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e=0&&(r=r.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,function(e,t,r){var o=parseInt(t||r,16);return o>1114111&&i.throwUnexpectedToken(a.Messages.InvalidRegExp),o<=65535?String.fromCharCode(o):n}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,n));try{RegExp(r)}catch(e){this.throwUnexpectedToken(a.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(e){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];o.assert("/"===e,"Regular expression literal must start with a slash");for(var t=this.source[this.index++],n=!1,r=!1;!this.eof();)if(e=this.source[this.index++],t+=e,"\\"===e)e=this.source[this.index++],s.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(a.Messages.UnterminatedRegExp),t+=e;else if(s.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(a.Messages.UnterminatedRegExp);else if(n)"]"===e&&(n=!1);else{if("/"===e){r=!0;break}"["===e&&(n=!0)}r||this.throwUnexpectedToken(a.Messages.UnterminatedRegExp);var i=t.substr(1,t.length-2);return{value:i,literal:t}},e.prototype.scanRegExpFlags=function(){for(var e="",t="";!this.eof();){var n=this.source[this.index];if(!s.Character.isIdentifierPart(n.charCodeAt(0)))break;if(++this.index,"\\"!==n||this.eof())t+=n,e+=n;else if(n=this.source[this.index],"u"===n){++this.index;var r=this.index;if(n=this.scanHexEscape("u"))for(t+=n,e+="\\u";r=55296&&e<57343&&s.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=c},function(e,t){"use strict";var n={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){ -return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&n.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&n.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,n){"use strict";var r=n(2),i=function(){function e(e){this.type=r.Syntax.ArrayExpression,this.elements=e}return e}();t.ArrayExpression=i;var o=function(){function e(e){this.type=r.Syntax.ArrayPattern,this.elements=e}return e}();t.ArrayPattern=o;var a=function(){function e(e,t,n){this.type=r.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=n}return e}();t.ArrowFunctionExpression=a;var s=function(){function e(e,t,n){this.type=r.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=n}return e}();t.AssignmentExpression=s;var u=function(){function e(e,t){this.type=r.Syntax.AssignmentPattern,this.left=e,this.right=t}return e}();t.AssignmentPattern=u;var c=function(){function e(e,t,n){var i="||"===e||"&&"===e;this.type=i?r.Syntax.LogicalExpression:r.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=n}return e}();t.BinaryExpression=c;var l=function(){function e(e){this.type=r.Syntax.BlockStatement,this.body=e}return e}();t.BlockStatement=l;var p=function(){function e(e){this.type=r.Syntax.BreakStatement,this.label=e}return e}();t.BreakStatement=p;var f=function(){function e(e,t){this.type=r.Syntax.CallExpression,this.callee=e,this.arguments=t}return e}();t.CallExpression=f;var h=function(){function e(e,t){this.type=r.Syntax.CatchClause,this.param=e,this.body=t}return e}();t.CatchClause=h;var d=function(){function e(e){this.type=r.Syntax.ClassBody,this.body=e}return e}();t.ClassBody=d;var m=function(){function e(e,t,n){this.type=r.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=n}return e}();t.ClassDeclaration=m;var v=function(){function e(e,t,n){this.type=r.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=n}return e}();t.ClassExpression=v;var y=function(){function e(e,t){this.type=r.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t}return e}();t.ComputedMemberExpression=y;var g=function(){function e(e,t,n){this.type=r.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=n}return e}();t.ConditionalExpression=g;var _=function(){function e(e){this.type=r.Syntax.ContinueStatement,this.label=e}return e}();t.ContinueStatement=_;var b=function(){function e(){this.type=r.Syntax.DebuggerStatement}return e}();t.DebuggerStatement=b;var x=function(){function e(e,t){this.type=r.Syntax.ExpressionStatement,this.expression=e,this.directive=t}return e}();t.Directive=x;var w=function(){function e(e,t){this.type=r.Syntax.DoWhileStatement,this.body=e,this.test=t}return e}();t.DoWhileStatement=w;var k=function(){function e(){this.type=r.Syntax.EmptyStatement}return e}();t.EmptyStatement=k;var S=function(){function e(e){this.type=r.Syntax.ExportAllDeclaration,this.source=e}return e}();t.ExportAllDeclaration=S;var E=function(){function e(e){this.type=r.Syntax.ExportDefaultDeclaration,this.declaration=e}return e}();t.ExportDefaultDeclaration=E;var C=function(){function e(e,t,n){this.type=r.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=n}return e}();t.ExportNamedDeclaration=C;var A=function(){function e(e,t){this.type=r.Syntax.ExportSpecifier,this.exported=t,this.local=e}return e}();t.ExportSpecifier=A;var T=function(){function e(e){this.type=r.Syntax.ExpressionStatement,this.expression=e}return e}();t.ExpressionStatement=T;var D=function(){function e(e,t,n){this.type=r.Syntax.ForInStatement,this.left=e,this.right=t,this.body=n,this.each=!1}return e}();t.ForInStatement=D;var M=function(){function e(e,t,n){this.type=r.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=n}return e}();t.ForOfStatement=M;var O=function(){function e(e,t,n,i){this.type=r.Syntax.ForStatement,this.init=e,this.test=t,this.update=n,this.body=i}return e}();t.ForStatement=O;var P=function(){function e(e,t,n,i){this.type=r.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=n,this.generator=i,this.expression=!1}return e}();t.FunctionDeclaration=P;var I=function(){function e(e,t,n,i){this.type=r.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=n,this.generator=i,this.expression=!1}return e}();t.FunctionExpression=I;var N=function(){function e(e){this.type=r.Syntax.Identifier,this.name=e}return e}();t.Identifier=N;var R=function(){function e(e,t,n){this.type=r.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=n}return e}();t.IfStatement=R;var j=function(){function e(e,t){this.type=r.Syntax.ImportDeclaration,this.specifiers=e,this.source=t}return e}();t.ImportDeclaration=j;var F=function(){function e(e){this.type=r.Syntax.ImportDefaultSpecifier,this.local=e}return e}();t.ImportDefaultSpecifier=F;var B=function(){function e(e){this.type=r.Syntax.ImportNamespaceSpecifier,this.local=e}return e}();t.ImportNamespaceSpecifier=B;var L=function(){function e(e,t){this.type=r.Syntax.ImportSpecifier,this.local=e,this.imported=t}return e}();t.ImportSpecifier=L;var z=function(){function e(e,t){this.type=r.Syntax.LabeledStatement,this.label=e,this.body=t}return e}();t.LabeledStatement=z;var q=function(){function e(e,t){this.type=r.Syntax.Literal,this.value=e,this.raw=t}return e}();t.Literal=q;var U=function(){function e(e,t){this.type=r.Syntax.MetaProperty,this.meta=e,this.property=t}return e}();t.MetaProperty=U;var W=function(){function e(e,t,n,i,o){this.type=r.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=n,this.kind=i,this.static=o}return e}();t.MethodDefinition=W;var K=function(){function e(e,t){this.type=r.Syntax.NewExpression,this.callee=e,this.arguments=t}return e}();t.NewExpression=K;var V=function(){function e(e){this.type=r.Syntax.ObjectExpression,this.properties=e}return e}();t.ObjectExpression=V;var H=function(){function e(e){this.type=r.Syntax.ObjectPattern,this.properties=e}return e}();t.ObjectPattern=H;var J=function(){function e(e,t){this.type=r.Syntax.Program,this.body=e,this.sourceType=t}return e}();t.Program=J;var G=function(){function e(e,t,n,i,o,a){this.type=r.Syntax.Property,this.key=t,this.computed=n,this.value=i,this.kind=e,this.method=o,this.shorthand=a}return e}();t.Property=G;var X=function(){function e(e,t,n){this.type=r.Syntax.Literal,this.value=e,this.raw=t,this.regex=n}return e}();t.RegexLiteral=X;var Y=function(){function e(e){this.type=r.Syntax.RestElement,this.argument=e}return e}();t.RestElement=Y;var $=function(){function e(e){this.type=r.Syntax.ReturnStatement,this.argument=e}return e}();t.ReturnStatement=$;var Z=function(){function e(e){this.type=r.Syntax.SequenceExpression,this.expressions=e}return e}();t.SequenceExpression=Z;var Q=function(){function e(e){this.type=r.Syntax.SpreadElement,this.argument=e}return e}();t.SpreadElement=Q;var ee=function(){function e(e,t){this.type=r.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t}return e}();t.StaticMemberExpression=ee;var te=function(){function e(){this.type=r.Syntax.Super}return e}();t.Super=te;var ne=function(){function e(e,t){this.type=r.Syntax.SwitchCase,this.test=e,this.consequent=t}return e}();t.SwitchCase=ne;var re=function(){function e(e,t){this.type=r.Syntax.SwitchStatement,this.discriminant=e,this.cases=t}return e}();t.SwitchStatement=re;var ie=function(){function e(e,t){this.type=r.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t}return e}();t.TaggedTemplateExpression=ie;var oe=function(){function e(e,t){this.type=r.Syntax.TemplateElement,this.value=e,this.tail=t}return e}();t.TemplateElement=oe;var ae=function(){function e(e,t){this.type=r.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t}return e}();t.TemplateLiteral=ae;var se=function(){function e(){this.type=r.Syntax.ThisExpression}return e}();t.ThisExpression=se;var ue=function(){function e(e){this.type=r.Syntax.ThrowStatement,this.argument=e}return e}();t.ThrowStatement=ue;var ce=function(){function e(e,t,n){this.type=r.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=n}return e}();t.TryStatement=ce;var le=function(){function e(e,t){this.type=r.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0}return e}();t.UnaryExpression=le;var pe=function(){function e(e,t,n){this.type=r.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=n}return e}();t.UpdateExpression=pe;var fe=function(){function e(e,t){this.type=r.Syntax.VariableDeclaration,this.declarations=e,this.kind=t}return e}();t.VariableDeclaration=fe;var he=function(){function e(e,t){this.type=r.Syntax.VariableDeclarator,this.id=e,this.init=t}return e}();t.VariableDeclarator=he;var de=function(){function e(e,t){this.type=r.Syntax.WhileStatement,this.test=e,this.body=t}return e}();t.WhileStatement=de;var me=function(){function e(e,t){this.type=r.Syntax.WithStatement,this.object=e,this.body=t}return e}();t.WithStatement=me;var ve=function(){function e(e,t){this.type=r.Syntax.YieldExpression,this.argument=e,this.delegate=t}return e}();t.YieldExpression=ve},function(e,t,n){"use strict";function r(e){var t;switch(e.type){case l.JSXSyntax.JSXIdentifier:var n=e;t=n.name;break;case l.JSXSyntax.JSXNamespacedName:var i=e;t=r(i.namespace)+":"+r(i.name);break;case l.JSXSyntax.JSXMemberExpression:var o=e;t=r(o.object)+"."+r(o.property)}return t}var i,o=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},a=n(9),s=n(7),u=n(3),c=n(12),l=n(13),p=n(10),f=n(14);!function(e){e[e.Identifier=100]="Identifier",e[e.Text=101]="Text"}(i||(i={})),s.TokenName[i.Identifier]="JSXIdentifier",s.TokenName[i.Text]="JSXText";var h=function(e){function t(t,n,r){e.call(this,t,n,r)}return o(t,e),t.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},t.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.lineNumber,this.scanner.lineStart=this.startMarker.lineStart},t.prototype.finishJSX=function(){this.nextToken()},t.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},t.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.scanXHTMLEntity=function(e){for(var t="&",n=!0,r=!1,i=!1,o=!1;!this.scanner.eof()&&n&&!r;){var s=this.scanner.source[this.scanner.index];if(s===e)break;if(r=";"===s,t+=s,++this.scanner.index,!r)switch(t.length){case 2:i="#"===s;break;case 3:i&&(o="x"===s,n=o||a.Character.isDecimalDigit(s.charCodeAt(0)),i=i&&!o);break;default:n=n&&!(i&&!a.Character.isDecimalDigit(s.charCodeAt(0))),n=n&&!(o&&!a.Character.isHexDigit(s.charCodeAt(0)))}}if(n&&r&&t.length>2){var u=t.substr(1,t.length-2);i&&u.length>1?t=String.fromCharCode(parseInt(u.substr(1),10)):o&&u.length>2?t=String.fromCharCode(parseInt("0"+u.substr(1),16)):i||o||!c.XHTMLEntities[u]||(t=c.XHTMLEntities[u])}return t},t.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e){var t=this.scanner.source[this.scanner.index++];return{type:s.Token.Punctuator,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index}}if(34===e||39===e){for(var n=this.scanner.index,r=this.scanner.source[this.scanner.index++],o="";!this.scanner.eof();){var u=this.scanner.source[this.scanner.index++];if(u===r)break;o+="&"===u?this.scanXHTMLEntity(r):u}return{type:s.Token.StringLiteral,value:o,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index}}if(46===e){var c=this.scanner.source.charCodeAt(this.scanner.index+1),l=this.scanner.source.charCodeAt(this.scanner.index+2),t=46===c&&46===l?"...":".",n=this.scanner.index;return this.scanner.index+=t.length,{type:s.Token.Punctuator,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index}}if(96===e)return{type:s.Token.Template,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(a.Character.isIdentifierStart(e)&&92!==e){var n=this.scanner.index;for(++this.scanner.index;!this.scanner.eof();){var u=this.scanner.source.charCodeAt(this.scanner.index);if(a.Character.isIdentifierPart(u)&&92!==u)++this.scanner.index;else{if(45!==u)break;++this.scanner.index}}var p=this.scanner.source.slice(n,this.scanner.index);return{type:i.Identifier,value:p,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index}}this.scanner.throwUnexpectedToken()},t.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},t.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;for(var e=this.scanner.index,t="";!this.scanner.eof();){var n=this.scanner.source[this.scanner.index];if("{"===n||"<"===n)break;++this.scanner.index,t+=n,a.Character.isLineTerminator(n.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===n&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart;var r={type:i.Text,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(r)),r},t.prototype.peekJSXToken=function(){var e=this.scanner.index,t=this.scanner.lineNumber,n=this.scanner.lineStart;this.scanner.scanComments();var r=this.lexJSX();return this.scanner.index=e,this.scanner.lineNumber=t,this.scanner.lineStart=n,r},t.prototype.expectJSX=function(e){var t=this.nextJSXToken();t.type===s.Token.Punctuator&&t.value===e||this.throwUnexpectedToken(t)},t.prototype.matchJSX=function(e){var t=this.peekJSXToken();return t.type===s.Token.Punctuator&&t.value===e},t.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode(),t=this.nextJSXToken();return t.type!==i.Identifier&&this.throwUnexpectedToken(t),this.finalize(e,new f.JSXIdentifier(t.value))},t.prototype.parseJSXElementName=function(){var e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(":")){var n=t;this.expectJSX(":");var r=this.parseJSXIdentifier();t=this.finalize(e,new f.JSXNamespacedName(n,r))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var i=t;this.expectJSX(".");var o=this.parseJSXIdentifier();t=this.finalize(e,new f.JSXMemberExpression(i,o))}return t},t.prototype.parseJSXAttributeName=function(){var e,t=this.createJSXNode(),n=this.parseJSXIdentifier();if(this.matchJSX(":")){var r=n;this.expectJSX(":");var i=this.parseJSXIdentifier();e=this.finalize(t,new f.JSXNamespacedName(r,i))}else e=n;return e},t.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode(),t=this.nextJSXToken();t.type!==s.Token.StringLiteral&&this.throwUnexpectedToken(t);var n=this.getTokenRaw(t);return this.finalize(e,new p.Literal(t.value,n))},t.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new f.JSXExpressionContainer(t))},t.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},t.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode(),t=this.parseJSXAttributeName(),n=null;return this.matchJSX("=")&&(this.expectJSX("="),n=this.parseJSXAttributeValue()),this.finalize(e,new f.JSXAttribute(t,n))},t.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new f.JSXSpreadAttribute(t))},t.prototype.parseJSXAttributes=function(){for(var e=[];!this.matchJSX("/")&&!this.matchJSX(">");){var t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName(),n=this.parseJSXAttributes(),r=this.matchJSX("/");return r&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new f.JSXOpeningElement(t,r,n))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new f.JSXClosingElement(t))}var n=this.parseJSXElementName(),r=this.parseJSXAttributes(),i=this.matchJSX("/");return i&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new f.JSXOpeningElement(n,i,r))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.finalize(e,new f.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e=this.createJSXNode();this.expectJSX("{");var t;return this.matchJSX("}")?(t=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),t=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(e,new f.JSXExpressionContainer(t))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),n=this.nextJSXText();if(n.start0))break;var a=this.finalize(e.node,new f.JSXElement(e.opening,e.children,e.closing));e=t.pop(),e.children.push(a)}}return e},t.prototype.parseJSXElement=function(){var e=this.createJSXNode(),t=this.parseJSXOpeningElement(),n=[],r=null;if(!t.selfClosing){var i=this.parseComplexJSXElement({node:e,opening:t,closing:r,children:n});n=i.children,r=i.closing}return this.finalize(e,new f.JSXElement(t,n,r))},t.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var e=this.parseJSXElement();return this.finishJSX(),e},t}(u.Parser);t.JSXParser=h},function(e,t){"use strict";t.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(e,t){"use strict";t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,n){"use strict";var r=n(13),i=function(){function e(e){this.type=r.JSXSyntax.JSXClosingElement,this.name=e}return e}();t.JSXClosingElement=i;var o=function(){function e(e,t,n){this.type=r.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=n}return e}();t.JSXElement=o;var a=function(){function e(){this.type=r.JSXSyntax.JSXEmptyExpression}return e}();t.JSXEmptyExpression=a;var s=function(){function e(e){this.type=r.JSXSyntax.JSXExpressionContainer,this.expression=e}return e}();t.JSXExpressionContainer=s;var u=function(){function e(e){this.type=r.JSXSyntax.JSXIdentifier,this.name=e}return e}();t.JSXIdentifier=u;var c=function(){function e(e,t){this.type=r.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t}return e}();t.JSXMemberExpression=c;var l=function(){function e(e,t){this.type=r.JSXSyntax.JSXAttribute,this.name=e,this.value=t}return e}();t.JSXAttribute=l;var p=function(){function e(e,t){this.type=r.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t}return e}();t.JSXNamespacedName=p;var f=function(){function e(e,t,n){this.type=r.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=n}return e}();t.JSXOpeningElement=f;var h=function(){function e(e){this.type=r.JSXSyntax.JSXSpreadAttribute,this.argument=e}return e}();t.JSXSpreadAttribute=h;var d=function(){function e(e,t){this.type=r.JSXSyntax.JSXText,this.value=e,this.raw=t}return e}();t.JSXText=d},function(e,t,n){"use strict";var r=n(8),i=n(6),o=n(7),a=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case"this":case"]":t=!1;break;case")":var n=this.values[this.paren-1];t="if"===n||"while"===n||"for"===n||"with"===n;break;case"}":if(t=!1,"function"===this.values[this.curly-3]){var r=this.values[this.curly-4];t=!!r&&!this.beforeFunctionExpression(r)}else if("function"===this.values[this.curly-4]){var i=this.values[this.curly-5];t=!i||!this.beforeFunctionExpression(i)}}return t},e.prototype.push=function(e){e.type===o.Token.Punctuator||e.type===o.Token.Keyword?("{"===e.value?this.curly=this.values.length:"("===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),s=function(){function e(e,t){this.errorHandler=new i.ErrorHandler,this.errorHandler.tolerant=!!t&&("boolean"==typeof t.tolerant&&t.tolerant),this.scanner=new r.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&("boolean"==typeof t.comment&&t.comment),this.trackRange=!!t&&("boolean"==typeof t.range&&t.range),this.trackLoc=!!t&&("boolean"==typeof t.loc&&t.loc),this.buffer=[],this.reader=new a}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var e=this.scanner.scanComments();if(this.scanner.trackComment)for(var t=0;tr&&" "!==e[d+1],d=o);else if(!l(a))return le;m=m&&p(a)}u=u||h&&o-d-1>r&&" "!==e[d+1]}return s||u?" "===e[0]&&n>9?le:u?ce:ue:m&&!i(e)?ae:se}function d(e,t,n,r){e.dump=function(){function i(t){return u(e,t)}if(0===t.length)return"''";if(!e.noCompatMode&&oe.indexOf(t)!==-1)return"'"+t+"'";var o=e.indent*Math.max(1,n),s=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o),c=r||e.flowLevel>-1&&n>=e.flowLevel;switch(h(t,c,e.indent,s,i)){case ae:return t;case se:return"'"+t.replace(/'/g,"''")+"'";case ue:return"|"+m(t,e.indent)+v(a(t,o));case ce:return">"+m(t,e.indent)+v(a(y(t,s),o));case le:return'"'+_(t,s)+'"';default:throw new O("impossible error: invalid scalar style")}}()}function m(e,t){var n=" "===e[0]?String(t):"",r="\n"===e[e.length-1],i=r&&("\n"===e[e.length-2]||"\n"===e),o=i?"+":r?"":"-";return n+o+"\n"}function v(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function y(e,t){for(var n,r,i=/(\n+)([^\n]*)/g,o=function(){var n=e.indexOf("\n");return n=n!==-1?n:e.length,i.lastIndex=n,g(e.slice(0,n),t)}(),a="\n"===e[0]||" "===e[0];r=i.exec(e);){var s=r[1],u=r[2];n=" "===u[0],o+=s+(a||n||""===u?"":"\n")+g(u,t),a=n}return o}function g(e,t){if(""===e||" "===e[0])return e;for(var n,r,i=/ [^ ]/g,o=0,a=0,s=0,u="";n=i.exec(e);)s=n.index,s-o>t&&(r=a>o?a:s,u+="\n"+e.slice(o,r),o=r+1),a=s;return u+="\n",u+=e.length-o>t&&a>o?e.slice(o,a)+"\n"+e.slice(a+1):e.slice(o),u.slice(1)}function _(e){for(var t,n,r="",o=0;o1024&&(s+="? "),s+=e.dump+": ",E(e,t,a,!1,!1)&&(s+=e.dump,u+=s));e.tag=c,e.dump="{"+u+"}"}function k(e,t,n,r){var i,o,a,u,c,l,p="",f=e.tag,h=Object.keys(n);if(e.sortKeys===!0)h.sort();else if("function"==typeof e.sortKeys)h.sort(e.sortKeys);else if(e.sortKeys)throw new O("sortKeys must be a boolean or a function");for(i=0,o=h.length;i1024,c&&(l+=e.dump&&F===e.dump.charCodeAt(0)?"?":"? "),l+=e.dump,c&&(l+=s(e,t)),E(e,t+1,u,!0,c)&&(l+=e.dump&&F===e.dump.charCodeAt(0)?":":": ",l+=e.dump,p+=l));e.tag=f, -e.dump=p||"{}"}function S(e,t,n){var r,i,o,a,s,u;for(i=n?e.explicitTypes:e.implicitTypes,o=0,a=i.length;o tag resolver accepts not "'+u+'" style');r=s.represent[u](t,u)}e.dump=r}return!0}return!1}function E(e,t,n,r,i,o){e.tag=null,e.dump=n,S(e,n,!1)||S(e,n,!0);var a=N.call(e.dump);r&&(r=e.flowLevel<0||e.flowLevel>t);var s,u,c="[object Object]"===a||"[object Array]"===a;if(c&&(s=e.duplicates.indexOf(n),u=s!==-1),(null!==e.tag&&"?"!==e.tag||u||2!==e.indent&&t>0)&&(i=!1),u&&e.usedDuplicates[s])e.dump="*ref_"+s;else{if(c&&u&&!e.usedDuplicates[s]&&(e.usedDuplicates[s]=!0),"[object Object]"===a)r&&0!==Object.keys(e.dump).length?(k(e,t,e.dump,i),u&&(e.dump="&ref_"+s+e.dump)):(w(e,t,e.dump),u&&(e.dump="&ref_"+s+" "+e.dump));else if("[object Array]"===a)r&&0!==e.dump.length?(x(e,t,e.dump,i),u&&(e.dump="&ref_"+s+e.dump)):(b(e,t,e.dump),u&&(e.dump="&ref_"+s+" "+e.dump));else{if("[object String]"!==a){if(e.skipInvalid)return!1;throw new O("unacceptable kind of an object to dump "+a)}"?"!==e.tag&&d(e,e.dump,t,o)}null!==e.tag&&"?"!==e.tag&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function C(e,t){var n,r,i=[],o=[];for(A(e,i,o),n=0,r=o.length;n1&&void 0!==arguments[1]?arguments[1]:"";if(m.List.isList(e))return e.some(function(e){return m.Map.isMap(e)&&e.get("in")===t})}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(m.List.isList(e))return e.some(function(e){return m.Map.isMap(e)&&e.get("type")===t})}function u(e,t){var n=b(e).getIn(["paths"].concat((0,f.default)(t)),(0,m.fromJS)({})),r=n.get("parameters")||new m.List,i=s(r,"file")?"multipart/form-data":a(r,"formData")?"application/x-www-form-urlencoded":n.get("consumes_value");return(0,m.fromJS)({requestContentType:i,responseContentType:n.get("produces_value")})}function c(e,t){return b(e).getIn(["paths"].concat((0,f.default)(t),["consumes"]),(0,m.fromJS)({}))}function l(e){return m.Map.isMap(e)?e:new m.Map}Object.defineProperty(t,"__esModule",{value:!0}),t.validateBeforeExecute=t.canExecuteScheme=t.operationScheme=t.hasHost=t.allowTryItOutFor=t.requestFor=t.responseFor=t.requests=t.responses=t.taggedOperations=t.operationsWithTags=t.tagDetails=t.tags=t.operationsWithRootInherited=t.schemes=t.host=t.basePath=t.definitions=t.findDefinition=t.securityDefinitions=t.security=t.produces=t.consumes=t.operations=t.paths=t.semver=t.version=t.externalDocs=t.info=t.spec=t.specResolved=t.specJson=t.specSource=t.specStr=t.url=t.lastError=void 0;var p=n(435),f=r(p);t.getParameter=i,t.parameterValues=o,t.parametersIncludeIn=a,t.parametersIncludeType=s,t.contentTypeValues=u,t.operationConsumes=c;var h=n(430),d=n(183),m=n(168),v="default",y=["get","put","post","delete","options","head","patch"],g=function(e){return e||(0,m.Map)()},_=(t.lastError=(0,h.createSelector)(g,function(e){return e.get("lastError")}),t.url=(0,h.createSelector)(g,function(e){return e.get("url")}),t.specStr=(0,h.createSelector)(g,function(e){return e.get("spec")||""}),t.specSource=(0,h.createSelector)(g,function(e){return e.get("specSource")||"not-editor"}),t.specJson=(0,h.createSelector)(g,function(e){return e.get("json",(0,m.Map)())}),t.specResolved=(0,h.createSelector)(g,function(e){return e.get("resolved",(0,m.Map)())})),b=t.spec=function(e){var t=_(e);return t},x=t.info=(0,h.createSelector)(b,function(e){return l(e&&e.get("info"))}),w=(t.externalDocs=(0,h.createSelector)(b,function(e){return l(e&&e.get("externalDocs"))}),t.version=(0,h.createSelector)(x,function(e){return e&&e.get("version")})),k=(t.semver=(0,h.createSelector)(w,function(e){return/v?([0-9]*)\.([0-9]*)\.([0-9]*)/i.exec(e).slice(1)}),t.paths=(0,h.createSelector)(b,function(e){return e.get("paths")})),S=t.operations=(0,h.createSelector)(k,function(e){if(!e||e.size<1)return(0,m.List)();var t=(0,m.List)();return e&&e.forEach?(e.forEach(function(e,n){return e&&e.forEach?void e.forEach(function(e,r){y.indexOf(r)!==-1&&(t=t.push((0,m.fromJS)({path:n,method:r,operation:e,id:r+"-"+n})))}):{}}),t):(0,m.List)()}),E=t.consumes=(0,h.createSelector)(b,function(e){return(0,m.Set)(e.get("consumes"))}),C=t.produces=(0,h.createSelector)(b,function(e){return(0,m.Set)(e.get("produces"))}),A=(t.security=(0,h.createSelector)(b,function(e){return e.get("security",(0,m.List)())}),t.securityDefinitions=(0,h.createSelector)(b,function(e){return e.get("securityDefinitions")}),t.findDefinition=function(e,t){return _(e).getIn(["definitions",t],null)},t.definitions=(0,h.createSelector)(b,function(e){return e.get("definitions")||(0,m.Map)()}),t.basePath=(0,h.createSelector)(b,function(e){return e.get("basePath")}),t.host=(0,h.createSelector)(b,function(e){return e.get("host")}),t.schemes=(0,h.createSelector)(b,function(e){return e.get("schemes",(0,m.Map)())}),t.operationsWithRootInherited=(0,h.createSelector)(S,E,C,function(e,t,n){return e.map(function(e){return e.update("operation",function(e){if(e){if(!m.Map.isMap(e))return;return e.withMutations(function(e){return e.get("consumes")||e.update("consumes",function(e){return(0,m.Set)(e).merge(t)}),e.get("produces")||e.update("produces",function(e){return(0,m.Set)(e).merge(n)}),e})}return(0,m.Map)()})})})),T=t.tags=(0,h.createSelector)(b,function(e){return e.get("tags",(0,m.List)())}),D=t.tagDetails=function(e,t){var n=T(e)||(0,m.List)();return n.filter(m.Map.isMap).find(function(e){return e.get("name")===t},(0,m.Map)())},M=t.operationsWithTags=(0,h.createSelector)(A,function(e){return e.reduce(function(e,t){var n=(0,m.Set)(t.getIn(["operation","tags"]));return n.count()<1?e.update(v,(0,m.List)(),function(e){return e.push(t)}):n.reduce(function(e,n){return e.update(n,(0,m.List)(),function(e){return e.push(t)})},e)},(0,m.Map)())}),O=(t.taggedOperations=function(e){return function(t){var n=t.getConfigs,r=n(),i=r.operationsSorter;return M(e).map(function(t,n){var r="function"==typeof i?i:d.sorters.operationsSorter[i],o=r?t.sort(r):t;return(0,m.Map)({tagDetails:D(e,n),operations:o})})}},t.responses=(0,h.createSelector)(g,function(e){return e.get("responses",(0,m.Map)())})),P=t.requests=(0,h.createSelector)(g,function(e){return e.get("requests",(0,m.Map)())}),I=(t.responseFor=function(e,t,n){return O(e).getIn([t,n],null)},t.requestFor=function(e,t,n){return P(e).getIn([t,n],null)},t.allowTryItOutFor=function(){return!0},t.hasHost=(0,h.createSelector)(b,function(e){var t=e.get("host");return"string"==typeof t&&t.length>0&&"/"!==t[0]}),t.operationScheme=function(e,t,n){var r=e.get("url"),i=r.match(/^([a-z][a-z0-9+\-.]*):/),o=Array.isArray(i)?i[1]:null;return e.getIn(["scheme",t,n])||e.getIn(["scheme","_defaultScheme"])||o||""});t.canExecuteScheme=function(e,t,n){return["http","https"].indexOf(I(e,t,n))>-1},t.validateBeforeExecute=function(e,t){var n=b(e).getIn(["paths"].concat((0,f.default)(t),["parameters"]),(0,m.fromJS)([])),r=!0;return n.forEach(function(e){var t=e.get("errors");t&&t.count()&&(r=!1)}),r}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.updateSpec=function(e,t){var n=t.specActions;return function(){e.apply(void 0,arguments),n.parseToJson.apply(n,arguments)}},t.updateJsonSpec=function(e,t){var n=t.specActions;return function(){e.apply(void 0,arguments),n.resolveSpec.apply(n,arguments)}},t.executeRequest=function(e,t){var n=t.specActions;return function(t){return n.logRequest(t),e(t)}}},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.getComponents,n=e.getStore,r=e.getSystem,i=o.getComponent,s=o.render,u=o.makeMappedContainer,c=(0,a.memoize)(i.bind(null,r,n,t)),l=(0,a.memoize)(u.bind(null,r,n,c,t));return{rootInjects:{getComponent:c,makeMappedContainer:l,render:s.bind(null,r,n,i,t)}}};var i=n(485),o=r(i),a=n(183)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.getComponent=t.render=t.makeMappedContainer=void 0;var i=n(94),o=r(i),a=n(60),s=r(a),u=n(446),c=r(u),l=n(486),p=r(l),f=n(145),h=r(f),d=n(146),m=r(d),v=n(489),y=r(v),g=n(490),_=r(g),b=n(498),x=r(b),w=n(528),k=r(w),S=n(666),E=n(677),C=r(E),A=function(e,t){return function(n){function r(){return(0,h.default)(this,r),(0,y.default)(this,(r.__proto__||(0,p.default)(r)).apply(this,arguments))}return(0,_.default)(r,n),(0,m.default)(r,[{key:"render",value:function(){return x.default.createElement(t,(0,c.default)({},e(),this.props,this.context))}}]),r}(b.Component)},T=function(e,t){return function(n){function r(){return(0,h.default)(this,r),(0,y.default)(this,(r.__proto__||(0,p.default)(r)).apply(this,arguments))}return(0,_.default)(r,n),(0,m.default)(r,[{key:"render",value:function(){return x.default.createElement(S.Provider,{store:e},x.default.createElement(t,(0,c.default)({},this.props,this.context)))}}]),r}(b.Component)},D=function(e,t,n){var r=A(e,t,n),i=(0,S.connect)(function(e){return{state:e}})(r);return n?T(n,i):i},M=function(e,t,n,r){for(var i in t){var o=t[i];"function"==typeof o&&o(n[i],r[i],e())}},O=(t.makeMappedContainer=function(e,t,n,r,i,o){return function(t){function r(t,n){(0,h.default)(this,r);var i=(0,y.default)(this,(r.__proto__||(0,p.default)(r)).call(this,t,n));return M(e,o,t,{}),i}return(0,_.default)(r,t),(0,m.default)(r,[{key:"componentWillReceiveProps",value:function(t){M(e,o,t,this.props)}},{key:"render",value:function(){var e=(0,C.default)(this.props,o?(0,s.default)(o):[]),t=n(i,"root");return x.default.createElement(t,e)}}]),r}(b.Component)},t.render=function(e,t,n,r,i){var o=document.querySelector(i),a=n(e,t,r,"App","root");k.default.render(x.default.createElement(a,null),o)},function(e){return x.default.createClass({render:function(){return e(this.props)}})}),P=function(e){var t=e.name;return x.default.createElement("div",{style:{padding:"1em",color:"#aaa"}},"😱 ",x.default.createElement("i",null,"Could not render ","t"===t?"this component":t,", see the console."))},I=function(e){var t=function(e){return!(e.prototype&&e.prototype.isReactComponent)},n=t(e)?O(e):e,r=n.prototype.render;return n.prototype.render=function(){try{for(var e=arguments.length,t=Array(e),i=0;i1){for(var v=Array(m),y=0;y1){for(var _=Array(g),b=0;b8&&x<=11),S=32,E=String.fromCharCode(S),C={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:["topBlur","topCompositionEnd","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:["topBlur","topCompositionStart","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:["topBlur","topCompositionUpdate","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]}},A=!1,T=null,D={eventTypes:C,extractEvents:function(e,t,n,r){return[c(e,t,n,r),f(e,t,n,r)]}};e.exports=D},function(e,t,n){"use strict";function r(e,t,n){var r=t.dispatchConfig.phasedRegistrationNames[n];return y(e,r)}function i(e,t,n){var i=r(e,n,t);i&&(n._dispatchListeners=m(n._dispatchListeners,i),n._dispatchInstances=m(n._dispatchInstances,e))}function o(e){e&&e.dispatchConfig.phasedRegistrationNames&&d.traverseTwoPhase(e._targetInst,i,e)}function a(e){if(e&&e.dispatchConfig.phasedRegistrationNames){var t=e._targetInst,n=t?d.getParentInstance(t):null;d.traverseTwoPhase(n,i,e)}}function s(e,t,n){if(n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,i=y(e,r);i&&(n._dispatchListeners=m(n._dispatchListeners,i),n._dispatchInstances=m(n._dispatchInstances,e))}}function u(e){e&&e.dispatchConfig.registrationName&&s(e._targetInst,null,e)}function c(e){v(e,o)}function l(e){v(e,a)}function p(e,t,n,r){d.traverseEnterLeave(n,r,s,e,t)}function f(e){v(e,u)}var h=n(538),d=n(540),m=n(542),v=n(543),y=(n(504),h.getListener),g={accumulateTwoPhaseDispatches:c,accumulateTwoPhaseDispatchesSkipTarget:l,accumulateDirectDispatches:f,accumulateEnterLeaveDispatches:p};e.exports=g},function(e,t,n){"use strict";function r(e){return"button"===e||"input"===e||"select"===e||"textarea"===e}function i(e,t,n){switch(e){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":return!(!n.disabled||!r(t));default:return!1}}var o=n(531),a=n(539),s=n(540),u=n(541),c=n(542),l=n(543),p=(n(508),{}),f=null,h=function(e,t){e&&(s.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e))},d=function(e){return h(e,!0)},m=function(e){return h(e,!1)},v=function(e){return"."+e._rootNodeID},y={injection:{injectEventPluginOrder:a.injectEventPluginOrder,injectEventPluginsByName:a.injectEventPluginsByName},putListener:function(e,t,n){"function"!=typeof n?o("94",t,typeof n):void 0;var r=v(e),i=p[t]||(p[t]={});i[r]=n;var s=a.registrationNameModules[t];s&&s.didPutListener&&s.didPutListener(e,t,n)},getListener:function(e,t){var n=p[t];if(i(t,e._currentElement.type,e._currentElement.props))return null;var r=v(e);return n&&n[r]},deleteListener:function(e,t){var n=a.registrationNameModules[t];n&&n.willDeleteListener&&n.willDeleteListener(e,t);var r=p[t];if(r){var i=v(e);delete r[i]}},deleteAllListeners:function(e){var t=v(e);for(var n in p)if(p.hasOwnProperty(n)&&p[n][t]){var r=a.registrationNameModules[n];r&&r.willDeleteListener&&r.willDeleteListener(e,n),delete p[n][t]}},extractEvents:function(e,t,n,r){for(var i,o=a.plugins,s=0;s-1?void 0:a("96",e),!c.plugins[n]){t.extractEvents?void 0:a("97",e),c.plugins[n]=t;var r=t.eventTypes;for(var o in r)i(r[o],t,o)?void 0:a("98",o,e)}}}function i(e,t,n){c.eventNameDispatchConfigs.hasOwnProperty(n)?a("99",n):void 0,c.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var i in r)if(r.hasOwnProperty(i)){var s=r[i];o(s,t,n)}return!0}return!!e.registrationName&&(o(e.registrationName,t,n),!0)}function o(e,t,n){c.registrationNameModules[e]?a("100",e):void 0,c.registrationNameModules[e]=t,c.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var a=n(531),s=(n(508),null),u={},c={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(e){s?a("101"):void 0,s=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var i=e[n];u.hasOwnProperty(n)&&u[n]===i||(u[n]?a("102",n):void 0,u[n]=i,t=!0)}t&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return c.registrationNameModules[t.registrationName]||null;if(void 0!==t.phasedRegistrationNames){var n=t.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var i=c.registrationNameModules[n[r]];if(i)return i}}return null},_resetEventPlugins:function(){s=null;for(var e in u)u.hasOwnProperty(e)&&delete u[e];c.plugins.length=0;var t=c.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=c.registrationNameModules;for(var i in r)r.hasOwnProperty(i)&&delete r[i]}};e.exports=c},function(e,t,n){"use strict";function r(e){return"topMouseUp"===e||"topTouchEnd"===e||"topTouchCancel"===e}function i(e){return"topMouseMove"===e||"topTouchMove"===e}function o(e){return"topMouseDown"===e||"topTouchStart"===e}function a(e,t,n,r){var i=e.type||"unknown-event";e.currentTarget=y.getNodeFromInstance(r),t?m.invokeGuardedCallbackWithCatch(i,n,e):m.invokeGuardedCallback(i,n,e),e.currentTarget=null}function s(e,t){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var i=0;i1?1-t:void 0;return this._fallbackText=i.slice(e,s),this._fallbackText}}),o.addPoolingTo(r),e.exports=r},[1231,531],function(e,t,n){"use strict";function r(){return!o&&i.canUseDOM&&(o="textContent"in document.documentElement?"textContent":"innerText"),o}var i=n(544),o=null;e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(549),o={data:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n;var i=this.constructor.Interface;for(var o in i)if(i.hasOwnProperty(o)){var s=i[o];s?this[o]=s(n):"target"===o?this.target=r:this[o]=n[o]}var u=null!=n.defaultPrevented?n.defaultPrevented:n.returnValue===!1;return u?this.isDefaultPrevented=a.thatReturnsTrue:this.isDefaultPrevented=a.thatReturnsFalse,this.isPropagationStopped=a.thatReturnsFalse,this}var i=n(500),o=n(546),a=n(505),s=(n(504),"function"==typeof Proxy,["dispatchConfig","_targetInst","nativeEvent","isDefaultPrevented","isPropagationStopped","_dispatchListeners","_dispatchInstances"]),u={type:null,target:null,currentTarget:a.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};i(r.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=a.thatReturnsTrue)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=a.thatReturnsTrue)},persist:function(){this.isPersistent=a.thatReturnsTrue},isPersistent:a.thatReturnsFalse,destructor:function(){var e=this.constructor.Interface;for(var t in e)this[t]=null;for(var n=0;n8));var R=!1;k.canUseDOM&&(R=D("input")&&(!("documentMode"in document)||document.documentMode>9));var j={eventTypes:O,_allowSimulatedPassThrough:!0,_isInputEventSupported:R,extractEvents:function(e,t,n,o){var a,s,u=t?S.getNodeFromInstance(t):window;if(i(u)?N?a=l:s=p:M(u)?R?a=_:(a=v,s=m):y(u)&&(a=g),a){var c=a(e,t,n);if(c){var f=r(c,n,o);return f}}s&&s(e,u,t),"topBlur"===e&&b(t,u)}};e.exports=j},function(e,t,n){"use strict";function r(){A.ReactReconcileTransaction&&x?void 0:l("123")}function i(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=f.getPooled(),this.reconcileTransaction=A.ReactReconcileTransaction.getPooled(!0)}function o(e,t,n,i,o,a){return r(),x.batchedUpdates(e,t,n,i,o,a)}function a(e,t){return e._mountOrder-t._mountOrder}function s(e){var t=e.dirtyComponentsLength;t!==y.length?l("124",t,y.length):void 0,y.sort(a),g++;for(var n=0;n]/,u=n(576),c=u(function(e,t){if(e.namespaceURI!==o.svg||"innerHTML"in e)e.innerHTML=t;else{r=r||document.createElement("div"),r.innerHTML=""+t+"";for(var n=r.firstChild;n.firstChild;)e.appendChild(n.firstChild)}});if(i.canUseDOM){var l=document.createElement("div");l.innerHTML=" ",""===l.innerHTML&&(c=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),a.test(t)||"<"===t[0]&&s.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t}),l=null}e.exports=c},function(e,t){"use strict";var n=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,i){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,i)})}:e};e.exports=n},function(e,t,n){"use strict";var r=n(544),i=n(578),o=n(575),a=function(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){return 3===e.nodeType?void(e.nodeValue=t):void o(e,i(t))})),e.exports=a},function(e,t){"use strict";function n(e){var t=""+e,n=i.exec(t);if(!n)return t;var r,o="",a=0,s=0;for(a=n.index;a]/;e.exports=r},function(e,t,n){"use strict";var r=n(531),i=n(573),o=n(544),a=n(580),s=n(505),u=(n(508),{dangerouslyReplaceNodeWithMarkup:function(e,t){if(o.canUseDOM?void 0:r("56"),t?void 0:r("57"),"HTML"===e.nodeName?r("58"):void 0,"string"==typeof t){var n=a(t,s)[0];e.parentNode.replaceChild(n,e)}else i.replaceChildWithTree(e,t)}});e.exports=u},function(e,t,n){"use strict";function r(e){var t=e.match(l);return t&&t[1].toLowerCase()}function i(e,t){var n=c;c?void 0:u(!1);var i=r(e),o=i&&s(i);if(o){n.innerHTML=o[1]+e+o[2];for(var l=o[0];l--;)n=n.lastChild}else n.innerHTML=e;var p=n.getElementsByTagName("script");p.length&&(t?void 0:u(!1),a(p).forEach(t));for(var f=Array.from(n.childNodes);n.lastChild;)n.removeChild(n.lastChild);return f}var o=n(544),a=n(581),s=n(582),u=n(508),c=o.canUseDOM?document.createElement("div"):null,l=/^\s*<(\w+)/;e.exports=i},function(e,t,n){"use strict";function r(e){var t=e.length;if(Array.isArray(e)||"object"!=typeof e&&"function"!=typeof e?a(!1):void 0,"number"!=typeof t?a(!1):void 0,0===t||t-1 in e?void 0:a(!1),"function"==typeof e.callee?a(!1):void 0,e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(e){}for(var n=Array(t),r=0;r":a.innerHTML="<"+e+">",s[e]=!a.firstChild),s[e]?f[e]:null}var i=n(544),o=n(508),a=i.canUseDOM?document.createElement("div"):null,s={},u=[1,'"],c=[1,"","
"],l=[3,"","
"],p=[1,'',""],f={"*":[1,"?
","
"],area:[1,"",""],col:[2,"","
"],legend:[1,"
","
"],param:[1,"",""],tr:[2,"","
"],optgroup:u,option:u,caption:c,colgroup:c,tbody:c,tfoot:c,thead:c,td:l,th:l},h=["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"];h.forEach(function(e){f[e]=p,s[e]=!0}),e.exports=r},function(e,t,n){"use strict";var r=n(572),i=n(530),o={dangerouslyProcessChildrenUpdates:function(e,t){var n=i.getNodeFromInstance(e);r.processUpdates(n,t)}};e.exports=o},function(e,t,n){"use strict";function r(e){if(e){var t=e._currentElement._owner||null;if(t){var n=t.getName();if(n)return" This DOM node was rendered by `"+n+"`."}}return""}function i(e,t){t&&(Y[e._tag]&&(null!=t.children||null!=t.dangerouslySetInnerHTML?v("137",e._tag,e._currentElement._owner?" Check the render method of "+e._currentElement._owner.getName()+".":""):void 0),null!=t.dangerouslySetInnerHTML&&(null!=t.children?v("60"):void 0,"object"==typeof t.dangerouslySetInnerHTML&&K in t.dangerouslySetInnerHTML?void 0:v("61")),null!=t.style&&"object"!=typeof t.style?v("62",r(e)):void 0)}function o(e,t,n,r){if(!(r instanceof N)){var i=e._hostContainerInfo,o=i._node&&i._node.nodeType===H,s=o?i._node:i._ownerDocument;z(t,s),r.getReactMountReady().enqueue(a,{inst:e,registrationName:t,listener:n})}}function a(){var e=this;S.putListener(e.inst,e.registrationName,e.listener)}function s(){var e=this;D.postMountWrapper(e)}function u(){var e=this;P.postMountWrapper(e)}function c(){var e=this;M.postMountWrapper(e)}function l(){j.track(this)}function p(){var e=this;e._rootNodeID?void 0:v("63");var t=L(e);switch(t?void 0:v("64"),e._tag){case"iframe":case"object":e._wrapperState.listeners=[C.trapBubbledEvent("topLoad","load",t)];break;case"video":case"audio":e._wrapperState.listeners=[];for(var n in J)J.hasOwnProperty(n)&&e._wrapperState.listeners.push(C.trapBubbledEvent(n,J[n],t));break;case"source":e._wrapperState.listeners=[C.trapBubbledEvent("topError","error",t)];break;case"img":e._wrapperState.listeners=[C.trapBubbledEvent("topError","error",t),C.trapBubbledEvent("topLoad","load",t)];break;case"form":e._wrapperState.listeners=[C.trapBubbledEvent("topReset","reset",t),C.trapBubbledEvent("topSubmit","submit",t)];break;case"input":case"select":case"textarea":e._wrapperState.listeners=[C.trapBubbledEvent("topInvalid","invalid",t)]}}function f(){O.postUpdateWrapper(this)}function h(e){Q.call(Z,e)||($.test(e)?void 0:v("65",e),Z[e]=!0)}function d(e,t){return e.indexOf("-")>=0||null!=t.is}function m(e){var t=e.type;h(t),this._currentElement=e,this._tag=t.toLowerCase(),this._namespaceURI=null,this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._hostNode=null,this._hostParent=null,this._rootNodeID=0,this._domID=0,this._hostContainerInfo=null,this._wrapperState=null,this._topLevelWrapper=null,this._flags=0}var v=n(531),y=n(500),g=n(585),_=n(587),b=n(573),x=n(574),w=n(532),k=n(595),S=n(538),E=n(539),C=n(597),A=n(533),T=n(530),D=n(600),M=n(603),O=n(604),P=n(605),I=(n(558),n(606)),N=n(624),R=(n(505),n(578)),j=(n(508),n(562),n(613),n(560)),F=(n(627),n(504),A),B=S.deleteListener,L=T.getNodeFromInstance,z=C.listenTo,q=E.registrationNameModules,U={string:!0,number:!0},W="style",K="__html",V={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},H=11,J={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},G={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},X={listing:!0,pre:!0,textarea:!0},Y=y({menuitem:!0},G),$=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,Z={},Q={}.hasOwnProperty,ee=1;m.displayName="ReactDOMComponent",m.Mixin={mountComponent:function(e,t,n,r){this._rootNodeID=ee++,this._domID=n._idCounter++,this._hostParent=t,this._hostContainerInfo=n;var o=this._currentElement.props;switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":this._wrapperState={listeners:null},e.getReactMountReady().enqueue(p,this);break;case"input":D.mountWrapper(this,o,t),o=D.getHostProps(this,o),e.getReactMountReady().enqueue(l,this),e.getReactMountReady().enqueue(p,this);break;case"option":M.mountWrapper(this,o,t),o=M.getHostProps(this,o);break;case"select":O.mountWrapper(this,o,t),o=O.getHostProps(this,o),e.getReactMountReady().enqueue(p,this);break;case"textarea":P.mountWrapper(this,o,t),o=P.getHostProps(this,o),e.getReactMountReady().enqueue(l,this),e.getReactMountReady().enqueue(p,this)}i(this,o);var a,f;null!=t?(a=t._namespaceURI,f=t._tag):n._tag&&(a=n._namespaceURI,f=n._tag),(null==a||a===x.svg&&"foreignobject"===f)&&(a=x.html),a===x.html&&("svg"===this._tag?a=x.svg:"math"===this._tag&&(a=x.mathml)),this._namespaceURI=a;var h;if(e.useCreateElement){var d,m=n._ownerDocument;if(a===x.html)if("script"===this._tag){var v=m.createElement("div"),y=this._currentElement.type;v.innerHTML="<"+y+">",d=v.removeChild(v.firstChild)}else d=o.is?m.createElement(this._currentElement.type,o.is):m.createElement(this._currentElement.type);else d=m.createElementNS(a,this._currentElement.type);T.precacheNode(this,d),this._flags|=F.hasCachedChildNodes,this._hostParent||k.setAttributeForRoot(d),this._updateDOMProperties(null,o,e);var _=b(d);this._createInitialChildren(e,o,r,_),h=_}else{var w=this._createOpenTagMarkupAndPutListeners(e,o),S=this._createContentMarkup(e,o,r);h=!S&&G[this._tag]?w+"/>":w+">"+S+""}switch(this._tag){case"input":e.getReactMountReady().enqueue(s,this),o.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"textarea":e.getReactMountReady().enqueue(u,this),o.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"select":o.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"button":o.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"option":e.getReactMountReady().enqueue(c,this)}return h},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var i=t[r];if(null!=i)if(q.hasOwnProperty(r))i&&o(this,r,i,e);else{r===W&&(i&&(i=this._previousStyleCopy=y({},t.style)),i=_.createMarkupForStyles(i,this));var a=null;null!=this._tag&&d(this._tag,t)?V.hasOwnProperty(r)||(a=k.createMarkupForCustomAttribute(r,i)):a=k.createMarkupForProperty(r,i),a&&(n+=" "+a)}}return e.renderToStaticMarkup?n:(this._hostParent||(n+=" "+k.createMarkupForRoot()),n+=" "+k.createMarkupForID(this._domID))},_createContentMarkup:function(e,t,n){var r="",i=t.dangerouslySetInnerHTML;if(null!=i)null!=i.__html&&(r=i.__html);else{var o=U[typeof t.children]?t.children:null,a=null!=o?null:t.children;if(null!=o)r=R(o);else if(null!=a){var s=this.mountChildren(a,e,n);r=s.join("")}}return X[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var i=t.dangerouslySetInnerHTML;if(null!=i)null!=i.__html&&b.queueHTML(r,i.__html);else{var o=U[typeof t.children]?t.children:null,a=null!=o?null:t.children;if(null!=o)""!==o&&b.queueText(r,o);else if(null!=a)for(var s=this.mountChildren(a,e,n),u=0;u0&&r.length<20?n+" (keys: "+r.join(", ")+")":n}function o(e,t){var n=s.get(e);if(!n){return null}return n}var a=n(531),s=(n(513),n(608)),u=(n(558),n(552)),c=(n(508),n(504),{isMounted:function(e){var t=s.get(e);return!!t&&!!t._renderedComponent},enqueueCallback:function(e,t,n){c.validateCallback(t,n);var i=o(e);return i?(i._pendingCallbacks?i._pendingCallbacks.push(t):i._pendingCallbacks=[t],void r(i)):null},enqueueCallbackInternal:function(e,t){e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],r(e)},enqueueForceUpdate:function(e){var t=o(e,"forceUpdate");t&&(t._pendingForceUpdate=!0,r(t))},enqueueReplaceState:function(e,t,n){var i=o(e,"replaceState");i&&(i._pendingStateQueue=[t],i._pendingReplaceState=!0,void 0!==n&&null!==n&&(c.validateCallback(n,"replaceState"),i._pendingCallbacks?i._pendingCallbacks.push(n):i._pendingCallbacks=[n]),r(i))},enqueueSetState:function(e,t){var n=o(e,"setState");if(n){var i=n._pendingStateQueue||(n._pendingStateQueue=[]);i.push(t),r(n)}},enqueueElementInternal:function(e,t,n){e._pendingElement=t,e._context=n,r(e)},validateCallback:function(e,t){e&&"function"!=typeof e?a("122",t,i(e)):void 0}});e.exports=c},function(e,t,n){"use strict";var r=(n(500),n(505)),i=(n(504),r);e.exports=i},function(e,t,n){"use strict";var r=n(500),i=n(573),o=n(530),a=function(e){this._currentElement=null,this._hostNode=null,this._hostParent=null,this._hostContainerInfo=null,this._domID=0};r(a.prototype,{mountComponent:function(e,t,n,r){var a=n._idCounter++;this._domID=a,this._hostParent=t,this._hostContainerInfo=n;var s=" react-empty: "+this._domID+" ";if(e.useCreateElement){var u=n._ownerDocument,c=u.createComment(s);return o.precacheNode(this,c),i(c)}return e.renderToStaticMarkup?"":""},receiveComponent:function(){},getHostNode:function(){return o.getNodeFromInstance(this)},unmountComponent:function(){o.uncacheNode(this)}}),e.exports=a},function(e,t,n){"use strict";function r(e,t){"_hostNode"in e?void 0:u("33"),"_hostNode"in t?void 0:u("33");for(var n=0,r=e;r;r=r._hostParent)n++;for(var i=0,o=t;o;o=o._hostParent)i++;for(;n-i>0;)e=e._hostParent,n--;for(;i-n>0;)t=t._hostParent,i--;for(var a=n;a--;){if(e===t)return e;e=e._hostParent,t=t._hostParent}return null}function i(e,t){"_hostNode"in e?void 0:u("35"),"_hostNode"in t?void 0:u("35");for(;t;){if(t===e)return!0;t=t._hostParent}return!1}function o(e){return"_hostNode"in e?void 0:u("36"),e._hostParent}function a(e,t,n){for(var r=[];e;)r.push(e),e=e._hostParent;var i;for(i=r.length;i-- >0;)t(r[i],"captured",n);for(i=0;i0;)n(u[c],"captured",o)}var u=n(531);n(508);e.exports={isAncestor:i,getLowestCommonAncestor:r,getParentInstance:o,traverseTwoPhase:a,traverseEnterLeave:s}},function(e,t,n){"use strict";var r=n(531),i=n(500),o=n(572),a=n(573),s=n(530),u=n(578),c=(n(508),n(627),function(e){this._currentElement=e,this._stringText=""+e,this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});i(c.prototype,{mountComponent:function(e,t,n,r){var i=n._idCounter++,o=" react-text: "+i+" ",c=" /react-text ";if(this._domID=i,this._hostParent=t,e.useCreateElement){var l=n._ownerDocument,p=l.createComment(o),f=l.createComment(c),h=a(l.createDocumentFragment());return a.queueChild(h,a(p)),this._stringText&&a.queueChild(h,a(l.createTextNode(this._stringText))),a.queueChild(h,a(f)),s.precacheNode(this,p),this._closingComment=f,h}var d=u(this._stringText);return e.renderToStaticMarkup?d:""+d+""},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();o.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var e=this._commentNodes;if(e)return e;if(!this._closingComment)for(var t=s.getNodeFromInstance(this),n=t.nextSibling;;){if(null==n?r("67",this._domID):void 0,8===n.nodeType&&" /react-text "===n.nodeValue){this._closingComment=n;break}n=n.nextSibling}return e=[this._hostNode,this._closingComment],this._commentNodes=e,e},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,s.uncacheNode(this)}}),e.exports=c},function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var i=n(500),o=n(552),a=n(559),s=n(505),u={initialize:s,close:function(){f.isBatchingUpdates=!1}},c={initialize:s,close:o.flushBatchedUpdates.bind(o)},l=[c,u];i(r.prototype,a,{getTransactionWrappers:function(){return l}});var p=new r,f={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,i,o){var a=f.isBatchingUpdates;return f.isBatchingUpdates=!0,a?e(t,n,r,i,o):p.perform(e,null,t,n,r,i,o)}};e.exports=f},function(e,t,n){"use strict";function r(e){for(;e._hostParent;)e=e._hostParent;var t=p.getNodeFromInstance(e),n=t.parentNode;return p.getClosestInstanceFromNode(n)}function i(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function o(e){var t=h(e.nativeEvent),n=p.getClosestInstanceFromNode(t),i=n;do e.ancestors.push(i),i=i&&r(i);while(i);for(var o=0;ot.end?(n=t.end,r=t.start):(n=t.start,r=t.end),i.moveToElementText(e),i.moveStart("character",n),i.setEndPoint("EndToStart",i),i.moveEnd("character",r-n),i.select()}function s(e,t){if(window.getSelection){var n=window.getSelection(),r=e[l()].length,i=Math.min(t.start,r),o=void 0===t.end?i:Math.min(t.end,r);if(!n.extend&&i>o){var a=o;o=i,i=a}var s=c(e,i),u=c(e,o);if(s&&u){var p=document.createRange();p.setStart(s.node,s.offset),n.removeAllRanges(),i>o?(n.addRange(p),n.extend(u.node,u.offset)):(p.setEnd(u.node,u.offset),n.addRange(p))}}}var u=n(544),c=n(639),l=n(547),p=u.canUseDOM&&"selection"in document&&!("getSelection"in window),f={getOffsets:p?i:o,setOffsets:p?a:s};e.exports=f},function(e,t){"use strict";function n(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function r(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}function i(e,t){for(var i=n(e),o=0,a=0;i;){if(3===i.nodeType){if(a=o+i.textContent.length,o<=t&&a>=t)return{node:i,offset:t-o};o=a}i=n(r(i))}}e.exports=i},function(e,t,n){"use strict";function r(e,t){return!(!e||!t)&&(e===t||!i(e)&&(i(t)?r(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}var i=n(641);e.exports=r},function(e,t,n){"use strict";function r(e){return i(e)&&3==e.nodeType}var i=n(642);e.exports=r},function(e,t){"use strict";function n(e){var t=e?e.ownerDocument||e:document,n=t.defaultView||window;return!(!e||!("function"==typeof n.Node?e instanceof n.Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}e.exports=n},function(e,t){"use strict";function n(e){if(e=e||("undefined"!=typeof document?document:void 0),"undefined"==typeof e)return null;try{return e.activeElement||e.body}catch(t){return e.body}}e.exports=n},function(e,t){"use strict";var n={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"},r={accentHeight:"accent-height",accumulate:0,additive:0,alignmentBaseline:"alignment-baseline",allowReorder:"allowReorder",alphabetic:0,amplitude:0,arabicForm:"arabic-form",ascent:0,attributeName:"attributeName",attributeType:"attributeType",autoReverse:"autoReverse",azimuth:0,baseFrequency:"baseFrequency",baseProfile:"baseProfile",baselineShift:"baseline-shift",bbox:0,begin:0,bias:0,by:0,calcMode:"calcMode",capHeight:"cap-height",clip:0,clipPath:"clip-path",clipRule:"clip-rule",clipPathUnits:"clipPathUnits",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",contentScriptType:"contentScriptType",contentStyleType:"contentStyleType",cursor:0,cx:0,cy:0,d:0,decelerate:0,descent:0,diffuseConstant:"diffuseConstant",direction:0,display:0,divisor:0,dominantBaseline:"dominant-baseline",dur:0,dx:0,dy:0,edgeMode:"edgeMode",elevation:0,enableBackground:"enable-background",end:0,exponent:0,externalResourcesRequired:"externalResourcesRequired",fill:0,fillOpacity:"fill-opacity",fillRule:"fill-rule",filter:0,filterRes:"filterRes",filterUnits:"filterUnits",floodColor:"flood-color",floodOpacity:"flood-opacity",focusable:0,fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",format:0,from:0,fx:0,fy:0,g1:0,g2:0,glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",glyphRef:"glyphRef",gradientTransform:"gradientTransform",gradientUnits:"gradientUnits",hanging:0,horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",ideographic:0,imageRendering:"image-rendering",in:0,in2:0,intercept:0,k:0,k1:0,k2:0,k3:0,k4:0,kernelMatrix:"kernelMatrix",kernelUnitLength:"kernelUnitLength",kerning:0,keyPoints:"keyPoints",keySplines:"keySplines",keyTimes:"keyTimes",lengthAdjust:"lengthAdjust",letterSpacing:"letter-spacing",lightingColor:"lighting-color",limitingConeAngle:"limitingConeAngle",local:0,markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",markerHeight:"markerHeight",markerUnits:"markerUnits",markerWidth:"markerWidth",mask:0,maskContentUnits:"maskContentUnits",maskUnits:"maskUnits",mathematical:0,mode:0,numOctaves:"numOctaves",offset:0,opacity:0,operator:0,order:0,orient:0,orientation:0,origin:0,overflow:0,overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pathLength:"pathLength",patternContentUnits:"patternContentUnits",patternTransform:"patternTransform",patternUnits:"patternUnits",pointerEvents:"pointer-events",points:0,pointsAtX:"pointsAtX",pointsAtY:"pointsAtY",pointsAtZ:"pointsAtZ",preserveAlpha:"preserveAlpha",preserveAspectRatio:"preserveAspectRatio",primitiveUnits:"primitiveUnits",r:0,radius:0,refX:"refX",refY:"refY",renderingIntent:"rendering-intent",repeatCount:"repeatCount",repeatDur:"repeatDur",requiredExtensions:"requiredExtensions",requiredFeatures:"requiredFeatures",restart:0,result:0,rotate:0,rx:0,ry:0,scale:0,seed:0,shapeRendering:"shape-rendering",slope:0,spacing:0,specularConstant:"specularConstant",specularExponent:"specularExponent",speed:0,spreadMethod:"spreadMethod",startOffset:"startOffset",stdDeviation:"stdDeviation",stemh:0,stemv:0,stitchTiles:"stitchTiles",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",string:0,stroke:0,strokeDasharray:"stroke-dasharray",strokeDashoffset:"stroke-dashoffset",strokeLinecap:"stroke-linecap",strokeLinejoin:"stroke-linejoin",strokeMiterlimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",surfaceScale:"surfaceScale",systemLanguage:"systemLanguage",tableValues:"tableValues",targetX:"targetX",targetY:"targetY",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",textLength:"textLength",to:0,transform:0,u1:0,u2:0,underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicode:0,unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",values:0,vectorEffect:"vector-effect",version:0,vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",viewBox:"viewBox",viewTarget:"viewTarget",visibility:0,widths:0,wordSpacing:"word-spacing",writingMode:"writing-mode",x:0,xHeight:"x-height",x1:0,x2:0,xChannelSelector:"xChannelSelector",xlinkActuate:"xlink:actuate",xlinkArcrole:"xlink:arcrole",xlinkHref:"xlink:href",xlinkRole:"xlink:role",xlinkShow:"xlink:show",xlinkTitle:"xlink:title",xlinkType:"xlink:type",xmlBase:"xml:base",xmlns:0,xmlnsXlink:"xmlns:xlink",xmlLang:"xml:lang",xmlSpace:"xml:space",y:0,y1:0,y2:0,yChannelSelector:"yChannelSelector",z:0,zoomAndPan:"zoomAndPan"},i={Properties:{},DOMAttributeNamespaces:{xlinkActuate:n.xlink,xlinkArcrole:n.xlink,xlinkHref:n.xlink,xlinkRole:n.xlink,xlinkShow:n.xlink,xlinkTitle:n.xlink,xlinkType:n.xlink,xmlBase:n.xml,xmlLang:n.xml,xmlSpace:n.xml},DOMAttributeNames:{}};Object.keys(r).forEach(function(e){i.Properties[e]=0,r[e]&&(i.DOMAttributeNames[e]=r[e])}),e.exports=i},function(e,t,n){"use strict";function r(e){if("selectionStart"in e&&u.hasSelectionCapabilities(e))return{start:e.selectionStart,end:e.selectionEnd};if(window.getSelection){var t=window.getSelection();return{anchorNode:t.anchorNode,anchorOffset:t.anchorOffset,focusNode:t.focusNode,focusOffset:t.focusOffset}}if(document.selection){var n=document.selection.createRange();return{parentElement:n.parentElement(),text:n.text,top:n.boundingTop,left:n.boundingLeft}}}function i(e,t){if(g||null==m||m!==l())return null;var n=r(m);if(!y||!f(y,n)){y=n;var i=c.getPooled(d.select,v,e,t);return i.type="select",i.target=m,o.accumulateTwoPhaseDispatches(i),i}return null}var o=n(537),a=n(544),s=n(530),u=n(637),c=n(549),l=n(643),p=n(563),f=n(613),h=a.canUseDOM&&"documentMode"in document&&document.documentMode<=11,d={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:["topBlur","topContextMenu","topFocus","topKeyDown","topKeyUp","topMouseDown","topMouseUp","topSelectionChange"]}},m=null,v=null,y=null,g=!1,_=!1,b={eventTypes:d,extractEvents:function(e,t,n,r){if(!_)return null;var o=t?s.getNodeFromInstance(t):window;switch(e){case"topFocus":(p(o)||"true"===o.contentEditable)&&(m=o,v=t,y=null);break;case"topBlur":m=null,v=null,y=null;break;case"topMouseDown":g=!0;break;case"topContextMenu":case"topMouseUp":return g=!1,i(n,r);case"topSelectionChange":if(h)break;case"topKeyDown":case"topKeyUp":return i(n,r)}return null},didPutListener:function(e,t,n){"onSelect"===t&&(_=!0)}};e.exports=b},function(e,t,n){"use strict";function r(e){return"."+e._rootNodeID}function i(e){return"button"===e||"input"===e||"select"===e||"textarea"===e}var o=n(531),a=n(633),s=n(537),u=n(530),c=n(647),l=n(648),p=n(549),f=n(649),h=n(650),d=n(566),m=n(653),v=n(654),y=n(655),g=n(567),_=n(656),b=n(505),x=n(651),w=(n(508),{}),k={};["abort","animationEnd","animationIteration","animationStart","blur","canPlay","canPlayThrough","click","contextMenu","copy","cut","doubleClick","drag","dragEnd","dragEnter","dragExit","dragLeave","dragOver","dragStart","drop","durationChange","emptied","encrypted","ended","error","focus","input","invalid","keyDown","keyPress","keyUp","load","loadedData","loadedMetadata","loadStart","mouseDown","mouseMove","mouseOut","mouseOver","mouseUp","paste","pause","play","playing","progress","rateChange","reset","scroll","seeked","seeking","stalled","submit","suspend","timeUpdate","touchCancel","touchEnd","touchMove","touchStart","transitionEnd","volumeChange","waiting","wheel"].forEach(function(e){var t=e[0].toUpperCase()+e.slice(1),n="on"+t,r="top"+t,i={phasedRegistrationNames:{bubbled:n,captured:n+"Capture"},dependencies:[r]};w[e]=i,k[r]=i});var S={},E={eventTypes:w,extractEvents:function(e,t,n,r){var i=k[e];if(!i)return null;var a;switch(e){case"topAbort":case"topCanPlay":case"topCanPlayThrough":case"topDurationChange":case"topEmptied":case"topEncrypted":case"topEnded":case"topError":case"topInput":case"topInvalid":case"topLoad":case"topLoadedData":case"topLoadedMetadata":case"topLoadStart":case"topPause":case"topPlay":case"topPlaying":case"topProgress":case"topRateChange":case"topReset":case"topSeeked":case"topSeeking":case"topStalled":case"topSubmit":case"topSuspend":case"topTimeUpdate":case"topVolumeChange":case"topWaiting":a=p;break;case"topKeyPress":if(0===x(n))return null;case"topKeyDown":case"topKeyUp":a=h;break;case"topBlur":case"topFocus":a=f;break;case"topClick":if(2===n.button)return null;case"topDoubleClick":case"topMouseDown":case"topMouseMove":case"topMouseUp":case"topMouseOut":case"topMouseOver":case"topContextMenu":a=d;break;case"topDrag":case"topDragEnd":case"topDragEnter":case"topDragExit":case"topDragLeave":case"topDragOver":case"topDragStart":case"topDrop":a=m;break;case"topTouchCancel":case"topTouchEnd":case"topTouchMove":case"topTouchStart":a=v;break;case"topAnimationEnd":case"topAnimationIteration":case"topAnimationStart":a=c;break;case"topTransitionEnd":a=y;break;case"topScroll":a=g;break;case"topWheel":a=_;break;case"topCopy":case"topCut":case"topPaste":a=l}a?void 0:o("86",e);var u=a.getPooled(i,t,n,r);return s.accumulateTwoPhaseDispatches(u),u},didPutListener:function(e,t,n){if("onClick"===t&&!i(e._tag)){var o=r(e),s=u.getNodeFromInstance(e);S[o]||(S[o]=a.listen(s,"click",b))}},willDeleteListener:function(e,t){if("onClick"===t&&!i(e._tag)){var n=r(e);S[n].remove(),delete S[n]}}};e.exports=E},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(549),o={animationName:null,elapsedTime:null,pseudoElement:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(549),o={clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(567),o={relatedTarget:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(567),o=n(651),a=n(652),s=n(569),u={key:a,location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:s,charCode:function(e){return"keypress"===e.type?o(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?o(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}};i.augmentClass(r,u),e.exports=r},function(e,t){"use strict";function n(e){var t,n=e.keyCode;return"charCode"in e?(t=e.charCode,0===t&&13===n&&(t=13)):t=n,t>=32||13===t?t:0}e.exports=n},function(e,t,n){"use strict";function r(e){if(e.key){var t=o[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=i(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?a[e.keyCode]||"Unidentified":""}var i=n(651),o={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},a={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(566),o={dataTransfer:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(567),o=n(569),a={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:o};i.augmentClass(r,a),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(549),o={propertyName:null,elapsedTime:null,pseudoElement:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(566),o={deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t){for(var n=Math.min(e.length,t.length),r=0;r.":"function"==typeof t?" Instead of passing a class like Foo, pass React.createElement(Foo) or .":null!=t&&void 0!==t.props?" This may be caused by unintentionally loading two independent copies of React.":"");var a,s=v.createElement(B,{child:t});if(e){var u=w.get(e);a=u._processChildContext(u._context)}else a=A;var l=f(n);if(l){var p=l._currentElement,d=p.props.child;if(M(d,t)){var m=l._renderedComponent.getPublicInstance(),y=r&&function(){r.call(m)};return L._updateRootComponent(l,s,a,n,y),m}L.unmountComponentAtNode(n)}var g=i(n),_=g&&!!o(g),b=c(n),x=_&&!l&&!b,k=L._renderNewRootComponent(s,n,x,a)._renderedComponent.getPublicInstance();return r&&r.call(k),k},render:function(e,t,n){return L._renderSubtreeIntoContainer(null,e,t,n)},unmountComponentAtNode:function(e){l(e)?void 0:h("40");var t=f(e);if(!t){c(e),1===e.nodeType&&e.hasAttribute(P);return!1}return delete j[t._instance.rootID],C.batchedUpdates(u,t,e,!1),!0},_mountImageIntoNode:function(e,t,n,o,a){if(l(t)?void 0:h("41"),o){var s=i(t);if(k.canReuseMarkup(e,s))return void g.precacheNode(n,s);var u=s.getAttribute(k.CHECKSUM_ATTR_NAME);s.removeAttribute(k.CHECKSUM_ATTR_NAME);var c=s.outerHTML;s.setAttribute(k.CHECKSUM_ATTR_NAME,u);var p=e,f=r(p,c),m=" (client) "+p.substring(f-20,f+20)+"\n (server) "+c.substring(f-20,f+20);t.nodeType===N?h("42",m):void 0}if(t.nodeType===N?h("43"):void 0,a.useCreateElement){for(;t.lastChild;)t.removeChild(t.lastChild);d.insertTreeBefore(t,e,null)}else D(t,e),g.precacheNode(n,t.firstChild)}};e.exports=L},function(e,t,n){"use strict";function r(e,t){var n={_topLevelWrapper:e,_idCounter:1,_ownerDocument:t?t.nodeType===i?t:t.ownerDocument:null,_node:t,_tag:t?t.nodeName.toLowerCase():null,_namespaceURI:t?t.namespaceURI:null};return n}var i=(n(627),9);e.exports=r},function(e,t){"use strict";var n={useCreateElement:!0,useFiber:!1};e.exports=n},function(e,t,n){"use strict";var r=n(661),i=/\/?>/,o=/^<\!\-\-/,a={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return o.test(e)?e:e.replace(i," "+a.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(a.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var i=r(e);return i===n}};e.exports=a},function(e,t){"use strict";function n(e){for(var t=1,n=0,i=0,o=e.length,a=o&-4;i3&&void 0!==arguments[3]?arguments[3]:{},c=Boolean(e),f=e||S,d=void 0;d="function"==typeof t?t:t?(0,y.default)(t):E;var v=n||C,g=r.pure,_=void 0===g||g,b=r.withRef,w=void 0!==b&&b,D=_&&v!==C,M=T++;return function(e){function t(e,t,n){var r=v(e,t,n);return r}var n="Connect("+s(e)+")",r=function(r){function s(e,t){i(this,s);var a=o(this,r.call(this,e,t));a.version=M,a.store=e.store||t.store,(0,k.default)(a.store,'Could not find "store" in either the context or '+('props of "'+n+'". ')+"Either wrap the root component in a , "+('or explicitly pass "store" as a prop to "'+n+'".'));var u=a.store.getState();return a.state={storeState:u},a.clearCache(),a}return a(s,r),s.prototype.shouldComponentUpdate=function(){return!_||this.haveOwnPropsChanged||this.hasStoreStateChanged},s.prototype.computeStateProps=function(e,t){if(!this.finalMapStateToProps)return this.configureFinalMapState(e,t);var n=e.getState(),r=this.doStatePropsDependOnOwnProps?this.finalMapStateToProps(n,t):this.finalMapStateToProps(n); -return r},s.prototype.configureFinalMapState=function(e,t){var n=f(e.getState(),t),r="function"==typeof n;return this.finalMapStateToProps=r?n:f,this.doStatePropsDependOnOwnProps=1!==this.finalMapStateToProps.length,r?this.computeStateProps(e,t):n},s.prototype.computeDispatchProps=function(e,t){if(!this.finalMapDispatchToProps)return this.configureFinalMapDispatch(e,t);var n=e.dispatch,r=this.doDispatchPropsDependOnOwnProps?this.finalMapDispatchToProps(n,t):this.finalMapDispatchToProps(n);return r},s.prototype.configureFinalMapDispatch=function(e,t){var n=d(e.dispatch,t),r="function"==typeof n;return this.finalMapDispatchToProps=r?n:d,this.doDispatchPropsDependOnOwnProps=1!==this.finalMapDispatchToProps.length,r?this.computeDispatchProps(e,t):n},s.prototype.updateStatePropsIfNeeded=function(){var e=this.computeStateProps(this.store,this.props);return(!this.stateProps||!(0,m.default)(e,this.stateProps))&&(this.stateProps=e,!0)},s.prototype.updateDispatchPropsIfNeeded=function(){var e=this.computeDispatchProps(this.store,this.props);return(!this.dispatchProps||!(0,m.default)(e,this.dispatchProps))&&(this.dispatchProps=e,!0)},s.prototype.updateMergedPropsIfNeeded=function(){var e=t(this.stateProps,this.dispatchProps,this.props);return!(this.mergedProps&&D&&(0,m.default)(e,this.mergedProps))&&(this.mergedProps=e,!0)},s.prototype.isSubscribed=function(){return"function"==typeof this.unsubscribe},s.prototype.trySubscribe=function(){c&&!this.unsubscribe&&(this.unsubscribe=this.store.subscribe(this.handleChange.bind(this)),this.handleChange())},s.prototype.tryUnsubscribe=function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)},s.prototype.componentDidMount=function(){this.trySubscribe()},s.prototype.componentWillReceiveProps=function(e){_&&(0,m.default)(e,this.props)||(this.haveOwnPropsChanged=!0)},s.prototype.componentWillUnmount=function(){this.tryUnsubscribe(),this.clearCache()},s.prototype.clearCache=function(){this.dispatchProps=null,this.stateProps=null,this.mergedProps=null,this.haveOwnPropsChanged=!0,this.hasStoreStateChanged=!0,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,this.renderedElement=null,this.finalMapDispatchToProps=null,this.finalMapStateToProps=null},s.prototype.handleChange=function(){if(this.unsubscribe){var e=this.store.getState(),t=this.state.storeState;if(!_||t!==e){if(_&&!this.doStatePropsDependOnOwnProps){var n=u(this.updateStatePropsIfNeeded,this);if(!n)return;n===A&&(this.statePropsPrecalculationError=A.value),this.haveStatePropsBeenPrecalculated=!0}this.hasStoreStateChanged=!0,this.setState({storeState:e})}}},s.prototype.getWrappedInstance=function(){return(0,k.default)(w,"To access the wrapped instance, you need to specify { withRef: true } as the fourth argument of the connect() call."),this.refs.wrappedInstance},s.prototype.render=function(){var t=this.haveOwnPropsChanged,n=this.hasStoreStateChanged,r=this.haveStatePropsBeenPrecalculated,i=this.statePropsPrecalculationError,o=this.renderedElement;if(this.haveOwnPropsChanged=!1,this.hasStoreStateChanged=!1,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,i)throw i;var a=!0,s=!0;_&&o&&(a=n||t&&this.doStatePropsDependOnOwnProps,s=t&&this.doDispatchPropsDependOnOwnProps);var u=!1,c=!1;r?u=!0:a&&(u=this.updateStatePropsIfNeeded()),s&&(c=this.updateDispatchPropsIfNeeded());var f=!0;return f=!!(u||c||t)&&this.updateMergedPropsIfNeeded(),!f&&o?o:(w?this.renderedElement=(0,p.createElement)(e,l({},this.mergedProps,{ref:"wrappedInstance"})):this.renderedElement=(0,p.createElement)(e,this.mergedProps),this.renderedElement)},s}(p.Component);return r.displayName=n,r.WrappedComponent=e,r.contextTypes={store:h.default},r.propTypes={store:h.default},(0,x.default)(r,e)}}t.__esModule=!0;var l=Object.assign||function(e){for(var t=1;t1),t}),s(e,c(e),n),u&&(n=i(n,l|p|f));for(var h=t.length;h--;)o(n,t[h]);return n});e.exports=h},function(e,t,n){function r(e,t,n,A,T,D){var M,I=t&k,N=t&S,j=t&E;if(n&&(M=T?n(e,A,T,D):n(e)),void 0!==M)return M;if(!x(e))return e;var F=_(e);if(F){if(M=v(e),!I)return l(e,M)}else{var B=m(e),L=B==O||B==P;if(b(e))return c(e,I);if(B==R||B==C||L&&!T){if(M=N||L?{}:g(e),!I)return N?f(e,u(M,e)):p(e,s(M,e))}else{if(!Z[B])return T?e:{};M=y(e,B,r,I)}}D||(D=new i);var z=D.get(e);if(z)return z;D.set(e,M);var q=j?N?d:h:N?keysIn:w,U=F?void 0:q(e);return o(U||e,function(i,o){U&&(o=i,i=e[o]),a(M,o,r(i,t,n,o,e,D))}),M}var i=n(250),o=n(679),a=n(680),s=n(683),u=n(685),c=n(689),l=n(690),p=n(691),f=n(694),h=n(697),d=n(699),m=n(286),v=n(700),y=n(701),g=n(711),_=n(193),b=n(274),x=n(221),w=n(269),k=1,S=2,E=4,C="[object Arguments]",A="[object Array]",T="[object Boolean]",D="[object Date]",M="[object Error]",O="[object Function]",P="[object GeneratorFunction]",I="[object Map]",N="[object Number]",R="[object Object]",j="[object RegExp]",F="[object Set]",B="[object String]",L="[object Symbol]",z="[object WeakMap]",q="[object ArrayBuffer]",U="[object DataView]",W="[object Float32Array]",K="[object Float64Array]",V="[object Int8Array]",H="[object Int16Array]",J="[object Int32Array]",G="[object Uint8Array]",X="[object Uint8ClampedArray]",Y="[object Uint16Array]",$="[object Uint32Array]",Z={};Z[C]=Z[A]=Z[q]=Z[U]=Z[T]=Z[D]=Z[W]=Z[K]=Z[V]=Z[H]=Z[J]=Z[I]=Z[N]=Z[R]=Z[j]=Z[F]=Z[B]=Z[L]=Z[G]=Z[X]=Z[Y]=Z[$]=!0,Z[M]=Z[O]=Z[z]=!1,e.exports=r},function(e,t){function n(e,t){for(var n=-1,r=null==e?0:e.length;++n0){if(++t>=r)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var r=800,i=16,o=Date.now;e.exports=n},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return{fn:o}};var i=n(322),o=r(i)},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){function t(e){for(var t,n=arguments.length,r=Array(n>1?n-1:0),o=1;o=a&&(t=console)[e].apply(t,r)}var n=e.configs,r={debug:0,info:1,log:2,warn:3,error:4},i=function(e){return r[e]||-1},o=n.logLevel,a=i(o);return t.warn=t.bind(null,"warn"),t.error=t.bind(null,"error"),t.info=t.bind(null,"info"),t.debug=t.bind(null,"debug"),{rootInjects:{log:t}}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return{fn:{AST:a},components:{JumpToPath:u.default}}};var o=n(729),a=i(o),s=n(761),u=r(s)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){function n(e,t,i){if(!e)return i&&i.start_mark?i.start_mark.line:0;if(t.length&&e.tag===b)for(r=0;r=t.column:t.line===e.start_mark.line?t.column>=e.start_mark.column:t.line===e.end_mark.line?t.column<=e.end_mark.column:e.start_mark.linet.line}var o=0;if(!e||[b,x].indexOf(e.tag)===-1)return i;if(e.tag===b)for(o=0;oo;)a(n[o++]);e._c=[],e._n=!1,t&&!e._h&&O(e)})}},O=function(e){v.call(s,function(){var t,n,r,i=e._v;if(P(e)&&(t=D(function(){w?b.emit("unhandledRejection",i,e):(n=s.onunhandledrejection)?n({promise:e,reason:i}):(r=s.console)&&r.error&&r.error("Unhandled promise rejection",i)}),e._h=w||P(e)?2:1),e._a=void 0,t)throw t.error})},P=function(e){if(1==e._h)return!1;for(var t,n=e._a||e._c,r=0;n.length>r;)if(t=n[r++],t.fail||!P(t.promise))return!1;return!0},I=function(e){v.call(s,function(){var t;w?b.emit("rejectionHandled",e):(t=s.onrejectionhandled)&&t({promise:e,reason:e._v})})},N=function(e){var t=this;t._d||(t._d=!0,t=t._w||t,t._v=e,t._s=2,t._a||(t._a=t._c.slice()),M(t,!0))},R=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw _("Promise can't be resolved itself");(t=C(e))?y(function(){var r={_w:n,_d:!1};try{t.call(e,u(R,r,1),u(N,r,1))}catch(e){N.call(r,e)}}):(n._v=e,n._s=1,M(n,!1))}catch(e){N.call({_w:n,_d:!1},e)}}};S||(x=function(e){h(this,x,g,"_h"),f(e),r.call(this);try{e(u(R,this,1),u(N,this,1))}catch(e){N.call(this,e)}},r=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},r.prototype=n(739)(x.prototype,{then:function(e,t){var n=A(m(this,x));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=w?b.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&M(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),T=function(){var e=new r;this.promise=e,this.resolve=u(R,e,1),this.reject=u(N,e,1)}),l(l.G+l.W+l.F*!S,{Promise:x}),n(107)(x,g),n(740)(g),o=n(59)[g],l(l.S+l.F*!S,g,{reject:function(e){var t=A(this),n=t.reject;return n(e),t.promise}}),l(l.S+l.F*(a||!S),g,{resolve:function(e){if(e instanceof x&&E(e.constructor,this))return e;var t=A(this),n=t.resolve;return n(e),t.promise}}),l(l.S+l.F*!(S&&n(442)(function(e){x.all(e).catch(k)})),g,{all:function(e){var t=this,n=A(t),r=n.resolve,i=n.reject,o=D(function(){var n=[],o=0,a=1;d(e,!1,function(e){var s=o++,u=!1;n.push(void 0),a++,t.resolve(e).then(function(e){u||(u=!0,n[s]=e,--a||r(n))},i)}),--a||r(n)});return o&&i(o.error),n.promise},race:function(e){var t=this,n=A(t),r=n.reject,i=D(function(){d(e,!1,function(e){t.resolve(e).then(n.resolve,r)})});return i&&r(i.error),n.promise}})},function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},function(e,t,n){var r=n(82),i=n(439),o=n(440),a=n(86),s=n(72),u=n(181),c={},l={},t=e.exports=function(e,t,n,p,f){var h,d,m,v,y=f?function(){return e}:u(e),g=r(n,p,t?2:1),_=0;if("function"!=typeof y)throw TypeError(e+" is not iterable!");if(o(y)){for(h=s(e.length);h>_;_++)if(v=t?g(a(d=e[_])[0],d[1]):g(e[_]),v===c||v===l)return v}else for(m=y.call(e);!(d=m.next()).done;)if(v=i(m,g,d.value,t),v===c||v===l)return v};t.BREAK=c,t.RETURN=l},function(e,t,n){var r=n(86),i=n(83),o=n(108)("species");e.exports=function(e,t){var n,a=r(e).constructor;return void 0===a||void 0==(n=r(a)[o])?t:i(n)}},function(e,t,n){var r,i,o,a=n(82),s=n(737),u=n(106),c=n(91),l=n(77),p=l.process,f=l.setImmediate,h=l.clearImmediate,d=l.MessageChannel,m=0,v={},y="onreadystatechange",g=function(){var e=+this;if(v.hasOwnProperty(e)){var t=v[e];delete v[e],t()}},_=function(e){g.call(e.data)};f&&h||(f=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return v[++m]=function(){s("function"==typeof e?e:Function(e),t)},r(m),m},h=function(e){delete v[e]},"process"==n(70)(p)?r=function(e){p.nextTick(a(g,e,1))}:d?(i=new d,o=i.port2,i.port1.onmessage=_,r=a(o.postMessage,o,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(e){l.postMessage(e+"","*")},l.addEventListener("message",_,!1)):r=y in c("script")?function(e){u.appendChild(c("script"))[y]=function(){u.removeChild(this),g.call(e)}}:function(e){setTimeout(a(g,e,1),0)}),e.exports={set:f,clear:h}},50,function(e,t,n){var r=n(77),i=n(736).set,o=r.MutationObserver||r.WebKitMutationObserver,a=r.process,s=r.Promise,u="process"==n(70)(a);e.exports=function(){var e,t,n,c=function(){var r,i;for(u&&(r=a.domain)&&r.exit();e;){i=e.fn,e=e.next;try{i()}catch(r){throw e?n():t=void 0,r}}t=void 0,r&&r.enter()};if(u)n=function(){a.nextTick(c)};else if(o){var l=!0,p=document.createTextNode("");new o(c).observe(p,{characterData:!0}),n=function(){p.data=l=!l}}else if(s&&s.resolve){var f=s.resolve();n=function(){f.then(c)}}else n=function(){i.call(r,c)};return function(r){var i={fn:r,next:void 0};t&&(t.next=i),e||(e=i,n()),t=i}}},function(e,t,n){var r=n(84);e.exports=function(e,t,n){for(var i in t)n&&e[i]?e[i]=t[i]:r(e,i,t[i]);return e}},function(e,t,n){"use strict";var r=n(77),i=n(59),o=n(85),a=n(89),s=n(108)("species");e.exports=function(e){var t="function"==typeof i[e]?i[e]:r[e];a&&t&&!t[s]&&o.f(t,s,{configurable:!0,get:function(){return this}})}},function(e,t,n){(function(){var e,r,i,o,a,s,u,c,l,p,f,h,d;e=this.composer=n(742),r=this.constructor=n(746),i=this.dumper=n(751),o=this.errors=n(744),a=this.events=n(743),s=this.loader=n(756),u=this.nodes=n(745),c=this.parser=n(760),l=this.reader=n(757),p=this.resolver=n(755),f=this.scanner=n(758),h=this.tokens=n(759),d=n(747),this.scan=function(e,t){var n,r;for(null==t&&(t=s.Loader),n=new t(e),r=[];n.check_token();)r.push(n.get_token());return r},this.parse=function(e,t){var n,r;for(null==t&&(t=s.Loader),n=new t(e),r=[];n.check_event();)r.push(n.get_event());return r},this.compose=function(e,t){var n;return null==t&&(t=s.Loader),n=new t(e),n.get_single_node()},this.compose_all=function(e,t){var n,r;for(null==t&&(t=s.Loader),n=new t(e),r=[];n.check_node();)r.push(n.get_node());return r},this.load=function(e,t){var n;return null==t&&(t=s.Loader),n=new t(e),n.get_single_data()},this.load_all=function(e,t){var n,r;for(null==t&&(t=s.Loader),n=new t(e),r=[];n.check_data();)r.push(n.get_data());return r},this.emit=function(e,t,n,r){var o,a,s,u,c;null==n&&(n=i.Dumper),null==r&&(r={}),a=t||new d.StringStream,o=new n(a,r);try{for(u=0,c=e.length;u0&&(a=this.buffer[u-1],e.call(r,a)<0);)if(u--,this.pointer-u>n/2-1){o=" ... ",u+=5;break}for(c="",i=this.pointer;in/2-1){c=" ... ",i-=5;break}return""+new Array(t).join(" ")+o+this.buffer.slice(u,i)+c+"\n"+new Array(t+this.pointer-u+o.length).join(" ")+"^"},t.prototype.toString=function(){var e,t;return e=this.get_snippet(),t=" on line "+(this.line+1)+", column "+(this.column+1),e?t:t+":\n"+e},t}(),this.YAMLError=function(e){function n(e){this.message=e,n.__super__.constructor.call(this),this.stack=this.toString()+"\n"+(new Error).stack.split("\n").slice(1).join("\n")}return t(n,e),n.prototype.toString=function(){return this.message},n}(Error),this.MarkedYAMLError=function(e){function n(e,t,r,i,o){this.context=e,this.context_mark=t,this.problem=r,this.problem_mark=i,this.note=o,n.__super__.constructor.call(this)}return t(n,e),n.prototype.toString=function(){var e;return e=[],null!=this.context&&e.push(this.context),null==this.context_mark||null!=this.problem&&null!=this.problem_mark&&this.context_mark.line===this.problem_mark.line&&this.context_mark.column===this.problem_mark.column||e.push(this.context_mark.toString()),null!=this.problem&&e.push(this.problem),null!=this.problem_mark&&e.push(this.problem_mark.toString()),null!=this.note&&e.push(this.note),e.join("\n")},n}(this.YAMLError)}).call(this)},function(e,t){(function(){var e,t=function(e,t){function r(){this.constructor=e}for(var i in t)n.call(t,i)&&(e[i]=t[i]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},n={}.hasOwnProperty;e=0,this.Node=function(){function t(t,n,r,i){this.tag=t,this.value=n,this.start_mark=r,this.end_mark=i,this.unique_id="node_"+e++}return t}(),this.ScalarNode=function(e){function n(e,t,r,i,o){this.tag=e,this.value=t,this.start_mark=r,this.end_mark=i,this.style=o,n.__super__.constructor.apply(this,arguments)}return t(n,e),n.prototype.id="scalar",n}(this.Node),this.CollectionNode=function(e){function n(e,t,r,i,o){this.tag=e,this.value=t,this.start_mark=r,this.end_mark=i,this.flow_style=o,n.__super__.constructor.apply(this,arguments)}return t(n,e),n}(this.Node),this.SequenceNode=function(e){function n(){return n.__super__.constructor.apply(this,arguments)}return t(n,e),n.prototype.id="sequence",n}(this.CollectionNode),this.MappingNode=function(e){function n(){return n.__super__.constructor.apply(this,arguments)}return t(n,e),n.prototype.id="mapping",n}(this.CollectionNode)}).call(this)},function(e,t,n){(function(e){(function(){var r,i,o,a=function(e,t){function n(){this.constructor=e}for(var r in t)s.call(t,r)&&(e[r]=t[r]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},s={}.hasOwnProperty,u=[].indexOf||function(e){for(var t=0,n=this.length;t=0)throw new t.ConstructorError(null,null,"found unconstructable recursive node",e.start_mark);if(this.constructing_nodes.push(e.unique_id),n=null,s=null,e.tag in this.yaml_constructors)n=this.yaml_constructors[e.tag];else{for(a in this.yaml_multi_constructors)if(e.tag.indexOf(0===a)){s=e.tag.slice(a.length),n=this.yaml_multi_constructors[a];break}null==n&&(null in this.yaml_multi_constructors?(s=e.tag,n=this.yaml_multi_constructors[null]):null in this.yaml_constructors?n=this.yaml_constructors[null]:e instanceof i.ScalarNode?n=this.construct_scalar:e instanceof i.SequenceNode?n=this.construct_sequence:e instanceof i.MappingNode&&(n=this.construct_mapping))}return r=n.call(this,null!=s?s:e,e),this.constructed_objects[e.unique_id]=r,this.constructing_nodes.pop(),r},e.prototype.construct_scalar=function(e){if(!(e instanceof i.ScalarNode))throw new t.ConstructorError(null,null,"expected a scalar node but found "+e.id,e.start_mark);return e.value},e.prototype.construct_sequence=function(e){var n,r,o,a,s;if(!(e instanceof i.SequenceNode))throw new t.ConstructorError(null,null,"expected a sequence node but found "+e.id,e.start_mark);for(a=e.value,s=[],r=0,o=a.length;r=0&&(l=l.slice(1)),"0"===l)return 0;if(0===l.indexOf("0b"))return c*parseInt(l.slice(2),2);if(0===l.indexOf("0x"))return c*parseInt(l.slice(2),16);if(0===l.indexOf("0o"))return c*parseInt(l.slice(2),8);if("0"===l[0])return c*parseInt(l,8);if(u.call(l,":")>=0){for(r=function(){var e,t,n,r;for(n=l.split(/:/g),r=[],e=0,t=n.length;e=0&&(l=l.slice(1)),".inf"===l)return Infinity*c;if(".nan"===l)return NaN;if(u.call(l,":")>=0){for(r=function(){var e,t,n,r;for(n=l.split(/:/g),r=[],e=0,t=n.length;e=n?e:e.length+1===n?""+t+e:""+new Array(n-e.length+1).join(t)+e},this.to_hex=function(e){return"string"==typeof e&&(e=e.charCodeAt(0)),e.toString(16)}}).call(this)}).call(t,function(){return this}())},function(e,t,n){(function(e,r){function i(e,n){var r={seen:[],stylize:a};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),m(n)?r.showHidden=n:n&&t._extend(r,n),x(r.showHidden)&&(r.showHidden=!1),x(r.depth)&&(r.depth=2),x(r.colors)&&(r.colors=!1),x(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=o),u(r,e,r.depth)}function o(e,t){var n=i.styles[t];return n?"["+i.colors[n][0]+"m"+e+"["+i.colors[n][1]+"m":e}function a(e,t){return e}function s(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}function u(e,n,r){if(e.customInspect&&n&&C(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var i=n.inspect(r,e);return _(i)||(i=u(e,i,r)),i}var o=c(e,n);if(o)return o;var a=Object.keys(n),m=s(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),E(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return l(n);if(0===a.length){if(C(n)){var v=n.name?": "+n.name:"";return e.stylize("[Function"+v+"]","special")}if(w(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(S(n))return e.stylize(Date.prototype.toString.call(n),"date");if(E(n))return l(n)}var y="",g=!1,b=["{","}"];if(d(n)&&(g=!0,b=["[","]"]),C(n)){var x=n.name?": "+n.name:"";y=" [Function"+x+"]"}if(w(n)&&(y=" "+RegExp.prototype.toString.call(n)),S(n)&&(y=" "+Date.prototype.toUTCString.call(n)),E(n)&&(y=" "+l(n)),0===a.length&&(!g||0==n.length))return b[0]+y+b[1];if(r<0)return w(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special");e.seen.push(n);var k;return k=g?p(e,n,r,m,a):a.map(function(t){return f(e,n,r,m,t,g)}),e.seen.pop(),h(k,y,b)}function c(e,t){if(x(t))return e.stylize("undefined","undefined");if(_(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return g(t)?e.stylize(""+t,"number"):m(t)?e.stylize(""+t,"boolean"):v(t)?e.stylize("null","null"):void 0}function l(e){return"["+Error.prototype.toString.call(e)+"]"}function p(e,t,n,r,i){for(var o=[],a=0,s=t.length;a-1&&(s=o?s.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+s.split("\n").map(function(e){return" "+e}).join("\n"))):s=e.stylize("[Circular]","special")),x(a)){if(o&&i.match(/^\d+$/))return s;a=JSON.stringify(""+i),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function h(e,t,n){var r=0,i=e.reduce(function(e,t){return r++,t.indexOf("\n")>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function d(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function v(e){return null===e}function y(e){return null==e}function g(e){return"number"==typeof e}function _(e){return"string"==typeof e}function b(e){return"symbol"==typeof e}function x(e){return void 0===e}function w(e){return k(e)&&"[object RegExp]"===T(e)}function k(e){return"object"==typeof e&&null!==e}function S(e){return k(e)&&"[object Date]"===T(e)}function E(e){return k(e)&&("[object Error]"===T(e)||e instanceof Error)}function C(e){return"function"==typeof e}function A(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function T(e){return Object.prototype.toString.call(e)}function D(e){return e<10?"0"+e.toString(10):e.toString(10)}function M(){var e=new Date,t=[D(e.getHours()),D(e.getMinutes()),D(e.getSeconds())].join(":");return[e.getDate(),R[e.getMonth()],t].join(" ")}function O(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var P=/%[sdj%]/g;t.format=function(e){if(!_(e)){for(var t=[],n=0;n=o)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}}),s=r[n];n2*this.indent?t.width:80,this.best_line_break="\r"===(n=t.line_break)||"\n"===n||"\r\n"===n?t.line_break:"\n",this.tag_prefixes=null,this.prepared_anchor=null,this.prepared_tag=null,this.analysis=null,this.style=null}var r,a,c;return r="\0 \t\r\n…\u2028\u2029",a={"!":"!","tag:yaml.org,2002:":"!!"},c={"\0":"0","":"a","\b":"b","\t":"t","\n":"n","\v":"v","\f":"f","\r":"r","":"e",'"':'"',"\\":"\\","…":"N"," ":"_","\u2028":"L","\u2029":"P"},n.prototype.dispose=function(){return this.states=[],this.state=null},n.prototype.emit=function(e){var t;for(this.events.push(e),t=[];!this.need_more_events();)this.event=this.events.shift(),this.state(),t.push(this.event=null);return t},n.prototype.need_more_events=function(){var e;return 0===this.events.length||(e=this.events[0],e instanceof i.DocumentStartEvent?this.need_events(1):e instanceof i.SequenceStartEvent?this.need_events(2):e instanceof i.MappingStartEvent&&this.need_events(3))},n.prototype.need_events=function(e){var t,n,r,o,a;for(o=0,a=this.events.slice(1),n=0,r=a.length;nthis.best_width)&&this.write_indent(),this.states.push(this.expect_flow_sequence_item),this.expect_node({sequence:!0}))},n.prototype.expect_flow_sequence_item=function(){return this.event instanceof i.SequenceEndEvent?(this.indent=this.indents.pop(),this.flow_level--,this.canonical&&(this.write_indicator(",",!1),this.write_indent()),this.write_indicator("]",!1),this.state=this.states.pop()):(this.write_indicator(",",!1),(this.canonical||this.column>this.best_width)&&this.write_indent(),this.states.push(this.expect_flow_sequence_item),this.expect_node({sequence:!0}))},n.prototype.expect_flow_mapping=function(){return this.write_indicator("{",!0,{whitespace:!0}),this.flow_level++,this.increase_indent({flow:!0}),this.state=this.expect_first_flow_mapping_key},n.prototype.expect_first_flow_mapping_key=function(){return this.event instanceof i.MappingEndEvent?(this.indent=this.indents.pop(),this.flow_level--,this.write_indicator("}",!1),this.state=this.states.pop()):((this.canonical||this.column>this.best_width)&&this.write_indent(),!this.canonical&&this.check_simple_key()?(this.states.push(this.expect_flow_mapping_simple_value),this.expect_node({mapping:!0,simple_key:!0})):(this.write_indicator("?",!0),this.states.push(this.expect_flow_mapping_value),this.expect_node({mapping:!0})))},n.prototype.expect_flow_mapping_key=function(){return this.event instanceof i.MappingEndEvent?(this.indent=this.indents.pop(),this.flow_level--,this.canonical&&(this.write_indicator(",",!1),this.write_indent()),this.write_indicator("}",!1),this.state=this.states.pop()):(this.write_indicator(",",!1),(this.canonical||this.column>this.best_width)&&this.write_indent(),!this.canonical&&this.check_simple_key()?(this.states.push(this.expect_flow_mapping_simple_value),this.expect_node({mapping:!0,simple_key:!0})):(this.write_indicator("?",!0),this.states.push(this.expect_flow_mapping_value),this.expect_node({mapping:!0})))},n.prototype.expect_flow_mapping_simple_value=function(){return this.write_indicator(":",!1),this.states.push(this.expect_flow_mapping_key),this.expect_node({mapping:!0})},n.prototype.expect_flow_mapping_value=function(){return(this.canonical||this.column>this.best_width)&&this.write_indent(),this.write_indicator(":",!0),this.states.push(this.expect_flow_mapping_key),this.expect_node({mapping:!0})},n.prototype.expect_block_sequence=function(){var e;return e=this.mapping_context&&!this.indentation,this.increase_indent({indentless:e}),this.state=this.expect_first_block_sequence_item},n.prototype.expect_first_block_sequence_item=function(){return this.expect_block_sequence_item(!0)},n.prototype.expect_block_sequence_item=function(e){return null==e&&(e=!1),!e&&this.event instanceof i.SequenceEndEvent?(this.indent=this.indents.pop(),this.state=this.states.pop()):(this.write_indent(),this.write_indicator("-",!0,{indentation:!0}),this.states.push(this.expect_block_sequence_item),this.expect_node({sequence:!0}))},n.prototype.expect_block_mapping=function(){return this.increase_indent(),this.state=this.expect_first_block_mapping_key},n.prototype.expect_first_block_mapping_key=function(){return this.expect_block_mapping_key(!0)},n.prototype.expect_block_mapping_key=function(e){return null==e&&(e=!1),!e&&this.event instanceof i.MappingEndEvent?(this.indent=this.indents.pop(),this.state=this.states.pop()):(this.write_indent(),this.check_simple_key()?(this.states.push(this.expect_block_mapping_simple_value),this.expect_node({mapping:!0,simple_key:!0})):(this.write_indicator("?",!0,{indentation:!0}),this.states.push(this.expect_block_mapping_value),this.expect_node({mapping:!0})))},n.prototype.expect_block_mapping_simple_value=function(){return this.write_indicator(":",!1),this.states.push(this.expect_block_mapping_key),this.expect_node({mapping:!0})},n.prototype.expect_block_mapping_value=function(){return this.write_indent(),this.write_indicator(":",!0,{indentation:!0}),this.states.push(this.expect_block_mapping_key),this.expect_node({mapping:!0})},n.prototype.check_empty_document=function(){var e;return this.event instanceof i.DocumentStartEvent&&0!==this.events.length&&(e=this.events[0],e instanceof i.ScalarEvent&&null==e.anchor&&null==e.tag&&e.implicit&&""===e.value)},n.prototype.check_empty_sequence=function(){return this.event instanceof i.SequenceStartEvent&&this.events[0]instanceof i.SequenceEndEvent},n.prototype.check_empty_mapping=function(){return this.event instanceof i.MappingStartEvent&&this.events[0]instanceof i.MappingEndEvent},n.prototype.check_simple_key=function(){var e;return e=0,this.event instanceof i.NodeEvent&&null!=this.event.anchor&&(null==this.prepared_anchor&&(this.prepared_anchor=this.prepare_anchor(this.event.anchor)),e+=this.prepared_anchor.length),null!=this.event.tag&&(this.event instanceof i.ScalarEvent||this.event instanceof i.CollectionStartEvent)&&(null==this.prepared_tag&&(this.prepared_tag=this.prepare_tag(this.event.tag)),e+=this.prepared_tag.length),this.event instanceof i.ScalarEvent&&(null==this.analysis&&(this.analysis=this.analyze_scalar(this.event.value)),e+=this.analysis.scalar.length),e<128&&(this.event instanceof i.AliasEvent||this.event instanceof i.ScalarEvent&&!this.analysis.empty&&!this.analysis.multiline||this.check_empty_sequence()||this.check_empty_mapping())},n.prototype.process_anchor=function(e){return null==this.event.anchor?void(this.prepared_anchor=null):(null==this.prepared_anchor&&(this.prepared_anchor=this.prepare_anchor(this.event.anchor)),this.prepared_anchor&&this.write_indicator(""+e+this.prepared_anchor,!0),this.prepared_anchor=null)},n.prototype.process_tag=function(){var e;if(e=this.event.tag,this.event instanceof i.ScalarEvent){if(null==this.style&&(this.style=this.choose_scalar_style()),(!this.canonical||null==e)&&(""===this.style&&this.event.implicit[0]||""!==this.style&&this.event.implicit[1]))return void(this.prepared_tag=null);this.event.implicit[0]&&null==e&&(e="!",this.prepared_tag=null)}else if((!this.canonical||null==e)&&this.event.implicit)return void(this.prepared_tag=null);return null==e&&this.error("tag is not specified"),null==this.prepared_tag&&(this.prepared_tag=this.prepare_tag(e)),this.write_indicator(this.prepared_tag,!0),this.prepared_tag=null},n.prototype.process_scalar=function(){var e;switch(null==this.analysis&&(this.analysis=this.analyze_scalar(this.event.value)),null==this.style&&(this.style=this.choose_scalar_style()),e=!this.simple_key_context,this.style){case'"':this.write_double_quoted(this.analysis.scalar,e);break;case"'":this.write_single_quoted(this.analysis.scalar,e);break;case">":this.write_folded(this.analysis.scalar);break;case"|":this.write_literal(this.analysis.scalar);break;default:this.write_plain(this.analysis.scalar,e)}return this.analysis=null,this.style=null},n.prototype.choose_scalar_style=function(){var e;return null==this.analysis&&(this.analysis=this.analyze_scalar(this.event.value)),'"'===this.event.style||this.canonical?'"':this.event.style||!this.event.implicit[0]||this.simple_key_context&&(this.analysis.empty||this.analysis.multiline)||!(this.flow_level&&this.analysis.allow_flow_plain||!this.flow_level&&this.analysis.allow_block_plain)?this.event.style&&(e=this.event.style, -u.call("|>",e)>=0)&&!this.flow_level&&!this.simple_key_context&&this.analysis.allow_block?this.event.style:this.event.style&&"'"!==this.event.style||!this.analysis.allow_single_quoted||this.simple_key_context&&this.analysis.multiline?'"':"'":""},n.prototype.prepare_version=function(e){var t,n,r;return t=e[0],n=e[1],r=t+"."+n,1===t?r:this.error("unsupported YAML version",r)},n.prototype.prepare_tag_handle=function(e){var t,n,r,i;for(e||this.error("tag handle must not be empty"),"!"===e[0]&&"!"===e.slice(-1)||this.error("tag handle must start and end with '!':",e),i=e.slice(1,-1),n=0,r=i.length;n=0||this.error("invalid character '"+t+"' in the tag handle:",e);return e},n.prototype.prepare_tag_prefix=function(e){var t,n,r,i;for(e||this.error("tag prefix must not be empty"),n=[],i=0,r=+("!"===e[0]);r=0?r++:(i=0||"!"===t&&"!"!==i?r++:(f"},n.prototype.prepare_anchor=function(e){var t,n,r;for(e||this.error("anchor must not be empty"),n=0,r=e.length;n=0||this.error("invalid character '"+t+"' in the anchor:",e);return e},n.prototype.analyze_scalar=function(t){var n,i,o,a,s,c,l,p,f,h,d,m,v,y,g,_,b,x,w,k,S,E,C,A,T,D;for(t||new e(t,!0,!1,!1,!0,!0,!0,!1),c=!1,f=!1,_=!1,C=!1,D=!1,y=!1,v=!1,T=!1,A=!1,l=!1,E=!1,0!==t.indexOf("---")&&0!==t.indexOf("...")||(c=!0,f=!0),b=!0,h=1===t.length||(k=t[1],u.call("\0 \t\r\n…\u2028\u2029",k)>=0),w=!1,x=!1,m=0,m=d=0,g=t.length;d'\"%@`",p)>=0||"-"===p&&h?(f=!0,c=!0):u.call("?:",p)>=0&&(f=!0,h&&(c=!0)):u.call(",?[]{}",p)>=0?f=!0:":"===p?(f=!0,h&&(c=!0)):"#"===p&&b&&(f=!0,c=!0),u.call("\n…\u2028\u2029",p)>=0&&(_=!0),"\n"===p||" "<=p&&p<="~"||("\ufeff"!==p&&("…"===p||" "<=p&&p<="퟿"||""<=p&&p<="�")?(D=!0,this.allow_unicode||(C=!0)):C=!0)," "===p?(0===m&&(y=!0),m===t.length-1&&(T=!0),x&&(l=!0),x=!1,w=!0):u.call("\n…\u2028\u2029",p)>=0?(0===m&&(v=!0),m===t.length-1&&(A=!0),w&&(E=!0),x=!0,w=!1):(x=!1,w=!1),b=u.call(r,p)>=0,h=m+2>=t.length||(S=t[m+2],u.call(r,S)>=0);return a=!0,i=!0,s=!0,o=!0,n=!0,(y||v||T||A)&&(a=i=!1),T&&(n=!1),l&&(a=i=s=!1),(E||C)&&(a=i=s=n=!1),_&&(a=i=!1),f&&(a=!1),c&&(i=!1),new e(t,!1,_,a,i,s,o,n)},n.prototype.write_stream_start=function(){if(this.encoding&&0===this.encoding.indexOf("utf-16"))return this.stream.write("\ufeff",this.encoding)},n.prototype.write_stream_end=function(){return this.flush_stream()},n.prototype.write_indicator=function(e,t,n){var r;return null==n&&(n={}),r=this.whitespace||!t?e:" "+e,this.whitespace=!!n.whitespace,this.indentation&&(this.indentation=!!n.indentation),this.column+=r.length,this.open_ended=!1,this.stream.write(r,this.encoding)},n.prototype.write_indent=function(){var e,t,n;if(t=null!=(n=this.indent)?n:0,(!this.indentation||this.column>t||this.column===t&&!this.whitespace)&&this.write_line_break(),this.columnthis.best_width&&t&&0!==f&&a!==e.length?this.write_indent():(o=e.slice(f,a),this.column+=o.length,this.stream.write(o,this.encoding)),f=a);else if(r){if(null==i||u.call("\n…\u2028\u2029",i)<0){for("\n"===e[f]&&this.write_line_break(),l=e.slice(f,a),s=0,c=l.length;s=0||"'"===i)&&f=0),a++}return this.write_indicator("'",!1)},n.prototype.write_double_quoted=function(e,t){var n,r,i,a;for(null==t&&(t=!0),this.write_indicator('"',!0),a=i=0;i<=e.length;)n=e[i],(null==n||u.call('"\\…\u2028\u2029\ufeff',n)>=0||!(" "<=n&&n<="~"||this.allow_unicode&&(" "<=n&&n<="퟿"||""<=n&&n<="�")))&&(a=i)&&this.column+(i-a)>this.best_width&&(r=e.slice(a,i)+"\\",a"+a,!0),"+"===a.slice(-1)&&(this.open_ended=!0),this.write_line_break(),c=!0,n=!0,h=!1,d=o=0,f=[];o<=e.length;){if(r=e[o],n){if(null==r||u.call("\n…\u2028\u2029",r)<0){for(c||null==r||" "===r||"\n"!==e[d]||this.write_line_break(),c=" "===r,p=e.slice(d,o),s=0,l=p.length;sthis.best_width?this.write_indent():(i=e.slice(d,o),this.column+=i.length,this.stream.write(i,this.encoding)),d=o):(null==r||u.call(" \n…\u2028\u2029",r)>=0)&&(i=e.slice(d,o),this.column+=i.length,this.stream.write(i,this.encoding),null==r&&this.write_line_break(),d=o);null!=r&&(n=u.call("\n…\u2028\u2029",r)>=0,h=" "===r),f.push(o++)}return f},n.prototype.write_literal=function(e){var t,n,r,i,o,a,s,c,l,p,f;for(a=this.determine_block_hints(e),this.write_indicator("|"+a,!0),"+"===a.slice(-1)&&(this.open_ended=!0),this.write_line_break(),n=!0,f=o=0,p=[];o<=e.length;){if(r=e[o],n){if(null==r||u.call("\n…\u2028\u2029",r)<0){for(l=e.slice(f,o),s=0,c=l.length;s=0)&&(i=e.slice(f,o),this.stream.write(i,this.encoding),null==r&&this.write_line_break(),f=o);null!=r&&(n=u.call("\n…\u2028\u2029",r)>=0),p.push(o++)}return p},n.prototype.write_plain=function(e,t){var n,r,i,o,a,s,c,l,p,f,h;if(null==t&&(t=!0),e){for(this.root_context&&(this.open_ended=!0),this.whitespace||(o=" ",this.column+=o.length,this.stream.write(o,this.encoding)),this.whitespace=!1,this.indentation=!1,f=!1,r=!1,h=a=0,p=[];a<=e.length;){if(i=e[a],f)" "!==i&&(h+1===a&&this.column>this.best_width&&t?(this.write_indent(),this.whitespace=!1,this.indentation=!1):(o=e.slice(h,a),this.column+=o.length,this.stream.write(o,this.encoding)),h=a);else if(r){if(u.call("\n…\u2028\u2029",i)<0){for("\n"===e[h]&&this.write_line_break(),l=e.slice(h,a),s=0,c=l.length;s=0)&&(o=e.slice(h,a),this.column+=o.length,this.stream.write(o,this.encoding),h=a);null!=i&&(f=" "===i,r=u.call("\n…\u2028\u2029",i)>=0),p.push(a++)}return p}},n.prototype.determine_block_hints=function(e){var t,n,r,i,o;return n="",t=e[0],r=e.length-2,o=e[r++],i=e[r++],u.call(" \n…\u2028\u2029",t)>=0&&(n+=this.best_indent),u.call("\n…\u2028\u2029",i)<0?n+="-":(1===e.length||u.call("\n…\u2028\u2029",o)>=0)&&(n+="+"),n},n.prototype.flush_stream=function(){var e;return"function"==typeof(e=this.stream).flush?e.flush():void 0},n.prototype.error=function(e,n){var r,i;throw n&&(n=null!=(r=null!=n&&null!=(i=n.constructor)?i.name:void 0)?r:o.inspect(n)),new t.EmitterError(""+e+(n?" "+n:""))},n}(),e=function(){function e(e,t,n,r,i,o,a,s){this.scalar=e,this.empty=t,this.multiline=n,this.allow_flow_plain=r,this.allow_block_plain=i,this.allow_single_quoted=o,this.allow_double_quoted=a,this.allow_block=s}return e}()}).call(this)},function(e,t,n){(function(){var e,t,r,i,o=function(e,t){function n(){this.constructor=e}for(var r in t)a.call(t,r)&&(e[r]=t[r]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},a={}.hasOwnProperty;t=n(743),r=n(745),i=n(747),e=n(744).YAMLError,this.SerializerError=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return o(t,e),t}(e),this.Serializer=function(){function e(e){var t;t=null!=e?e:{},this.encoding=t.encoding,this.explicit_start=t.explicit_start,this.explicit_end=t.explicit_end,this.version=t.version,this.tags=t.tags,this.serialized_nodes={},this.anchors={},this.last_anchor_id=0,this.closed=null}return e.prototype.open=function(){if(null===this.closed)return this.emit(new t.StreamStartEvent(this.encoding)),this.closed=!1;throw this.closed?new SerializerError("serializer is closed"):new SerializerError("serializer is already open")},e.prototype.close=function(){if(null===this.closed)throw new SerializerError("serializer is not opened");if(!this.closed)return this.emit(new t.StreamEndEvent),this.closed=!0},e.prototype.serialize=function(e){if(null===this.closed)throw new SerializerError("serializer is not opened");if(this.closed)throw new SerializerError("serializer is closed");return null!=e&&(this.emit(new t.DocumentStartEvent(void 0,void 0,this.explicit_start,this.version,this.tags)),this.anchor_node(e),this.serialize_node(e),this.emit(new t.DocumentEndEvent(void 0,void 0,this.explicit_end))),this.serialized_nodes={},this.anchors={},this.last_anchor_id=0},e.prototype.anchor_node=function(e){var t,n,i,o,a,s,u,c,l,p,f,h,d,m;if(e.unique_id in this.anchors)return null!=(t=this.anchors)[c=e.unique_id]?t[c]:t[c]=this.generate_anchor(e);if(this.anchors[e.unique_id]=null,e instanceof r.SequenceNode){for(l=e.value,h=[],n=0,s=l.length;nn?p.push([l,s]):i[s]=this.yaml_path_resolvers[l][s]);else for(d=this.yaml_path_resolvers,a=0,c=d.length;a=0)return c[e];if(a.call(c,null)>=0)return c[null]}return e===t.ScalarNode?i:e===t.SequenceNode?o:e===t.MappingNode?n:void 0},e}(),this.Resolver=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return i(t,e),t}(this.BaseResolver),this.Resolver.add_implicit_resolver("tag:yaml.org,2002:bool",/^(?:yes|Yes|YES|true|True|TRUE|on|On|ON|no|No|NO|false|False|FALSE|off|Off|OFF)$/,"yYnNtTfFoO"),this.Resolver.add_implicit_resolver("tag:yaml.org,2002:float",/^(?:[-+]?(?:[0-9][0-9_]*)\.[0-9_]*(?:[eE][-+][0-9]+)?|\.[0-9_]+(?:[eE][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*|[-+]?\.(?:inf|Inf|INF)|\.(?:nan|NaN|NAN))$/,"-+0123456789."),this.Resolver.add_implicit_resolver("tag:yaml.org,2002:int",/^(?:[-+]?0b[01_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[0-9a-fA-F_]+|[-+]?0o[0-7_]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)$/,"-+0123456789"),this.Resolver.add_implicit_resolver("tag:yaml.org,2002:merge",/^(?:<<)$/,"<"),this.Resolver.add_implicit_resolver("tag:yaml.org,2002:null",/^(?:~|null|Null|NULL|)$/,["~","n","N",""]),this.Resolver.add_implicit_resolver("tag:yaml.org,2002:timestamp",/^(?:[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]|[0-9][0-9][0-9][0-9]-[0-9][0-9]?-[0-9][0-9]?(?:[Tt]|[\x20\t]+)[0-9][0-9]?:[0-9][0-9]:[0-9][0-9](?:\.[0-9]*)?(?:[\x20\t]*(?:Z|[-+][0-9][0-9]?(?::[0-9][0-9])?))?)$/,"0123456789"),this.Resolver.add_implicit_resolver("tag:yaml.org,2002:value",/^(?:=)$/,"="),this.Resolver.add_implicit_resolver("tag:yaml.org,2002:yaml",/^(?:!|&|\*)$/,"!&*")}).call(this)},function(e,t,n){(function(){var e,t,r,i,o,a,s,u=[].slice;s=n(747),i=n(757),a=n(758),r=n(760),e=n(742),o=n(755),t=n(746),this.make_loader=function(n,c,l,p,f,h){var d,m;return null==n&&(n=i.Reader),null==c&&(c=a.Scanner),null==l&&(l=r.Parser),null==p&&(p=e.Composer),null==f&&(f=o.Resolver),null==h&&(h=t.Constructor),m=[n,c,l,p,f,h],d=function(){function e(e){var n,r,i;for(m[0].call(this,e),i=m.slice(1),n=0,r=i.length;n=0||"\r"===t&&"\n"!==this.string[this.index]?(this.line++,this.column=0):this.column++,n.push(e--);return n},n.prototype.get_mark=function(){return new e(this.line,this.column,this.string,this.index)},n.prototype.check_printable=function(){var e,n,i;if(n=r.exec(this.string))throw e=n[0],i=this.string.length-this.index+n.index,new t.ReaderError(i,e,"special characters are not allowed")},n}()}).call(this)},function(e,t,n){(function(){var e,r,i,o,a=function(e,t){function n(){this.constructor=e}for(var r in t)s.call(t,r)&&(e[r]=t[r]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},s={}.hasOwnProperty,u=[].slice,c=[].indexOf||function(e){for(var t=0,n=this.length;t"===e&&0===this.flow_level)return this.fetch_folded();if("'"===e)return this.fetch_single();if('"'===e)return this.fetch_double();if(this.check_plain())return this.fetch_plain();throw new t.ScannerError("while scanning for the next token",null,"found character "+e+" that cannot start any token",this.get_mark())},e.prototype.next_possible_simple_key=function(){var e,t,n,r;n=null,r=this.possible_simple_keys;for(t in r)s.call(r,t)&&(e=r[t],(null===n||e.token_numbere;)t=this.get_mark(),this.indent=this.indents.pop(),n.push(this.tokens.push(new i.BlockEndToken(t,t)));return n}},e.prototype.add_indent=function(e){return e>this.indent&&(this.indents.push(this.indent),this.indent=e,!0)},e.prototype.fetch_stream_start=function(){var e;return e=this.get_mark(),this.tokens.push(new i.StreamStartToken(e,e,this.encoding))},e.prototype.fetch_stream_end=function(){var e;return this.unwind_indent(-1),this.remove_possible_simple_key(),this.allow_possible_simple_key=!1,this.possible_simple_keys={},e=this.get_mark(),this.tokens.push(new i.StreamEndToken(e,e)),this.done=!0},e.prototype.fetch_directive=function(){return this.unwind_indent(-1),this.remove_possible_simple_key(),this.allow_simple_key=!1,this.tokens.push(this.scan_directive())},e.prototype.fetch_document_start=function(){return this.fetch_document_indicator(i.DocumentStartToken)},e.prototype.fetch_document_end=function(){return this.fetch_document_indicator(i.DocumentEndToken)},e.prototype.fetch_document_indicator=function(e){var t;return this.unwind_indent(-1),this.remove_possible_simple_key(),this.allow_simple_key=!1,t=this.get_mark(),this.forward(3),this.tokens.push(new e(t,this.get_mark()))},e.prototype.fetch_flow_sequence_start=function(){return this.fetch_flow_collection_start(i.FlowSequenceStartToken)},e.prototype.fetch_flow_mapping_start=function(){return this.fetch_flow_collection_start(i.FlowMappingStartToken)},e.prototype.fetch_flow_collection_start=function(e){var t;return this.save_possible_simple_key(),this.flow_level++,this.allow_simple_key=!0,t=this.get_mark(),this.forward(),this.tokens.push(new e(t,this.get_mark()))},e.prototype.fetch_flow_sequence_end=function(){return this.fetch_flow_collection_end(i.FlowSequenceEndToken)},e.prototype.fetch_flow_mapping_end=function(){return this.fetch_flow_collection_end(i.FlowMappingEndToken)},e.prototype.fetch_flow_collection_end=function(e){var t;return this.remove_possible_simple_key(),this.flow_level--,this.allow_simple_key=!1,t=this.get_mark(),this.forward(),this.tokens.push(new e(t,this.get_mark()))},e.prototype.fetch_flow_entry=function(){var e;return this.allow_simple_key=!0,this.remove_possible_simple_key(),e=this.get_mark(),this.forward(),this.tokens.push(new i.FlowEntryToken(e,this.get_mark()))},e.prototype.fetch_block_entry=function(){var e,n;if(0===this.flow_level){if(!this.allow_simple_key)throw new t.ScannerError(null,null,"sequence entries are not allowed here",this.get_mark());this.add_indent(this.column)&&(e=this.get_mark(),this.tokens.push(new i.BlockSequenceStartToken(e,e)))}return this.allow_simple_key=!0,this.remove_possible_simple_key(),n=this.get_mark(),this.forward(),this.tokens.push(new i.BlockEntryToken(n,this.get_mark()))},e.prototype.fetch_key=function(){var e,n;if(0===this.flow_level){if(!this.allow_simple_key)throw new t.ScannerError(null,null,"mapping keys are not allowed here",this.get_mark());this.add_indent(this.column)&&(e=this.get_mark(), -this.tokens.push(new i.BlockMappingStartToken(e,e)))}return this.allow_simple_key=!this.flow_level,this.remove_possible_simple_key(),n=this.get_mark(),this.forward(),this.tokens.push(new i.KeyToken(n,this.get_mark()))},e.prototype.fetch_value=function(){var e,n,r;if(e=this.possible_simple_keys[this.flow_level])delete this.possible_simple_keys[this.flow_level],this.tokens.splice(e.token_number-this.tokens_taken,0,new i.KeyToken(e.mark,e.mark)),0===this.flow_level&&this.add_indent(e.column)&&this.tokens.splice(e.token_number-this.tokens_taken,0,new i.BlockMappingStartToken(e.mark,e.mark)),this.allow_simple_key=!1;else{if(0===this.flow_level){if(!this.allow_simple_key)throw new t.ScannerError(null,null,"mapping values are not allowed here",this.get_mark());this.add_indent(this.column)&&(n=this.get_mark(),this.tokens.push(new i.BlockMappingStartToken(n,n)))}this.allow_simple_key=!this.flow_level,this.remove_possible_simple_key()}return r=this.get_mark(),this.forward(),this.tokens.push(new i.ValueToken(r,this.get_mark()))},e.prototype.fetch_alias=function(){return this.save_possible_simple_key(),this.allow_simple_key=!1,this.tokens.push(this.scan_anchor(i.AliasToken))},e.prototype.fetch_anchor=function(){return this.save_possible_simple_key(),this.allow_simple_key=!1,this.tokens.push(this.scan_anchor(i.AnchorToken))},e.prototype.fetch_tag=function(){return this.save_possible_simple_key(),this.allow_simple_key=!1,this.tokens.push(this.scan_tag())},e.prototype.fetch_literal=function(){return this.fetch_block_scalar("|")},e.prototype.fetch_folded=function(){return this.fetch_block_scalar(">")},e.prototype.fetch_block_scalar=function(e){return this.allow_simple_key=!0,this.remove_possible_simple_key(),this.tokens.push(this.scan_block_scalar(e))},e.prototype.fetch_single=function(){return this.fetch_flow_scalar("'")},e.prototype.fetch_double=function(){return this.fetch_flow_scalar('"')},e.prototype.fetch_flow_scalar=function(e){return this.save_possible_simple_key(),this.allow_simple_key=!1,this.tokens.push(this.scan_flow_scalar(e))},e.prototype.fetch_plain=function(){return this.save_possible_simple_key(),this.allow_simple_key=!1,this.tokens.push(this.scan_plain())},e.prototype.check_directive=function(){return 0===this.column},e.prototype.check_document_start=function(){var e;return 0===this.column&&"---"===this.prefix(3)&&(e=this.peek(3),c.call(n+l+"\0",e)>=0)},e.prototype.check_document_end=function(){var e;return 0===this.column&&"..."===this.prefix(3)&&(e=this.peek(3),c.call(n+l+"\0",e)>=0)},e.prototype.check_block_entry=function(){var e;return e=this.peek(1),c.call(n+l+"\0",e)>=0},e.prototype.check_key=function(){var e;return 0!==this.flow_level||(e=this.peek(1),c.call(n+l+"\0",e)>=0)},e.prototype.check_value=function(){var e;return 0!==this.flow_level||(e=this.peek(1),c.call(n+l+"\0",e)>=0)},e.prototype.check_plain=function(){var e,t;return e=this.peek(),c.call(n+l+"\0-?:,[]{}#&*!|>'\"%@`",e)<0||(t=this.peek(1),c.call(n+l+"\0",t)<0&&("-"===e||0===this.flow_level&&c.call("?:",e)>=0))},e.prototype.scan_to_next_token=function(){var e,t,r;for(0===this.index&&"\ufeff"===this.peek()&&this.forward(),e=!1,r=[];!e;){for(;" "===this.peek();)this.forward();if("#"===this.peek())for(;t=this.peek(),c.call(n+"\0",t)<0;)this.forward();this.scan_line_break()?0===this.flow_level?r.push(this.allow_simple_key=!0):r.push(void 0):r.push(e=!0)}return r},e.prototype.scan_directive=function(){var e,t,r,o,a;if(o=this.get_mark(),this.forward(),t=this.scan_directive_name(o),a=null,"YAML"===t)a=this.scan_yaml_directive_value(o),e=this.get_mark();else if("TAG"===t)a=this.scan_tag_directive_value(o),e=this.get_mark();else for(e=this.get_mark();r=this.peek(),c.call(n+"\0",r)<0;)this.forward();return this.scan_directive_ignored_line(o),new i.DirectiveToken(t,a,o,e)},e.prototype.scan_directive_name=function(e){var r,i,o;for(i=0,r=this.peek(i);"0"<=r&&r<="9"||"A"<=r&&r<="Z"||"a"<=r&&r<="z"||c.call("-_",r)>=0;)i++,r=this.peek(i);if(0===i)throw new t.ScannerError("while scanning a directive",e,"expected alphanumeric or numeric character but found "+r,this.get_mark());if(o=this.prefix(i),this.forward(i),r=this.peek(),c.call(n+"\0 ",r)<0)throw new t.ScannerError("while scanning a directive",e,"expected alphanumeric or numeric character but found "+r,this.get_mark());return o},e.prototype.scan_yaml_directive_value=function(e){for(var r,i,o;" "===this.peek();)this.forward();if(r=this.scan_yaml_directive_number(e),"."!==this.peek())throw new t.ScannerError("while scanning a directive",e,"expected a digit or '.' but found "+this.peek(),this.get_mark());if(this.forward(),i=this.scan_yaml_directive_number(e),o=this.peek(),c.call(n+"\0 ",o)<0)throw new t.ScannerError("while scanning a directive",e,"expected a digit or ' ' but found "+this.peek(),this.get_mark());return[r,i]},e.prototype.scan_yaml_directive_number=function(e){var n,r,i,o;if(n=this.peek(),!("0"<=n&&n<="9"))throw new t.ScannerError("while scanning a directive",e,"expected a digit but found "+n,this.get_mark());for(r=0;"0"<=(i=this.peek(r))&&i<="9";)r++;return o=parseInt(this.prefix(r)),this.forward(r),o},e.prototype.scan_tag_directive_value=function(e){for(var t,n;" "===this.peek();)this.forward();for(t=this.scan_tag_directive_handle(e);" "===this.peek();)this.forward();return n=this.scan_tag_directive_prefix(e),[t,n]},e.prototype.scan_tag_directive_handle=function(e){var n,r;if(r=this.scan_tag_handle("directive",e),n=this.peek()," "!==n)throw new t.ScannerError("while scanning a directive",e,"expected ' ' but found "+n,this.get_mark());return r},e.prototype.scan_tag_directive_prefix=function(e){var r,i;if(i=this.scan_tag_uri("directive",e),r=this.peek(),c.call(n+"\0 ",r)<0)throw new t.ScannerError("while scanning a directive",e,"expected ' ' but found "+r,this.get_mark());return i},e.prototype.scan_directive_ignored_line=function(e){for(var r,i;" "===this.peek();)this.forward();if("#"===this.peek())for(;i=this.peek(),c.call(n+"\0",i)<0;)this.forward();if(r=this.peek(),c.call(n+"\0",r)<0)throw new t.ScannerError("while scanning a directive",e,"expected a comment or a line break but found "+r,this.get_mark());return this.scan_line_break()},e.prototype.scan_anchor=function(e){var r,i,o,a,s,u;for(s=this.get_mark(),i=this.peek(),a="*"===i?"alias":"anchor",this.forward(),o=0,r=this.peek(o);"0"<=r&&r<="9"||"A"<=r&&r<="Z"||"a"<=r&&r<="z"||c.call("-_",r)>=0;)o++,r=this.peek(o);if(0===o)throw new t.ScannerError("while scanning an "+a,s,"expected alphabetic or numeric character but found '"+r+"'",this.get_mark());if(u=this.prefix(o),this.forward(o),r=this.peek(),c.call(n+l+"\0?:,]}%@`",r)<0)throw new t.ScannerError("while scanning an "+a,s,"expected alphabetic or numeric character but found '"+r+"'",this.get_mark());return new e(u,s,this.get_mark())},e.prototype.scan_tag=function(){var e,r,o,a,s,u;if(a=this.get_mark(),e=this.peek(1),"<"===e){if(r=null,this.forward(2),s=this.scan_tag_uri("tag",a),">"!==this.peek())throw new t.ScannerError("while parsing a tag",a,"expected '>' but found "+this.peek(),this.get_mark());this.forward()}else if(c.call(n+l+"\0",e)>=0)r=null,s="!",this.forward();else{for(o=1,u=!1;c.call(n+"\0 ",e)<0;){if("!"===e){u=!0;break}o++,e=this.peek(o)}u?r=this.scan_tag_handle("tag",a):(r="!",this.forward()),s=this.scan_tag_uri("tag",a)}if(e=this.peek(),c.call(n+"\0 ",e)<0)throw new t.ScannerError("while scanning a tag",a,"expected ' ' but found "+e,this.get_mark());return new i.TagToken([r,s],a,this.get_mark())},e.prototype.scan_block_scalar=function(e){var t,r,a,s,u,l,p,f,h,d,m,v,y,g,_,b,x,w,k,S;for(u=">"===e,a=[],S=this.get_mark(),this.forward(),y=this.scan_block_scalar_indicators(S),r=y[0],l=y[1],this.scan_block_scalar_ignored_line(S),v=this.indent+1,v<1&&(v=1),null==l?(g=this.scan_block_scalar_indentation(),t=g[0],m=g[1],s=g[2],p=Math.max(v,m)):(p=v+l-1,_=this.scan_block_scalar_breaks(p),t=_[0],s=_[1]),d="";this.column===p&&"\0"!==this.peek();){for(a=a.concat(t),b=this.peek(),f=c.call(" \t",b)<0,h=0;x=this.peek(h),c.call(n+"\0",x)<0;)h++;if(a.push(this.prefix(h)),this.forward(h),d=this.scan_line_break(),w=this.scan_block_scalar_breaks(p),t=w[0],s=w[1],this.column!==p||"\0"===this.peek())break;u&&"\n"===d&&f&&(k=this.peek(),c.call(" \t",k)<0)?o.is_empty(t)&&a.push(" "):a.push(d)}return r!==!1&&a.push(d),r===!0&&(a=a.concat(t)),new i.ScalarToken(a.join(""),!1,S,s,e)},e.prototype.scan_block_scalar_indicators=function(e){var r,i,o;if(i=null,o=null,r=this.peek(),c.call("+-",r)>=0){if(i="+"===r,this.forward(),r=this.peek(),c.call(a,r)>=0){if(o=parseInt(r),0===o)throw new t.ScannerError("while scanning a block scalar",e,"expected indentation indicator in the range 1-9 but found 0",this.get_mark());this.forward()}}else if(c.call(a,r)>=0){if(o=parseInt(r),0===o)throw new t.ScannerError("while scanning a block scalar",e,"expected indentation indicator in the range 1-9 but found 0",this.get_mark());this.forward(),r=this.peek(),c.call("+-",r)>=0&&(i="+"===r,this.forward())}if(r=this.peek(),c.call(n+"\0 ",r)<0)throw new t.ScannerError("while scanning a block scalar",e,"expected chomping or indentation indicators, but found "+r,this.get_mark());return[i,o]},e.prototype.scan_block_scalar_ignored_line=function(e){for(var r,i;" "===this.peek();)this.forward();if("#"===this.peek())for(;i=this.peek(),c.call(n+"\0",i)<0;)this.forward();if(r=this.peek(),c.call(n+"\0",r)<0)throw new t.ScannerError("while scanning a block scalar",e,"expected a comment or a line break but found "+r,this.get_mark());return this.scan_line_break()},e.prototype.scan_block_scalar_indentation=function(){var e,t,r,i;for(e=[],r=0,t=this.get_mark();i=this.peek(),c.call(n+" ",i)>=0;)" "!==this.peek()?(e.push(this.scan_line_break()),t=this.get_mark()):(this.forward(),this.column>r&&(r=this.column));return[e,r,t]},e.prototype.scan_block_scalar_breaks=function(e){var t,r,i;for(t=[],r=this.get_mark();this.column=0;)for(t.push(this.scan_line_break()),r=this.get_mark();this.column=0)o.push(i),this.forward();else{if(!e||"\\"!==i)return o;if(this.forward(),i=this.peek(),i in f)o.push(f[i]),this.forward();else if(i in p){for(d=p[i],this.forward(),h=u=0,v=d;0<=v?uv;h=0<=v?++u:--u)if(y=this.peek(h),c.call(a+"ABCDEFabcdef",y)<0)throw new t.ScannerError("while scanning a double-quoted scalar",r,"expected escape sequence of "+d+" hexadecimal numbers, but found "+this.peek(h),this.get_mark());s=parseInt(this.prefix(d),16),o.push(String.fromCharCode(s)),this.forward(d)}else{if(!(c.call(n,i)>=0))throw new t.ScannerError("while scanning a double-quoted scalar",r,"found unknown escape character "+i,this.get_mark());this.scan_line_break(),o=o.concat(this.scan_flow_scalar_breaks(e,r))}}else o.push("'"),this.forward(2)}},e.prototype.scan_flow_scalar_spaces=function(e,r){var i,o,a,s,u,p,f;for(a=[],s=0;p=this.peek(s),c.call(l,p)>=0;)s++;if(f=this.prefix(s),this.forward(s),o=this.peek(),"\0"===o)throw new t.ScannerError("while scanning a quoted scalar",r,"found unexpected end of stream",this.get_mark());return c.call(n,o)>=0?(u=this.scan_line_break(),i=this.scan_flow_scalar_breaks(e,r),"\n"!==u?a.push(u):0===i.length&&a.push(" "),a=a.concat(i)):a.push(f),a},e.prototype.scan_flow_scalar_breaks=function(e,r){var i,o,a,s,u;for(i=[];;){if(o=this.prefix(3),"---"===o||"..."===o&&(a=this.peek(3),c.call(n+l+"\0",a)>=0))throw new t.ScannerError("while scanning a quoted scalar",r,"found unexpected document separator",this.get_mark());for(;s=this.peek(),c.call(l,s)>=0;)this.forward();if(u=this.peek(),!(c.call(n,u)>=0))return i;i.push(this.scan_line_break())}},e.prototype.scan_plain=function(){var e,r,o,a,s,u,p,f,h;for(r=[],h=o=this.get_mark(),a=this.indent+1,f=[];;){if(s=0,"#"===this.peek())break;for(;;){if(e=this.peek(s),c.call(n+l+"\0",e)>=0||0===this.flow_level&&":"===e&&(u=this.peek(s+1),c.call(n+l+"\0",u)>=0)||0!==this.flow_level&&c.call(",:?[]{}",e)>=0)break;s++}if(0!==this.flow_level&&":"===e&&(p=this.peek(s+1),c.call(n+l+"\0,[]{}",p)<0))throw this.forward(s),new t.ScannerError("while scanning a plain scalar",h,"found unexpected ':'",this.get_mark(),"Please check http://pyyaml.org/wiki/YAMLColonInFlowContext");if(0===s)break;if(this.allow_simple_key=!1,r=r.concat(f),r.push(this.prefix(s)),this.forward(s),o=this.get_mark(),f=this.scan_plain_spaces(a,h),null==f||0===f.length||"#"===this.peek()||0===this.flow_level&&this.column=0;)a++;if(m=this.prefix(a),this.forward(a),i=this.peek(),c.call(n,i)>=0){if(s=this.scan_line_break(),this.allow_simple_key=!0,u=this.prefix(3),"---"===u||"..."===u&&(f=this.peek(3),c.call(n+l+"\0",f)>=0))return;for(r=[];d=this.peek(),c.call(n+" ",d)>=0;)if(" "===this.peek())this.forward();else if(r.push(this.scan_line_break()),u=this.prefix(3),"---"===u||"..."===u&&(h=this.peek(3),c.call(n+l+"\0",h)>=0))return;"\n"!==s?o.push(s):0===r.length&&o.push(" "),o=o.concat(r)}else m&&o.push(m);return o},e.prototype.scan_tag_handle=function(e,n){var r,i,o;if(r=this.peek(),"!"!==r)throw new t.ScannerError("while scanning a "+e,n,"expected '!' but found "+r,this.get_mark());if(i=1,r=this.peek(i)," "!==r){for(;"0"<=r&&r<="9"||"A"<=r&&r<="Z"||"a"<=r&&r<="z"||c.call("-_",r)>=0;)i++,r=this.peek(i);if("!"!==r)throw this.forward(i),new t.ScannerError("while scanning a "+e,n,"expected '!' but found "+r,this.get_mark());i++}return o=this.prefix(i),this.forward(i),o},e.prototype.scan_tag_uri=function(e,n){var r,i,o;for(i=[],o=0,r=this.peek(o);"0"<=r&&r<="9"||"A"<=r&&r<="Z"||"a"<=r&&r<="z"||c.call("-;/?:@&=+$,_.!~*'()[]%",r)>=0;)"%"===r?(i.push(this.prefix(o)),this.forward(o),o=0,i.push(this.scan_uri_escapes(e,n))):o++,r=this.peek(o);if(0!==o&&(i.push(this.prefix(o)),this.forward(o),o=0),0===i.length)throw new t.ScannerError("while parsing a "+e,n,"expected URI but found "+r,this.get_mark());return i.join("")},e.prototype.scan_uri_escapes=function(e,n){var r,i,o,a;for(r=[],a=this.get_mark();"%"===this.peek();){for(this.forward(),o=i=0;i<=2;o=++i)throw new t.ScannerError("while scanning a "+e,n,"expected URI escape sequence of 2 hexadecimal numbers but found "+this.peek(o),this.get_mark());r.push(String.fromCharCode(parseInt(this.prefix(2),16))),this.forward(2)}return r.join("")},e.prototype.scan_line_break=function(){var e;return e=this.peek(),c.call("\r\n…",e)>=0?("\r\n"===this.prefix(2)?this.forward(2):this.forward(),"\n"):c.call("\u2028\u2029",e)>=0?(this.forward(),e):""},e}()}).call(this)},function(e,t){(function(){var e=function(e,n){function r(){this.constructor=e}for(var i in n)t.call(n,i)&&(e[i]=n[i]);return r.prototype=n.prototype,e.prototype=new r,e.__super__=n.prototype,e},t={}.hasOwnProperty;this.Token=function(){function e(e,t){this.start_mark=e,this.end_mark=t}return e}(),this.DirectiveToken=function(t){function n(e,t,n,r){this.name=e,this.value=t,this.start_mark=n,this.end_mark=r}return e(n,t),n.prototype.id="",n}(this.Token),this.DocumentStartToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="",n}(this.Token),this.DocumentEndToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="",n}(this.Token),this.StreamStartToken=function(t){function n(e,t,n){this.start_mark=e,this.end_mark=t,this.encoding=n}return e(n,t),n.prototype.id="",n}(this.Token),this.StreamEndToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="",n}(this.Token),this.BlockSequenceStartToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="",n}(this.Token),this.BlockMappingStartToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="",n}(this.Token),this.BlockEndToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="",n}(this.Token),this.FlowSequenceStartToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="[",n}(this.Token),this.FlowMappingStartToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="{",n}(this.Token),this.FlowSequenceEndToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="]",n}(this.Token),this.FlowMappingEndToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="}",n}(this.Token),this.KeyToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="?",n}(this.Token),this.ValueToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id=":",n}(this.Token),this.BlockEntryToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="-",n}(this.Token),this.FlowEntryToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id=",",n}(this.Token),this.AliasToken=function(t){function n(e,t,n){this.value=e,this.start_mark=t,this.end_mark=n}return e(n,t),n.prototype.id="",n}(this.Token),this.AnchorToken=function(t){function n(e,t,n){this.value=e,this.start_mark=t,this.end_mark=n}return e(n,t),n.prototype.id="",n}(this.Token),this.TagToken=function(t){function n(e,t,n){this.value=e,this.start_mark=t,this.end_mark=n}return e(n,t),n.prototype.id="",n}(this.Token),this.ScalarToken=function(t){function n(e,t,n,r,i){this.value=e,this.plain=t,this.start_mark=n,this.end_mark=r,this.style=i}return e(n,t),n.prototype.id="",n}(this.Token)}).call(this)},function(e,t,n){(function(){var e,r,i,o=function(e,t){function n(){this.constructor=e}for(var r in t)a.call(t,r)&&(e[r]=t[r]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},a={}.hasOwnProperty,s=[].slice;r=n(743),e=n(744).MarkedYAMLError,i=n(759),this.ParserError=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return o(t,e),t}(e),this.Parser=function(){function e(){this.current_event=null,this.yaml_version=null,this.tag_handles={},this.states=[],this.marks=[],this.state="parse_stream_start"}var n;return n={"!":"!","!!":"tag:yaml.org,2002:"},e.prototype.dispose=function(){return this.states=[],this.state=null},e.prototype.check_event=function(){var e,t,n,r;if(t=1<=arguments.length?s.call(arguments,0):[],null===this.current_event&&null!=this.state&&(this.current_event=this[this.state]()),null!==this.current_event){if(0===t.length)return!0;for(n=0,r=t.length;n', but found "+this.peek_token().id,this.peek_token().start_mark);u=this.get_token(),e=u.end_mark,n=new r.DocumentStartEvent(a,e,!0,c,s),this.states.push("parse_document_end"),this.state="parse_document_content"}return n},e.prototype.parse_document_end=function(){var e,t,n,o,a;return a=this.peek_token(),o=e=a.start_mark,n=!1,this.check_token(i.DocumentEndToken)&&(a=this.get_token(),e=a.end_mark,n=!0),t=new r.DocumentEndEvent(o,e,n),this.state="parse_document_start",t},e.prototype.parse_document_content=function(){var e;return this.check_token(i.DirectiveToken,i.DocumentStartToken,i.DocumentEndToken,i.StreamEndToken)?(e=this.process_empty_scalar(this.peek_token().start_mark),this.state=this.states.pop(),e):this.parse_block_node()},e.prototype.process_directives=function(){var e,r,o,s,u,c,l,p,f,h;for(this.yaml_version=null,this.tag_handles={};this.check_token(i.DirectiveToken);)if(f=this.get_token(),"YAML"===f.name){if(null!==this.yaml_version)throw new t.ParserError(null,null,"found duplicate YAML directive",f.start_mark);if(u=f.value,r=u[0],o=u[1],1!==r)throw new t.ParserError(null,null,"found incompatible YAML document (version 1.* is required)",f.start_mark);this.yaml_version=f.value}else if("TAG"===f.name){if(c=f.value,e=c[0],s=c[1],e in this.tag_handles)throw new t.ParserError(null,null,"duplicate tag handle "+e,f.start_mark);this.tag_handles[e]=s}p=null,l=this.tag_handles;for(e in l)a.call(l,e)&&(s=l[e],null==p&&(p={}),p[e]=s);h=[this.yaml_version,p];for(e in n)a.call(n,e)&&(s=n[e],s in this.tag_handles||(this.tag_handles[e]=s));return h},e.prototype.parse_block_node=function(){return this.parse_node(!0)},e.prototype.parse_flow_node=function(){return this.parse_node()},e.prototype.parse_block_node_or_indentless_sequence=function(){return this.parse_node(!0,!0)},e.prototype.parse_node=function(e,n){var o,a,s,u,c,l,p,f,h,d,m;if(null==e&&(e=!1),null==n&&(n=!1),this.check_token(i.AliasToken))m=this.get_token(),s=new r.AliasEvent(m.value,m.start_mark,m.end_mark),this.state=this.states.pop();else{if(o=null,h=null,p=a=d=null,this.check_token(i.AnchorToken)?(m=this.get_token(),p=m.start_mark,a=m.end_mark,o=m.value,this.check_token(i.TagToken)&&(m=this.get_token(),d=m.start_mark,a=m.end_mark,h=m.value)):this.check_token(i.TagToken)&&(m=this.get_token(),p=d=m.start_mark,a=m.end_mark,h=m.value,this.check_token(i.AnchorToken)&&(m=this.get_token(),a=m.end_mark,o=m.value)),null!==h)if(u=h[0],f=h[1],null!==u){if(!(u in this.tag_handles))throw new t.ParserError("while parsing a node",p,"found undefined tag handle "+u,d);h=this.tag_handles[u]+f}else h=f;if(null===p&&(p=a=this.peek_token().start_mark),s=null,c=null===h||"!"===h,n&&this.check_token(i.BlockEntryToken))a=this.peek_token().end_mark,s=new r.SequenceStartEvent(o,h,c,p,a),this.state="parse_indentless_sequence_entry";else if(this.check_token(i.ScalarToken))m=this.get_token(),a=m.end_mark,c=m.plain&&null===h||"!"===h?[!0,!1]:null===h?[!1,!0]:[!1,!1],s=new r.ScalarEvent(o,h,c,m.value,p,a,m.style),this.state=this.states.pop();else if(this.check_token(i.FlowSequenceStartToken))a=this.peek_token().end_mark,s=new r.SequenceStartEvent(o,h,c,p,a,!0),this.state="parse_flow_sequence_first_entry";else if(this.check_token(i.FlowMappingStartToken))a=this.peek_token().end_mark,s=new r.MappingStartEvent(o,h,c,p,a,!0),this.state="parse_flow_mapping_first_key";else if(e&&this.check_token(i.BlockSequenceStartToken))a=this.peek_token().end_mark,s=new r.SequenceStartEvent(o,h,c,p,a,!1),this.state="parse_block_sequence_first_entry";else if(e&&this.check_token(i.BlockMappingStartToken))a=this.peek_token().end_mark,s=new r.MappingStartEvent(o,h,c,p,a,!1),this.state="parse_block_mapping_first_key";else{if(null===o&&null===h)throw l=e?"block":"flow",m=this.peek_token(),new t.ParserError("while parsing a "+l+" node",p,"expected the node content, but found "+m.id,m.start_mark);s=new r.ScalarEvent(o,h,[c,!1],"",p,a),this.state=this.states.pop()}}return s},e.prototype.parse_block_sequence_first_entry=function(){var e;return e=this.get_token(),this.marks.push(e.start_mark),this.parse_block_sequence_entry()},e.prototype.parse_block_sequence_entry=function(){var e,n;if(this.check_token(i.BlockEntryToken))return n=this.get_token(),this.check_token(i.BlockEntryToken,i.BlockEndToken)?(this.state="parse_block_sequence_entry",this.process_empty_scalar(n.end_mark)):(this.states.push("parse_block_sequence_entry"),this.parse_block_node());if(!this.check_token(i.BlockEndToken))throw n=this.peek_token(),new t.ParserError("while parsing a block collection",this.marks.slice(-1)[0],"expected , but found "+n.id,n.start_mark);return n=this.get_token(),e=new r.SequenceEndEvent(n.start_mark,n.end_mark),this.state=this.states.pop(),this.marks.pop(),e},e.prototype.parse_indentless_sequence_entry=function(){var e,t;return this.check_token(i.BlockEntryToken)?(t=this.get_token(),this.check_token(i.BlockEntryToken,i.KeyToken,i.ValueToken,i.BlockEndToken)?(this.state="parse_indentless_sequence_entry",this.process_empty_scalar(t.end_mark)):(this.states.push("parse_indentless_sequence_entry"),this.parse_block_node())):(t=this.peek_token(),e=new r.SequenceEndEvent(t.start_mark,t.start_mark),this.state=this.states.pop(),e)},e.prototype.parse_block_mapping_first_key=function(){var e;return e=this.get_token(),this.marks.push(e.start_mark),this.parse_block_mapping_key()},e.prototype.parse_block_mapping_key=function(){var e,n;if(this.check_token(i.KeyToken))return n=this.get_token(),this.check_token(i.KeyToken,i.ValueToken,i.BlockEndToken)?(this.state="parse_block_mapping_value",this.process_empty_scalar(n.end_mark)):(this.states.push("parse_block_mapping_value"),this.parse_block_node_or_indentless_sequence());if(!this.check_token(i.BlockEndToken))throw n=this.peek_token(),new t.ParserError("while parsing a block mapping",this.marks.slice(-1)[0],"expected , but found "+n.id,n.start_mark);return n=this.get_token(),e=new r.MappingEndEvent(n.start_mark,n.end_mark),this.state=this.states.pop(),this.marks.pop(),e},e.prototype.parse_block_mapping_value=function(){var e;return this.check_token(i.ValueToken)?(e=this.get_token(),this.check_token(i.KeyToken,i.ValueToken,i.BlockEndToken)?(this.state="parse_block_mapping_key",this.process_empty_scalar(e.end_mark)):(this.states.push("parse_block_mapping_key"),this.parse_block_node_or_indentless_sequence())):(this.state="parse_block_mapping_key",e=this.peek_token(),this.process_empty_scalar(e.start_mark))},e.prototype.parse_flow_sequence_first_entry=function(){var e;return e=this.get_token(),this.marks.push(e.start_mark),this.parse_flow_sequence_entry(!0)},e.prototype.parse_flow_sequence_entry=function(e){var n,o;if(null==e&&(e=!1),!this.check_token(i.FlowSequenceEndToken)){if(!e){if(!this.check_token(i.FlowEntryToken))throw o=this.peek_token(),new t.ParserError("while parsing a flow sequence",this.marks.slice(-1)[0],"expected ',' or ']', but got "+o.id,o.start_mark);this.get_token()}if(this.check_token(i.KeyToken))return o=this.peek_token(),n=new r.MappingStartEvent(null,null,!0,o.start_mark,o.end_mark,!0),this.state="parse_flow_sequence_entry_mapping_key",n;if(!this.check_token(i.FlowSequenceEndToken))return this.states.push("parse_flow_sequence_entry"),this.parse_flow_node()}return o=this.get_token(),n=new r.SequenceEndEvent(o.start_mark,o.end_mark),this.state=this.states.pop(),this.marks.pop(),n},e.prototype.parse_flow_sequence_entry_mapping_key=function(){var e;return e=this.get_token(),this.check_token(i.ValueToken,i.FlowEntryToken,i.FlowSequenceEndToken)?(this.state="parse_flow_sequence_entry_mapping_value",this.process_empty_scalar(e.end_mark)):(this.states.push("parse_flow_sequence_entry_mapping_value"),this.parse_flow_node())},e.prototype.parse_flow_sequence_entry_mapping_value=function(){var e;return this.check_token(i.ValueToken)?(e=this.get_token(),this.check_token(i.FlowEntryToken,i.FlowSequenceEndToken)?(this.state="parse_flow_sequence_entry_mapping_end",this.process_empty_scalar(e.end_mark)):(this.states.push("parse_flow_sequence_entry_mapping_end"),this.parse_flow_node())):(this.state="parse_flow_sequence_entry_mapping_end",e=this.peek_token(),this.process_empty_scalar(e.start_mark))},e.prototype.parse_flow_sequence_entry_mapping_end=function(){var e;return this.state="parse_flow_sequence_entry",e=this.peek_token(),new r.MappingEndEvent(e.start_mark,e.start_mark)},e.prototype.parse_flow_mapping_first_key=function(){var e;return e=this.get_token(),this.marks.push(e.start_mark),this.parse_flow_mapping_key(!0)},e.prototype.parse_flow_mapping_key=function(e){var n,o;if(null==e&&(e=!1),!this.check_token(i.FlowMappingEndToken)){if(!e){if(!this.check_token(i.FlowEntryToken))throw o=this.peek_token(),new t.ParserError("while parsing a flow mapping",this.marks.slice(-1)[0],"expected ',' or '}', but got "+o.id,o.start_mark);this.get_token()}if(this.check_token(i.KeyToken))return o=this.get_token(),this.check_token(i.ValueToken,i.FlowEntryToken,i.FlowMappingEndToken)?(this.state="parse_flow_mapping_value",this.process_empty_scalar(o.end_mark)):(this.states.push("parse_flow_mapping_value"),this.parse_flow_node());if(!this.check_token(i.FlowMappingEndToken))return this.states.push("parse_flow_mapping_empty_value"),this.parse_flow_node()}return o=this.get_token(),n=new r.MappingEndEvent(o.start_mark,o.end_mark),this.state=this.states.pop(),this.marks.pop(),n},e.prototype.parse_flow_mapping_value=function(){var e;return this.check_token(i.ValueToken)?(e=this.get_token(),this.check_token(i.FlowEntryToken,i.FlowMappingEndToken)?(this.state="parse_flow_mapping_key",this.process_empty_scalar(e.end_mark)):(this.states.push("parse_flow_mapping_key"),this.parse_flow_node())):(this.state="parse_flow_mapping_key",e=this.peek_token(),this.process_empty_scalar(e.start_mark))},e.prototype.parse_flow_mapping_empty_value=function(){return this.state="parse_flow_mapping_key",this.process_empty_scalar(this.peek_token().start_mark)},e.prototype.process_empty_scalar=function(e){return new r.ScalarEvent(null,null,[!0,!1],"",e,e)},e}()}).call(this)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=function(e){function t(){return(0,s.default)(this,t),(0,p.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){return null}}]),t}(m.default.Component);t.default=v},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(763),o=r(i);e.exports=function(e){var t=e.configs;return{fn:{fetch:o.default.makeHttp(t.preFetch,t.postFetch),buildRequest:o.default.buildRequest,execute:o.default.execute,resolve:o.default.resolve,serializeRes:o.default.serializeRes,opId:o.default.helpers.opId}}}},function(e,t,n){ -e.exports=function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=46)}([function(e,t){e.exports=n(60)},function(e,t){e.exports=n(141)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return(e.operationId||"").replace(/\s/g,"").length?b(e.operationId):o(t,n)}function o(e,t){return""+_(t)+b(e)}function a(e,t){return _(t)+"-"+e}function s(e,t){return e&&e.paths?u(e,function(e){var n=e.pathName,r=e.method,o=e.operation;if(!o||"object"!==(void 0===o?"undefined":(0,v.default)(o)))return!1;var s=o.operationId;return[i(o,n,r),a(n,r),s].some(function(e){return e&&e===t})}):null}function u(e,t){return c(e,t,!0)||null}function c(e,t,n){if(!e||"object"!==(void 0===e?"undefined":(0,v.default)(e))||!e.paths||"object"!==(0,v.default)(e.paths))return null;var r=e.paths;for(var i in r)for(var o in r[i])if("PARAMETERS"!==o.toUpperCase()){var a=r[i][o];if(a&&"object"===(void 0===a?"undefined":(0,v.default)(a))){var s={spec:e,pathName:i,method:o.toUpperCase(),operation:a},u=t(s);if(n&&u)return s}}}function l(e){var t=e.spec,n=t.paths,r={};if(!n)return e;for(var o in n){var a=n[o];if((0,g.default)(a)){var s=a.parameters;for(var u in a)!function(e){var n=a[e];if(!(0,g.default)(n))return"continue";var u=i(n,o,e);if(u&&(r[u]?r[u].push(n):r[u]=[n],(0,d.default)(r).forEach(function(e){if(r[e].length>1)r[e].forEach(function(t,n){t.__originalOperationId=t.__originalOperationId||t.operationId,t.operationId=""+e+(n+1)});else if(void 0!==n.operationId){var t=r[e][0];t.__originalOperationId=t.__originalOperationId||n.operationId,t.operationId=e}})),"parameters"!==e){var c=[],l={};for(var p in t)"produces"!==p&&"consumes"!==p&&"security"!==p||(l[p]=t[p],c.push(l));if(s&&(l.parameters=s,c.push(l)),c.length){var h=!0,m=!1,v=void 0;try{for(var y,_=(0,f.default)(c);!(h=(y=_.next()).done);h=!0){var b=y.value;for(var x in b)if(n[x]){if("parameters"===x){var w=!0,k=!1,S=void 0;try{for(var E,C=(0,f.default)(b[x]);!(w=(E=C.next()).done);w=!0)!function(){var e=E.value;n[x].some(function(t){return t.name===e.name})||n[x].push(e)}()}catch(e){k=!0,S=e}finally{try{!w&&C.return&&C.return()}finally{if(k)throw S}}}}else n[x]=b[x]}}catch(e){m=!0,v=e}finally{try{!h&&_.return&&_.return()}finally{if(m)throw v}}}}}(u)}}return e}Object.defineProperty(t,"__esModule",{value:!0});var p=n(11),f=r(p),h=n(0),d=r(h),m=n(5),v=r(m);t.opId=i,t.idFromPathMethod=o,t.legacyIdFromPathMethod=a,t.getOperationRaw=s,t.findOperation=u,t.eachOperation=c,t.normalizeSwagger=l;var y=n(41),g=r(y),_=function(e){return String.prototype.toLowerCase.call(e)},b=function(e){return e.replace(/[^\w]/gi,"_")}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){if(n=n||{},t=(0,q.default)({},t,{path:t.path&&o(t.path)}),"merge"===t.op){var r=s(t.path);W.default.apply(e,[r]),(0,q.default)(r.value,t.value)}else if("mergeDeep"===t.op){var i=s(t.path);W.default.apply(e,[i]),(0,J.default)(i.value,t.value)}else if(W.default.apply(e,[t]),n.allowMetaPatches&&t.meta&&O(t)&&(Array.isArray(t.value)||S(t.value))){var a=s(t.path);W.default.apply(e,[a]),(0,q.default)(a.value,t.meta)}return e}function o(e){return Array.isArray(e)?e.length<1?"":"/"+e.map(function(e){return(e+"").replace(/~/g,"~0").replace(/\//g,"~1")}).join("/"):e}function a(e,t){return{op:"add",path:e,value:t}}function s(e){return{op:"_get",path:e}}function u(e,t,n){return{op:"replace",path:e,value:t,meta:n}}function c(e,t){return{op:"remove",path:e}}function l(e,t){return{type:"mutation",op:"merge",path:e,value:t}}function p(e,t){return{type:"mutation",op:"mergeDeep",path:e,value:t}}function f(e,t){return{type:"context",path:e,value:t}}function h(e,t){try{return m(e,y,t)}catch(e){return e}}function d(e,t){try{return m(e,v,t)}catch(e){return e}}function m(e,t,n){return k(w(e.filter(O).map(function(e){return t(e.value,n,e.path)})||[]))}function v(e,t,n){return n=n||[],Array.isArray(e)?e.map(function(e,r){return v(e,t,n.concat(r))}):S(e)?(0,L.default)(e).map(function(r){return v(e[r],t,n.concat(r))}):t(e,n[n.length-1],n)}function y(e,t,n){n=n||[];var r=[];if(n.length>0){var i=t(e,n[n.length-1],n);i&&(r=r.concat(i))}if(Array.isArray(e)){var o=e.map(function(e,r){return y(e,t,n.concat(r))});o&&(r=r.concat(o))}else if(S(e)){var a=(0,L.default)(e).map(function(r){return y(e[r],t,n.concat(r))});a&&(r=r.concat(a))}return r=w(r)}function g(e,t){if(!Array.isArray(t))return!1;for(var n=0,r=t.length;n1&&void 0!==arguments[1]?arguments[1]:{};return"object"===(void 0===e?"undefined":(0,b.default)(e))&&(t=e,e=t.url),t.headers=t.headers||{},T.mergeInQueryOrForm(t),t.requestInterceptor&&(t=t.requestInterceptor(t)||t),/multipart\/form-data/i.test(t.headers["content-type"]||t.headers["Content-Type"])&&(delete t.headers["content-type"],delete t.headers["Content-Type"]),fetch(t.url,t).then(function(n){var r=T.serializeRes(n,e,t).then(function(e){return t.responseInterceptor&&(e=t.responseInterceptor(e)||e),e});if(!n.ok){var i=new Error(n.statusText);return i.statusCode=i.status=n.status,r.then(function(e){throw i.response=e,i},function(e){throw i.responseError=e,i})}return r})}function o(e){return/json/.test(e)||/xml/.test(e)||/yaml/.test(e)||/text/.test(e)}function a(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.loadSpec,i=void 0!==r&&r,a={ok:e.ok,url:e.url||t,status:e.status,statusText:e.statusText,headers:s(e.headers)},u=i||o(a.headers["content-type"]);return(u?e.text:e.blob||e.buffer).call(e).then(function(e){if(a.text=e,a.data=e,u)try{var t=S.default.safeLoad(e);a.body=t,a.obj=t}catch(e){a.parseError=e}return a})}function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={};return"function"==typeof e.forEach?(e.forEach(function(e,n){void 0!==t[n]?(t[n]=Array.isArray(t[n])?t[n]:[t[n]],t[n].push(e)):t[n]=e}),t):t}function u(e){return"undefined"!=typeof File?e instanceof File:null!==e&&"object"===(void 0===e?"undefined":(0,b.default)(e))&&"function"==typeof e.pipe}function c(e,t){var n=e.value,r=e.collectionFormat,i=e.allowEmptyValue,o={csv:",",ssv:"%20",tsv:"%09",pipes:"|"};if(void 0===n&&i)return"";if(u(n))return n;var a=encodeURIComponent;return t&&(a=(0,A.default)(n)?function(e){return e}:function(e){return(0,g.default)(e)}),n&&!Array.isArray(n)?a(n):Array.isArray(n)&&!r?n.map(a).join(","):"multi"===r?n.map(a):n.map(a).join(o[r])}function l(e){var t=(0,v.default)(e).reduce(function(t,n){var r=e[n],i=encodeURIComponent(n),o=function(e){return e&&"object"===(void 0===e?"undefined":(0,b.default)(e))}(r)&&!Array.isArray(r);return t[i]=c(o?r:{value:r}),t},{});return w.default.stringify(t,{encode:!1,indices:!1})||""}function p(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.url,r=void 0===t?"":t,i=e.query,o=e.form;if(o){var a=(0,v.default)(o).some(function(e){return u(o[e].value)}),s=e.headers["content-type"]||e.headers["Content-Type"];if(a||/multipart\/form-data/i.test(s)){var p=n(35);e.body=new p,(0,v.default)(o).forEach(function(t){e.body.append(t,c(o[t],!0))})}else e.body=l(o);delete e.form}if(i){var f=r.split("?"),h=(0,d.default)(f,2),m=h[0],y=h[1],g="";if(y){var _=w.default.parse(y);(0,v.default)(i).forEach(function(e){return delete _[e]}),g=w.default.stringify(_,{encode:!0})}var b=function(){for(var e=arguments.length,t=Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof e?n.url=e:n=e,!(this instanceof i))return new i(n);(0,c.default)(this,n);var r=this.resolve().then(function(){return t.disableInterfaces||(0,c.default)(t,i.makeApisTagOperation(t)),t});return r.client=this,r}var o=n(4),a=r(o),s=n(37),u=(r(s),n(8)),c=r(u),l=n(6),p=r(l),f=n(20),h=r(f),d=n(9),m=r(d),v=n(19),y=n(18),g=n(2);i.http=p.default,i.makeHttp=l.makeHttp.bind(null,i.http),i.resolve=h.default,i.execute=y.execute,i.serializeRes=l.serializeRes,i.serializeHeaders=l.serializeHeaders,i.clearCache=f.clearCache,i.parameterBuilders=y.PARAMETER_BUILDERS,i.makeApisTagOperation=v.makeApisTagOperation,i.buildRequest=y.buildRequest,i.helpers={opId:g.opId},e.exports=i,i.prototype={http:p.default,execute:function(e){return this.applyDefaults(),i.execute((0,a.default)({spec:this.spec,http:this.http.bind(this),securities:{authorized:this.authorizations}},e))},resolve:function(){var e=this;return i.resolve({spec:this.spec,url:this.url,allowMetaPatches:this.allowMetaPatches}).then(function(t){return e.originalSpec=e.spec,e.spec=t.spec,e.errors=t.errors,e})}},i.prototype.applyDefaults=function(){var e=this.spec,t=this.url;if(t&&t.startsWith("http")){var n=m.default.parse(t);e.host||(e.host=n.host),e.schemes||(e.schemes=[n.protocol.replace(":","")]),e.basePath||(e.basePath="/")}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=e.http,n=e.fetch,r=e.spec,i=e.operationId,o=e.pathName,a=e.method,s=e.parameters,u=e.securities,c=(0,b.default)(e,["http","fetch","spec","operationId","pathName","method","parameters","securities"]);t=t||n||R.default,o&&a&&!i&&(i=(0,j.legacyIdFromPathMethod)(o,a));var l=q.buildRequest((0,g.default)({spec:r,operationId:i,parameters:s,securities:u},c));return l.body&&((0,A.default)(l.body)||(0,D.default)(l.body))&&(l.body=(0,v.default)(l.body)),t(l)}function o(e){var t=e.spec,n=e.operationId,r=e.parameters,i=e.securities,o=e.requestContentType,a=e.responseContentType,s=e.parameterBuilders,u=e.scheme,c=e.requestInterceptor,l=e.responseInterceptor,h=e.contextUrl;s=s||U;var d={url:p({spec:t,scheme:u,contextUrl:h}),credentials:"same-origin",headers:{}};if(c&&(d.requestInterceptor=c),l&&(d.responseInterceptor=l),!n)return d;var m=(0,j.getOperationRaw)(t,n);if(!m)throw new z("Operation "+n+" not found");var v=m.operation,y=void 0===v?{}:v,g=m.method,_=m.pathName;d.url+=_,d.method=(""+g).toUpperCase(),r=r||{};var b=t.paths[_]||{};return a&&(d.headers.accept=a),L(y.parameters).concat(L(b.parameters)).forEach(function(e){var n=s[e.in],i=void 0;if("body"===e.in&&e.schema&&e.schema.properties&&(i=r),i=e&&e.name&&r[e.name],void 0!==e.default&&void 0===i&&(i=e.default),void 0===i&&e.required&&!e.allowEmptyValue)throw new Error("Required parameter "+e.name+" is not provided");n&&n({req:d,parameter:e,value:i,operation:y,spec:t})}),d=f({request:d,securities:i,operation:y,spec:t}),(d.body||d.form)&&(o?d.headers["content-type"]=o:Array.isArray(y.consumes)?d.headers["content-type"]=y.consumes[0]:Array.isArray(t.consumes)?d.headers["content-type"]=t.consumes[0]:y.parameters.filter(function(e){return"file"===e.type}).length?d.headers["content-type"]="multipart/form-data":y.parameters.filter(function(e){return"formData"===e.in}).length&&(d.headers["content-type"]="application/x-www-form-urlencoded")),(0,N.mergeInQueryOrForm)(d),d}function a(e){var t=e.req,n=e.value;t.body=n}function s(e){var t=e.req,n=e.value,r=e.parameter;t.form=t.form||{},(n||r.allowEmptyValue)&&(t.form[r.name]={value:n,allowEmptyValue:r.allowEmptyValue,collectionFormat:r.collectionFormat})}function u(e){var t=e.req,n=e.parameter,r=e.value;t.headers=t.headers||{},void 0!==r&&(t.headers[n.name]=r)}function c(e){var t=e.req,n=e.value,r=e.parameter;t.url=t.url.replace("{"+r.name+"}",encodeURIComponent(n))}function l(e){var t=e.req,n=e.value,r=e.parameter;if(t.query=t.query||{},!1===n&&"boolean"===r.type&&(n="false"),n)t.query[r.name]={collectionFormat:r.collectionFormat,value:n};else if(r.allowEmptyValue){var i=r.name;t.query[i]=t.query[i]||{},t.query[i].allowEmptyValue=!0}}function p(e){var t=e.spec,n=e.scheme,r=e.contextUrl,i=void 0===r?"":r,o=I.default.parse(i),a=Array.isArray(t.schemes)?t.schemes[0]:null,s=n||a||W(o.protocol)||"http",u=t.host||o.host||"",c=t.basePath||"";if(s&&u){var l=s+"://"+(u+c);return"/"===l[l.length-1]?l.slice(0,-1):l}return""}function f(e){var t=e.request,n=e.securities,r=void 0===n?{}:n,i=e.operation,o=void 0===i?{}:i,a=e.spec,s=(0,S.default)({},t),u=r.authorized,c=void 0===u?{}:u,l=r.specSecurity,p=void 0===l?[]:l,f=o.security||p,h=c&&!!(0,d.default)(c).length,m=a.securityDefinitions;return s.headers=s.headers||{},s.query=s.query||{},(0,d.default)(r).length&&h&&f&&(!Array.isArray(o.security)||o.security.length)?(f.forEach(function(e,t){for(var n in e){var r=c[n];if(r){var i=r.token,o=r.value||r,a=m[n],u=a.type,l=i&&i.access_token,p=i&&i.token_type;if(r)if("apiKey"===u){var f="query"===a.in?"query":"headers";s[f]=s[f]||{},s[f][a.name]=o}else"basic"===u?o.header?s.headers.authorization=o.header:(o.base64=(0,O.default)(o.username+":"+o.password),s.headers.authorization="Basic "+o.base64):"oauth2"===u&&(s.headers.authorization=(p||"Bearer")+" "+l)}}}),s):t}Object.defineProperty(t,"__esModule",{value:!0}),t.PARAMETER_BUILDERS=t.self=void 0;var h=n(0),d=r(h),m=n(7),v=r(m),y=n(4),g=r(y),_=n(29),b=r(_),x=n(1),w=r(x);t.execute=i,t.buildRequest=o,t.bodyBuilder=a,t.formDataBuilder=s,t.headerBuilder=u,t.pathBuilder=c,t.queryBuilder=l,t.baseUrl=p,t.applySecurities=f;var k=n(8),S=r(k),E=n(39),C=(r(E),n(42)),A=r(C),T=n(40),D=r(T),M=n(32),O=r(M),P=n(9),I=r(P),N=n(6),R=r(N),j=n(2),F=n(10),B=r(F),L=function(e){return Array.isArray(e)?e:[]},z=(0,B.default)("OperationNotFoundError",function(e,t,n){this.originalError=n,(0,w.default)(this,t||{})}),q=t.self={buildRequest:o},U=t.PARAMETER_BUILDERS={body:a,header:u,query:l,path:c,formData:s},W=function(e){return e?e.replace(/\W/g,""):null}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var n=t.pathName,r=t.method,i=t.operationId;return function(t){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.execute((0,c.default)({spec:e.spec},(0,p.default)(e,"requestInterceptor","responseInterceptor"),{pathName:n,method:r,parameters:t,operationId:i},o))}}}function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=m.makeExecute(e),n=m.mapTagOperations({spec:e.spec,cb:t}),r={};for(var i in n){r[i]={operations:{}};for(var o in n[i])r[i].operations[o]={execute:n[i][o]}}return{apis:r}}function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=m.makeExecute(e);return{apis:m.mapTagOperations({spec:e.spec,cb:t})}}function s(e){var t=e.spec,n=e.cb,r=void 0===n?h:n,i=e.defaultTag,o=void 0===i?"default":i,a={},s={};return(0,f.eachOperation)(t,function(e){var n=e.pathName,i=e.method,u=e.operation;(u.tags?d(u.tags):[o]).forEach(function(e){if("string"==typeof e){var o=s[e]=s[e]||{},c=(0,f.opId)(u,n,i),l=r({spec:t,pathName:n,method:i,operation:u,operationId:c});if(a[c])a[c]=a[c]+1,o[""+c+a[c]]=l;else if(void 0!==o[c]){var p=a[c]||1;a[c]=p+1,o[""+c+a[c]]=l;var h=o[c];delete o[c],o[""+c+p]=h}else o[c]=l}})}),s}Object.defineProperty(t,"__esModule",{value:!0}),t.self=void 0;var u=n(4),c=r(u);t.makeExecute=i,t.makeApisTagOperationsOperationExecute=o,t.makeApisTagOperation=a,t.mapTagOperations=s;var l=n(44),p=r(l),f=n(2),h=function(){return null},d=function(e){return Array.isArray(e)?e:[e]},m=t.self={mapTagOperations:s,makeExecute:i}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return function(t){return e({url:t,loadSpec:!0,headers:{Accept:"application/json"},credentials:"same-origin"}).then(function(e){return e.body})}}function o(){c.plugins.refs.clearCache()}function a(e){function t(e){s&&(c.plugins.refs.docCache[s]=e),c.plugins.refs.fetchJSON=i(n);var t=[c.plugins.refs];return"function"==typeof v&&t.push(c.plugins.parameters),"function"==typeof m&&t.push(c.plugins.properties),"strict"!==f&&t.push(c.plugins.allOf),(0,l.default)({spec:e,context:{baseDoc:s},plugins:t,allowMetaPatches:d,parameterMacro:v,modelPropertyMacro:m}).then(p.normalizeSwagger)}var n=e.http,r=e.fetch,o=e.spec,a=e.url,s=e.baseDoc,f=e.mode,h=e.allowMetaPatches,d=void 0===h||h,m=e.modelPropertyMacro,v=e.parameterMacro;return s=s||a,n=r||n||u.default,o?t(o):i(n)(s).then(t)}Object.defineProperty(t,"__esModule",{value:!0}),t.makeFetchJSON=i,t.clearCache=o,t.default=a;var s=n(6),u=r(s),c=n(21),l=r(c),p=n(2)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return new F(e).dispatch()}Object.defineProperty(t,"__esModule",{value:!0}),t.plugins=t.SpecMap=void 0;var o=n(7),a=r(o),s=n(12),u=r(s),c=n(15),l=r(c),p=n(0),f=r(p),h=n(11),d=r(h),m=n(27),v=r(m),y=n(1),g=r(y),_=n(13),b=r(_),x=n(14),w=r(x);t.default=i;var k=n(38),S=r(k),E=n(3),C=r(E),A=n(26),T=r(A),D=n(22),M=r(D),O=n(24),P=r(O),I=n(25),N=r(I),R=n(23),j=r(R),F=function(){function e(t){(0,b.default)(this,e),(0,g.default)(this,{spec:"",debugLevel:"info",plugins:[],pluginHistory:{},errors:[],mutations:[],promisedPatches:[],state:{},patches:[],context:{},contextTree:new j.default,showDebug:!1,allPatches:[],pluginProp:"specMap",libMethods:(0,g.default)((0,v.default)(this),C.default),allowMetaPatches:!1},t),this.get=this._get.bind(this),this.getContext=this._getContext.bind(this),this.hasRun=this._hasRun.bind(this),this.wrappedPlugins=this.plugins.map(this.wrapPlugin.bind(this)).filter(C.default.isFunction),this.patches.push(C.default.add([],this.spec)),this.patches.push(C.default.context([],this.context)),this.updatePatches(this.patches)}return(0,w.default)(e,[{key:"debug",value:function(e){if(this.debugLevel===e){for(var t,n=arguments.length,r=Array(n>1?n-1:0),i=1;i1?n-1:0),i=1;i0})}},{key:"nextPromisedPatch",value:function(){if(this.promisedPatches.length>0)return u.default.race(this.promisedPatches.map(function(e){return e.value}))}},{key:"getPluginHistory",value:function(e){var t=this.getPluginName(e);return this.pluginHistory[t]||[]}},{key:"getPluginRunCount",value:function(e){return this.getPluginHistory(e).length}},{key:"getPluginHistoryTip",value:function(e){var t=this.getPluginHistory(e);return t&&t[t.length-1]||{}}},{key:"getPluginMutationIndex",value:function(e){var t=this.getPluginHistoryTip(e).mutationIndex;return"number"!=typeof t?-1:t}},{key:"getPluginName",value:function(e){return e.pluginName}},{key:"updatePluginHistory",value:function(e,t){var n=this.getPluginName(e);(this.pluginHistory[n]=this.pluginHistory[n]||[]).push(t)}},{key:"updatePatches",value:function(e,t){var n=this;C.default.normalizeArray(e).forEach(function(e){if(e instanceof Error)return void n.errors.push(e);try{if(!C.default.isObject(e))return void n.debug("updatePatches","Got a non-object patch",e);if(n.showDebug&&n.allPatches.push(e),C.default.isPromise(e.value))return n.promisedPatches.push(e),void n.promisedPatchThen(e);if(C.default.isContextPatch(e))return void n.setContext(e.path,e.value);if(C.default.isMutation(e))return void n.updateMutations(e)}catch(e){n.errors.push(e)}})}},{key:"updateMutations",value:function(e){C.default.applyPatch(this.state,e,{allowMetaPatches:this.allowMetaPatches})&&this.mutations.push(e)}},{key:"removePromisedPatch",value:function(e){var t=this.promisedPatches.indexOf(e);return t<0?void this.debug("Tried to remove a promisedPatch that isn't there!"):void this.promisedPatches.splice(t,1)}},{key:"promisedPatchThen",value:function(e){var t=this;return e.value=e.value.then(function(n){var r=(0,g.default)({},e,{value:n});t.removePromisedPatch(e),t.updatePatches(r)}).catch(function(n){t.removePromisedPatch(e),t.updatePatches(n)})}},{key:"getMutations",value:function(e,t){return e=e||0,"number"!=typeof t&&(t=this.mutations.length),this.mutations.slice(e,t)}},{key:"getCurrentMutations",value:function(){return this.getMutationsForPlugin(this.getCurrentPlugin())}},{key:"getMutationsForPlugin",value:function(e){var t=this.getPluginMutationIndex(e);return this.getMutations(t+1)}},{key:"getCurrentPlugin",value:function(){return this.currentPlugin}},{key:"getPatchesOfType",value:function(e,t){return e.filter(t)}},{key:"getLib",value:function(){return this.libMethods}},{key:"_get",value:function(e){return C.default.getIn(this.state,e)}},{key:"_getContext",value:function(e){return this.contextTree.get(e)}},{key:"setContext",value:function(e,t){return this.contextTree.set(e,t)}},{key:"_hasRun",value:function(e){return this.getPluginRunCount(this.getCurrentPlugin())>(e||0)}},{key:"_clone",value:function(e){return JSON.parse((0,a.default)(e))}},{key:"dispatch",value:function(){function e(e){e&&(e=C.default.fullyNormalizeArray(e),n.updatePatches(e,r))}var t=this,n=this,r=this.nextPlugin();if(!r){var i=this.nextPromisedPatch();if(i)return i.then(function(){return t.dispatch()}).catch(function(){return t.dispatch()});var o={spec:this.state,errors:this.errors};return this.showDebug&&(o.patches=this.allPatches),u.default.resolve(o)}if(n.pluginCount=n.pluginCount||{},n.pluginCount[r]=(n.pluginCount[r]||0)+1,n.pluginCount[r]>100)return u.default.resolve({spec:n.state,errors:n.errors.concat(new Error("We've reached a hard limit of 100 plugin runs"))});if(r!==this.currentPlugin&&this.promisedPatches.length){var a=this.promisedPatches.map(function(e){return e.value});return u.default.all(a.map(function(e){return e.then(Function,Function)})).then(function(){return t.dispatch()})}return function(){n.currentPlugin=r;var t=n.getCurrentMutations(),i=n.mutations.length-1;try{if(r.isGenerator){var o=!0,a=!1,s=void 0;try{for(var u,c=(0,d.default)(r(t,n.getLib()));!(o=(u=c.next()).done);o=!0)e(u.value)}catch(e){a=!0,s=e}finally{try{!o&&c.return&&c.return()}finally{if(a)throw s}}}else e(r(t,n.getLib()))}catch(t){e([(0,g.default)((0,v.default)(t),{plugin:r})])}finally{n.updatePluginHistory(r,{mutationIndex:i})}return n.dispatch()}()}}]),e}(),B={refs:T.default,allOf:M.default,parameters:P.default,properties:N.default};t.SpecMap=F,t.plugins=B},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={key:"allOf",plugin:function(e,t,n,r,i){if(!i.meta||!i.meta.$$ref){if(!Array.isArray(e)){var o=new TypeError("allOf must be an array");return o.fullPath=n,o}var a=n.slice(0,-1),s=!1;return[r.replace(a,{})].concat(e.map(function(e,t){if(!r.isObject(e)){if(s)return null;s=!0;var i=new TypeError("Elements in allOf must be objects");return i.fullPath=n,i}return r.mergeDeep(a,e)}))}}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){return o({children:{}},e,t)}function o(e,t,n){return e.value=t||{},e.protoValue=n?(0,c.default)({},n.protoValue,e.value):e.value,(0,s.default)(e.children).forEach(function(t){var n=e.children[t];e.children[t]=o(n,n.value,e)}),e}Object.defineProperty(t,"__esModule",{value:!0});var a=n(0),s=r(a),u=n(4),c=r(u),l=n(13),p=r(l),f=n(14),h=r(f),d=function(){function e(t){(0,p.default)(this,e),this.root=i(t||{})}return(0,h.default)(e,[{key:"set",value:function(e,t){var n=this.getParent(e,!0);if(!n)return void o(this.root,t,null);var r=e[e.length-1],a=n.children;return a[r]?void o(a[r],t,n):void(a[r]=i(t,n))}},{key:"get",value:function(e){if(e=e||[],e.length<1)return this.root.value;for(var t=this.root,n=void 0,r=void 0,i=0;i")+"#"+e;if(t==r.contextTree.get([]).baseDoc&&v(o,e))return!0;var s="";return!!n.some(function(e){return s=s+"/"+d(e),i[s]&&i[s].some(function(e){return v(e,a)||v(a,e)})})||void(i[o]=(i[o]||[]).concat(a))}function g(e,t){function n(e){return N.default.isObject(e)&&(r.indexOf(e)>=0||(0,w.default)(e).some(function(t){return n(e[t])}))}var r=[e];return t.path.reduce(function(e,t){return r.push(e[t]),e[t]},e),n(t.value)}Object.defineProperty(t,"__esModule",{value:!0});var _=n(5),b=r(_),x=n(0),w=r(x),k=n(12),S=r(k),E=n(28),C=r(E),A=n(1),T=r(A),D=n(16),M=r(D),O=n(9),P=r(O),I=n(3),N=r(I),R=n(10),j=r(R),F=new RegExp("^([a-z]+://|//)","i"),B=(0, -j.default)("JSONRefError",function(e,t,n){this.originalError=n,(0,T.default)(this,t||{})}),L={},z=new C.default,q={key:"$ref",plugin:function(e,t,n,r){var u=n.slice(0,-1),c=r.getContext(n).baseDoc;if("string"!=typeof e)return new B("$ref: must be a string (JSON-Ref)",{$ref:e,baseDoc:c,fullPath:n});var l=a(e),p=l[0],h=l[1]||"",d=void 0;try{d=c||p?i(p,c):null}catch(t){return o(t,{pointer:h,$ref:e,basePath:d,fullPath:n})}var m=void 0,v=void 0;if(!y(h,d,u,r)){if(null==d?(v=f(h),void 0===(m=r.get(v))&&(m=new B("Could not resolve reference: "+e,{pointer:h,$ref:e,baseDoc:c,fullPath:n}))):(m=s(d,h),m=null!=m.__value?m.__value:m.catch(function(t){throw o(t,{pointer:h,$ref:e,baseDoc:c,fullPath:n})})),m instanceof Error)return[N.default.remove(n),m];var _=N.default.replace(u,m,{$$ref:e});return d&&d!==c?[_,N.default.context(u,{baseDoc:d})]:g(r.state,_)?void 0:_}}},U=(0,T.default)(q,{docCache:L,absoluteify:i,clearCache:u,JSONRefError:B,wrapError:o,getDoc:c,split:a,extractFromDoc:s,fetchJSON:l,extract:p,jsonPointerToArray:f,unescapeJsonPointerToken:h});t.default=U;var W=function(e){return!e||"/"===e||"#"===e}},function(e,t){e.exports=n(495)},function(e,t){e.exports=n(815)},function(e,t){e.exports=n(447)},function(e,t){e.exports=n(184)},function(e,t){e.exports=n(435)},function(e,t){e.exports=n(823)},function(e,t){e.exports=n(131)},function(e,t){e.exports=n(824)},function(e,t){e.exports=n(825)},function(e,t){e.exports=n(448)},function(e,t){e.exports=n(826)},function(e,t){e.exports=n(894)},function(e,t){e.exports=n(917)},function(e,t){e.exports=n(800)},function(e,t){e.exports=n(781)},function(e,t){e.exports=n(939)},function(e,t){e.exports=n(940)},function(e,t){e.exports=n(941)},function(e,t){e.exports=n(949)},function(e,t,n){e.exports=n(17)}])},function(e,t,n){var r=n(765),i=n(768),o=n(769),a=n(790),s=n(793),u=n(794),c=Object.prototype,l=c.hasOwnProperty,p=o(function(e,t){if(s(t)||a(t))return void i(t,u(t),e);for(var n in t)l.call(t,n)&&r(e,n,t[n])});e.exports=p},[1233,766,767],function(e,t){function n(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var r=Object.defineProperty;e.exports=n},234,[1235,765,766],function(e,t,n){function r(e){return i(function(t,n){var r=-1,i=n.length,a=i>1?n[i-1]:void 0,s=i>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(i--,a):void 0,s&&o(n[0],n[1],s)&&(a=i<3?void 0:a,i=1),t=Object(t);++r0){if(++t>=r)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var r=500,i=16,o=Date.now;e.exports=n},[1230,767,790,792,781],[1213,780,791],279,276,283,[1208,795,801,790],function(e,t,n){function r(e,t){var n=a(e)||o(e)?i(e.length,String):[],r=n.length,u=!!r;for(var l in e)!t&&!c.call(e,l)||u&&("length"==l||s(l,r))||n.push(l);return n}var i=n(796),o=n(797),a=n(800),s=n(792),u=Object.prototype,c=u.hasOwnProperty;e.exports=r},271,function(e,t,n){function r(e){return i(e)&&s.call(e,"callee")&&(!c.call(e,"callee")||u.call(e)==o)}var i=n(798),o="[object Arguments]",a=Object.prototype,s=a.hasOwnProperty,u=a.toString,c=a.propertyIsEnumerable;e.exports=r},function(e,t,n){function r(e){return o(e)&&i(e)}var i=n(790),o=n(799);e.exports=r},158,193,[1211,793,802],[1212,803],157,function(e,t,n){"use strict";function r(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function i(e,t,n){if(e&&c.isObject(e)&&e instanceof r)return e;var i=new r;return i.parse(e,t,n),i}function o(e){return c.isString(e)&&(e=i(e)),e instanceof r?e.format():r.prototype.format.call(e)}function a(e,t){return i(e,!1,!0).resolve(t)}function s(e,t){return e?i(e,!1,!0).resolveObject(t):t}var u=n(805),c=n(806);t.parse=i,t.resolve=a,t.resolveObject=s,t.format=o,t.Url=r;var l=/^([a-z0-9.+-]+:)/i,p=/:[0-9]*$/,f=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,h=["<",">",'"',"`"," ","\r","\n","\t"],d=["{","}","|","\\","^","`"].concat(h),m=["'"].concat(d),v=["%","/","?",";","#"].concat(m),y=["/","?","#"],g=255,_=/^[+a-z0-9A-Z_-]{0,63}$/,b=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,x={javascript:!0,"javascript:":!0},w={javascript:!0,"javascript:":!0},k={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},S=n(807);r.prototype.parse=function(e,t,n){if(!c.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var r=e.indexOf("?"),i=r!==-1&&r127?"x":N[j];if(!R.match(_)){var B=P.slice(0,A),L=P.slice(A+1),z=N.match(b);z&&(B.push(z[1]),L.unshift(z[2])),L.length&&(s="/"+L.join(".")+s),this.hostname=B.join(".");break}}}this.hostname.length>g?this.hostname="":this.hostname=this.hostname.toLowerCase(),O||(this.hostname=u.toASCII(this.hostname));var q=this.port?":"+this.port:"",U=this.hostname||"";this.host=U+q,this.href+=this.host,O&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==s[0]&&(s="/"+s))}if(!x[d])for(var A=0,I=m.length;A0)&&n.host.split("@");E&&(n.auth=E.shift(),n.host=n.hostname=E.shift())}return n.search=e.search,n.query=e.query,c.isNull(n.pathname)&&c.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!x.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var C=x.slice(-1)[0],A=(n.host||e.host||x.length>1)&&("."===C||".."===C)||""===C,T=0,D=x.length;D>=0;D--)C=x[D],"."===C?x.splice(D,1):".."===C?(x.splice(D,1),T++):T&&(x.splice(D,1),T--);if(!_&&!b)for(;T--;T)x.unshift("..");!_||""===x[0]||x[0]&&"/"===x[0].charAt(0)||x.unshift(""),A&&"/"!==x.join("/").substr(-1)&&x.push("");var M=""===x[0]||x[0]&&"/"===x[0].charAt(0);if(S){n.hostname=n.host=M?"":x.length?x.shift():"";var E=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@");E&&(n.auth=E.shift(),n.host=n.hostname=E.shift())}return _=_||n.host&&x.length,_&&!M&&x.unshift(""),x.length?n.pathname=x.join("/"):(n.pathname=null,n.path=null),c.isNull(n.pathname)&&c.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},r.prototype.parseHost=function(){var e=this.host,t=p.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,n){var r;(function(e,i){!function(o){function a(e){throw RangeError(P[e])}function s(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function u(e,t){var n=e.split("@"),r="";n.length>1&&(r=n[0]+"@",e=n[1]),e=e.replace(O,".");var i=e.split("."),o=s(i,t).join(".");return r+o}function c(e){for(var t,n,r=[],i=0,o=e.length;i=55296&&t<=56319&&i65535&&(e-=65536,t+=R(e>>>10&1023|55296),e=56320|1023&e),t+=R(e)}).join("")}function p(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:x}function f(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function h(e,t,n){var r=0;for(e=n?N(e/E):e>>1,e+=N(e/t);e>I*k>>1;r+=x)e=N(e/I);return N(r+(I+1)*e/(e+S))}function d(e){var t,n,r,i,o,s,u,c,f,d,m=[],v=e.length,y=0,g=A,_=C;for(n=e.lastIndexOf(T),n<0&&(n=0),r=0;r=128&&a("not-basic"),m.push(e.charCodeAt(r));for(i=n>0?n+1:0;i=v&&a("invalid-input"),c=p(e.charCodeAt(i++)),(c>=x||c>N((b-y)/s))&&a("overflow"),y+=c*s,f=u<=_?w:u>=_+k?k:u-_,!(cN(b/d)&&a("overflow"),s*=d;t=m.length+1,_=h(y-o,t,0==o),N(y/t)>b-g&&a("overflow"),g+=N(y/t),y%=t,m.splice(y++,0,g)}return l(m)}function m(e){var t,n,r,i,o,s,u,l,p,d,m,v,y,g,_,S=[];for(e=c(e),v=e.length,t=A,n=0,o=C,s=0;s=t&&mN((b-n)/y)&&a("overflow"),n+=(u-t)*y,t=u,s=0;sb&&a("overflow"),m==t){for(l=n,p=x;d=p<=o?w:p>=o+k?k:p-o,!(l= 0x80 (not a basic code point)","invalid-input":"Invalid input"},I=x-w,N=Math.floor,R=String.fromCharCode;_={version:"1.3.2",ucs2:{decode:c,encode:l},decode:d,encode:m,toASCII:y,toUnicode:v},r=function(){return _}.call(t,n,t,e),!(void 0!==r&&(e.exports=r))}(this)}).call(t,n(161)(e),function(){return this}())},function(e,t){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t,n){"use strict";t.decode=t.parse=n(808),t.encode=t.stringify=n(809)},function(e,t){"use strict";function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,r,i){t=t||"&",r=r||"=";var o={};if("string"!=typeof e||0===e.length)return o;var a=/\+/g;e=e.split(t);var s=1e3;i&&"number"==typeof i.maxKeys&&(s=i.maxKeys);var u=e.length;s>0&&u>s&&(u=s);for(var c=0;c=0?(l=d.substr(0,m),p=d.substr(m+1)):(l=d,p=""),f=decodeURIComponent(l),h=decodeURIComponent(p),n(o,f)?Array.isArray(o[f])?o[f].push(h):o[f]=[o[f],h]:o[f]=h}return o}},function(e,t){"use strict";var n=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,r,i){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map(function(i){var o=encodeURIComponent(n(i))+r;return Array.isArray(e[i])?e[i].map(function(e){return o+encodeURIComponent(n(e))}).join(t):o+encodeURIComponent(n(e[i]))}).join(t):i?encodeURIComponent(n(i))+r+encodeURIComponent(n(e)):""}},function(e,t,n){e.exports=n(811)},function(e,t,n){(function(t){var r="object"==typeof t?t:"object"==typeof window?window:"object"==typeof self?self:this,i=r.regeneratorRuntime&&Object.getOwnPropertyNames(r).indexOf("regeneratorRuntime")>=0,o=i&&r.regeneratorRuntime;if(r.regeneratorRuntime=void 0,e.exports=n(812),i)r.regeneratorRuntime=o;else try{delete r.regeneratorRuntime}catch(e){r.regeneratorRuntime=void 0}}).call(t,function(){return this}())},function(e,t){(function(t){!function(t){"use strict";function n(e,t,n,r){var o=t&&t.prototype instanceof i?t:i,a=Object.create(o.prototype),s=new h(r||[]);return a._invoke=c(e,n,s),a}function r(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}function i(){}function o(){}function a(){}function s(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function u(e){function n(t,i,o,a){var s=r(e[t],e,i);if("throw"!==s.type){var u=s.arg,c=u.value;return c&&"object"==typeof c&&g.call(c,"__await")?Promise.resolve(c.__await).then(function(e){n("next",e,o,a)},function(e){n("throw",e,o,a)}):Promise.resolve(c).then(function(e){u.value=e,o(u)},a)}a(s.arg)}function i(e,t){function r(){return new Promise(function(r,i){n(e,t,r,i)})}return o=o?o.then(r,r):r()}"object"==typeof t.process&&t.process.domain&&(n=t.process.domain.bind(n));var o;this._invoke=i}function c(e,t,n){var i=E;return function(o,a){if(i===A)throw new Error("Generator is already running");if(i===T){if("throw"===o)throw a;return m()}for(n.method=o,n.arg=a;;){var s=n.delegate;if(s){var u=l(s,n);if(u){if(u===D)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===E)throw i=T,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=A;var c=r(e,t,n);if("normal"===c.type){if(i=n.done?T:C,c.arg===D)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=T,n.method="throw",n.arg=c.arg)}}}function l(e,t){var n=e.iterator[t.method];if(n===v){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=v,l(e,t),"throw"===t.method))return D;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return D}var i=r(n,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,D;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=v),t.delegate=null,D):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,D)}function p(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function f(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function h(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(p,this),this.reset(!0)}function d(e){if(e){var t=e[b];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function t(){for(;++n=0;--r){var i=this.tryEntries[r],o=i.completion;if("root"===i.tryLoc)return t("end");if(i.tryLoc<=this.prev){var a=g.call(i,"catchLoc"),s=g.call(i,"finallyLoc");if(a&&s){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&g.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),f(n),D}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;f(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:d(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=v),D}}}("object"==typeof t?t:"object"==typeof window?window:"object"==typeof self?self:this)}).call(t,function(){return this}())},function(e,t,n){n(814),e.exports=self.fetch.bind(self)},function(e,t){!function(e){"use strict";function t(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function n(e){return"string"!=typeof e&&(e=String(e)),e}function r(e){this.map={},e instanceof r?e.forEach(function(e,t){this.append(t,e)},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function i(e){return e.bodyUsed?Promise.reject(new TypeError("Already read")):void(e.bodyUsed=!0)}function o(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function a(e){var t=new FileReader;return t.readAsArrayBuffer(e),o(t)}function s(e){var t=new FileReader;return t.readAsText(e),o(t)}function u(){return this.bodyUsed=!1,this._initBody=function(e){if(this._bodyInit=e,"string"==typeof e)this._bodyText=e;else if(d.blob&&Blob.prototype.isPrototypeOf(e))this._bodyBlob=e;else if(d.formData&&FormData.prototype.isPrototypeOf(e))this._bodyFormData=e;else if(e){if(!d.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(e))throw new Error("unsupported BodyInit type")}else this._bodyText="";this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type&&this.headers.set("content-type",this._bodyBlob.type))},d.blob?(this.blob=function(){var e=i(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this.blob().then(a)},this.text=function(){var e=i(this);if(e)return e;if(this._bodyBlob)return s(this._bodyBlob);if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)}):this.text=function(){var e=i(this);return e?e:Promise.resolve(this._bodyText)},d.formData&&(this.formData=function(){return this.text().then(p)}),this.json=function(){return this.text().then(JSON.parse)},this}function c(e){var t=e.toUpperCase();return m.indexOf(t)>-1?t:e}function l(e,t){t=t||{};var n=t.body;if(l.prototype.isPrototypeOf(e)){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new r(e.headers)),this.method=e.method,this.mode=e.mode,n||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=e;if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new r(t.headers)),this.method=c(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function p(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),i=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(i))}}),t}function f(e){var t=new r,n=(e.getAllResponseHeaders()||"").trim().split("\n");return n.forEach(function(e){var n=e.trim().split(":"),r=n.shift().trim(),i=n.join(":").trim();t.append(r,i)}),t}function h(e,t){t||(t={}),this.type="default",this.status=t.status,this.ok=this.status>=200&&this.status<300,this.statusText=t.statusText,this.headers=t.headers instanceof r?t.headers:new r(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){r.prototype.append=function(e,r){e=t(e),r=n(r);var i=this.map[e];i||(i=[],this.map[e]=i),i.push(r)},r.prototype.delete=function(e){delete this.map[t(e)]},r.prototype.get=function(e){var n=this.map[t(e)];return n?n[0]:null},r.prototype.getAll=function(e){return this.map[t(e)]||[]},r.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},r.prototype.set=function(e,r){this.map[t(e)]=[n(r)]},r.prototype.forEach=function(e,t){Object.getOwnPropertyNames(this.map).forEach(function(n){this.map[n].forEach(function(r){e.call(t,r,n,this)},this)},this)};var d={blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e},m=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];l.prototype.clone=function(){return new l(this)},u.call(l.prototype),u.call(h.prototype),h.prototype.clone=function(){return new h(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new r(this.headers),url:this.url})},h.error=function(){var e=new h(null,{status:0,statusText:""});return e.type="error",e};var v=[301,302,303,307,308];h.redirect=function(e,t){if(v.indexOf(t)===-1)throw new RangeError("Invalid status code");return new h(null,{status:t,headers:{location:e}})},e.Headers=r,e.Request=l,e.Response=h,e.fetch=function(e,t){return new Promise(function(n,r){function i(){return"responseURL"in a?a.responseURL:/^X-Request-URL:/m.test(a.getAllResponseHeaders())?a.getResponseHeader("X-Request-URL"):void 0}var o;o=l.prototype.isPrototypeOf(e)&&!t?e:new l(e,t);var a=new XMLHttpRequest;a.onload=function(){var e=1223===a.status?204:a.status;if(e<100||e>599)return void r(new TypeError("Network request failed"));var t={status:e,statusText:a.statusText,headers:f(a),url:i()},o="response"in a?a.response:a.responseText;n(new h(o,t))},a.onerror=function(){r(new TypeError("Network request failed"))},a.ontimeout=function(){r(new TypeError("Network request failed"))},a.open(o.method,o.url,!0),"include"===o.credentials&&(a.withCredentials=!0),"responseType"in a&&d.blob&&(a.responseType="blob"),o.headers.forEach(function(e,t){a.setRequestHeader(t,e)}),a.send("undefined"==typeof o._bodyInit?null:o._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!=typeof self?self:this)},function(e,t,n){e.exports={default:n(816),__esModule:!0}},function(e,t,n){n(128),n(110),n(817),e.exports=n(59).WeakMap},function(e,t,n){"use strict";var r,i=n(818)(0),o=n(101),a=n(118),s=n(144),u=n(821),c=n(87),l=a.getWeak,p=Object.isExtensible,f=u.ufstore,h={},d=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},m={get:function(e){if(c(e)){var t=l(e);return t===!0?f(this).get(e):t?t[this._i]:void 0}},set:function(e,t){return u.def(this,e,t)}},v=e.exports=n(822)("WeakMap",d,m,u,!0,!0);7!=(new v).set((Object.freeze||Object)(h),7).get(h)&&(r=u.getConstructor(d),s(r.prototype,m),a.NEED=!0,i(["delete","has","get","set"],function(e){var t=v.prototype,n=t[e];o(t,e,function(t,i){if(c(t)&&!p(t)){this._f||(this._f=new r);var o=this._f[e](t,i);return"set"==e?this:o}return n.call(this,t,i)})}))},function(e,t,n){var r=n(82),i=n(69),o=n(63),a=n(72),s=n(819);e.exports=function(e,t){var n=1==e,u=2==e,c=3==e,l=4==e,p=6==e,f=5==e||p,h=t||s;return function(t,s,d){for(var m,v,y=o(t),g=i(y),_=r(s,d,3),b=a(g.length),x=0,w=n?h(t,b):u?h(t,0):void 0;b>x;x++)if((f||x in g)&&(m=g[x],v=_(m,x,y),e))if(n)w[x]=v;else if(v)switch(e){case 3:return!0;case 5:return m;case 6:return x;case 2:w.push(m)}else if(l)return!1;return p?-1:c||l?l:w}}},function(e,t,n){var r=n(820);e.exports=function(e,t){return new(r(e))(t)}},function(e,t,n){var r=n(87),i=n(124),o=n(108)("species");e.exports=function(e){var t;return i(e)&&(t=e.constructor,"function"!=typeof t||t!==Array&&!i(t.prototype)||(t=void 0),r(t)&&(t=t[o],null===t&&(t=void 0))),void 0===t?Array:t}},function(e,t,n){"use strict";var r=n(739),i=n(118).getWeak,o=n(86),a=n(87),s=n(733),u=n(734),c=n(818),l=n(67),p=c(5),f=c(6),h=0,d=function(e){return e._l||(e._l=new m)},m=function(){this.a=[]},v=function(e,t){return p(e.a,function(e){return e[0]===t})};m.prototype={get:function(e){var t=v(this,e);if(t)return t[1]},has:function(e){return!!v(this,e)},set:function(e,t){var n=v(this,e);n?n[1]=t:this.a.push([e,t])},delete:function(e){var t=f(this.a,function(t){return t[0]===e});return~t&&this.a.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,o){var c=e(function(e,r){s(e,c,t,"_i"),e._i=h++,e._l=void 0,void 0!=r&&u(r,n,e[o],e)});return r(c.prototype,{delete:function(e){if(!a(e))return!1;var t=i(e);return t===!0?d(this).delete(e):t&&l(t,this._i)&&delete t[this._i]},has:function(e){if(!a(e))return!1;var t=i(e);return t===!0?d(this).has(e):t&&l(t,this._i)}}),c},def:function(e,t,n){var r=i(o(t),!0);return r===!0?d(e).set(t,n):r[e._i]=n,e},ufstore:d}},function(e,t,n){"use strict";var r=n(77),i=n(81),o=n(118),a=n(90),s=n(84),u=n(739),c=n(734),l=n(733),p=n(87),f=n(107),h=n(85).f,d=n(818)(0),m=n(89);e.exports=function(e,t,n,v,y,g){var _=r[e],b=_,x=y?"set":"add",w=b&&b.prototype,k={};return m&&"function"==typeof b&&(g||w.forEach&&!a(function(){(new b).entries().next()}))?(b=t(function(t,n){l(t,b,e,"_c"),t._c=new _,void 0!=n&&c(n,y,t[x],t)}),d("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(e){var t="add"==e||"set"==e;e in w&&(!g||"clear"!=e)&&s(b.prototype,e,function(n,r){if(l(this,b,e),!t&&g&&!p(n))return"get"==e&&void 0;var i=this._c[e](0===n?0:n,r);return t?this:i})}),"size"in w&&h(b.prototype,"size",{get:function(){return this._c.size}})):(b=v.getConstructor(t,e,y,x),u(b.prototype,n),o.NEED=!0),f(b,e),k[e]=b,i(i.G+i.W+i.F,k),g||v.setStrong(b,e,y),b}},function(e,t,n){(function(t){!function(){"use strict";function n(e){var n;return n=e instanceof t?e:new t(e.toString(),"binary"),n.toString("base64")}e.exports=n}()}).call(t,n(132).Buffer)},function(e,t,n){/*! - * https://github.com/Starcounter-Jack/JSON-Patch - * json-patch-duplex.js version: 1.1.10 - * (c) 2013 Joachim Wester - * MIT license - */ -var r;!function(e){function t(e,n){switch(typeof e){case"undefined":case"boolean":case"string":case"number":return e===n;case"object":if(null===e)return null===n;if(E(e)){if(!E(n)||e.length!==n.length)return!1;for(var r=0,i=e.length;r0&&(e.patches=[],e.callback&&e.callback(i)),i}function l(e,t,r,i){if(t!==e){"function"==typeof t.toJSON&&(t=t.toJSON());for(var o=g(t),a=g(e),u=!1,c=!1,p=a.length-1;p>=0;p--){var f=a[p],h=e[f];if(!t.hasOwnProperty(f)||void 0===t[f]&&void 0!==h&&E(t)===!1)r.push({op:"remove",path:i+"/"+n(f)}),c=!0;else{var d=t[f];"object"==typeof h&&null!=h&&"object"==typeof d&&null!=d?l(h,d,r,i+"/"+n(f)):h!==d&&(u=!0,r.push({op:"replace",path:i+"/"+n(f),value:s(d)}))}}if(c||o.length!=a.length)for(var p=0;p=48&&t<=57))return!1;n++}}return!0}function f(e,t,n){for(var r,i,o=[],a=0,s=t.length;a=h){o.push(x[r.op].call(r,l,i,e));break}if(E(l)){if("-"===i)i=l.length;else{if(n&&!p(i))throw new C("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index","OPERATION_PATH_ILLEGAL_ARRAY_INDEX",a-1,r.path,r);i=parseInt(i,10)}if(f>=h){if(n&&"add"===r.op&&i>l.length)throw new C("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",a-1,r.path,r);o.push(b[r.op].call(r,l,i,e));break}}else if(i&&i.indexOf("~")!=-1&&(i=i.replace(/~1/g,"/").replace(/~0/g,"~")),f>=h){o.push(_[r.op].call(r,l,i,e));break}l=l[i]}}return o}function h(e,t){var n=[];return l(e,t,n,""),n}function d(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function m(e){if(void 0===e)return!0;if(e)if(E(e)){for(var t=0,n=e.length;t0)throw new C('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",n,t,r);if(("move"===t.op||"copy"===t.op)&&"string"!=typeof t.from)throw new C("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",n,t,r);if(("add"===t.op||"replace"===t.op||"test"===t.op)&&void 0===t.value)throw new C("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",n,t,r);if(("add"===t.op||"replace"===t.op||"test"===t.op)&&m(t.value))throw new C("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",n,t,r);if(r)if("add"==t.op){var o=t.path.split("/").length,a=i.split("/").length;if(o!==a+1&&o!==a)throw new C("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",n,t,r)}else if("replace"===t.op||"remove"===t.op||"_get"===t.op){if(t.path!==i)throw new C("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",n,t,r)}else if("move"===t.op||"copy"===t.op){var s={op:"_get",path:t.from,value:void 0},u=e.validate([s],r);if(u&&"OPERATION_PATH_UNRESOLVABLE"===u.name)throw new C("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",n,t,r)}}function y(e,t){try{if(!E(e))throw new C("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(t)t=JSON.parse(JSON.stringify(t)),f.call(this,t,e,!0);else for(var n=0;nf))return!1;var d=l.get(e);if(d&&l.get(t))return d==t;var m=-1,v=!0,y=c&s?new i:void 0;for(l.set(e,t),l.set(t,e);++m=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122?n+=t.charAt(i):o<128?n+=r[o]:o<2048?n+=r[192|o>>6]+r[128|63&o]:o<55296||o>=57344?n+=r[224|o>>12]+r[128|o>>6&63]+r[128|63&o]:(i+=1,o=65536+((1023&o)<<10|1023&t.charCodeAt(i)),n+=r[240|o>>18]+r[128|o>>12&63]+r[128|o>>6&63]+r[128|63&o])}return n},t.compact=function(e,n){if("object"!=typeof e||null===e)return e;var r=n||[],i=r.indexOf(e);if(i!==-1)return r[i];if(r.push(e),Array.isArray(e)){for(var o=[],a=0;a=0&&n.parseArrays&&a<=n.arrayLimit?(r=[],r[a]=s(e,t,n)):r[o]=s(e,t,n)}return r},u=function(e,t,n){if(e){var r=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,o=/(\[[^[\]]*])/,a=/(\[[^[\]]*])/g,u=o.exec(r),c=u?r.slice(0,u.index):r,l=[];if(c){if(!n.plainObjects&&i.call(Object.prototype,c)&&!n.allowPrototypes)return;l.push(c)}for(var p=0;null!==(u=a.exec(r))&&pp?d=p:this.setState({position:a,resized:!0}),this.props.onChange&&this.props.onChange(d),this.setState({draggedSize:d}),n.setState({size:d})}}}}},{key:"onMouseUp",value:function(){this.props.allowResize&&this.state.active&&("function"==typeof this.props.onDragFinished&&this.props.onDragFinished(this.state.draggedSize),this.setState({active:!1}))}},{key:"setSize",value:function(e,t){var n="first"===this.props.primary?this.pane1:this.pane2,r=void 0;n&&(r=e.size||t&&t.draggedSize||e.defaultSize||e.minSize,n.setState({size:r}),e.size!==t.draggedSize&&this.setState({draggedSize:r}))}},{key:"render",value:function(){var e=this,t=this.props,n=t.split,r=t.allowResize,i=r?"":"disabled",o=u({},this.props.style||{},{display:"flex",flex:1,position:"relative",outline:"none",overflow:"hidden",MozUserSelect:"text",WebkitUserSelect:"text",msUserSelect:"text",userSelect:"text"});"vertical"===n?u(o,{flexDirection:"row",height:"100%",position:"absolute",left:0,right:0}):u(o,{flexDirection:"column",height:"100%",minHeight:"100%",position:"absolute",top:0,bottom:0,width:"100%"});var a=this.props.children,s=["SplitPane",this.props.className,n,i],c=this.props.prefixer.prefix(u({},this.props.paneStyle||{},this.props.pane1Style||{})),l=this.props.prefixer.prefix(u({},this.props.paneStyle||{},this.props.pane2Style||{}));return p.default.createElement("div",{className:s.join(" "),style:this.props.prefixer.prefix(o),ref:function(t){e.splitPane=t}},p.default.createElement(_.default,{ref:function(t){e.pane1=t},key:"pane1",className:"Pane1",style:c,split:n,size:"first"===this.props.primary?this.props.size||this.props.defaultSize||this.props.minSize:void 0},a[0]),p.default.createElement(x.default,{ref:function(t){e.resizer=t},key:"resizer",className:i,resizerClassName:this.props.resizerClassName,onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onTouchEnd:this.onMouseUp,style:this.props.resizerStyle||{},split:n}),p.default.createElement(_.default,{ref:function(t){e.pane2=t},key:"pane2",className:"Pane2",style:l,split:n,size:"second"===this.props.primary?this.props.size||this.props.defaultSize||this.props.minSize:void 0},a[1]))}}]),t}(l.Component);k.propTypes={primary:l.PropTypes.oneOf(["first","second"]),minSize:l.PropTypes.oneOfType([p.default.PropTypes.string,p.default.PropTypes.number]),maxSize:l.PropTypes.oneOfType([p.default.PropTypes.string,p.default.PropTypes.number]),defaultSize:l.PropTypes.oneOfType([p.default.PropTypes.string,p.default.PropTypes.number]),size:l.PropTypes.oneOfType([p.default.PropTypes.string,p.default.PropTypes.number]),allowResize:l.PropTypes.bool,split:l.PropTypes.oneOf(["vertical","horizontal"]),onDragStarted:l.PropTypes.func,onDragFinished:l.PropTypes.func,onChange:l.PropTypes.func,prefixer:l.PropTypes.instanceOf(m.default).isRequired,style:y.default,resizerStyle:y.default,paneStyle:y.default,pane1Style:y.default,pane2Style:y.default,className:l.PropTypes.string,resizerClassName:l.PropTypes.string,children:l.PropTypes.arrayOf(l.PropTypes.node).isRequired},k.defaultProps={split:"vertical",minSize:50,allowResize:!0,prefixer:new m.default({userAgent:w}),primary:"first"},t.default=k,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=arguments[2],r=arguments[3];Object.keys(t).forEach(function(i){var o=e[i];Array.isArray(o)?[].concat(t[i]).forEach(function(t){e[i].indexOf(t)===-1&&e[i].splice(o.indexOf(n),r?0:1,t)}):e[i]=t[i]})}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n=t._browserInfo.version}).reduce(function(e,t){return e[t]=!0,e},{}),this._hasPropsRequiringPrefix=Object.keys(this._requiresPrefix).length>0):this._usePrefixAllFallback=!0}return a(e,[{key:"prefix",value:function(e){var t=this;return this._usePrefixAllFallback?(0,u.default)(e):this._hasPropsRequiringPrefix?(Object.keys(e).forEach(function(n){var r=e[n];r instanceof Object&&!Array.isArray(r)?e[n]=t.prefix(r):t._requiresPrefix[n]&&(e[t.jsPrefix+(0,d.default)(n)]=r,t._keepUnprefixed||delete e[n])}),Object.keys(e).forEach(function(n){[].concat(e[n]).forEach(function(r){L.forEach(function(i){o(e,i({property:n,value:r,styles:e,browserInfo:t._browserInfo,prefix:{js:t.jsPrefix,css:t.cssPrefix,keyframes:t.prefixedKeyframes},keepUnprefixed:t._keepUnprefixed,requiresPrefix:t._requiresPrefix}),r,t._keepUnprefixed)})})}),(0,v.default)(e)):e}}],[{key:"prefixAll",value:function(e){return(0,u.default)(e)}}]),e}();t.default=z,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return Object.keys(e).forEach(function(t){var n=e[t];n instanceof Object&&!Array.isArray(n)?e[t]=i(n):Object.keys(s.default).forEach(function(r){var i=s.default[r];i[t]&&(e[r+(0,c.default)(t)]=n)})}),Object.keys(e).forEach(function(t){[].concat(e[t]).forEach(function(n,r){M.forEach(function(r){return o(e,r(t,n))})})}),(0,p.default)(e)}function o(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];Object.keys(t).forEach(function(n){var r=e[n];Array.isArray(r)?[].concat(t[n]).forEach(function(t){var i=r.indexOf(t);i>-1&&e[n].splice(i,1),e[n].push(t)}):e[n]=t[n]})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var a=n(969),s=r(a),u=n(970),c=r(u),l=n(971),p=r(l),f=n(973),h=r(f),d=n(974),m=r(d),v=n(977),y=r(v),g=n(978),_=r(g),b=n(979),x=r(b),w=n(980),k=r(w),S=n(981),E=r(S),C=n(983),A=r(C),T=n(984),D=r(T),M=[h.default,m.default,y.default,x.default,k.default,E.default,A.default,D.default,_.default];e.exports=t.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={Webkit:{transform:!0,transformOrigin:!0,transformOriginX:!0,transformOriginY:!0,backfaceVisibility:!0,perspective:!0,perspectiveOrigin:!0,transformStyle:!0,transformOriginZ:!0,animation:!0,animationDelay:!0,animationDirection:!0,animationFillMode:!0,animationDuration:!0,animationIterationCount:!0,animationName:!0,animationPlayState:!0,animationTimingFunction:!0,appearance:!0,userSelect:!0,fontKerning:!0,textEmphasisPosition:!0,textEmphasis:!0,textEmphasisStyle:!0,textEmphasisColor:!0,boxDecorationBreak:!0,clipPath:!0,maskImage:!0,maskMode:!0,maskRepeat:!0,maskPosition:!0,maskClip:!0,maskOrigin:!0,maskSize:!0,maskComposite:!0,mask:!0,maskBorderSource:!0,maskBorderMode:!0,maskBorderSlice:!0,maskBorderWidth:!0,maskBorderOutset:!0,maskBorderRepeat:!0,maskBorder:!0,maskType:!0,textDecorationStyle:!0,textDecorationSkip:!0,textDecorationLine:!0,textDecorationColor:!0,filter:!0,fontFeatureSettings:!0,breakAfter:!0,breakBefore:!0,breakInside:!0,columnCount:!0,columnFill:!0,columnGap:!0,columnRule:!0,columnRuleColor:!0,columnRuleStyle:!0,columnRuleWidth:!0,columns:!0,columnSpan:!0,columnWidth:!0,flex:!0,flexBasis:!0,flexDirection:!0,flexGrow:!0,flexFlow:!0,flexShrink:!0,flexWrap:!0,alignContent:!0,alignItems:!0,alignSelf:!0,justifyContent:!0,order:!0,transition:!0,transitionDelay:!0,transitionDuration:!0,transitionProperty:!0,transitionTimingFunction:!0,backdropFilter:!0,scrollSnapType:!0,scrollSnapPointsX:!0,scrollSnapPointsY:!0,scrollSnapDestination:!0,scrollSnapCoordinate:!0,shapeImageThreshold:!0,shapeImageMargin:!0,shapeImageOutside:!0,hyphens:!0,flowInto:!0,flowFrom:!0,regionFragment:!0,textSizeAdjust:!0},Moz:{appearance:!0,userSelect:!0,boxSizing:!0,textAlignLast:!0,textDecorationStyle:!0,textDecorationSkip:!0,textDecorationLine:!0,textDecorationColor:!0,tabSize:!0,hyphens:!0,fontFeatureSettings:!0,breakAfter:!0,breakBefore:!0,breakInside:!0,columnCount:!0,columnFill:!0,columnGap:!0,columnRule:!0,columnRuleColor:!0,columnRuleStyle:!0,columnRuleWidth:!0,columns:!0,columnSpan:!0,columnWidth:!0},ms:{flex:!0,flexBasis:!1,flexDirection:!0,flexGrow:!1,flexFlow:!0,flexShrink:!1,flexWrap:!0,alignContent:!1,alignItems:!1,alignSelf:!1,justifyContent:!1,order:!1,transform:!0,transformOrigin:!0,transformOriginX:!0,transformOriginY:!0,userSelect:!0,wrapFlow:!0,wrapThrough:!0,wrapMargin:!0,scrollSnapType:!0,scrollSnapPointsX:!0,scrollSnapPointsY:!0,scrollSnapDestination:!0,scrollSnapCoordinate:!0,touchAction:!0,hyphens:!0,flowInto:!0,flowFrom:!0,breakBefore:!0,breakAfter:!0,breakInside:!0,regionFragment:!0,gridTemplateColumns:!0,gridTemplateRows:!0,gridTemplateAreas:!0,gridTemplate:!0,gridAutoColumns:!0,gridAutoRows:!0,gridAutoFlow:!0,grid:!0,gridRowStart:!0,gridColumnStart:!0,gridRowEnd:!0,gridRow:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnGap:!0,gridRowGap:!0,gridArea:!0,gridGap:!0,textSizeAdjust:!0}},e.exports=t.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return Object.keys(e).sort(function(e,t){return(0,a.default)(e)&&!(0,a.default)(t)?-1:!(0,a.default)(e)&&(0,a.default)(t)?1:0}).reduce(function(t,n){return t[n]=e[n],t},{})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(972),a=r(o);e.exports=t.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return null!==e.match(/^(Webkit|Moz|O|ms)/)},e.exports=t.default},function(e,t){"use strict";function n(e,t){if("position"===e&&"sticky"===t)return{position:["-webkit-sticky","sticky"]}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=n,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if("string"==typeof t&&!(0,u.default)(t)&&t.indexOf("calc(")>-1)return(0,a.default)(e,t,function(e,t){return t.replace(/calc\(/g,e+"calc(")})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(975),a=r(o),s=n(976),u=r(s);e.exports=t.default},function(e,t){"use strict";function n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var r=arguments.length<=2||void 0===arguments[2]?function(e,t){return e+t}:arguments[2];return n({},e,["-webkit-","-moz-",""].map(function(e){return r(e,t)}))},e.exports=t.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return Array.isArray(e)&&(e=e.join(",")),null!==e.match(/-webkit-|-moz-|-ms-/)},e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if("cursor"===e&&s[t])return(0,a.default)(e,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(975),a=r(o),s={"zoom-in":!0,"zoom-out":!0,grab:!0,grabbing:!0};e.exports=t.default},function(e,t){"use strict";function n(e,t){if("display"===e&&r[t])return{display:["-webkit-box","-moz-box","-ms-"+t+"box","-webkit-"+t,t]}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=n;var r={flex:!0,"inline-flex":!0};e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(s[e]&&u[t])return(0,a.default)(e,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(975),a=r(o),s={maxHeight:!0,maxWidth:!0,width:!0,height:!0,columnWidth:!0,minWidth:!0,minHeight:!0},u={"min-content":!0,"max-content":!0,"fill-available":!0,"fit-content":!0,"contain-floats":!0};e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if("string"==typeof t&&!(0,u.default)(t)&&null!==t.match(c))return(0,a.default)(e,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(975),a=r(o),s=n(976),u=r(s),c=/linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/;e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){if("string"==typeof t&&m[e]){var n,r=a(t),o=r.split(/,(?![^()]*(?:\([^()]*\))?\))/g).filter(function(e){return null===e.match(/-moz-|-ms-/)}).join(",");return e.indexOf("Webkit")>-1?i({},e,o):(n={},i(n,"Webkit"+(0,l.default)(e),o),i(n,e,r),n)}}function a(e){if((0,f.default)(e))return e;var t=e.split(/,(?![^()]*(?:\([^()]*\))?\))/g);return t.forEach(function(e,n){t[n]=Object.keys(d.default).reduce(function(t,n){var r="-"+n.toLowerCase()+"-";return Object.keys(d.default[n]).forEach(function(n){var i=(0,u.default)(n);e.indexOf(i)>-1&&"order"!==i&&(t=e.replace(i,r+i)+","+t)}),t},e)}),t.join(",")}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var s=n(982),u=r(s),c=n(970),l=r(c),p=n(976),f=r(p),h=n(969),d=r(h),m={transition:!0,transitionProperty:!0,WebkitTransition:!0,WebkitTransitionProperty:!0};e.exports=t.default},function(e,t){"use strict";function n(e){return e in o?o[e]:o[e]=e.replace(r,"-$&").toLowerCase().replace(i,"-ms-")}var r=/[A-Z]/g,i=/^ms-/,o={};e.exports=n},function(e,t){"use strict";function n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){if(o[e])return n({},o[e],i[t]||t)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var i={"space-around":"distribute","space-between":"justify","flex-start":"start","flex-end":"end"},o={alignContent:"msFlexLinePack",alignSelf:"msFlexItemAlign",alignItems:"msFlexAlign",justifyContent:"msFlexPack",order:"msFlexOrder",flexGrow:"msFlexPositive",flexShrink:"msFlexNegative",flexBasis:"msPreferredSize"};e.exports=t.default},function(e,t){"use strict";function n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){return"flexDirection"===e&&"string"==typeof t?{WebkitBoxOrient:t.indexOf("column")>-1?"vertical":"horizontal",WebkitBoxDirection:t.indexOf("reverse")>-1?"reverse":"normal"}:o[e]?n({},o[e],i[t]||t):void 0}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var i={"space-around":"justify","space-between":"justify","flex-start":"start","flex-end":"end","wrap-reverse":"multiple",wrap:"multiple"},o={alignItems:"WebkitBoxAlign",justifyContent:"WebkitBoxPack",flexWrap:"WebkitBoxLines"};e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(986),o=r(i),a={Webkit:["chrome","safari","ios","android","phantom","opera","webos","blackberry","bada","tizen","chromium","vivaldi"],Moz:["firefox","seamonkey","sailfish"],ms:["msie","msedge"]},s={chrome:[["chrome"],["chromium"]],safari:[["safari"]],firefox:[["firefox"]],edge:[["msedge"]],opera:[["opera"],["vivaldi"]],ios_saf:[["ios","mobile"],["ios","tablet"]],ie:[["msie"]],op_mini:[["opera","mobile"],["opera","tablet"]],and_uc:[["android","mobile"],["android","tablet"]],android:[["android","mobile"],["android","tablet"]]},u=function(e){if(e.firefox)return"firefox";var t="";return Object.keys(s).forEach(function(n){s[n].forEach(function(r){var i=0;r.forEach(function(t){e[t]&&(i+=1)}),r.length===i&&(t=n)})}),t};t.default=function(e){if(!e)return!1;var t=o.default._detect(e);return Object.keys(a).forEach(function(e){a[e].forEach(function(n){t[n]&&(t.prefix={inline:e,css:"-"+e.toLowerCase()+"-"})})}),t.browser=u(t),t.version=t.version?parseFloat(t.version):parseInt(parseFloat(t.osversion),10),t.osversion=parseFloat(t.osversion),"ios_saf"===t.browser&&t.version>t.osversion&&(t.version=t.osversion,t.safari=!0),"android"===t.browser&&t.chrome&&t.version>37&&(t.browser="and_chr"),"android"===t.browser&&t.osversion<5&&(t.version=t.osversion),t},e.exports=t.default},function(e,t,n){/*! - * Bowser - a browser detector - * https://github.com/ded/bowser - * MIT License | (c) Dustin Diaz 2015 - */ -!function(t,r,i){"undefined"!=typeof e&&e.exports?e.exports=i():n(987)(r,i)}(this,"bowser",function(){function e(e){function t(t){var n=e.match(t);return n&&n.length>1&&n[1]||""}function n(t){var n=e.match(t);return n&&n.length>1&&n[2]||""}function r(e){switch(e){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}var i,o=t(/(ipod|iphone|ipad)/i).toLowerCase(),s=/like android/i.test(e),u=!s&&/android/i.test(e),c=/nexus\s*[0-6]\s*/i.test(e),l=!c&&/nexus\s*[0-9]+/i.test(e),p=/CrOS/.test(e),f=/silk/i.test(e),h=/sailfish/i.test(e),d=/tizen/i.test(e),m=/(web|hpw)os/i.test(e),v=/windows phone/i.test(e),y=(/SamsungBrowser/i.test(e),!v&&/windows/i.test(e)),g=!o&&!f&&/macintosh/i.test(e),_=!u&&!h&&!d&&!m&&/linux/i.test(e),b=t(/edge\/(\d+(\.\d+)?)/i),x=t(/version\/(\d+(\.\d+)?)/i),w=/tablet/i.test(e),k=!w&&/[^-]mobi/i.test(e),S=/xbox/i.test(e);/opera/i.test(e)?i={name:"Opera",opera:a,version:x||t(/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i)}:/opr|opios/i.test(e)?i={name:"Opera",opera:a,version:t(/(?:opr|opios)[\s\/](\d+(\.\d+)?)/i)||x}:/SamsungBrowser/i.test(e)?i={name:"Samsung Internet for Android",samsungBrowser:a,version:x||t(/(?:SamsungBrowser)[\s\/](\d+(\.\d+)?)/i)}:/coast/i.test(e)?i={name:"Opera Coast",coast:a,version:x||t(/(?:coast)[\s\/](\d+(\.\d+)?)/i)}:/yabrowser/i.test(e)?i={name:"Yandex Browser",yandexbrowser:a,version:x||t(/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i)}:/ucbrowser/i.test(e)?i={name:"UC Browser",ucbrowser:a,version:t(/(?:ucbrowser)[\s\/](\d+(?:\.\d+)+)/i)}:/mxios/i.test(e)?i={name:"Maxthon",maxthon:a,version:t(/(?:mxios)[\s\/](\d+(?:\.\d+)+)/i)}:/epiphany/i.test(e)?i={name:"Epiphany",epiphany:a,version:t(/(?:epiphany)[\s\/](\d+(?:\.\d+)+)/i)}:/puffin/i.test(e)?i={name:"Puffin",puffin:a,version:t(/(?:puffin)[\s\/](\d+(?:\.\d+)?)/i)}:/sleipnir/i.test(e)?i={name:"Sleipnir",sleipnir:a,version:t(/(?:sleipnir)[\s\/](\d+(?:\.\d+)+)/i)}:/k-meleon/i.test(e)?i={name:"K-Meleon",kMeleon:a,version:t(/(?:k-meleon)[\s\/](\d+(?:\.\d+)+)/i)}:v?(i={name:"Windows Phone",windowsphone:a},b?(i.msedge=a,i.version=b):(i.msie=a,i.version=t(/iemobile\/(\d+(\.\d+)?)/i))):/msie|trident/i.test(e)?i={name:"Internet Explorer",msie:a,version:t(/(?:msie |rv:)(\d+(\.\d+)?)/i)}:p?i={name:"Chrome",chromeos:a,chromeBook:a,chrome:a,version:t(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:/chrome.+? edge/i.test(e)?i={name:"Microsoft Edge",msedge:a,version:b}:/vivaldi/i.test(e)?i={name:"Vivaldi",vivaldi:a,version:t(/vivaldi\/(\d+(\.\d+)?)/i)||x}:h?i={name:"Sailfish",sailfish:a,version:t(/sailfish\s?browser\/(\d+(\.\d+)?)/i)}:/seamonkey\//i.test(e)?i={name:"SeaMonkey",seamonkey:a,version:t(/seamonkey\/(\d+(\.\d+)?)/i)}:/firefox|iceweasel|fxios/i.test(e)?(i={name:"Firefox",firefox:a,version:t(/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i)},/\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(e)&&(i.firefoxos=a)):f?i={name:"Amazon Silk",silk:a,version:t(/silk\/(\d+(\.\d+)?)/i)}:/phantom/i.test(e)?i={name:"PhantomJS",phantom:a,version:t(/phantomjs\/(\d+(\.\d+)?)/i)}:/slimerjs/i.test(e)?i={name:"SlimerJS",slimer:a,version:t(/slimerjs\/(\d+(\.\d+)?)/i)}:/blackberry|\bbb\d+/i.test(e)||/rim\stablet/i.test(e)?i={name:"BlackBerry",blackberry:a,version:x||t(/blackberry[\d]+\/(\d+(\.\d+)?)/i)}:m?(i={name:"WebOS",webos:a,version:x||t(/w(?:eb)?osbrowser\/(\d+(\.\d+)?)/i)},/touchpad\//i.test(e)&&(i.touchpad=a)):/bada/i.test(e)?i={name:"Bada",bada:a,version:t(/dolfin\/(\d+(\.\d+)?)/i)}:d?i={name:"Tizen",tizen:a,version:t(/(?:tizen\s?)?browser\/(\d+(\.\d+)?)/i)||x}:/qupzilla/i.test(e)?i={name:"QupZilla",qupzilla:a,version:t(/(?:qupzilla)[\s\/](\d+(?:\.\d+)+)/i)||x}:/chromium/i.test(e)?i={name:"Chromium",chromium:a,version:t(/(?:chromium)[\s\/](\d+(?:\.\d+)?)/i)||x}:/chrome|crios|crmo/i.test(e)?i={name:"Chrome",chrome:a,version:t(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:u?i={name:"Android",version:x}:/safari|applewebkit/i.test(e)?(i={name:"Safari",safari:a},x&&(i.version=x)):o?(i={name:"iphone"==o?"iPhone":"ipad"==o?"iPad":"iPod"},x&&(i.version=x)):i=/googlebot/i.test(e)?{name:"Googlebot",googlebot:a,version:t(/googlebot\/(\d+(\.\d+))/i)||x}:{name:t(/^(.*)\/(.*) /),version:n(/^(.*)\/(.*) /)},!i.msedge&&/(apple)?webkit/i.test(e)?(/(apple)?webkit\/537\.36/i.test(e)?(i.name=i.name||"Blink",i.blink=a):(i.name=i.name||"Webkit",i.webkit=a),!i.version&&x&&(i.version=x)):!i.opera&&/gecko\//i.test(e)&&(i.name=i.name||"Gecko",i.gecko=a,i.version=i.version||t(/gecko\/(\d+(\.\d+)?)/i)),i.windowsphone||i.msedge||!u&&!i.silk?i.windowsphone||i.msedge||!o?g?i.mac=a:S?i.xbox=a:y?i.windows=a:_&&(i.linux=a):(i[o]=a,i.ios=a):i.android=a;var E="";i.windows?E=r(t(/Windows ((NT|XP)( \d\d?.\d)?)/i)):i.windowsphone?E=t(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i):i.mac?(E=t(/Mac OS X (\d+([_\.\s]\d+)*)/i),E=E.replace(/[_\s]/g,".")):o?(E=t(/os (\d+([_\s]\d+)*) like mac os x/i),E=E.replace(/[_\s]/g,".")):u?E=t(/android[ \/-](\d+(\.\d+)*)/i):i.webos?E=t(/(?:web|hpw)os\/(\d+(\.\d+)*)/i):i.blackberry?E=t(/rim\stablet\sos\s(\d+(\.\d+)*)/i):i.bada?E=t(/bada\/(\d+(\.\d+)*)/i):i.tizen&&(E=t(/tizen[\/\s](\d+(\.\d+)*)/i)),E&&(i.osversion=E);var C=!i.windows&&E.split(".")[0];return w||l||"ipad"==o||u&&(3==C||C>=4&&!k)||i.silk?i.tablet=a:(k||"iphone"==o||"ipod"==o||u||c||i.blackberry||i.webos||i.bada)&&(i.mobile=a),i.msedge||i.msie&&i.version>=10||i.yandexbrowser&&i.version>=15||i.vivaldi&&i.version>=1||i.chrome&&i.version>=20||i.samsungBrowser&&i.version>=4||i.firefox&&i.version>=20||i.safari&&i.version>=6||i.opera&&i.version>=10||i.ios&&i.osversion&&i.osversion.split(".")[0]>=6||i.blackberry&&i.version>=10.1||i.chromium&&i.version>=20?i.a=a:i.msie&&i.version<10||i.chrome&&i.version<20||i.firefox&&i.version<20||i.safari&&i.version<6||i.opera&&i.version<10||i.ios&&i.osversion&&i.osversion.split(".")[0]<6||i.chromium&&i.version<20?i.c=a:i.x=a,i}function t(e){return e.split(".").length}function n(e,t){var n,r=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(n=0;n=0;){if(i[0][r]>i[1][r])return 1;if(i[0][r]!==i[1][r])return-1;if(0===r)return 0}}function i(t,n,i){var o=s;"string"==typeof n&&(i=n,n=void 0),void 0===n&&(n=!1),i&&(o=e(i));var a=""+o.version;for(var u in t)if(t.hasOwnProperty(u)&&o[u]){if("string"!=typeof t[u])throw new Error("Browser version in the minVersion map should be a string: "+u+": "+String(t));return r([a,t[u]])<0}return n}function o(e,t,n){return!i(e,t,n)}var a=!0,s=e("undefined"!=typeof navigator?navigator.userAgent||"":"");return s.test=function(e){for(var t=0;t-1&&("firefox"===o&&a<15||"chrome"===o&&a<25||"safari"===o&&a<6.1||"ios_saf"===o&&a<7))return i({},t,(0,s.default)(n.replace(/calc\(/g,u+"calc("),n,c))}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=n(991),s=r(a);e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=e.property,n=e.value,r=e.browserInfo,i=r.browser,o=r.version,u=e.prefix.css,c=e.keepUnprefixed;if("cursor"===t&&s[n]&&("firefox"===i&&o<24||"chrome"===i&&o<37||"safari"===i&&o<9||"opera"===i&&o<24))return{cursor:(0,a.default)(u+n,n,c)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(991),a=r(o),s={"zoom-in":!0,"zoom-out":!0};e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=e.property,n=e.value,r=e.browserInfo.browser,i=e.prefix.css,o=e.keepUnprefixed;if("cursor"===t&&s[n]&&("firefox"===r||"chrome"===r||"safari"===r||"opera"===r))return{cursor:(0,a.default)(i+n,n,o)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(991),a=r(o),s={grab:!0,grabbing:!0};e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=e.property,n=e.value,r=e.browserInfo,i=r.browser,o=r.version,u=e.prefix.css,c=e.keepUnprefixed;if("display"===t&&s[n]&&("chrome"===i&&o<29&&o>20||("safari"===i||"ios_saf"===i)&&o<9&&o>6||"opera"===i&&(15==o||16==o)))return{display:(0,a.default)(u+n,n,c)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(991),a=r(o),s={flex:!0,"inline-flex":!0};e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){var t=e.property,n=e.value,r=e.prefix.css,o=e.keepUnprefixed;if(u[t]&&c[n])return i({},t,(0,s.default)(r+n,n,o))}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=n(991),s=r(a),u={maxHeight:!0,maxWidth:!0,width:!0,height:!0,columnWidth:!0,minWidth:!0,minHeight:!0},c={"min-content":!0,"max-content":!0,"fill-available":!0,"fit-content":!0,"contain-floats":!0};e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){var t=e.property,n=e.value,r=e.browserInfo,o=r.browser,a=r.version,c=e.prefix.css,l=e.keepUnprefixed;if("string"==typeof n&&null!==n.match(u)&&("firefox"===o&&a<16||"chrome"===o&&a<26||("safari"===o||"ios_saf"===o)&&a<7||("opera"===o||"op_mini"===o)&&a<12.1||"android"===o&&a<4.4||"and_uc"===o))return i({},t,(0,s.default)(c+n,n,l))}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=n(991),s=r(a),u=/linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/;e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){var t=e.property,n=e.value,r=e.prefix.css,o=e.requiresPrefix,s=e.keepUnprefixed,c=(0,l.default)(t);if("string"==typeof n&&p[c]){var f=function(){var e=Object.keys(o).map(function(e){return(0,u.default)(e)}),a=n.split(/,(?![^()]*(?:\([^()]*\))?\))/g);return e.forEach(function(e){a.forEach(function(t,n){t.indexOf(e)>-1&&"order"!==e&&(a[n]=t.replace(e,r+e)+(s?","+t:""))})}),{v:i({},t,a.join(","))}}();if("object"===("undefined"==typeof f?"undefined":a(f)))return f.v}}Object.defineProperty(t,"__esModule",{value:!0});var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};t.default=o;var s=n(982),u=r(s),c=n(999),l=r(c),p={transition:!0,transitionProperty:!0};e.exports=t.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.replace(/^(ms|Webkit|Moz|O)/,"");return t.charAt(0).toLowerCase()+t.slice(1)},e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){var t=e.property,n=e.value,r=e.styles,o=e.browserInfo,a=o.browser,l=o.version,p=e.prefix.css,f=e.keepUnprefixed;if((c[t]||"display"===t&&"string"==typeof n&&n.indexOf("flex")>-1)&&("ie_mob"===a||"ie"===a)&&10==l){if(f||Array.isArray(r[t])||delete r[t],"display"===t&&u[n])return{display:(0,s.default)(p+u[n],n,f)};if(c[t])return i({},c[t],u[n]||n)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=n(991),s=r(a),u={"space-around":"distribute","space-between":"justify","flex-start":"start","flex-end":"end",flex:"flexbox","inline-flex":"inline-flexbox"},c={alignContent:"msFlexLinePack",alignSelf:"msFlexItemAlign",alignItems:"msFlexAlign",justifyContent:"msFlexPack",order:"msFlexOrder",flexGrow:"msFlexPositive",flexShrink:"msFlexNegative",flexBasis:"msPreferredSize"};e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){var t=e.property,n=e.value,r=e.styles,o=e.browserInfo,a=o.browser,l=o.version,f=e.prefix.css,h=e.keepUnprefixed;if((p.indexOf(t)>-1||"display"===t&&"string"==typeof n&&n.indexOf("flex")>-1)&&("firefox"===a&&l<22||"chrome"===a&&l<21||("safari"===a||"ios_saf"===a)&&l<=6.1||"android"===a&&l<4.4||"and_uc"===a)){if(h||Array.isArray(r[t])||delete r[t],"flexDirection"===t&&"string"==typeof n)return{WebkitBoxOrient:n.indexOf("column")>-1?"vertical":"horizontal",WebkitBoxDirection:n.indexOf("reverse")>-1?"reverse":"normal"};if("display"===t&&u[n])return{display:(0,s.default)(f+u[n],n,h)};if(c[t])return i({},c[t],u[n]||n)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=n(991),s=r(a),u={"space-around":"justify","space-between":"justify","flex-start":"start","flex-end":"end","wrap-reverse":"multiple",wrap:"multiple",flex:"box","inline-flex":"inline-box"},c={alignItems:"WebkitBoxAlign",justifyContent:"WebkitBoxPack",flexWrap:"WebkitBoxLines"},l=["alignContent","alignSelf","order","flexGrow","flexShrink","flexBasis","flexDirection"],p=Object.keys(c).concat(l);e.exports=t.default},function(e,t,n){var r=n(1003),i=n(498);e.exports=function(e,t,n){var i=e[t];if(i){var o=[];if(Object.keys(i).forEach(function(e){r.indexOf(e)===-1&&o.push(e)}),o.length)throw new Error("Prop "+t+" passed to "+n+". Has invalid keys "+o.join(", "))}},e.exports.isRequired=function(t,n,r){if(!t[n])throw new Error("Prop "+n+" passed to "+r+" is required");return e.exports(t,n,r)},e.exports.supportingArrays=i.PropTypes.oneOfType([i.PropTypes.arrayOf(e.exports),e.exports])},function(e,t){e.exports=["alignContent","MozAlignContent","WebKitAlignContent","MSAlignContent","OAlignContent","alignItems","MozAlignItems","WebKitAlignItems","MSAlignItems","OAlignItems","alignSelf","MozAlignSelf","WebKitAlignSelf","MSAlignSelf","OAlignSelf","all","MozAll","WebKitAll","MSAll","OAll","animation","MozAnimation","WebKitAnimation","MSAnimation","OAnimation","animationDelay","MozAnimationDelay","WebKitAnimationDelay","MSAnimationDelay","OAnimationDelay","animationDirection","MozAnimationDirection","WebKitAnimationDirection","MSAnimationDirection","OAnimationDirection","animationDuration","MozAnimationDuration","WebKitAnimationDuration","MSAnimationDuration","OAnimationDuration","animationFillMode","MozAnimationFillMode","WebKitAnimationFillMode","MSAnimationFillMode","OAnimationFillMode","animationIterationCount","MozAnimationIterationCount","WebKitAnimationIterationCount","MSAnimationIterationCount","OAnimationIterationCount","animationName","MozAnimationName","WebKitAnimationName","MSAnimationName","OAnimationName","animationPlayState","MozAnimationPlayState","WebKitAnimationPlayState","MSAnimationPlayState","OAnimationPlayState","animationTimingFunction","MozAnimationTimingFunction","WebKitAnimationTimingFunction","MSAnimationTimingFunction","OAnimationTimingFunction","backfaceVisibility","MozBackfaceVisibility","WebKitBackfaceVisibility","MSBackfaceVisibility","OBackfaceVisibility","background","MozBackground","WebKitBackground","MSBackground","OBackground","backgroundAttachment","MozBackgroundAttachment","WebKitBackgroundAttachment","MSBackgroundAttachment","OBackgroundAttachment","backgroundBlendMode","MozBackgroundBlendMode","WebKitBackgroundBlendMode","MSBackgroundBlendMode","OBackgroundBlendMode","backgroundClip","MozBackgroundClip","WebKitBackgroundClip","MSBackgroundClip","OBackgroundClip","backgroundColor","MozBackgroundColor","WebKitBackgroundColor","MSBackgroundColor","OBackgroundColor","backgroundImage","MozBackgroundImage","WebKitBackgroundImage","MSBackgroundImage","OBackgroundImage","backgroundOrigin","MozBackgroundOrigin","WebKitBackgroundOrigin","MSBackgroundOrigin","OBackgroundOrigin","backgroundPosition","MozBackgroundPosition","WebKitBackgroundPosition","MSBackgroundPosition","OBackgroundPosition","backgroundRepeat","MozBackgroundRepeat","WebKitBackgroundRepeat","MSBackgroundRepeat","OBackgroundRepeat","backgroundSize","MozBackgroundSize","WebKitBackgroundSize","MSBackgroundSize","OBackgroundSize","blockSize","MozBlockSize","WebKitBlockSize","MSBlockSize","OBlockSize","border","MozBorder","WebKitBorder","MSBorder","OBorder","borderBlockEnd","MozBorderBlockEnd","WebKitBorderBlockEnd","MSBorderBlockEnd","OBorderBlockEnd","borderBlockEndColor","MozBorderBlockEndColor","WebKitBorderBlockEndColor","MSBorderBlockEndColor","OBorderBlockEndColor","borderBlockEndStyle","MozBorderBlockEndStyle","WebKitBorderBlockEndStyle","MSBorderBlockEndStyle","OBorderBlockEndStyle","borderBlockEndWidth","MozBorderBlockEndWidth","WebKitBorderBlockEndWidth","MSBorderBlockEndWidth","OBorderBlockEndWidth","borderBlockStart","MozBorderBlockStart","WebKitBorderBlockStart","MSBorderBlockStart","OBorderBlockStart","borderBlockStartColor","MozBorderBlockStartColor","WebKitBorderBlockStartColor","MSBorderBlockStartColor","OBorderBlockStartColor","borderBlockStartStyle","MozBorderBlockStartStyle","WebKitBorderBlockStartStyle","MSBorderBlockStartStyle","OBorderBlockStartStyle","borderBlockStartWidth","MozBorderBlockStartWidth","WebKitBorderBlockStartWidth","MSBorderBlockStartWidth","OBorderBlockStartWidth","borderBottom","MozBorderBottom","WebKitBorderBottom","MSBorderBottom","OBorderBottom","borderBottomColor","MozBorderBottomColor","WebKitBorderBottomColor","MSBorderBottomColor","OBorderBottomColor","borderBottomLeftRadius","MozBorderBottomLeftRadius","WebKitBorderBottomLeftRadius","MSBorderBottomLeftRadius","OBorderBottomLeftRadius","borderBottomRightRadius","MozBorderBottomRightRadius","WebKitBorderBottomRightRadius","MSBorderBottomRightRadius","OBorderBottomRightRadius","borderBottomStyle","MozBorderBottomStyle","WebKitBorderBottomStyle","MSBorderBottomStyle","OBorderBottomStyle","borderBottomWidth","MozBorderBottomWidth","WebKitBorderBottomWidth","MSBorderBottomWidth","OBorderBottomWidth","borderCollapse","MozBorderCollapse","WebKitBorderCollapse","MSBorderCollapse","OBorderCollapse","borderColor","MozBorderColor","WebKitBorderColor","MSBorderColor","OBorderColor","borderImage","MozBorderImage","WebKitBorderImage","MSBorderImage","OBorderImage","borderImageOutset","MozBorderImageOutset","WebKitBorderImageOutset","MSBorderImageOutset","OBorderImageOutset","borderImageRepeat","MozBorderImageRepeat","WebKitBorderImageRepeat","MSBorderImageRepeat","OBorderImageRepeat","borderImageSlice","MozBorderImageSlice","WebKitBorderImageSlice","MSBorderImageSlice","OBorderImageSlice","borderImageSource","MozBorderImageSource","WebKitBorderImageSource","MSBorderImageSource","OBorderImageSource","borderImageWidth","MozBorderImageWidth","WebKitBorderImageWidth","MSBorderImageWidth","OBorderImageWidth","borderInlineEnd","MozBorderInlineEnd","WebKitBorderInlineEnd","MSBorderInlineEnd","OBorderInlineEnd","borderInlineEndColor","MozBorderInlineEndColor","WebKitBorderInlineEndColor","MSBorderInlineEndColor","OBorderInlineEndColor","borderInlineEndStyle","MozBorderInlineEndStyle","WebKitBorderInlineEndStyle","MSBorderInlineEndStyle","OBorderInlineEndStyle","borderInlineEndWidth","MozBorderInlineEndWidth","WebKitBorderInlineEndWidth","MSBorderInlineEndWidth","OBorderInlineEndWidth","borderInlineStart","MozBorderInlineStart","WebKitBorderInlineStart","MSBorderInlineStart","OBorderInlineStart","borderInlineStartColor","MozBorderInlineStartColor","WebKitBorderInlineStartColor","MSBorderInlineStartColor","OBorderInlineStartColor","borderInlineStartStyle","MozBorderInlineStartStyle","WebKitBorderInlineStartStyle","MSBorderInlineStartStyle","OBorderInlineStartStyle","borderInlineStartWidth","MozBorderInlineStartWidth","WebKitBorderInlineStartWidth","MSBorderInlineStartWidth","OBorderInlineStartWidth","borderLeft","MozBorderLeft","WebKitBorderLeft","MSBorderLeft","OBorderLeft","borderLeftColor","MozBorderLeftColor","WebKitBorderLeftColor","MSBorderLeftColor","OBorderLeftColor","borderLeftStyle","MozBorderLeftStyle","WebKitBorderLeftStyle","MSBorderLeftStyle","OBorderLeftStyle","borderLeftWidth","MozBorderLeftWidth","WebKitBorderLeftWidth","MSBorderLeftWidth","OBorderLeftWidth","borderRadius","MozBorderRadius","WebKitBorderRadius","MSBorderRadius","OBorderRadius","borderRight","MozBorderRight","WebKitBorderRight","MSBorderRight","OBorderRight","borderRightColor","MozBorderRightColor","WebKitBorderRightColor","MSBorderRightColor","OBorderRightColor","borderRightStyle","MozBorderRightStyle","WebKitBorderRightStyle","MSBorderRightStyle","OBorderRightStyle","borderRightWidth","MozBorderRightWidth","WebKitBorderRightWidth","MSBorderRightWidth","OBorderRightWidth","borderSpacing","MozBorderSpacing","WebKitBorderSpacing","MSBorderSpacing","OBorderSpacing","borderStyle","MozBorderStyle","WebKitBorderStyle","MSBorderStyle","OBorderStyle","borderTop","MozBorderTop","WebKitBorderTop","MSBorderTop","OBorderTop","borderTopColor","MozBorderTopColor","WebKitBorderTopColor","MSBorderTopColor","OBorderTopColor","borderTopLeftRadius","MozBorderTopLeftRadius","WebKitBorderTopLeftRadius","MSBorderTopLeftRadius","OBorderTopLeftRadius","borderTopRightRadius","MozBorderTopRightRadius","WebKitBorderTopRightRadius","MSBorderTopRightRadius","OBorderTopRightRadius","borderTopStyle","MozBorderTopStyle","WebKitBorderTopStyle","MSBorderTopStyle","OBorderTopStyle","borderTopWidth","MozBorderTopWidth","WebKitBorderTopWidth","MSBorderTopWidth","OBorderTopWidth","borderWidth","MozBorderWidth","WebKitBorderWidth","MSBorderWidth","OBorderWidth","bottom","MozBottom","WebKitBottom","MSBottom","OBottom","boxDecorationBreak","MozBoxDecorationBreak","WebKitBoxDecorationBreak","MSBoxDecorationBreak","OBoxDecorationBreak","boxShadow","MozBoxShadow","WebKitBoxShadow","MSBoxShadow","OBoxShadow","boxSizing","MozBoxSizing","WebKitBoxSizing","MSBoxSizing","OBoxSizing","breakAfter","MozBreakAfter","WebKitBreakAfter","MSBreakAfter","OBreakAfter","breakBefore","MozBreakBefore","WebKitBreakBefore","MSBreakBefore","OBreakBefore","breakInside","MozBreakInside","WebKitBreakInside","MSBreakInside","OBreakInside","captionSide","MozCaptionSide","WebKitCaptionSide","MSCaptionSide","OCaptionSide","ch","MozCh","WebKitCh","MSCh","OCh","clear","MozClear","WebKitClear","MSClear","OClear","clip","MozClip","WebKitClip","MSClip","OClip","clipPath","MozClipPath","WebKitClipPath","MSClipPath","OClipPath","cm","MozCm","WebKitCm","MSCm","OCm","color","MozColor","WebKitColor","MSColor","OColor","columnCount","MozColumnCount","WebKitColumnCount","MSColumnCount","OColumnCount","columnFill","MozColumnFill","WebKitColumnFill","MSColumnFill","OColumnFill","columnGap","MozColumnGap","WebKitColumnGap","MSColumnGap","OColumnGap","columnRule","MozColumnRule","WebKitColumnRule","MSColumnRule","OColumnRule","columnRuleColor","MozColumnRuleColor","WebKitColumnRuleColor","MSColumnRuleColor","OColumnRuleColor","columnRuleStyle","MozColumnRuleStyle","WebKitColumnRuleStyle","MSColumnRuleStyle","OColumnRuleStyle","columnRuleWidth","MozColumnRuleWidth","WebKitColumnRuleWidth","MSColumnRuleWidth","OColumnRuleWidth","columnSpan","MozColumnSpan","WebKitColumnSpan","MSColumnSpan","OColumnSpan","columnWidth","MozColumnWidth","WebKitColumnWidth","MSColumnWidth","OColumnWidth","columns","MozColumns","WebKitColumns","MSColumns","OColumns","content","MozContent","WebKitContent","MSContent","OContent","counterIncrement","MozCounterIncrement","WebKitCounterIncrement","MSCounterIncrement","OCounterIncrement","counterReset","MozCounterReset","WebKitCounterReset","MSCounterReset","OCounterReset","cursor","MozCursor","WebKitCursor","MSCursor","OCursor","deg","MozDeg","WebKitDeg","MSDeg","ODeg","direction","MozDirection","WebKitDirection","MSDirection","ODirection","display","MozDisplay","WebKitDisplay","MSDisplay","ODisplay","dpcm","MozDpcm","WebKitDpcm","MSDpcm","ODpcm","dpi","MozDpi","WebKitDpi","MSDpi","ODpi","dppx","MozDppx","WebKitDppx","MSDppx","ODppx","em","MozEm","WebKitEm","MSEm","OEm","emptyCells","MozEmptyCells","WebKitEmptyCells","MSEmptyCells","OEmptyCells","ex","MozEx","WebKitEx","MSEx","OEx","filter","MozFilter","WebKitFilter","MSFilter","OFilter","flex","MozFlex","WebKitFlex","MSFlex","OFlex","flexBasis","MozFlexBasis","WebKitFlexBasis","MSFlexBasis","OFlexBasis","flexDirection","MozFlexDirection","WebKitFlexDirection","MSFlexDirection","OFlexDirection","flexFlow","MozFlexFlow","WebKitFlexFlow","MSFlexFlow","OFlexFlow","flexGrow","MozFlexGrow","WebKitFlexGrow","MSFlexGrow","OFlexGrow","flexShrink","MozFlexShrink","WebKitFlexShrink","MSFlexShrink","OFlexShrink","flexWrap","MozFlexWrap","WebKitFlexWrap","MSFlexWrap","OFlexWrap","float","MozFloat","WebKitFloat","MSFloat","OFloat","font","MozFont","WebKitFont","MSFont","OFont","fontFamily","MozFontFamily","WebKitFontFamily","MSFontFamily","OFontFamily","fontFeatureSettings","MozFontFeatureSettings","WebKitFontFeatureSettings","MSFontFeatureSettings","OFontFeatureSettings","fontKerning","MozFontKerning","WebKitFontKerning","MSFontKerning","OFontKerning","fontLanguageOverride","MozFontLanguageOverride","WebKitFontLanguageOverride","MSFontLanguageOverride","OFontLanguageOverride","fontSize","MozFontSize","WebKitFontSize","MSFontSize","OFontSize","fontSizeAdjust","MozFontSizeAdjust","WebKitFontSizeAdjust","MSFontSizeAdjust","OFontSizeAdjust","fontStretch","MozFontStretch","WebKitFontStretch","MSFontStretch","OFontStretch","fontStyle","MozFontStyle","WebKitFontStyle","MSFontStyle","OFontStyle","fontSynthesis","MozFontSynthesis","WebKitFontSynthesis","MSFontSynthesis","OFontSynthesis","fontVariant","MozFontVariant","WebKitFontVariant","MSFontVariant","OFontVariant","fontVariantAlternates","MozFontVariantAlternates","WebKitFontVariantAlternates","MSFontVariantAlternates","OFontVariantAlternates","fontVariantCaps","MozFontVariantCaps","WebKitFontVariantCaps","MSFontVariantCaps","OFontVariantCaps","fontVariantEastAsian","MozFontVariantEastAsian","WebKitFontVariantEastAsian","MSFontVariantEastAsian","OFontVariantEastAsian","fontVariantLigatures","MozFontVariantLigatures","WebKitFontVariantLigatures","MSFontVariantLigatures","OFontVariantLigatures","fontVariantNumeric","MozFontVariantNumeric","WebKitFontVariantNumeric","MSFontVariantNumeric","OFontVariantNumeric","fontVariantPosition","MozFontVariantPosition","WebKitFontVariantPosition","MSFontVariantPosition","OFontVariantPosition","fontWeight","MozFontWeight","WebKitFontWeight","MSFontWeight","OFontWeight","grad","MozGrad","WebKitGrad","MSGrad","OGrad","grid","MozGrid","WebKitGrid","MSGrid","OGrid","gridArea","MozGridArea","WebKitGridArea","MSGridArea","OGridArea","gridAutoColumns","MozGridAutoColumns","WebKitGridAutoColumns","MSGridAutoColumns","OGridAutoColumns","gridAutoFlow","MozGridAutoFlow","WebKitGridAutoFlow","MSGridAutoFlow","OGridAutoFlow","gridAutoRows","MozGridAutoRows","WebKitGridAutoRows","MSGridAutoRows","OGridAutoRows","gridColumn","MozGridColumn","WebKitGridColumn","MSGridColumn","OGridColumn","gridColumnEnd","MozGridColumnEnd","WebKitGridColumnEnd","MSGridColumnEnd","OGridColumnEnd","gridColumnGap","MozGridColumnGap","WebKitGridColumnGap","MSGridColumnGap","OGridColumnGap","gridColumnStart","MozGridColumnStart","WebKitGridColumnStart","MSGridColumnStart","OGridColumnStart","gridGap","MozGridGap","WebKitGridGap","MSGridGap","OGridGap","gridRow","MozGridRow","WebKitGridRow","MSGridRow","OGridRow","gridRowEnd","MozGridRowEnd","WebKitGridRowEnd","MSGridRowEnd","OGridRowEnd","gridRowGap","MozGridRowGap","WebKitGridRowGap","MSGridRowGap","OGridRowGap","gridRowStart","MozGridRowStart","WebKitGridRowStart","MSGridRowStart","OGridRowStart","gridTemplate","MozGridTemplate","WebKitGridTemplate","MSGridTemplate","OGridTemplate","gridTemplateAreas","MozGridTemplateAreas","WebKitGridTemplateAreas","MSGridTemplateAreas","OGridTemplateAreas","gridTemplateColumns","MozGridTemplateColumns","WebKitGridTemplateColumns","MSGridTemplateColumns","OGridTemplateColumns","gridTemplateRows","MozGridTemplateRows","WebKitGridTemplateRows","MSGridTemplateRows","OGridTemplateRows","height","MozHeight","WebKitHeight","MSHeight","OHeight","hyphens","MozHyphens","WebKitHyphens","MSHyphens","OHyphens","hz","MozHz","WebKitHz","MSHz","OHz","imageOrientation","MozImageOrientation","WebKitImageOrientation","MSImageOrientation","OImageOrientation","imageRendering","MozImageRendering","WebKitImageRendering","MSImageRendering","OImageRendering","imageResolution","MozImageResolution","WebKitImageResolution","MSImageResolution","OImageResolution","imeMode","MozImeMode","WebKitImeMode","MSImeMode","OImeMode","in","MozIn","WebKitIn","MSIn","OIn","inherit","MozInherit","WebKitInherit","MSInherit","OInherit","initial","MozInitial","WebKitInitial","MSInitial","OInitial","inlineSize","MozInlineSize","WebKitInlineSize","MSInlineSize","OInlineSize","isolation","MozIsolation","WebKitIsolation","MSIsolation","OIsolation","justifyContent","MozJustifyContent","WebKitJustifyContent","MSJustifyContent","OJustifyContent","khz","MozKhz","WebKitKhz","MSKhz","OKhz","left","MozLeft","WebKitLeft","MSLeft","OLeft","letterSpacing","MozLetterSpacing","WebKitLetterSpacing","MSLetterSpacing","OLetterSpacing","lineBreak","MozLineBreak","WebKitLineBreak","MSLineBreak","OLineBreak","lineHeight","MozLineHeight","WebKitLineHeight","MSLineHeight","OLineHeight","listStyle","MozListStyle","WebKitListStyle","MSListStyle","OListStyle","listStyleImage","MozListStyleImage","WebKitListStyleImage","MSListStyleImage","OListStyleImage","listStylePosition","MozListStylePosition","WebKitListStylePosition","MSListStylePosition","OListStylePosition","listStyleType","MozListStyleType","WebKitListStyleType","MSListStyleType","OListStyleType","margin","MozMargin","WebKitMargin","MSMargin","OMargin","marginBlockEnd","MozMarginBlockEnd","WebKitMarginBlockEnd","MSMarginBlockEnd","OMarginBlockEnd","marginBlockStart","MozMarginBlockStart","WebKitMarginBlockStart","MSMarginBlockStart","OMarginBlockStart","marginBottom","MozMarginBottom","WebKitMarginBottom","MSMarginBottom","OMarginBottom","marginInlineEnd","MozMarginInlineEnd","WebKitMarginInlineEnd","MSMarginInlineEnd","OMarginInlineEnd","marginInlineStart","MozMarginInlineStart","WebKitMarginInlineStart","MSMarginInlineStart","OMarginInlineStart","marginLeft","MozMarginLeft","WebKitMarginLeft","MSMarginLeft","OMarginLeft","marginRight","MozMarginRight","WebKitMarginRight","MSMarginRight","OMarginRight","marginTop","MozMarginTop","WebKitMarginTop","MSMarginTop","OMarginTop","mask","MozMask","WebKitMask","MSMask","OMask","maskClip","MozMaskClip","WebKitMaskClip","MSMaskClip","OMaskClip","maskComposite","MozMaskComposite","WebKitMaskComposite","MSMaskComposite","OMaskComposite","maskImage","MozMaskImage","WebKitMaskImage","MSMaskImage","OMaskImage","maskMode","MozMaskMode","WebKitMaskMode","MSMaskMode","OMaskMode","maskOrigin","MozMaskOrigin","WebKitMaskOrigin","MSMaskOrigin","OMaskOrigin","maskPosition","MozMaskPosition","WebKitMaskPosition","MSMaskPosition","OMaskPosition","maskRepeat","MozMaskRepeat","WebKitMaskRepeat","MSMaskRepeat","OMaskRepeat","maskSize","MozMaskSize","WebKitMaskSize","MSMaskSize","OMaskSize","maskType","MozMaskType","WebKitMaskType","MSMaskType","OMaskType","maxBlockSize","MozMaxBlockSize","WebKitMaxBlockSize","MSMaxBlockSize","OMaxBlockSize","maxHeight","MozMaxHeight","WebKitMaxHeight","MSMaxHeight","OMaxHeight","maxInlineSize","MozMaxInlineSize","WebKitMaxInlineSize","MSMaxInlineSize","OMaxInlineSize","maxWidth","MozMaxWidth","WebKitMaxWidth","MSMaxWidth","OMaxWidth","minBlockSize","MozMinBlockSize","WebKitMinBlockSize","MSMinBlockSize","OMinBlockSize","minHeight","MozMinHeight","WebKitMinHeight","MSMinHeight","OMinHeight","minInlineSize","MozMinInlineSize","WebKitMinInlineSize","MSMinInlineSize","OMinInlineSize","minWidth","MozMinWidth","WebKitMinWidth","MSMinWidth","OMinWidth","mixBlendMode","MozMixBlendMode","WebKitMixBlendMode","MSMixBlendMode","OMixBlendMode","mm","MozMm","WebKitMm","MSMm","OMm","ms","MozMs","WebKitMs","MSMs","OMs","objectFit","MozObjectFit","WebKitObjectFit","MSObjectFit","OObjectFit","objectPosition","MozObjectPosition","WebKitObjectPosition","MSObjectPosition","OObjectPosition","offsetBlockEnd","MozOffsetBlockEnd","WebKitOffsetBlockEnd","MSOffsetBlockEnd","OOffsetBlockEnd","offsetBlockStart","MozOffsetBlockStart","WebKitOffsetBlockStart","MSOffsetBlockStart","OOffsetBlockStart","offsetInlineEnd","MozOffsetInlineEnd","WebKitOffsetInlineEnd","MSOffsetInlineEnd","OOffsetInlineEnd","offsetInlineStart","MozOffsetInlineStart","WebKitOffsetInlineStart","MSOffsetInlineStart","OOffsetInlineStart","opacity","MozOpacity","WebKitOpacity","MSOpacity","OOpacity","order","MozOrder","WebKitOrder","MSOrder","OOrder","orphans","MozOrphans","WebKitOrphans","MSOrphans","OOrphans","outline","MozOutline","WebKitOutline","MSOutline","OOutline","outlineColor","MozOutlineColor","WebKitOutlineColor","MSOutlineColor","OOutlineColor","outlineOffset","MozOutlineOffset","WebKitOutlineOffset","MSOutlineOffset","OOutlineOffset","outlineStyle","MozOutlineStyle","WebKitOutlineStyle","MSOutlineStyle","OOutlineStyle","outlineWidth","MozOutlineWidth","WebKitOutlineWidth","MSOutlineWidth","OOutlineWidth","overflow","MozOverflow","WebKitOverflow","MSOverflow","OOverflow","overflowWrap","MozOverflowWrap","WebKitOverflowWrap","MSOverflowWrap","OOverflowWrap","overflowX","MozOverflowX","WebKitOverflowX","MSOverflowX","OOverflowX","overflowY","MozOverflowY","WebKitOverflowY","MSOverflowY","OOverflowY","padding","MozPadding","WebKitPadding","MSPadding","OPadding","paddingBlockEnd","MozPaddingBlockEnd","WebKitPaddingBlockEnd","MSPaddingBlockEnd","OPaddingBlockEnd","paddingBlockStart","MozPaddingBlockStart","WebKitPaddingBlockStart","MSPaddingBlockStart","OPaddingBlockStart","paddingBottom","MozPaddingBottom","WebKitPaddingBottom","MSPaddingBottom","OPaddingBottom","paddingInlineEnd","MozPaddingInlineEnd","WebKitPaddingInlineEnd","MSPaddingInlineEnd","OPaddingInlineEnd","paddingInlineStart","MozPaddingInlineStart","WebKitPaddingInlineStart","MSPaddingInlineStart","OPaddingInlineStart","paddingLeft","MozPaddingLeft","WebKitPaddingLeft","MSPaddingLeft","OPaddingLeft","paddingRight","MozPaddingRight","WebKitPaddingRight","MSPaddingRight","OPaddingRight","paddingTop","MozPaddingTop","WebKitPaddingTop","MSPaddingTop","OPaddingTop","pageBreakAfter","MozPageBreakAfter","WebKitPageBreakAfter","MSPageBreakAfter","OPageBreakAfter","pageBreakBefore","MozPageBreakBefore","WebKitPageBreakBefore","MSPageBreakBefore","OPageBreakBefore","pageBreakInside","MozPageBreakInside","WebKitPageBreakInside","MSPageBreakInside","OPageBreakInside","pc","MozPc","WebKitPc","MSPc","OPc","perspective","MozPerspective","WebKitPerspective","MSPerspective","OPerspective","perspectiveOrigin","MozPerspectiveOrigin","WebKitPerspectiveOrigin","MSPerspectiveOrigin","OPerspectiveOrigin","pointerEvents","MozPointerEvents","WebKitPointerEvents","MSPointerEvents","OPointerEvents","position","MozPosition","WebKitPosition","MSPosition","OPosition","pt","MozPt","WebKitPt","MSPt","OPt","px","MozPx","WebKitPx","MSPx","OPx","q","MozQ","WebKitQ","MSQ","OQ","quotes","MozQuotes","WebKitQuotes","MSQuotes","OQuotes","rad","MozRad","WebKitRad","MSRad","ORad","rem","MozRem","WebKitRem","MSRem","ORem","resize","MozResize","WebKitResize","MSResize","OResize","revert","MozRevert","WebKitRevert","MSRevert","ORevert","right","MozRight","WebKitRight","MSRight","ORight","rubyAlign","MozRubyAlign","WebKitRubyAlign","MSRubyAlign","ORubyAlign","rubyMerge","MozRubyMerge","WebKitRubyMerge","MSRubyMerge","ORubyMerge","rubyPosition","MozRubyPosition","WebKitRubyPosition","MSRubyPosition","ORubyPosition","s","MozS","WebKitS","MSS","OS","scrollBehavior","MozScrollBehavior","WebKitScrollBehavior","MSScrollBehavior","OScrollBehavior","scrollSnapCoordinate","MozScrollSnapCoordinate","WebKitScrollSnapCoordinate","MSScrollSnapCoordinate","OScrollSnapCoordinate","scrollSnapDestination","MozScrollSnapDestination","WebKitScrollSnapDestination","MSScrollSnapDestination","OScrollSnapDestination","scrollSnapType","MozScrollSnapType","WebKitScrollSnapType","MSScrollSnapType","OScrollSnapType","shapeImageThreshold","MozShapeImageThreshold","WebKitShapeImageThreshold","MSShapeImageThreshold","OShapeImageThreshold","shapeMargin","MozShapeMargin","WebKitShapeMargin","MSShapeMargin","OShapeMargin","shapeOutside","MozShapeOutside","WebKitShapeOutside","MSShapeOutside","OShapeOutside","tabSize","MozTabSize","WebKitTabSize","MSTabSize","OTabSize","tableLayout","MozTableLayout","WebKitTableLayout","MSTableLayout","OTableLayout","textAlign","MozTextAlign","WebKitTextAlign","MSTextAlign","OTextAlign","textAlignLast","MozTextAlignLast","WebKitTextAlignLast","MSTextAlignLast","OTextAlignLast","textCombineUpright","MozTextCombineUpright","WebKitTextCombineUpright","MSTextCombineUpright","OTextCombineUpright","textDecoration","MozTextDecoration","WebKitTextDecoration","MSTextDecoration","OTextDecoration","textDecorationColor","MozTextDecorationColor","WebKitTextDecorationColor","MSTextDecorationColor","OTextDecorationColor","textDecorationLine","MozTextDecorationLine","WebKitTextDecorationLine","MSTextDecorationLine","OTextDecorationLine","textDecorationStyle","MozTextDecorationStyle","WebKitTextDecorationStyle","MSTextDecorationStyle","OTextDecorationStyle","textEmphasis","MozTextEmphasis","WebKitTextEmphasis","MSTextEmphasis","OTextEmphasis","textEmphasisColor","MozTextEmphasisColor","WebKitTextEmphasisColor","MSTextEmphasisColor","OTextEmphasisColor","textEmphasisPosition","MozTextEmphasisPosition","WebKitTextEmphasisPosition","MSTextEmphasisPosition","OTextEmphasisPosition","textEmphasisStyle","MozTextEmphasisStyle","WebKitTextEmphasisStyle","MSTextEmphasisStyle","OTextEmphasisStyle","textIndent","MozTextIndent","WebKitTextIndent","MSTextIndent","OTextIndent","textOrientation","MozTextOrientation","WebKitTextOrientation","MSTextOrientation","OTextOrientation","textOverflow","MozTextOverflow","WebKitTextOverflow","MSTextOverflow","OTextOverflow","textRendering","MozTextRendering","WebKitTextRendering","MSTextRendering","OTextRendering","textShadow","MozTextShadow","WebKitTextShadow","MSTextShadow","OTextShadow","textTransform","MozTextTransform","WebKitTextTransform","MSTextTransform","OTextTransform","textUnderlinePosition","MozTextUnderlinePosition","WebKitTextUnderlinePosition","MSTextUnderlinePosition","OTextUnderlinePosition","top","MozTop","WebKitTop","MSTop","OTop","touchAction","MozTouchAction","WebKitTouchAction","MSTouchAction","OTouchAction","transform","MozTransform","WebKitTransform","MSTransform","OTransform","transformBox","MozTransformBox","WebKitTransformBox","MSTransformBox","OTransformBox","transformOrigin","MozTransformOrigin","WebKitTransformOrigin","MSTransformOrigin","OTransformOrigin","transformStyle","MozTransformStyle","WebKitTransformStyle","MSTransformStyle","OTransformStyle","transition","MozTransition","WebKitTransition","MSTransition","OTransition","transitionDelay","MozTransitionDelay","WebKitTransitionDelay","MSTransitionDelay","OTransitionDelay","transitionDuration","MozTransitionDuration","WebKitTransitionDuration","MSTransitionDuration","OTransitionDuration","transitionProperty","MozTransitionProperty","WebKitTransitionProperty","MSTransitionProperty","OTransitionProperty","transitionTimingFunction","MozTransitionTimingFunction","WebKitTransitionTimingFunction","MSTransitionTimingFunction","OTransitionTimingFunction","turn","MozTurn","WebKitTurn","MSTurn","OTurn","unicodeBidi","MozUnicodeBidi","WebKitUnicodeBidi","MSUnicodeBidi","OUnicodeBidi","unset","MozUnset","WebKitUnset","MSUnset","OUnset","verticalAlign","MozVerticalAlign","WebKitVerticalAlign","MSVerticalAlign","OVerticalAlign","vh","MozVh","WebKitVh","MSVh","OVh","visibility","MozVisibility","WebKitVisibility","MSVisibility","OVisibility","vmax","MozVmax","WebKitVmax","MSVmax","OVmax","vmin","MozVmin","WebKitVmin","MSVmin","OVmin","vw","MozVw","WebKitVw","MSVw","OVw","whiteSpace","MozWhiteSpace","WebKitWhiteSpace","MSWhiteSpace","OWhiteSpace","widows","MozWidows","WebKitWidows","MSWidows","OWidows","width","MozWidth","WebKitWidth","MSWidth","OWidth","willChange","MozWillChange","WebKitWillChange","MSWillChange","OWillChange","wordBreak","MozWordBreak","WebKitWordBreak","MSWordBreak","OWordBreak","wordSpacing","MozWordSpacing","WebKitWordSpacing","MSWordSpacing","OWordSpacing","wordWrap","MozWordWrap","WebKitWordWrap","MSWordWrap","OWordWrap","writingMode","MozWritingMode","WebKitWritingMode","MSWritingMode","OWritingMode","zIndex","MozZIndex","WebKitZIndex","MSZIndex","OZIndex","fontSize","MozFontSize","WebKitFontSize","MSFontSize","OFontSize"]; -},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s=Object.assign||function(e){for(var t=1;t=0&&_.splice(t,1)}function s(e){var t=document.createElement("style");return t.type="text/css",o(e,t),t}function u(e){var t=document.createElement("link");return t.rel="stylesheet",o(e,t),t}function c(e,t){var n,r,i;if(t.singleton){var o=g++;n=y||(y=s(t)),r=l.bind(null,n,o,!1),i=l.bind(null,n,o,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=u(t),r=f.bind(null,n),i=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=s(t),r=p.bind(null,n),i=function(){a(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else i()}}function l(e,t,n,r){var i=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=b(t,i);else{var o=document.createTextNode(i),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(o,a[t]):e.appendChild(o)}}function p(e,t){var n=t.css,r=t.media;t.sourceMap;if(r&&e.setAttribute("media",r),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}function f(e,t){var n=t.css,r=(t.media,t.sourceMap);r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var i=new Blob([n],{type:"text/css"}),o=e.href;e.href=URL.createObjectURL(i),o&&URL.revokeObjectURL(o)}var h={},d=function(e){var t;return function(){return"undefined"==typeof t&&(t=e.apply(this,arguments)),t}},m=d(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),v=d(function(){return document.head||document.getElementsByTagName("head")[0]}),y=null,g=0,_=[];e.exports=function(e,t){t=t||{},"undefined"==typeof t.singleton&&(t.singleton=m()),"undefined"==typeof t.insertAt&&(t.insertAt="bottom");var n=i(e);return r(n,t),function(e){for(var o=[],a=0;a=400?(a.updateLoadingStatus("failed"),i.newThrownErr(new Error(t.statusText+" "+e))):(a.updateLoadingStatus("success"),a.updateSpec(t.text),void a.updateUrl(e))}var i=n.errActions,o=n.specSelectors,a=n.specActions,s=t.fetch;e=e||o.url(),a.updateLoadingStatus("loading"),s({url:e,loadSpec:!0,credentials:"same-origin",headers:{Accept:"application/json,*/*"}}).then(r,r)}},updateLoadingStatus:function(e){var t=[null,"loading","failed","success","failedConfig"];return t.indexOf(e)===-1&&console.error("Error: "+e+" is not one of "+(0,a.default)(t)),{type:"spec_update_loading_status",payload:e}}},r={spec_update_loading_status:function(e,t){return"string"==typeof t.payload?e.set("loadingStatus",t.payload):e}},i={loadingStatus:(0,s.createSelector)(function(e){return e||(0,u.Map)()},function(e){return e.get("loadingStatus")||null})};return{statePlugins:{spec:{actions:n,reducers:r,selectors:i}}}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(57),a=r(o);t.default=i;var s=n(430),u=n(168)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=function(e){function t(){return(0,s.default)(this,t),(0,p.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"getLayout",value:function(){var e=this.props,t=e.getComponent,n=e.layoutSelectors,r=n.current(),i=t(r,!0);return i?i:function(){return m.default.createElement("h1",null,' No layout defined for "',r,'" ')}}},{key:"render",value:function(){var e=this.getLayout();return m.default.createElement(e,null)}}]),t}(m.default.Component);t.default=v,v.propTypes={getComponent:d.PropTypes.func.isRequired,layoutSelectors:d.PropTypes.object.isRequired},v.defaultProps={}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=function(e){function t(){var e,n,r,i;(0,s.default)(this,t);for(var a=arguments.length,u=Array(a),c=0;c6?s-6:0),c=6;c5?c-5:0),p=5;p5?a-5:0),u=5;u key("+l[p]+")"].concat(s));if(h instanceof Error)return h}}return i(t)}function u(e){return a(e,"List",b.List.isList)}function c(e,t,n,r){function o(){for(var i=arguments.length,o=Array(i),u=0;u5?s-5:0),c=5;c5?c-5:0),p=5;p>",w={listOf:u,mapOf:l,orderedMapOf:p,setOf:f,orderedSetOf:h,stackOf:d,iterableOf:m,recordOf:v,shape:g,contains:g,mapContains:_,list:o("List",b.List.isList),map:o("Map",b.Map.isMap),orderedMap:o("OrderedMap",b.OrderedMap.isOrderedMap),set:o("Set",b.Set.isSet),orderedSet:o("OrderedSet",b.OrderedSet.isOrderedSet),stack:o("Stack",b.Stack.isStack),seq:o("Seq",b.Seq.isSeq),record:o("Record",function(e){return e instanceof b.Record}),iterable:o("Iterable",b.Iterable.isIterable)};e.exports=w},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(137),o=r(i),a=n(486),s=r(a),u=n(145),c=r(u),l=n(146),p=r(l),f=n(489),h=r(f),d=n(490),m=r(d),v=n(498),y=r(v),g=n(1015),_=r(g),b=function(e){function t(e,n){(0,c.default)(this,t);var r=(0,h.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,n));return r.onAuthChange=function(e){var t=e.name;r.setState((0,o.default)({},t,e))},r.submitAuth=function(e){e.preventDefault();var t=r.props.authActions;t.authorize(r.state)},r.logoutClick=function(e){e.preventDefault();var t=r.props,n=t.authActions,i=t.definitions,o=i.map(function(e,t){return t}).toArray();n.logout(o)},r.state={},r}return(0,m.default)(t,e),(0,p.default)(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.definitions,r=t.getComponent,i=t.authSelectors,o=t.errSelectors,a=r("apiKeyAuth"),s=r("basicAuth"),u=r("oauth2",!0),c=r("Button"),l=i.authorized(),p=n.filter(function(e,t){return!!l.get(t)}),f=n.filter(function(e){return"oauth2"!==e.get("type")}),h=n.filter(function(e){return"oauth2"===e.get("type")});return y.default.createElement("div",{className:"auth-container"},!!f.size&&y.default.createElement("form",{onSubmit:this.submitAuth},f.map(function(t,n){var i=t.get("type"),u=void 0;switch(i){case"apiKey":u=y.default.createElement(a,{key:n,schema:t,name:n,errSelectors:o,authorized:l,getComponent:r,onChange:e.onAuthChange});break;case"basic":u=y.default.createElement(s,{key:n,schema:t,name:n,errSelectors:o,authorized:l,getComponent:r,onChange:e.onAuthChange});break;default:u=y.default.createElement("div",{key:n},"Unknown security definition type ",i)}return y.default.createElement("div",{key:n+"-jump"},u)}).toArray(),y.default.createElement("div",{className:"auth-btn-wrapper"},f.size===p.size?y.default.createElement(c,{className:"btn modal-btn auth",onClick:this.logoutClick},"Logout"):y.default.createElement(c,{type:"submit",className:"btn modal-btn auth authorize"},"Authorize"))),h&&h.size?y.default.createElement("div",null,y.default.createElement("div",{className:"scope-def"},y.default.createElement("p",null,"Scopes are used to grant an application different levels of access to data on behalf of the end user. Each API may declare one or more scopes."),y.default.createElement("p",null,"API requires the following scopes. Select which ones you want to grant to Swagger UI.")),n.filter(function(e){return"oauth2"===e.get("type")}).map(function(e,t){return y.default.createElement("div",{key:t},y.default.createElement(u,{authorized:l,schema:e,name:t}))}).toArray()):null)}}]),t}(y.default.Component);b.propTypes={definitions:v.PropTypes.object.isRequired,getComponent:v.PropTypes.func.isRequired,authSelectors:v.PropTypes.object.isRequired,authActions:v.PropTypes.object.isRequired,specSelectors:v.PropTypes.object.isRequired},b.propTypes={errSelectors:v.PropTypes.object.isRequired,getComponent:v.PropTypes.func.isRequired,authSelectors:v.PropTypes.object.isRequired,specSelectors:v.PropTypes.object.isRequired,authActions:v.PropTypes.object.isRequired,definitions:_.default.iterable.isRequired},t.default=b},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=function(e){function t(){return(0,s.default)(this,t),(0,p.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props.error,t=e.get("level"),n=e.get("message"),r=e.get("source");return m.default.createElement("div",{className:"errors",style:{backgroundColor:"#ffeeee",color:"red",margin:"1em"}},m.default.createElement("b",{style:{textTransform:"capitalize",marginRight:"1em"}},r," ",t),m.default.createElement("span",null,n))}}]),t}(m.default.Component);v.propTypes={error:d.PropTypes.object.isRequired},t.default=v},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(141),o=r(i),a=n(486),s=r(a),u=n(145),c=r(u),l=n(146),p=r(l),f=n(489),h=r(f),d=n(490),m=r(d),v=n(498),y=r(v),g=function(e){function t(e,n){(0,c.default)(this,t);var r=(0,h.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,n));_.call(r);var i=r.props,o=i.name,a=i.schema,u=r.getValue();return r.state={name:o,schema:a,value:u},r}return(0,m.default)(t,e),(0,p.default)(t,[{key:"getValue",value:function(){var e=this.props,t=e.name,n=e.authorized;return n&&n.getIn([t,"value"])}},{key:"render",value:function(){var e=this.props,t=e.schema,n=e.getComponent,r=e.errSelectors,i=e.name,o=n("Input"),a=n("Row"),s=n("Col"),u=n("authError"),c=n("Markdown"),l=n("JumpToPath",!0),p=this.getValue(),f=r.allErrors().filter(function(e){return e.get("authId")===i});return y.default.createElement("div",null,y.default.createElement("h4",null,"Api key authorization",y.default.createElement(l,{path:["securityDefinitions",i]})),p&&y.default.createElement("h6",null,"Authorized"),y.default.createElement(a,null,y.default.createElement(c,{source:t.get("description")})),y.default.createElement(a,null,y.default.createElement("p",null,"Name: ",y.default.createElement("code",null,t.get("name")))),y.default.createElement(a,null,y.default.createElement("p",null,"In: ",y.default.createElement("code",null,t.get("in")))),y.default.createElement(a,null,y.default.createElement("label",null,"Value:"),p?y.default.createElement("code",null," ****** "):y.default.createElement(s,null,y.default.createElement(o,{type:"text",onChange:this.onChange}))),f.valueSeq().map(function(e,t){return y.default.createElement(u,{error:e,key:t})}))}}]),t}(y.default.Component);g.propTypes={authorized:v.PropTypes.object,getComponent:v.PropTypes.func.isRequired,errSelectors:v.PropTypes.object.isRequired,schema:v.PropTypes.object.isRequired,name:v.PropTypes.string.isRequired,onChange:v.PropTypes.func};var _=function(){var e=this;this.onChange=function(t){var n=e.props.onChange,r=t.target.value,i=(0,o.default)({},e.state,{value:r});e.setState(i),n(i)}};t.default=g},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=n(1015),y=r(v),g=function(e){function t(e,n){(0,s.default)(this,t);var r=(0,p.default)(this,(t.__proto__||(0,o.default)(t)).call(this,e,n));_.call(r);var i=r.props,a=i.schema,u=i.name,c=r.getValue(),l=c.username;return r.state={name:u,schema:a,value:l?{username:l}:{}},r}return(0,h.default)(t,e),(0,c.default)(t,[{key:"getValue",value:function(){var e=this.props,t=e.authorized,n=e.name;return t&&t.getIn([n,"value"])||{}}},{key:"render",value:function(){var e=this.props,t=e.schema,n=e.getComponent,r=e.name,i=e.errSelectors,o=n("Input"),a=n("Row"),s=n("Col"),u=n("authError"),c=n("JumpToPath",!0),l=n("Markdown"),p=this.getValue().username,f=i.allErrors().filter(function(e){return e.get("authId")===r});return m.default.createElement("div",null,m.default.createElement("h4",null,"Basic authorization",m.default.createElement(c,{path:["securityDefinitions",r]})),p&&m.default.createElement("h6",null,"Authorized"),m.default.createElement(a,null,m.default.createElement(l,{source:t.get("description")})),m.default.createElement(a,null,m.default.createElement("label",null,"Username:"),p?m.default.createElement("code",null," ",p," "):m.default.createElement(s,null,m.default.createElement(o,{type:"text",required:"required",name:"username",onChange:this.onChange}))),m.default.createElement(a,null,m.default.createElement("label",null,"Password:"),p?m.default.createElement("code",null," ****** "):m.default.createElement(s,null,m.default.createElement(o,{required:"required",autoComplete:"new-password",name:"password",type:"password",onChange:this.onChange}))),f.valueSeq().map(function(e,t){return m.default.createElement(u,{error:e,key:t})}))}}]),t}(m.default.Component);g.propTypes={authorized:d.PropTypes.object,getComponent:d.PropTypes.func.isRequired,schema:d.PropTypes.object.isRequired,onChange:d.PropTypes.func.isRequired},g.propTypes={name:d.PropTypes.string.isRequired,errSelectors:d.PropTypes.object.isRequired,getComponent:d.PropTypes.func.isRequired,onChange:d.PropTypes.func,schema:y.default.map,authorized:y.default.map};var _=function(){var e=this;this.onChange=function(t){var n=e.props.onChange,r=t.target,i=r.value,o=r.name,a=e.state.value;a[o]=i,e.setState({value:a}),n(e.state)}};t.default=g},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(137),o=r(i),a=n(486),s=r(a),u=n(145),c=r(u),l=n(146),p=r(l),f=n(489),h=r(f),d=n(490),m=r(d),v=n(498),y=r(v),g=n(1021),_=r(g),b="implicit",x="accessCode",w="password",k="application",S=function(e){function t(e,n){(0,c.default)(this,t);var r=(0,h.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,n));E.call(r);var i=r.props,o=i.name,a=i.schema,u=i.authorized,l=i.authSelectors,p=u&&u.get(o),f=l.getConfigs()||{},d=p&&p.get("username")||"",m=p&&p.get("clientId")||f.clientId||"",v=p&&p.get("clientSecret")||f.clientSecret||"",y=p&&p.get("passwordType")||"request-body";return r.state={appName:f.appName,name:o,schema:a,scopes:[],clientId:m,clientSecret:v,username:d,password:"",passwordType:y},r}return(0,m.default)(t,e),(0,p.default)(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.schema,r=t.getComponent,i=t.authSelectors,o=t.errSelectors,a=t.name,s=r("Input"),u=r("Row"),c=r("Col"),l=r("Button"),p=r("authError"),f=r("JumpToPath",!0),h=r("Markdown"),d=n.get("flow"),m=n.get("allowedScopes")||n.get("scopes"),v=i.authorized().get(a),g=!!v,_=o.allErrors().filter(function(e){return e.get("authId")===a}),S=!_.filter(function(e){return"validation"===e.get("source")}).size,E=n.get("description");return y.default.createElement("div",null,y.default.createElement("h4",null,"OAuth2.0 ",y.default.createElement(f,{path:["securityDefinitions",a]})),this.state.appName?y.default.createElement("h5",null,"Application: ",this.state.appName," "):null,E&&y.default.createElement(h,{source:n.get("description")}),g&&y.default.createElement("h6",null,"Authorized"),(d===b||d===x)&&y.default.createElement("p",null,"Authorization URL: ",y.default.createElement("code",null,n.get("authorizationUrl"))),(d===w||d===x||d===k)&&y.default.createElement("p",null,"Token URL:",y.default.createElement("code",null," ",n.get("tokenUrl"))),y.default.createElement("p",{className:"flow"},"Flow: ",y.default.createElement("code",null,n.get("flow"))),d!==w?null:y.default.createElement(u,null,y.default.createElement(u,null,y.default.createElement("label",{htmlFor:"oauth_username"},"username:"),g?y.default.createElement("code",null," ",this.state.username," "):y.default.createElement(c,{tablet:10,desktop:10},y.default.createElement("input",{id:"oauth_username",type:"text","data-name":"username",onChange:this.onInputChange}))),y.default.createElement(u,null,y.default.createElement("label",{htmlFor:"oauth_password"},"password:"),g?y.default.createElement("code",null," ****** "):y.default.createElement(c,{tablet:10,desktop:10},y.default.createElement("input",{id:"oauth_password",type:"password","data-name":"password",onChange:this.onInputChange}))),y.default.createElement(u,null,y.default.createElement("label",{htmlFor:"password_type"},"type:"),g?y.default.createElement("code",null," ",this.state.passwordType," "):y.default.createElement(c,{tablet:10,desktop:10},y.default.createElement("select",{id:"password_type","data-name":"passwordType",onChange:this.onInputChange},y.default.createElement("option",{value:"request-body"},"Request body"),y.default.createElement("option",{value:"basic"},"Basic auth"),y.default.createElement("option",{value:"query"},"Query parameters"))))),(d===k||d===b||d===x||d===w&&"basic"!==this.state.passwordType)&&(!g||g&&this.state.clientId)&&y.default.createElement(u,null,y.default.createElement("label",{htmlFor:"client_id"},"client_id:"),g?y.default.createElement("code",null," ****** "):y.default.createElement(c,{tablet:10,desktop:10},y.default.createElement("input",{id:"client_id",type:"text",required:d===w,value:this.state.clientId,"data-name":"clientId",onChange:this.onInputChange}))),(d===k||d===x||d===w&&"basic"!==this.state.passwordType)&&y.default.createElement(u,null,y.default.createElement("label",{htmlFor:"client_secret"},"client_secret:"),g?y.default.createElement("code",null," ****** "):y.default.createElement(c,{tablet:10,desktop:10},y.default.createElement("input",{id:"client_secret",value:this.state.clientSecret,type:"text","data-name":"clientSecret",onChange:this.onInputChange}))),!g&&m&&m.size?y.default.createElement("div",{className:"scopes"},y.default.createElement("h2",null,"Scopes:"),m.map(function(t,n){return y.default.createElement(u,{key:n},y.default.createElement("div",{className:"checkbox"},y.default.createElement(s,{"data-value":n,id:n+"-checkbox-"+e.state.name,disabled:g,type:"checkbox",onChange:e.onScopeChange}),y.default.createElement("label",{htmlFor:n+"-checkbox-"+e.state.name},y.default.createElement("span",{className:"item"}),y.default.createElement("div",{className:"text"},y.default.createElement("p",{className:"name" -},n),y.default.createElement("p",{className:"description"},t)))))}).toArray()):null,_.valueSeq().map(function(e,t){return y.default.createElement(p,{error:e,key:t})}),y.default.createElement("div",{className:"auth-btn-wrapper"},S&&(g?y.default.createElement(l,{className:"btn modal-btn auth authorize",onClick:this.logout},"Logout"):y.default.createElement(l,{className:"btn modal-btn auth authorize",onClick:this.authorize},"Authorize"))))}}]),t}(y.default.Component);S.propTypes={name:v.PropTypes.string,authorized:v.PropTypes.object,getComponent:v.PropTypes.func.isRequired,schema:v.PropTypes.object.isRequired,authSelectors:v.PropTypes.object.isRequired,authActions:v.PropTypes.object.isRequired,errSelectors:v.PropTypes.object.isRequired,errActions:v.PropTypes.object.isRequired,getConfigs:v.PropTypes.any};var E=function(){var e=this;this.authorize=function(){var t=e.props,n=t.authActions,r=t.errActions,i=t.getConfigs,o=t.authSelectors,a=i(),s=o.getConfigs();r.clear({authId:name,type:"auth",source:"auth"}),(0,_.default)({auth:e.state,authActions:n,errActions:r,configs:a,authConfigs:s})},this.onScopeChange=function(t){var n=t.target,r=n.checked,i=n.dataset.value;if(r&&e.state.scopes.indexOf(i)===-1){var o=e.state.scopes.concat([i]);e.setState({scopes:o})}else!r&&e.state.scopes.indexOf(i)>-1&&e.setState({scopes:e.state.scopes.filter(function(e){return e!==i})})},this.onInputChange=function(t){var n=t.target,r=n.dataset.name,i=n.value,a=(0,o.default)({},r,i);e.setState(a)},this.logout=function(t){t.preventDefault();var n=e.props,r=n.authActions,i=n.errActions,o=n.name;i.clear({authId:o,type:"auth",source:"auth"}),r.logout([o])}};t.default=S},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=e.auth,n=e.authActions,r=e.errActions,i=e.configs,o=e.authConfigs,u=void 0===o?{}:o,c=t.schema,l=t.scopes,p=t.name,f=t.clientId,h=c.get("flow"),d=[];switch(h){case"password":return void n.authorizePassword(t);case"application":return void n.authorizeApplication(t);case"accessCode":d.push("response_type=code");break;case"implicit":d.push("response_type=token")}"string"==typeof f&&d.push("client_id="+encodeURIComponent(f));var m=i.oauth2RedirectUrl;if("undefined"==typeof m)return void r.newAuthErr({authId:p,source:"validation",level:"error",message:"oauth2RedirectUri configuration is not passed. Oauth2 authorization cannot be performed."});if(d.push("redirect_uri="+encodeURIComponent(m)),Array.isArray(l)&&0=0||this.state.url.indexOf("127.0.0.1")>=0?null:_.default.createElement("span",{style:{float:"right"}},_.default.createElement("a",{target:"_blank",href:this.state.validatorUrl+"/debug?url="+this.state.url},_.default.createElement(x,{src:this.state.validatorUrl+"?url="+this.state.url,alt:"Online validator badge"})))}}]),t}(_.default.Component);b.propTypes={getComponent:g.PropTypes.func.isRequired,getConfigs:g.PropTypes.func.isRequired,specSelectors:g.PropTypes.object.isRequired},t.default=b;var x=function(e){function t(e){(0,p.default)(this,t);var n=(0,m.default)(this,(t.__proto__||(0,c.default)(t)).call(this,e));return n.state={loaded:!1,error:!1},n}return(0,y.default)(t,e),(0,h.default)(t,[{key:"componentDidMount",value:function(){var e=this,t=new Image;t.onload=function(){e.setState({loaded:!0})},t.onerror=function(){e.setState({error:!0})},t.src=this.props.src}},{key:"componentWillReceiveProps",value:function(e){var t=this;if(e.src!==this.props.src){var n=new Image;n.onload=function(){t.setState({loaded:!0})},n.onerror=function(){t.setState({error:!0})},n.src=e.src}}},{key:"render",value:function(){return this.state.error?_.default.createElement("img",{alt:"Error"}):this.state.loaded?_.default.createElement("img",{src:this.props.src,alt:this.props.alt}):_.default.createElement("img",{alt:"Loading..."})}}]),t}(_.default.Component);x.propTypes={src:g.PropTypes.string,alt:g.PropTypes.string}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(446),o=r(i),a=n(486),s=r(a),u=n(145),c=r(u),l=n(146),p=r(l),f=n(489),h=r(f),d=n(490),m=r(d),v=n(498),y=r(v),g=function(e){function t(){return(0,c.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,m.default)(t,e),(0,p.default)(t,[{key:"render",value:function(){var e=this.props,t=e.specSelectors,n=e.specActions,r=e.getComponent,i=e.layoutSelectors,a=e.layoutActions,s=e.authActions,u=e.authSelectors,c=e.getConfigs,l=e.fn,p=t.taggedOperations(),f=r("operation"),h=r("Collapse"),d=i.showSummary(),m=c(),v=m.docExpansion,g=m.displayOperationId;return y.default.createElement("div",null,p.map(function(e,p){var m=e.get("operations"),_=e.getIn(["tagDetails","description"],null),b=["operations-tag",p],x=i.isShown(b,"full"===v||"list"===v);return y.default.createElement("div",{className:x?"opblock-tag-section is-open":"opblock-tag-section",key:"operation-"+p},y.default.createElement("h4",{onClick:function(){return a.show(b,!x)},className:_?"opblock-tag":"opblock-tag no-desc"},y.default.createElement("span",null,p),_?y.default.createElement("small",null,_):null,y.default.createElement("button",{className:"expand-operation",title:"Expand operation",onClick:function(){return a.show(b,!x)}},y.default.createElement("svg",{className:"arrow",width:"20",height:"20"},y.default.createElement("use",{xlinkHref:x?"#large-arrow-down":"#large-arrow"})))),y.default.createElement(h,{isOpened:x},m.map(function(e){var h=["operations",e.get("id"),p],m=e.get("path",""),v=e.get("method",""),_="paths."+m+"."+v,b=t.allowTryItOutFor(e.get("path"),e.get("method")),x=t.responseFor(e.get("path"),e.get("method")),w=t.requestFor(e.get("path"),e.get("method"));return y.default.createElement(f,(0,o.default)({},e.toObject(),{isShownKey:h,jumpToKey:_,showSummary:d,key:h,response:x,request:w,allowTryItOut:b,displayOperationId:g,specActions:n,specSelectors:t,layoutActions:a,layoutSelectors:i,authActions:s,authSelectors:u,getComponent:r,fn:l,getConfigs:c}))}).toArray()))}).toArray(),p.size<1?y.default.createElement("h3",null," No operations defined in spec! "):null)}}]),t}(y.default.Component);g.propTypes={specSelectors:v.PropTypes.object.isRequired,specActions:v.PropTypes.object.isRequired,getComponent:v.PropTypes.func.isRequired,layoutSelectors:v.PropTypes.object.isRequired,layoutActions:v.PropTypes.object.isRequired,authActions:v.PropTypes.object.isRequired,authSelectors:v.PropTypes.object.isRequired,getConfigs:v.PropTypes.func.isRequired},t.default=g,g.propTypes={layoutActions:v.PropTypes.object.isRequired,specSelectors:v.PropTypes.object.isRequired,specActions:v.PropTypes.object.isRequired,layoutSelectors:v.PropTypes.object.isRequired,getComponent:v.PropTypes.func.isRequired,fn:v.PropTypes.object.isRequired}},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(486),a=i(o),s=n(145),u=i(s),c=n(146),l=i(c),p=n(489),f=i(p),h=n(490),d=i(h),m=n(498),v=i(m),y=n(1027),g=i(y),_=n(183),b=n(1029),x=r(b),w=function(e){function t(e,n){(0,u.default)(this,t);var r=(0,f.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e,n));return r.toggleShown=function(){var e=r.props,t=e.layoutActions,n=e.isShownKey;t.show(n,!r.isShown())},r.isShown=function(){var e=r.props,t=e.layoutSelectors,n=e.isShownKey,i=e.getConfigs,o=i(),a=o.docExpansion;return t.isShown(n,"full"===a)},r.onTryoutClick=function(){r.setState({tryItOutEnabled:!r.state.tryItOutEnabled})},r.onCancelClick=function(){var e=r.props,t=e.specActions,n=e.path,i=e.method;r.setState({tryItOutEnabled:!r.state.tryItOutEnabled}),t.clearValidateParams([n,i])},r.onExecute=function(){r.setState({executeInProgress:!0})},r.state={tryItOutEnabled:!1},r}return(0,d.default)(t,e),(0,l.default)(t,[{key:"componentWillReceiveProps",value:function(e){var t="application/json",n=e.specActions,r=e.path,i=e.method,o=e.operation,a=o.get("produces_value"),s=o.get("produces"),u=o.get("consumes"),c=o.get("consumes_value");e.response!==this.props.response&&this.setState({executeInProgress:!1}),void 0===a&&(a=s&&s.size?s.first():t,n.changeProducesValue([r,i],a)),void 0===c&&(c=u&&u.size?u.first():t,n.changeConsumesValue([r,i],c))}},{key:"shouldComponentUpdate",value:function(e,t){return(0,g.default)(this,e,t)}},{key:"render",value:function(){var e=this.props,t=e.isShownKey,n=e.jumpToKey,r=e.path,i=e.method,o=e.operation,a=e.showSummary,s=e.response,u=e.request,c=e.allowTryItOut,l=e.displayOperationId,p=e.fn,f=e.getComponent,h=e.specActions,d=e.specSelectors,m=e.authActions,y=e.authSelectors,g=o.get("summary"),b=o.get("description"),x=o.get("deprecated"),w=o.get("externalDocs"),k=o.get("responses"),S=o.get("security")||d.security(),E=o.get("produces"),C=o.get("schemes"),A=(0,_.getList)(o,["parameters"]),T=o.get("__originalOperationId"),D=f("responses"),M=f("parameters"),O=f("execute"),P=f("clear"),I=f("authorizeOperationBtn"),N=f("JumpToPath",!0),R=f("Collapse"),j=f("Markdown"),F=f("schemes");if(s&&s.size>0){var B=!k.get(String(s.get("status")));s=s.set("notDocumented",B)}var L=this.state.tryItOutEnabled,z=this.isShown(),q=[r,i];return v.default.createElement("div",{className:x?"opblock opblock-deprecated":z?"opblock opblock-"+i+" is-open":"opblock opblock-"+i,id:t},v.default.createElement("div",{className:"opblock-summary opblock-summary-"+i,onClick:this.toggleShown},v.default.createElement("span",{className:"opblock-summary-method"},i.toUpperCase()),v.default.createElement("span",{className:x?"opblock-summary-path__deprecated":"opblock-summary-path"},v.default.createElement("span",null,r),v.default.createElement(N,{path:n})),a?v.default.createElement("div",{className:"opblock-summary-description"},g):null,l&&T?v.default.createElement("span",{className:"opblock-summary-operation-id"},T):null,S&&S.count()?v.default.createElement(I,{authActions:m,security:S,authSelectors:y}):null),v.default.createElement(R,{isOpened:z,animated:!0},v.default.createElement("div",{className:"opblock-body"},x&&v.default.createElement("h4",{className:"opblock-title_normal"}," Warning: Deprecated"),b&&v.default.createElement("div",{className:"opblock-description-wrapper"},v.default.createElement("div",{className:"opblock-description"},v.default.createElement(j,{source:b}))),w&&w.get("url")?v.default.createElement("div",{className:"opblock-external-docs-wrapper"},v.default.createElement("h4",{className:"opblock-title_normal"},"Find more details"),v.default.createElement("div",{className:"opblock-external-docs"},v.default.createElement("span",{className:"opblock-external-docs__description"},w.get("description")),v.default.createElement("a",{className:"opblock-external-docs__link",href:w.get("url")},w.get("url")))):null,v.default.createElement(M,{parameters:A,onChangeKey:q,onTryoutClick:this.onTryoutClick,onCancelClick:this.onCancelClick,tryItOutEnabled:L,allowTryItOut:c,fn:p,getComponent:f,specActions:h,specSelectors:d,pathMethod:[r,i]}),L&&c&&C&&C.size?v.default.createElement("div",{className:"opblock-schemes"},v.default.createElement(F,{schemes:C,path:r,method:i,specActions:h})):null,v.default.createElement("div",{className:L&&s&&c?"btn-group":"execute-wrapper"},L&&c?v.default.createElement(O,{getComponent:f,operation:o,specActions:h,specSelectors:d,path:r,method:i,onExecute:this.onExecute}):null,L&&s&&c?v.default.createElement(P,{onClick:this.onClearClick,specActions:h,path:r,method:i}):null),this.state.executeInProgress?v.default.createElement("div",{className:"loading-container"},v.default.createElement("div",{className:"loading"})):null,k?v.default.createElement(D,{responses:k,request:u,tryItOutResponse:s,getComponent:f,specSelectors:d,specActions:h,produces:E,producesValue:o.get("produces_value"),pathMethod:[r,i],fn:p}):null)))}}]),t}(v.default.Component);w.propTypes={path:m.PropTypes.string.isRequired,method:m.PropTypes.string.isRequired,operation:m.PropTypes.object.isRequired,showSummary:m.PropTypes.bool,isShownKey:x.arrayOrString.isRequired,jumpToKey:x.arrayOrString.isRequired,allowTryItOut:m.PropTypes.bool,displayOperationId:m.PropTypes.bool,response:m.PropTypes.object,request:m.PropTypes.object,getComponent:m.PropTypes.func.isRequired,authActions:m.PropTypes.object,authSelectors:m.PropTypes.object,specActions:m.PropTypes.object.isRequired,specSelectors:m.PropTypes.object.isRequired,layoutActions:m.PropTypes.object.isRequired,layoutSelectors:m.PropTypes.object.isRequired,fn:m.PropTypes.object.isRequired,getConfigs:m.PropTypes.func.isRequired},w.defaultProps={showSummary:!0,response:null,allowTryItOut:!0,displayOperationId:!1},t.default=w},function(e,t,n){e.exports=n(1028)},function(e,t,n){"use strict";function r(e,t,n){return!i(e.props,t)||!i(e.state,n)}var i=n(613);e.exports=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.objectWithFuncs=t.arrayOrString=void 0;var r=n(498),i=function(e,t){return r.PropTypes.shape(e.reduce(function(e,n){return e[n]=t,e},{}))};t.arrayOrString=r.PropTypes.oneOfType([r.PropTypes.arrayOf(r.PropTypes.string),r.PropTypes.string]),t.objectWithFuncs=function(e){return i(e,r.PropTypes.func.isRequired)}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=n(183),y=function(e){function t(){return(0,s.default)(this,t),(0,p.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"componentDidMount",value:function(){(0,v.highlight)(this.refs.el)}},{key:"componentDidUpdate",value:function(){(0,v.highlight)(this.refs.el)}},{key:"render",value:function(){var e=this.props,t=e.value,n=e.className;return n=n||"",m.default.createElement("pre",{ref:"el",className:n+" microlight"},t)}}]),t}(d.Component);y.propTypes={value:d.PropTypes.string.isRequired,className:d.PropTypes.string},t.default=y},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(184),o=r(i),a=n(486),s=r(a),u=n(145),c=r(u),l=n(146),p=r(l),f=n(489),h=r(f),d=n(490),m=r(d),v=n(498),y=r(v),g=n(168),_=n(183),b=function(e){function t(){var e,n,r,i;(0,c.default)(this,t);for(var o=arguments.length,a=Array(o),u=0;u1&&(_=w[1])}l=y.default.createElement("div",null,y.default.createElement("a",{href:m,download:_},"Download file"))}else l=y.default.createElement("pre",null,"Download headers detected but your browser does not support downloading binary via XHR (Blob).")}else l="string"==typeof t?y.default.createElement(u,{value:t}):y.default.createElement("div",null,"Unknown response type");return l?y.default.createElement("div",null,y.default.createElement("h5",null,"Response body"),l):null}}]),t}(y.default.Component);x.propTypes={content:v.PropTypes.any.isRequired,contentType:v.PropTypes.string.isRequired,getComponent:v.PropTypes.func.isRequired,headers:v.PropTypes.object,url:v.PropTypes.string},t.default=x},function(e,t,n){var r=n(203),i=r(function(e,t,n){return e+(n?" ":"")+t.toLowerCase()});e.exports=i},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=n(1015),y=r(v),g=n(168),_=r(g),b=function(e,t){return e.valueSeq().filter(_.default.Map.isMap).map(t)},x=function(e){function t(){var e,n,r,i;(0,s.default)(this,t);for(var a=arguments.length,u=Array(a),c=0;c=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t-1)return this.renderFixed();var m=this.renderStatic,v=this.state.height,y=parseFloat(v).toFixed(1);v>-1&&m&&(this.renderStatic=!1);var g=s.default.createElement(p.default,{onHeightReady:this.onHeightReady},a);if(m){var _=n?{height:"auto"}:{overflow:"hidden",height:0};return!n&&v>-1?l?s.default.createElement("div",o({style:o({height:0,overflow:"hidden"},r)},d),g):null:s.default.createElement("div",o({style:o({},_,r)},d),g)}return s.default.createElement(c.Motion,{defaultStyle:{height:Math.max(0,v)},onRest:f,style:{height:this.getMotionHeight(v)}},function(t){if(e.height=h(t.height),!n&&"0.0"===e.height)return l?s.default.createElement("div",o({style:o({height:0,overflow:"hidden"},r)},d),g):null;var i=n&&e.height===y?{height:"auto"}:{height:t.height,overflow:"hidden"};return s.default.createElement("div",o({style:o({},i,r)},d),g)})}});t.default=d},function(e,t,n){"use strict";var r=n(1028),i={shouldComponentUpdate:function(e,t){return r(this,e,t)}};e.exports=i},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e.default:e}t.__esModule=!0;var i=n(1044);t.Motion=r(i);var o=n(1052);t.StaggeredMotion=r(o);var a=n(1053);t.TransitionMotion=r(a);var s=n(1055);t.spring=r(s);var u=n(1056);t.presets=r(u);var c=n(1057);t.reorderKeys=r(c)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t10*_&&(e.accumulatedTime=0),0===e.accumulatedTime)return e.animationID=null,void e.startAnimationIfNecessary();var i=(e.accumulatedTime-Math.floor(e.accumulatedTime/_)*_)/_,o=Math.floor(e.accumulatedTime/_),a={},s={},u={},c={};for(var p in t)if(t.hasOwnProperty(p)){var h=t[p];if("number"==typeof h)u[p]=h,c[p]=0,a[p]=h,s[p]=0;else{for(var d=e.state.lastIdealStyle[p],m=e.state.lastIdealVelocity[p],y=0;y10*b&&(e.accumulatedTime=0),0===e.accumulatedTime)return e.animationID=null,void e.startAnimationIfNecessary();for(var o=(e.accumulatedTime-Math.floor(e.accumulatedTime/b)*b)/b,a=Math.floor(e.accumulatedTime/b),s=[],u=[],c=[],l=[],f=0;f10*S&&(e.accumulatedTime=0),0===e.accumulatedTime)return e.animationID=null,void e.startAnimationIfNecessary();for(var u=(e.accumulatedTime-Math.floor(e.accumulatedTime/S)*S)/S,c=Math.floor(e.accumulatedTime/S),l=a(e.props.willEnter,e.props.willLeave,e.state.mergedPropsStyles,n,e.state.currentStyles,e.state.currentVelocities,e.state.lastIdealStyles,e.state.lastIdealVelocities),p=l[0],f=l[1],d=l[2],m=l[3],v=l[4],g=0;gr[l])return-1;if(i>o[l]&&ur[l])return 1;if(a>o[l]&&s=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;tl,collapsedContent:_},x.default.createElement("span",{className:"brace-open object"},E),r?x.default.createElement(g,{name:n}):null,x.default.createElement("span",{className:"inner-object"},x.default.createElement("table",{className:"model",style:{marginLeft:"2em"}},x.default.createElement("tbody",null,f?x.default.createElement("tr",{style:{color:"#999",fontStyle:"italic"}},x.default.createElement("td",null,"description:"),x.default.createElement("td",null,x.default.createElement(y,{source:f}))):null,h&&h.size?h.entrySeq().map(function(e){var t=(0,s.default)(e,2),r=t[0],c=t[1],l=S.List.isList(v)&&v.contains(r),p={verticalAlign:"top",paddingRight:"0.2em"};return l&&(p.fontWeight="bold"),x.default.createElement("tr",{key:r},x.default.createElement("td",{style:p},r,":"),x.default.createElement("td",{style:{verticalAlign:"top"}},x.default.createElement(P,(0,o.default)({key:"object-"+n+"-"+r+"_"+c},u,{required:l,getComponent:i,schema:c,depth:a+1}))))}).toArray():null,d&&d.size?x.default.createElement("tr",null,x.default.createElement("td",null,"< * >:"),x.default.createElement("td",null,x.default.createElement(P,(0,o.default)({},u,{required:!1,getComponent:i,schema:d,depth:a+1})))):null))),x.default.createElement("span",{className:"brace-close"},C)))}}]),t}(b.Component);D.propTypes={schema:b.PropTypes.object.isRequired,getComponent:b.PropTypes.func.isRequired,specSelectors:b.PropTypes.object.isRequired,name:b.PropTypes.string,isRef:b.PropTypes.bool,expandDepth:b.PropTypes.number,depth:b.PropTypes.number};var M=function(e){function t(){return(0,h.default)(this,t),(0,y.default)(this,(t.__proto__||(0,p.default)(t)).apply(this,arguments))}return(0,_.default)(t,e),(0,m.default)(t,[{key:"render",value:function(){var e=this.props,t=e.schema,n=e.getComponent,r=e.required;if(!t||!t.get)return x.default.createElement("div",null);var i=t.get("type"),o=t.get("format"),a=t.get("xml"),u=t.get("enum"),c=t.get("description"),l=t.filter(function(e,t){return["enum","type","format","description","$$ref"].indexOf(t)===-1}),p=r?{fontWeight:"bold"}:{},f=n("Markdown");return x.default.createElement("span",{className:"prop"},x.default.createElement("span",{className:"prop-type",style:p},i)," ",r&&x.default.createElement("span",{style:{color:"red"}},"*"),o&&x.default.createElement("span",{className:"prop-format"},"($",o,")"),l.size?l.entrySeq().map(function(e){var t=(0,s.default)(e,2),n=t[0],r=t[1];return x.default.createElement("span",{key:n+"-"+r,style:A},x.default.createElement("br",null),n,": ",String(r))}):null,c?x.default.createElement(f,{source:c}):null,a&&a.size?x.default.createElement("span",null,x.default.createElement("br",null),x.default.createElement("span",{style:A},"xml:"),a.entrySeq().map(function(e){var t=(0,s.default)(e,2),n=t[0],r=t[1];return x.default.createElement("span",{key:n+"-"+r,style:A},x.default.createElement("br",null),"   ",n,": ",String(r))}).toArray()):null,u&&x.default.createElement(T,{value:u}))}}]),t}(b.Component);M.propTypes={schema:b.PropTypes.object.isRequired,getComponent:b.PropTypes.func.isRequired,required:b.PropTypes.bool};var O=function(e){function t(){return(0,h.default)(this,t),(0,y.default)(this,(t.__proto__||(0,p.default)(t)).apply(this,arguments))}return(0,_.default)(t,e),(0,m.default)(t,[{key:"render",value:function(){var e=this.props,t=e.required,n=e.schema,r=e.depth,i=e.expandDepth,a=n.get("items"),u=n.filter(function(e,t){return["type","items","$$ref"].indexOf(t)===-1});return x.default.createElement("span",{className:"model"},x.default.createElement("span",{className:"model-title"},x.default.createElement("span",{className:"model-title__text"},n.get("title"))),x.default.createElement(N,{collapsed:r>i,collapsedContent:"[...]"},"[",x.default.createElement("span",null,x.default.createElement(P,(0,o.default)({},this.props,{schema:a,required:!1}))),"]",u.size?x.default.createElement("span",null,u.entrySeq().map(function(e){var t=(0,s.default)(e,2),n=t[0],r=t[1];return x.default.createElement("span",{key:n+"-"+r,style:A},x.default.createElement("br",null),n+":",String(r))}),x.default.createElement("br",null)):null),t&&x.default.createElement("span",{style:{color:"red"}},"*"))}}]),t}(b.Component);O.propTypes={schema:b.PropTypes.object.isRequired,getComponent:b.PropTypes.func.isRequired,specSelectors:b.PropTypes.object.isRequired,name:b.PropTypes.string,required:b.PropTypes.bool,expandDepth:b.PropTypes.number,depth:b.PropTypes.number};var P=function(e){function t(){var e,n,r,i;(0,h.default)(this,t);for(var o=arguments.length,a=Array(o),s=0;s=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!==(65535&e)&&65534!==(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function c(e){if(e>65535){e-=65536;var t=55296+(e>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}function l(e,t){var n=0;return o(g,t)?g[t]:35===t.charCodeAt(0)&&y.test(t)&&(n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10),u(n))?c(n):e}function p(e){return e.indexOf("&")<0?e:e.replace(v,l)}function f(e){return x[e]}function h(e){return _.test(e)?e.replace(b,f):e}var d=Object.prototype.hasOwnProperty,m=/\\([\\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g,v=/&([a-z#][a-z0-9]{1,31});/gi,y=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,g=n(1082),_=/[&<>"]/,b=/[&<>"]/g,x={"&":"&","<":"<",">":">",'"':"""};t.assign=a,t.isString=i,t.has=o,t.unescapeMd=s,t.isValidEntityCode=u,t.fromCodePoint=c,t.replaceEntities=p,t.escapeHtml=h},function(e,t){"use strict";e.exports={Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",AMP:"&",amp:"&",And:"⩓",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",ap:"≈",apacir:"⩯",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",Barwed:"⌆",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",Because:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxDL:"╗",boxDl:"╖",boxdL:"╕",boxdl:"┐",boxDR:"╔",boxDr:"╓",boxdR:"╒",boxdr:"┌",boxH:"═",boxh:"─",boxHD:"╦",boxHd:"╤",boxhD:"╥",boxhd:"┬",boxHU:"╩",boxHu:"╧",boxhU:"╨",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxUL:"╝",boxUl:"╜",boxuL:"╛",boxul:"┘",boxUR:"╚",boxUr:"╙",boxuR:"╘",boxur:"└",boxV:"║",boxv:"│",boxVH:"╬",boxVh:"╫",boxvH:"╪",boxvh:"┼",boxVL:"╣",boxVl:"╢",boxvL:"╡",boxvl:"┤",boxVR:"╠",boxVr:"╟",boxvR:"╞",boxvr:"├",bprime:"‵",Breve:"˘",breve:"˘",brvbar:"¦",Bscr:"ℬ",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",Cap:"⋒",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",CenterDot:"·",centerdot:"·",Cfr:"ℭ",cfr:"𝔠",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",Colon:"∷",colon:":",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",Conint:"∯",conint:"∮",ContourIntegral:"∮",Copf:"ℂ",copf:"𝕔",coprod:"∐",Coproduct:"∐",COPY:"©",copy:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",Cross:"⨯",cross:"✗",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",Cup:"⋓",cup:"∪",cupbrcap:"⩈",CupCap:"≍",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",Dagger:"‡",dagger:"†",daleth:"ℸ",Darr:"↡",dArr:"⇓",darr:"↓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",DD:"ⅅ",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",Diamond:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",Downarrow:"⇓",downarrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",ecir:"≖",Ecirc:"Ê",ecirc:"ê",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",eDot:"≑",edot:"ė",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",Escr:"ℰ",escr:"ℯ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",ExponentialE:"ⅇ",exponentiale:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",ForAll:"∀",forall:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",Fscr:"ℱ",fscr:"𝒻",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",gE:"≧",ge:"≥",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",Gg:"⋙",gg:"≫",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gnE:"≩",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",GT:">",Gt:"≫",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",hArr:"⇔",harr:"↔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",Hfr:"ℌ",hfr:"𝔥",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"𝕙",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"𝒽",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"𝔦",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Im:"ℑ",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",Int:"∬",int:"∫",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"𝒾",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",Larr:"↞",lArr:"⇐",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",lAtail:"⤛",latail:"⤙",late:"⪭",lates:"⪭︀",lBarr:"⤎",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",lE:"≦",le:"≤",LeftAngleBracket:"⟨",LeftArrow:"←",Leftarrow:"⇐",leftarrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",Ll:"⋘",ll:"≪",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lnE:"≨",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftarrow:"⟵",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longleftrightarrow:"⟷",longmapsto:"⟼",LongRightArrow:"⟶",Longrightarrow:"⟹",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"𝓁",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",LT:"<",Lt:"≪",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",Mscr:"ℳ",mscr:"𝓂",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",ne:"≠",nearhk:"⤤",neArr:"⇗",nearr:"↗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlArr:"⇍",nlarr:"↚",nldr:"‥",nlE:"≦̸",nle:"≰",nLeftarrow:"⇍",nleftarrow:"↚",nLeftrightarrow:"⇎",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",nopf:"𝕟",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nRightarrow:"⇏",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nVDash:"⊯",nVdash:"⊮",nvDash:"⊭",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwArr:"⇖",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",ocir:"⊚",Ocirc:"Ô",ocirc:"ô",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",Otimes:"⨷",otimes:"⊗",otimesas:"⨶",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",Popf:"ℙ",popf:"𝕡",pound:"£",Pr:"⪻",pr:"≺",prap:"⪷",prcue:"≼",prE:"⪳",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",Prime:"″",prime:"′",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",Qopf:"ℚ",qopf:"𝕢",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',quot:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",Rang:"⟫",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",Rarr:"↠",rArr:"⇒",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",rAtail:"⤜",ratail:"⤚",ratio:"∶",rationals:"ℚ",RBarr:"⤐",rBarr:"⤏",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",REG:"®",reg:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",Rfr:"ℜ",rfr:"𝔯",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrow:"→",Rightarrow:"⇒",rightarrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",Ropf:"ℝ",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"𝓇",Rsh:"↱",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",Sc:"⪼",sc:"≻",scap:"⪸",Scaron:"Š",scaron:"š",sccue:"≽",scE:"⪴",sce:"⪰",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",seArr:"⇘",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",Square:"□",square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",Sub:"⋐",sub:"⊂",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",Subset:"⋐",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",Sum:"∑",sum:"∑",sung:"♪",Sup:"⋑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",Supset:"⋑",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swArr:"⇙",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",Therefore:"∴",therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",Tilde:"∼",tilde:"˜",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",Uarr:"↟",uArr:"⇑",uarr:"↑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrow:"↑",Uparrow:"⇑",uparrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",Updownarrow:"⇕",updownarrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",upsi:"υ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅", -varphi:"ϕ",varpi:"ϖ",varpropto:"∝",vArr:"⇕",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",Vbar:"⫫",vBar:"⫨",vBarv:"⫩",Vcy:"В",vcy:"в",VDash:"⊫",Vdash:"⊩",vDash:"⊨",vdash:"⊢",Vdashl:"⫦",Vee:"⋁",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",Verbar:"‖",verbar:"|",Vert:"‖",vert:"|",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"𝔷",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"𝕫",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"}},function(e,t,n){"use strict";function r(){this.rules=i.assign({},o),this.getBreak=o.getBreak}var i=n(1081),o=n(1084);e.exports=r,r.prototype.renderInline=function(e,t,n){for(var r=this.rules,i=e.length,o=0,a="";i--;)a+=r[e[o].type](e,o++,t,n,this);return a},r.prototype.render=function(e,t,n){for(var r=this.rules,i=e.length,o=-1,a="";++o=e.length-2?t:"paragraph_open"===e[t].type&&e[t].tight&&"inline"===e[t+1].type&&0===e[t+1].content.length&&"paragraph_close"===e[t+2].type&&e[t+2].tight?r(e,t+2):t}var i=n(1081).has,o=n(1081).unescapeMd,a=n(1081).replaceEntities,s=n(1081).escapeHtml,u={};u.blockquote_open=function(){return"
\n"},u.blockquote_close=function(e,t){return"
"+c(e,t)},u.code=function(e,t){return e[t].block?"
"+s(e[t].content)+"
"+c(e,t):""+s(e[t].content)+""},u.fence=function(e,t,n,r,u){var l,p,f,h=e[t],d="",m=n.langPrefix,v="";if(h.params){if(l=h.params.split(/\s+/g),p=l.join(" "),i(u.rules.fence_custom,l[0]))return u.rules.fence_custom[l[0]](e,t,n,r,u);v=s(a(o(p))),d=' class="'+m+v+'"'}return f=n.highlight?n.highlight.apply(n.highlight,[h.content].concat(l))||s(h.content):s(h.content),"
"+f+"
"+c(e,t)},u.fence_custom={},u.heading_open=function(e,t){return""},u.heading_close=function(e,t){return"\n"},u.hr=function(e,t,n){return(n.xhtmlOut?"
":"
")+c(e,t)},u.bullet_list_open=function(){return"
    \n"},u.bullet_list_close=function(e,t){return"
"+c(e,t)},u.list_item_open=function(){return"
  • "},u.list_item_close=function(){return"
  • \n"},u.ordered_list_open=function(e,t){var n=e[t],r=n.order>1?' start="'+n.order+'"':"";return"\n"},u.ordered_list_close=function(e,t){return""+c(e,t)},u.paragraph_open=function(e,t){return e[t].tight?"":"

    "},u.paragraph_close=function(e,t){var n=!(e[t].tight&&t&&"inline"===e[t-1].type&&!e[t-1].content);return(e[t].tight?"":"

    ")+(n?c(e,t):"")},u.link_open=function(e,t,n){var r=e[t].title?' title="'+s(a(e[t].title))+'"':"",i=n.linkTarget?' target="'+n.linkTarget+'"':"";return'"},u.link_close=function(){return""},u.image=function(e,t,n){var r=' src="'+s(e[t].src)+'"',i=e[t].title?' title="'+s(a(e[t].title))+'"':"",u=' alt="'+(e[t].alt?s(a(o(e[t].alt))):"")+'"',c=n.xhtmlOut?" /":"";return""},u.table_open=function(){return"\n"},u.table_close=function(){return"
    \n"},u.thead_open=function(){return"\n"},u.thead_close=function(){return"\n"},u.tbody_open=function(){return"\n"},u.tbody_close=function(){return"\n"},u.tr_open=function(){return""},u.tr_close=function(){return"\n"},u.th_open=function(e,t){var n=e[t];return""},u.th_close=function(){return""},u.td_open=function(e,t){var n=e[t];return""},u.td_close=function(){return""},u.strong_open=function(){return""},u.strong_close=function(){return""},u.em_open=function(){return""},u.em_close=function(){return""},u.del_open=function(){return""},u.del_close=function(){return""},u.ins_open=function(){return""},u.ins_close=function(){return""},u.mark_open=function(){return""},u.mark_close=function(){return""},u.sub=function(e,t){return""+s(e[t].content)+""},u.sup=function(e,t){return""+s(e[t].content)+""},u.hardbreak=function(e,t,n){return n.xhtmlOut?"
    \n":"
    \n"},u.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?"
    \n":"
    \n":"\n"},u.text=function(e,t){return s(e[t].content)},u.htmlblock=function(e,t){return e[t].content},u.htmltag=function(e,t){return e[t].content},u.abbr_open=function(e,t){return''},u.abbr_close=function(){return""},u.footnote_ref=function(e,t){var n=Number(e[t].id+1).toString(),r="fnref"+n;return e[t].subId>0&&(r+=":"+e[t].subId),'['+n+"]"},u.footnote_block_open=function(e,t,n){var r=n.xhtmlOut?'
    \n':'
    \n';return r+'
    \n
      \n'},u.footnote_block_close=function(){return"
    \n
    \n"},u.footnote_open=function(e,t){var n=Number(e[t].id+1).toString();return'
  • '},u.footnote_close=function(){return"
  • \n"},u.footnote_anchor=function(e,t){var n=Number(e[t].id+1).toString(),r="fnref"+n;return e[t].subId>0&&(r+=":"+e[t].subId),' '},u.dl_open=function(){return"
    \n"},u.dt_open=function(){return"
    "},u.dd_open=function(){return"
    "},u.dl_close=function(){return"
    \n"},u.dt_close=function(){return"\n"},u.dd_close=function(){return"\n"};var c=u.getBreak=function(e,t){return t=r(e,t),t8&&n<14);)if(92===n&&t+11))break;if(41===n&&(o--,o<0))break;t++}return s!==t&&(a=i(e.src.slice(s,t)),!!e.parser.validateLink(a)&&(e.linkContent=a,e.pos=t,!0))}},function(e,t,n){"use strict";var r=n(1081).replaceEntities;e.exports=function(e){var t=r(e);try{t=decodeURI(t)}catch(e){}return encodeURI(t)}},function(e,t,n){"use strict";var r=n(1081).unescapeMd;e.exports=function(e,t){var n,i=t,o=e.posMax,a=e.src.charCodeAt(t);if(34!==a&&39!==a&&40!==a)return!1;for(t++,40===a&&(a=41);t0?a[t].count:1,r=0;r=0;t--)if(s=a[t],"text"===s.type){for(l=0,u=s.content,f.lastIndex=0,p=s.level,c=[];h=f.exec(u);)f.lastIndex>l&&c.push({type:"text",content:u.slice(l,h.index+h[1].length),level:p}),c.push({type:"abbr_open",title:e.env.abbreviations[":"+h[2]],level:p++}),c.push({type:"text",content:h[2],level:p}),c.push({type:"abbr_close",level:--p}),l=f.lastIndex-h[3].length;c.length&&(l=0;s--)if("inline"===e.tokens[s].type)for(a=e.tokens[s].children,t=a.length-1;t>=0;t--)i=a[t],"text"===i.type&&(o=i.content,o=n(o),r.test(o)&&(o=o.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---([^-]|$)/gm,"$1—$2").replace(/(^|\s)--(\s|$)/gm,"$1–$2").replace(/(^|[^-\s])--([^-\s]|$)/gm,"$1–$2")),i.content=o)}},function(e,t){"use strict";function n(e,t){return!(t<0||t>=e.length)&&!a.test(e[t])}function r(e,t,n){return e.substr(0,t)+n+e.substr(t+1)}var i=/['"]/,o=/['"]/g,a=/[-\s()\[\]]/,s="’";e.exports=function(e){var t,a,u,c,l,p,f,h,d,m,v,y,g,_,b,x,w;if(e.options.typographer)for(w=[],b=e.tokens.length-1;b>=0;b--)if("inline"===e.tokens[b].type)for(x=e.tokens[b].children,w.length=0,t=0;t=0&&!(w[g].level<=f);g--);w.length=g+1,u=a.content,l=0,p=u.length;e:for(;l=0&&(m=w[g],!(w[g].level\s]/i.test(e)}function i(e){return/^<\/a\s*>/i.test(e)}function o(){var e=[],t=new a({stripPrefix:!1,url:!0,email:!0,twitter:!1,replaceFn:function(t,n){switch(n.getType()){case"url":e.push({text:n.matchedText,url:n.getUrl()});break;case"email":e.push({text:n.matchedText,url:"mailto:"+n.getEmail().replace(/^mailto:/i,"")})}return!1}});return{links:e,autolinker:t}}var a=n(1102),s=/www|@|\:\/\//;e.exports=function(e){var t,n,a,u,c,l,p,f,h,d,m,v,y,g=e.tokens,_=null;if(e.options.linkify)for(n=0,a=g.length;n=0;t--)if(c=u[t],"link_close"!==c.type){if("htmltag"===c.type&&(r(c.content)&&m>0&&m--,i(c.content)&&m++),!(m>0)&&"text"===c.type&&s.test(c.content)){if(_||(_=o(),v=_.links,y=_.autolinker),l=c.content,v.length=0,y.link(l),!v.length)continue;for(p=[],d=c.level,f=0;f - * MIT Licensed. http://www.opensource.org/licenses/mit-license.php - * - * https://github.com/gregjacobs/Autolinker.js - */ -var e=function(t){e.Util.assign(this,t)};return e.prototype={constructor:e,urls:!0,email:!0,twitter:!0,newWindow:!0,stripPrefix:!0,truncate:void 0,className:"",htmlParser:void 0,matchParser:void 0,tagBuilder:void 0,link:function(e){for(var t=this.getHtmlParser(),n=t.parse(e),r=0,i=[],o=0,a=n.length;ot&&(n=null==n?"..":n,e=e.substring(0,t-n.length)+n),e},indexOf:function(e,t){if(Array.prototype.indexOf)return e.indexOf(t);for(var n=0,r=e.length;n",this.getInnerHtml(),""].join("")},buildAttrsStr:function(){if(!this.attrs)return"";var e=this.getAttrs(),t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n+'="'+e[n]+'"');return t.join(" ")}}),e.AnchorTagBuilder=e.Util.extend(Object,{constructor:function(t){e.Util.assign(this,t)},build:function(t){var n=new e.HtmlTag({tagName:"a",attrs:this.createAttrs(t.getType(),t.getAnchorHref()),innerHtml:this.processAnchorText(t.getAnchorText())});return n},createAttrs:function(e,t){var n={href:t},r=this.createCssClass(e);return r&&(n.class=r),this.newWindow&&(n.target="_blank"),n},createCssClass:function(e){var t=this.className;return t?t+" "+t+"-"+e:""},processAnchorText:function(e){return e=this.doTruncate(e)},doTruncate:function(t){return e.Util.ellipsis(t,this.truncate||Number.POSITIVE_INFINITY)}}),e.htmlParser.HtmlParser=e.Util.extend(Object,{htmlRegex:function(){var e=/[0-9a-zA-Z][0-9a-zA-Z:]*/,t=/[^\s\0"'>\/=\x01-\x1F\x7F]+/,n=/(?:"[^"]*?"|'[^']*?'|[^'"=<>`\s]+)/,r=t.source+"(?:\\s*=\\s*"+n.source+")?";return new RegExp(["(?:","<(!DOCTYPE)","(?:","\\s+","(?:",r,"|",n.source+")",")*",">",")","|","(?:","<(/)?","("+e.source+")","(?:","\\s+",r,")*","\\s*/?",">",")"].join(""),"gi")}(),htmlCharacterEntitiesRegex:/( | |<|<|>|>|"|"|')/gi,parse:function(e){for(var t,n,r=this.htmlRegex,i=0,o=[];null!==(t=r.exec(e));){var a=t[0],s=t[1]||t[3],u=!!t[2],c=e.substring(i,t.index);c&&(n=this.parseTextAndEntityNodes(c),o.push.apply(o,n)),o.push(this.createElementNode(a,s,u)),i=t.index+a.length}if(i=n))&&!(e.tShift[s]=0&&(e=e.replace(s,function(t,n){var r;return 10===e.charCodeAt(n)?(a=n+1,l=0,t):(r=" ".slice((n-a-l)%4),l=n-a+1,r)})),i=new o(e,this,t,n,r),void this.tokenize(i,i.line,i.lineMax)):[]},e.exports=r},function(e,t){"use strict";function n(e,t,n,r,i){var o,a,s,u,c,l,p;for(this.src=e,this.parser=t,this.options=n,this.env=r,this.tokens=i,this.bMarks=[],this.eMarks=[],this.tShift=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.parentType="root",this.ddIndent=-1,this.level=0,this.result="",a=this.src,l=0,p=!1,s=u=l=0,c=a.length;u=this.eMarks[e]},n.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;en;)if(t!==this.src.charCodeAt(--e))return e+1;return e},n.prototype.getLines=function(e,t,n,r){var i,o,a,s,u,c=e;if(e>=t)return"";if(c+1===t)return o=this.bMarks[c]+Math.min(this.tShift[c],n),a=r?this.eMarks[c]+1:this.eMarks[c],this.src.slice(o,a);for(s=new Array(t-e),i=0;cn&&(u=n),u<0&&(u=0),o=this.bMarks[c]+u,a=c+1=4))break;r++,i=r}return e.line=r,e.tokens.push({type:"code",content:e.getLines(t,i,4+e.blkIndent,!0),block:!0,lines:[t,e.line],level:e.level}),!0}},function(e,t){"use strict";e.exports=function(e,t,n,r){var i,o,a,s,u,c=!1,l=e.bMarks[t]+e.tShift[t],p=e.eMarks[t];if(l+3>p)return!1;if(i=e.src.charCodeAt(l),126!==i&&96!==i)return!1;if(u=l,l=e.skipChars(l,i),o=l-u,o<3)return!1;if(a=e.src.slice(l,p).trim(),a.indexOf("`")>=0)return!1;if(r)return!0;for(s=t;(s++,!(s>=n))&&(l=u=e.bMarks[s]+e.tShift[s],p=e.eMarks[s],!(l=4||(l=e.skipChars(l,i),l-uv)return!1;if(62!==e.src.charCodeAt(m++))return!1;if(e.level>=e.options.maxNesting)return!1;if(r)return!0;for(32===e.src.charCodeAt(m)&&m++,u=e.blkIndent,e.blkIndent=0,s=[e.bMarks[t]],e.bMarks[t]=m,m=m=v,a=[e.tShift[t]],e.tShift[t]=m-e.bMarks[t],p=e.parser.ruler.getRules("blockquote"),i=t+1;i=v));i++)if(62!==e.src.charCodeAt(m++)){if(o)break;for(d=!1,f=0,h=p.length;f=v,a.push(e.tShift[i]),e.tShift[i]=m-e.bMarks[i];for(c=e.parentType,e.parentType="blockquote",e.tokens.push({type:"blockquote_open",lines:l=[t,0],level:e.level++}),e.parser.tokenize(e,t,i),e.tokens.push({type:"blockquote_close",level:--e.level}),e.parentType=c,l[1]=e.line,f=0;fu)return!1;if(i=e.src.charCodeAt(s++),42!==i&&45!==i&&95!==i)return!1;for(o=1;s=i?-1:(n=e.src.charCodeAt(r++),42!==n&&45!==n&&43!==n?-1:r=i)return-1;if(n=e.src.charCodeAt(r++),n<48||n>57)return-1;for(;;){if(r>=i)return-1;if(n=e.src.charCodeAt(r++),!(n>=48&&n<=57)){if(41===n||46===n)break;return-1}}return r=0)_=!0;else{if(!((d=n(e,t))>=0))return!1;_=!1}if(e.level>=e.options.maxNesting)return!1;if(g=e.src.charCodeAt(d-1),a)return!0;for(x=e.tokens.length,_?(h=e.bMarks[t]+e.tShift[t],y=Number(e.src.substr(h,d-h-1)),e.tokens.push({type:"ordered_list_open",order:y,lines:k=[t,0],level:e.level++})):e.tokens.push({type:"bullet_list_open",lines:k=[t,0],level:e.level++}),s=t,w=!1,E=e.parser.ruler.getRules("list");!(!(s=m?1:b-d,v>4&&(v=1),v<1&&(v=1),u=d-e.bMarks[s]+v,e.tokens.push({type:"list_item_open",lines:S=[t,0],level:e.level++}),l=e.blkIndent,p=e.tight,c=e.tShift[t],f=e.parentType,e.tShift[t]=b-e.bMarks[t],e.blkIndent=u,e.tight=!0,e.parentType="list",e.parser.tokenize(e,t,o,!0),e.tight&&!w||(D=!1),w=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=l,e.tShift[t]=c,e.tight=p,e.parentType=f,e.tokens.push({type:"list_item_close",level:--e.level}),s=t=e.line,S[1]=s,b=e.bMarks[t],s>=o)||e.isEmpty(s)||e.tShift[s]l)return!1;if(91!==e.src.charCodeAt(c))return!1;if(94!==e.src.charCodeAt(c+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(s=c+2;s=l||58!==e.src.charCodeAt(++s))&&(!!r||(s++,e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.refs||(e.env.footnotes.refs={}),u=e.src.slice(c+2,s-2),e.env.footnotes.refs[":"+u]=-1,e.tokens.push({type:"footnote_reference_open",label:u,level:e.level++}),i=e.bMarks[t],o=e.tShift[t],a=e.parentType,e.tShift[t]=e.skipSpaces(s)-s,e.bMarks[t]=s,e.blkIndent+=4,e.parentType="footnote",e.tShift[t]=u)return!1;if(i=e.src.charCodeAt(s),35!==i||s>=u)return!1;for(o=1,i=e.src.charCodeAt(++s);35===i&&s6||ss&&32===e.src.charCodeAt(a-1)&&(u=a),e.line=t+1,e.tokens.push({type:"heading_open",hLevel:o,lines:[t,e.line],level:e.level}),s=n)&&(!(e.tShift[a]3)&&(i=e.bMarks[a]+e.tShift[a],o=e.eMarks[a],!(i>=o)&&(r=e.src.charCodeAt(i),(45===r||61===r)&&(i=e.skipChars(i,r),i=e.skipSpaces(i),!(i=97&&t<=122}var i=n(1114),o=/^<([a-zA-Z]{1,15})[\s\/>]/,a=/^<\/([a-zA-Z]{1,15})[\s>]/;e.exports=function(e,t,n,s){var u,c,l,p=e.bMarks[t],f=e.eMarks[t],h=e.tShift[t];if(p+=h,!e.options.html)return!1;if(h>3||p+2>=f)return!1;if(60!==e.src.charCodeAt(p))return!1;if(u=e.src.charCodeAt(p+1),33===u||63===u){if(s)return!0}else{if(47!==u&&!r(u))return!1;if(47===u){if(c=e.src.slice(p,f).match(a),!c)return!1}else if(c=e.src.slice(p,f).match(o),!c)return!1;if(i[c[1].toLowerCase()]!==!0)return!1;if(s)return!0}for(l=t+1;lr)return!1;if(c=t+1,e.tShift[c]=e.eMarks[c])return!1;if(o=e.src.charCodeAt(s),124!==o&&45!==o&&58!==o)return!1;if(a=n(e,t+1),!/^[-:| ]+$/.test(a))return!1;if(l=a.split("|"),l<=2)return!1;for(f=[],u=0;u=o?-1:(r=e.src.charCodeAt(i++),126!==r&&58!==r?-1:(n=e.skipSpaces(i),i===n?-1:n>=o?-1:n))}function r(e,t){var n,r,i=e.level+2;for(n=t+2,r=e.tokens.length-2;n=0;if(f=t+1,e.isEmpty(f)&&++f>i)return!1;if(e.tShift[f]=e.options.maxNesting)return!1;p=e.tokens.length,e.tokens.push({type:"dl_open",lines:l=[t,0],level:e.level++}),u=t,s=f;e:for(;;){for(_=!0,g=!1,e.tokens.push({type:"dt_open",lines:[u,u],level:e.level++}),e.tokens.push({type:"inline",content:e.getLines(u,u+1,e.blkIndent,!1).trim(),level:e.level+1,lines:[u,u],children:[]}),e.tokens.push({type:"dt_close",level:--e.level});;){if(e.tokens.push({type:"dd_open",lines:c=[f,0],level:e.level++}),y=e.tight,d=e.ddIndent,h=e.blkIndent,v=e.tShift[s],m=e.parentType,e.blkIndent=e.ddIndent=e.tShift[s]+2,e.tShift[s]=a-e.bMarks[s],e.tight=!0,e.parentType="deflist",e.parser.tokenize(e,s,i,!0),e.tight&&!g||(_=!1),g=e.line-s>1&&e.isEmpty(e.line-1),e.tShift[s]=v,e.tight=y,e.parentType=m,e.blkIndent=h,e.ddIndent=d,e.tokens.push({type:"dd_close",level:--e.level}),c[1]=f=e.line,f>=i)break e;if(e.tShift[f]=i)break;if(u=f,e.isEmpty(u))break;if(e.tShift[u]=i)break;if(e.isEmpty(s)&&s++,s>=i)break;if(e.tShift[s]3)){for(i=!1,o=0,a=s.length;o0)return void(e.pos=n);for(t=0;t=o)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},r.prototype.parse=function(e,t,n,r){var i=new a(e,this,t,n,r);this.tokenize(i)},e.exports=r},function(e,t){"use strict";function n(e){switch(e){case 10:case 92:case 96:case 42:case 95:case 94:case 91:case 93:case 33:case 38:case 60:case 62:case 123:case 125:case 36:case 37:case 64:case 126:case 43:case 61:case 58:return!0;default:return!1}}e.exports=function(e,t){for(var r=e.pos;r=0&&32===e.pending.charCodeAt(n))if(n>=1&&32===e.pending.charCodeAt(n-1)){for(var o=n-2;o>=0;o--)if(32!==e.pending.charCodeAt(o)){e.pending=e.pending.substring(0,o+1);break}e.push({type:"hardbreak",level:e.level})}else e.pending=e.pending.slice(0,-1),e.push({type:"softbreak",level:e.level});else e.push({type:"softbreak",level:e.level});for(i++;i?@[]^_`{|}~-".split("").forEach(function(e){n[e.charCodeAt(0)]=1}),e.exports=function(e,t){var r,i=e.pos,o=e.posMax;if(92!==e.src.charCodeAt(i))return!1;if(i++,i=s)return!1;if(126!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(o=u>0?e.src.charCodeAt(u-1):-1,a=e.src.charCodeAt(u+2),126===o)return!1;if(126===a)return!1;if(32===a||10===a)return!1;for(r=u+2;ru+3)return e.pos+=r-u,t||(e.pending+=e.src.slice(u,r)),!0;for(e.pos=u+2,i=1;e.pos+1=s)return!1;if(43!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1; -if(o=u>0?e.src.charCodeAt(u-1):-1,a=e.src.charCodeAt(u+2),43===o)return!1;if(43===a)return!1;if(32===a||10===a)return!1;for(r=u+2;r=s)return!1;if(61!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(o=u>0?e.src.charCodeAt(u-1):-1,a=e.src.charCodeAt(u+2),61===o)return!1;if(61===a)return!1;if(32===a||10===a)return!1;for(r=u+2;r=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function r(e,t){var r,i,o,a=t,s=!0,u=!0,c=e.posMax,l=e.src.charCodeAt(t);for(r=t>0?e.src.charCodeAt(t-1):-1;a=c&&(s=!1),o=a-t,o>=4?s=u=!1:(i=a=e.options.maxNesting)return!1;for(e.pos=p+n,u=[n];e.pos?@[\]^_`{|}~-])/g;e.exports=function(e,t){var r,i,o=e.posMax,a=e.pos;if(126!==e.src.charCodeAt(a))return!1;if(t)return!1;if(a+2>=o)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=a+1;e.pos?@[\]^_`{|}~-])/g;e.exports=function(e,t){var r,i,o=e.posMax,a=e.pos;if(94!==e.src.charCodeAt(a))return!1;if(t)return!1;if(a+2>=o)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=a+1;e.pos=e.options.maxNesting)return!1;if(n=y+1,s=r(e,y),s<0)return!1;if(p=s+1,p=v)return!1;for(y=p,i(e,p)?(c=e.linkContent,p=e.pos):c="",y=p;p=v||41!==e.src.charCodeAt(p))return e.pos=m,!1;p++}else{if(e.linkLevel>0)return!1;for(;p=0?u=e.src.slice(y,p++):p=y-1),u||("undefined"==typeof u&&(p=s+1),u=e.src.slice(n,s)),f=e.env.references[a(u)],!f)return e.pos=m,!1;c=f.href,l=f.title}return t||(e.pos=n,e.posMax=s,d?e.push({type:"image",src:c,title:l,alt:e.src.substr(n,s-n),level:e.level}):(e.push({type:"link_open",href:c,title:l,level:e.level++}),e.linkLevel++,e.parser.tokenize(e),e.linkLevel--,e.push({type:"link_close",level:--e.level}))),e.pos=p,e.posMax=v,!0}},function(e,t,n){"use strict";var r=n(1090);e.exports=function(e,t){var n,i,o,a,s=e.posMax,u=e.pos;return!(u+2>=s)&&(94===e.src.charCodeAt(u)&&(91===e.src.charCodeAt(u+1)&&(!(e.level>=e.options.maxNesting)&&(n=u+2,i=r(e,u+1),!(i<0)&&(t||(e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.list||(e.env.footnotes.list=[]),o=e.env.footnotes.list.length,e.pos=n,e.posMax=i,e.push({type:"footnote_ref",id:o,level:e.level}),e.linkLevel++,a=e.tokens.length,e.parser.tokenize(e),e.env.footnotes.list[o]={tokens:e.tokens.splice(a)},e.linkLevel--),e.pos=i+1,e.posMax=s,!0)))))}},function(e,t){"use strict";e.exports=function(e,t){var n,r,i,o,a=e.posMax,s=e.pos;if(s+3>a)return!1;if(!e.env.footnotes||!e.env.footnotes.refs)return!1;if(91!==e.src.charCodeAt(s))return!1;if(94!==e.src.charCodeAt(s+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(r=s+2;r=a)&&(r++,n=e.src.slice(s+2,r-1),"undefined"!=typeof e.env.footnotes.refs[":"+n]&&(t||(e.env.footnotes.list||(e.env.footnotes.list=[]),e.env.footnotes.refs[":"+n]<0?(i=e.env.footnotes.list.length,e.env.footnotes.list[i]={label:n,count:0},e.env.footnotes.refs[":"+n]=i):i=e.env.footnotes.refs[":"+n],o=e.env.footnotes.list[i].count,e.env.footnotes.list[i].count++,e.push({type:"footnote_ref",id:i,subId:o,level:e.level})),e.pos=r,e.posMax=a,!0)))}},function(e,t,n){"use strict";var r=n(1133),i=n(1093),o=/^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,a=/^<([a-zA-Z.\-]{1,25}):([^<>\x00-\x20]*)>/;e.exports=function(e,t){var n,s,u,c,l,p=e.pos;return 60===e.src.charCodeAt(p)&&(n=e.src.slice(p),!(n.indexOf(">")<0)&&((s=n.match(a))?!(r.indexOf(s[1].toLowerCase())<0)&&(c=s[0].slice(1,-1),l=i(c),!!e.parser.validateLink(c)&&(t||(e.push({type:"link_open",href:l,level:e.level}),e.push({type:"text",content:c,level:e.level+1}),e.push({type:"link_close",level:e.level})),e.pos+=s[0].length,!0)):(u=n.match(o),!!u&&(c=u[0].slice(1,-1),l=i("mailto:"+c),!!e.parser.validateLink(l)&&(t||(e.push({type:"link_open",href:l,level:e.level}),e.push({type:"text",content:c,level:e.level+1}),e.push({type:"link_close",level:e.level})),e.pos+=u[0].length,!0)))))}},function(e,t){"use strict";e.exports=["coap","doi","javascript","aaa","aaas","about","acap","cap","cid","crid","data","dav","dict","dns","file","ftp","geo","go","gopher","h323","http","https","iax","icap","im","imap","info","ipp","iris","iris.beep","iris.xpc","iris.xpcs","iris.lwz","ldap","mailto","mid","msrp","msrps","mtqp","mupdate","news","nfs","ni","nih","nntp","opaquelocktoken","pop","pres","rtsp","service","session","shttp","sieve","sip","sips","sms","snmp","soap.beep","soap.beeps","tag","tel","telnet","tftp","thismessage","tn3270","tip","tv","urn","vemmi","ws","wss","xcon","xcon-userid","xmlrpc.beep","xmlrpc.beeps","xmpp","z39.50r","z39.50s","adiumxtra","afp","afs","aim","apt","attachment","aw","beshare","bitcoin","bolo","callto","chrome","chrome-extension","com-eventbrite-attendee","content","cvs","dlna-playsingle","dlna-playcontainer","dtn","dvb","ed2k","facetime","feed","finger","fish","gg","git","gizmoproject","gtalk","hcp","icon","ipn","irc","irc6","ircs","itms","jar","jms","keyparc","lastfm","ldaps","magnet","maps","market","message","mms","ms-help","msnim","mumble","mvn","notes","oid","palm","paparazzi","platform","proxy","psyc","query","res","resource","rmi","rsync","rtmp","secondlife","sftp","sgn","skype","smb","soldat","spotify","ssh","steam","svn","teamspeak","things","udp","unreal","ut2004","ventrilo","view-source","webcal","wtai","wyciwyg","xfire","xri","ymsgr"]},function(e,t,n){"use strict";function r(e){var t=32|e;return t>=97&&t<=122}var i=n(1135).HTML_TAG_RE;e.exports=function(e,t){var n,o,a,s=e.pos;return!!e.options.html&&(a=e.posMax,!(60!==e.src.charCodeAt(s)||s+2>=a)&&(n=e.src.charCodeAt(s+1),!(33!==n&&63!==n&&47!==n&&!r(n))&&(!!(o=e.src.slice(s).match(i))&&(t||e.push({type:"htmltag",content:e.src.slice(s,s+o[0].length),level:e.level}),e.pos+=o[0].length,!0))))}},function(e,t){"use strict";function n(e,t){return e=e.source,t=t||"",function n(r,i){return r?(i=i.source||i,e=e.replace(r,i),n):new RegExp(e,t)}}var r=/[a-zA-Z_:][a-zA-Z0-9:._-]*/,i=/[^"'=<>`\x00-\x20]+/,o=/'[^']*'/,a=/"[^"]*"/,s=n(/(?:unquoted|single_quoted|double_quoted)/)("unquoted",i)("single_quoted",o)("double_quoted",a)(),u=n(/(?:\s+attr_name(?:\s*=\s*attr_value)?)/)("attr_name",r)("attr_value",s)(),c=n(/<[A-Za-z][A-Za-z0-9]*attribute*\s*\/?>/)("attribute",u)(),l=/<\/[A-Za-z][A-Za-z0-9]*\s*>/,p=//,f=/<[?].*?[?]>/,h=/]*>/,d=/])*\]\]>/,m=n(/^(?:open_tag|close_tag|comment|processing|declaration|cdata)/)("open_tag",c)("close_tag",l)("comment",p)("processing",f)("declaration",h)("cdata",d)();e.exports.HTML_TAG_RE=m},function(e,t,n){"use strict";var r=n(1082),i=n(1081).has,o=n(1081).isValidEntityCode,a=n(1081).fromCodePoint,s=/^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i,u=/^&([a-z][a-z0-9]{1,31});/i;e.exports=function(e,t){var n,c,l,p=e.pos,f=e.posMax;if(38!==e.src.charCodeAt(p))return!1;if(p+1/g,">").replace(/\"/g,""")}function f(e,n){n=n.replace(/[\x00-\x20]+/g,""),n=n.replace(/<\!\-\-.*?\-\-\>/g,"");var r=n.match(/^([a-zA-Z]+)\:/);if(!r)return!!n.match(/^\/\//)&&!t.allowProtocolRelative;var o=r[1].toLowerCase();return i(t.allowedSchemesByTag,e)?t.allowedSchemesByTag[e].indexOf(o)===-1:!t.allowedSchemes||t.allowedSchemes.indexOf(o)===-1}function h(e,t){return t?(e=e.split(/\s+/),e.filter(function(e){return t.indexOf(e)!==-1}).join(" ")):e}var d="";t?(t=s(o.defaults,t),t.parser?t.parser=s(c,t.parser):t.parser=c):(t=o.defaults,t.parser=c);var m,v,y=t.nonTextTags||["script","style","textarea"];t.allowedAttributes&&(m={},v={},r(t.allowedAttributes,function(e,t){m[t]=[];var n=[];e.forEach(function(e){e.indexOf("*")>=0?n.push(u(e).replace(/\\\*/g,".*")):m[t].push(e)}),v[t]=new RegExp("^("+n.join("|")+")$")}));var g={};r(t.allowedClasses,function(e,t){m&&(i(m,t)||(m[t]=[]),m[t].push("class")),g[t]=e});var _,b={};r(t.transformTags,function(e,t){var n;"function"==typeof e?n=e:"string"==typeof e&&(n=o.simpleTransform(e)),"*"===t?_=n:b[t]=n});var x=0,w=[],k={},S={},E=!1,C=0,A=new a.Parser({onopentag:function(e,n){if(E)return void C++;var o=new l(e,n);w.push(o);var a,s=!1,u=!!o.text;i(b,e)&&(a=b[e](e,n),o.attribs=n=a.attribs,void 0!==a.text&&(o.innerText=a.text),e!==a.tagName&&(o.name=e=a.tagName,S[x]=a.tagName)),_&&(a=_(e,n),o.attribs=n=a.attribs,e!==a.tagName&&(o.name=e=a.tagName,S[x]=a.tagName)),t.allowedTags&&t.allowedTags.indexOf(e)===-1&&(s=!0,y.indexOf(e)!==-1&&(E=!0,C=1),k[x]=!0),x++,s||(d+="<"+e,(!m||i(m,e)||m["*"])&&r(n,function(t,n){if(!m||i(m,e)&&m[e].indexOf(n)!==-1||m["*"]&&m["*"].indexOf(n)!==-1||i(v,e)&&v[e].test(n)||v["*"]&&v["*"].test(n)){if(("href"===n||"src"===n)&&f(e,t))return void delete o.attribs[n];if("class"===n&&(t=h(t,g[e]),!t.length))return void delete o.attribs[n];d+=" "+n,t.length&&(d+='="'+p(t)+'"')}else delete o.attribs[n]}),t.selfClosing.indexOf(e)!==-1?d+=" />":(d+=">",!o.innerText||u||t.textFilter||(d+=o.innerText)))},ontext:function(e){if(!E){var n,r=w[w.length-1];if(r&&(n=r.tag,e=void 0!==r.innerText?r.innerText:e),"script"===n||"style"===n)d+=e;else{var i=p(e);d+=t.textFilter?t.textFilter(i):i}if(w.length){var o=w[w.length-1];o.text+=e}}},onclosetag:function(e){if(E){if(C--,C)return;E=!1}var n=w.pop();if(n){if(E=!1,x--,k[x])return delete k[x],void n.updateParentNodeText();if(S[x]&&(e=S[x],delete S[x]),t.exclusiveFilter&&t.exclusiveFilter(n))return void(d=d.substr(0,n.tagPosition));n.updateParentNodeText(),t.selfClosing.indexOf(e)===-1&&(d+="")}}},t.parser);return A.write(e),A.end(),d}var a=n(1141),s=n(1171),u=n(1172);e.exports=o;var c={decodeEntities:!0};o.defaults={allowedTags:["h3","h4","h5","h6","blockquote","p","a","ul","ol","nl","li","b","i","strong","em","strike","code","hr","br","div","table","thead","caption","tbody","tr","th","td","pre"],allowedAttributes:{a:["href","name","target"],img:["src"]},selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto"],allowedSchemesByTag:{},allowProtocolRelative:!0},o.simpleTransform=function(e,t,n){return n=void 0===n||n,t=t||{},function(r,i){var o;if(n)for(o in t)i[o]=t[o];else i=t;return{tagName:e,attribs:i}}}},function(e,t,n){function r(t,n){return delete e.exports[t],e.exports[t]=n,n}var i=n(1142),o=n(1149);e.exports={Parser:i,Tokenizer:n(1143),ElementType:n(1150),DomHandler:o,get FeedHandler(){return r("FeedHandler",n(1153))},get Stream(){return r("Stream",n(1154))},get WritableStream(){return r("WritableStream",n(1155))},get ProxyHandler(){return r("ProxyHandler",n(1157))},get DomUtils(){return r("DomUtils",n(1158))},get CollectingHandler(){return r("CollectingHandler",n(1170))},DefaultHandler:o,get RssHandler(){return r("RssHandler",this.FeedHandler)},parseDOM:function(e,t){var n=new o(t);return new i(n,t).end(e),n.dom},parseFeed:function(t,n){var r=new e.exports.FeedHandler(n);return new i(r,n).end(t),r.dom},createDomStream:function(e,t,n){var r=new o(e,t,n);return new i(r,t)},EVENTS:{attribute:2,cdatastart:0,cdataend:0,text:1,processinginstruction:2,comment:1,commentend:0,closetag:1,opentag:2,opentagname:1,error:1,end:0}}},function(e,t,n){function r(e,t){this._options=t||{},this._cbs=e||{},this._tagname="",this._attribname="",this._attribvalue="",this._attribs=null,this._stack=[],this.startIndex=0,this.endIndex=null,this._lowerCaseTagNames="lowerCaseTags"in this._options?!!this._options.lowerCaseTags:!this._options.xmlMode,this._lowerCaseAttributeNames="lowerCaseAttributeNames"in this._options?!!this._options.lowerCaseAttributeNames:!this._options.xmlMode,this._options.Tokenizer&&(i=this._options.Tokenizer),this._tokenizer=new i(this._options,this),this._cbs.onparserinit&&this._cbs.onparserinit(this)}var i=n(1143),o={input:!0,option:!0,optgroup:!0,select:!0,button:!0,datalist:!0,textarea:!0},a={tr:{tr:!0,th:!0,td:!0},th:{th:!0},td:{thead:!0,th:!0,td:!0},body:{head:!0,link:!0,script:!0},li:{li:!0},p:{p:!0},h1:{p:!0},h2:{p:!0},h3:{p:!0},h4:{p:!0},h5:{p:!0},h6:{p:!0},select:o,input:o,output:o,button:o,datalist:o,textarea:o,option:{option:!0},optgroup:{optgroup:!0}},s={__proto__:null,area:!0,base:!0,basefont:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,isindex:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,path:!0,circle:!0,ellipse:!0,line:!0,rect:!0,use:!0,stop:!0,polyline:!0,polygon:!0},u=/\s|\//;n(328)(r,n(327).EventEmitter),r.prototype._updatePosition=function(e){null===this.endIndex?this._tokenizer._sectionStart<=e?this.startIndex=0:this.startIndex=this._tokenizer._sectionStart-e:this.startIndex=this.endIndex+1,this.endIndex=this._tokenizer.getAbsoluteIndex()},r.prototype.ontext=function(e){this._updatePosition(1),this.endIndex--,this._cbs.ontext&&this._cbs.ontext(e)},r.prototype.onopentagname=function(e){if(this._lowerCaseTagNames&&(e=e.toLowerCase()),this._tagname=e,!this._options.xmlMode&&e in a)for(var t;(t=this._stack[this._stack.length-1])in a[e];this.onclosetag(t));!this._options.xmlMode&&e in s||this._stack.push(e),this._cbs.onopentagname&&this._cbs.onopentagname(e),this._cbs.onopentag&&(this._attribs={})},r.prototype.onopentagend=function(){this._updatePosition(1),this._attribs&&(this._cbs.onopentag&&this._cbs.onopentag(this._tagname,this._attribs),this._attribs=null),!this._options.xmlMode&&this._cbs.onclosetag&&this._tagname in s&&this._cbs.onclosetag(this._tagname),this._tagname=""},r.prototype.onclosetag=function(e){if(this._updatePosition(1),this._lowerCaseTagNames&&(e=e.toLowerCase()),!this._stack.length||e in s&&!this._options.xmlMode)this._options.xmlMode||"br"!==e&&"p"!==e||(this.onopentagname(e),this._closeCurrentTag());else{var t=this._stack.lastIndexOf(e);if(t!==-1)if(this._cbs.onclosetag)for(t=this._stack.length-t;t--;)this._cbs.onclosetag(this._stack.pop());else this._stack.length=t;else"p"!==e||this._options.xmlMode||(this.onopentagname(e),this._closeCurrentTag())}},r.prototype.onselfclosingtag=function(){this._options.xmlMode||this._options.recognizeSelfClosing?this._closeCurrentTag():this.onopentagend()},r.prototype._closeCurrentTag=function(){var e=this._tagname;this.onopentagend(),this._stack[this._stack.length-1]===e&&(this._cbs.onclosetag&&this._cbs.onclosetag(e),this._stack.pop())},r.prototype.onattribname=function(e){this._lowerCaseAttributeNames&&(e=e.toLowerCase()),this._attribname=e},r.prototype.onattribdata=function(e){this._attribvalue+=e},r.prototype.onattribend=function(){this._cbs.onattribute&&this._cbs.onattribute(this._attribname,this._attribvalue),this._attribs&&!Object.prototype.hasOwnProperty.call(this._attribs,this._attribname)&&(this._attribs[this._attribname]=this._attribvalue),this._attribname="",this._attribvalue=""},r.prototype._getInstructionName=function(e){var t=e.search(u),n=t<0?e:e.substr(0,t);return this._lowerCaseTagNames&&(n=n.toLowerCase()),n},r.prototype.ondeclaration=function(e){if(this._cbs.onprocessinginstruction){var t=this._getInstructionName(e);this._cbs.onprocessinginstruction("!"+t,"!"+e)}},r.prototype.onprocessinginstruction=function(e){if(this._cbs.onprocessinginstruction){var t=this._getInstructionName(e);this._cbs.onprocessinginstruction("?"+t,"?"+e)}},r.prototype.oncomment=function(e){this._updatePosition(4),this._cbs.oncomment&&this._cbs.oncomment(e),this._cbs.oncommentend&&this._cbs.oncommentend()},r.prototype.oncdata=function(e){this._updatePosition(1),this._options.xmlMode||this._options.recognizeCDATA?(this._cbs.oncdatastart&&this._cbs.oncdatastart(),this._cbs.ontext&&this._cbs.ontext(e),this._cbs.oncdataend&&this._cbs.oncdataend()):this.oncomment("[CDATA["+e+"]]")},r.prototype.onerror=function(e){this._cbs.onerror&&this._cbs.onerror(e)},r.prototype.onend=function(){if(this._cbs.onclosetag)for(var e=this._stack.length;e>0;this._cbs.onclosetag(this._stack[--e]));this._cbs.onend&&this._cbs.onend()},r.prototype.reset=function(){this._cbs.onreset&&this._cbs.onreset(),this._tokenizer.reset(),this._tagname="",this._attribname="",this._attribs=null,this._stack=[],this._cbs.onparserinit&&this._cbs.onparserinit(this)},r.prototype.parseComplete=function(e){this.reset(),this.end(e)},r.prototype.write=function(e){this._tokenizer.write(e)},r.prototype.end=function(e){this._tokenizer.end(e)},r.prototype.pause=function(){this._tokenizer.pause()},r.prototype.resume=function(){this._tokenizer.resume()},r.prototype.parseChunk=r.prototype.write,r.prototype.done=r.prototype.end,e.exports=r},function(e,t,n){function r(e){return" "===e||"\n"===e||"\t"===e||"\f"===e||"\r"===e}function i(e,t){return function(n){n===e&&(this._state=t)}}function o(e,t,n){var r=e.toLowerCase();return e===r?function(e){e===r?this._state=t:(this._state=n,this._index--)}:function(i){i===r||i===e?this._state=t:(this._state=n,this._index--)}}function a(e,t){var n=e.toLowerCase();return function(r){r===n||r===e?this._state=t:(this._state=m,this._index--)}}function s(e,t){this._state=h,this._buffer="",this._sectionStart=0,this._index=0,this._bufferOffset=0,this._baseState=h,this._special=me,this._cbs=t,this._running=!0,this._ended=!1,this._xmlMode=!(!e||!e.xmlMode),this._decodeEntities=!(!e||!e.decodeEntities)}e.exports=s;var u=n(1144),c=n(1146),l=n(1147),p=n(1148),f=0,h=f++,d=f++,m=f++,v=f++,y=f++,g=f++,_=f++,b=f++,x=f++,w=f++,k=f++,S=f++,E=f++,C=f++,A=f++,T=f++,D=f++,M=f++,O=f++,P=f++,I=f++,N=f++,R=f++,j=f++,F=f++,B=f++,L=f++,z=f++,q=f++,U=f++,W=f++,K=f++,V=f++,H=f++,J=f++,G=f++,X=f++,Y=f++,$=f++,Z=f++,Q=f++,ee=f++,te=f++,ne=f++,re=f++,ie=f++,oe=f++,ae=f++,se=f++,ue=f++,ce=f++,le=f++,pe=f++,fe=f++,he=f++,de=0,me=de++,ve=de++,ye=de++;s.prototype._stateText=function(e){"<"===e?(this._index>this._sectionStart&&this._cbs.ontext(this._getSection()),this._state=d,this._sectionStart=this._index):this._decodeEntities&&this._special===me&&"&"===e&&(this._index>this._sectionStart&&this._cbs.ontext(this._getSection()),this._baseState=h,this._state=ce,this._sectionStart=this._index)},s.prototype._stateBeforeTagName=function(e){"/"===e?this._state=y:"<"===e?(this._cbs.ontext(this._getSection()),this._sectionStart=this._index):">"===e||this._special!==me||r(e)?this._state=h:"!"===e?(this._state=A,this._sectionStart=this._index+1):"?"===e?(this._state=D,this._sectionStart=this._index+1):(this._state=this._xmlMode||"s"!==e&&"S"!==e?m:W,this._sectionStart=this._index)},s.prototype._stateInTagName=function(e){("/"===e||">"===e||r(e))&&(this._emitToken("onopentagname"),this._state=b,this._index--)},s.prototype._stateBeforeCloseingTagName=function(e){r(e)||(">"===e?this._state=h:this._special!==me?"s"===e||"S"===e?this._state=K:(this._state=h,this._index--):(this._state=g,this._sectionStart=this._index))},s.prototype._stateInCloseingTagName=function(e){(">"===e||r(e))&&(this._emitToken("onclosetag"),this._state=_,this._index--)},s.prototype._stateAfterCloseingTagName=function(e){">"===e&&(this._state=h,this._sectionStart=this._index+1)},s.prototype._stateBeforeAttributeName=function(e){">"===e?(this._cbs.onopentagend(),this._state=h,this._sectionStart=this._index+1):"/"===e?this._state=v:r(e)||(this._state=x,this._sectionStart=this._index)},s.prototype._stateInSelfClosingTag=function(e){">"===e?(this._cbs.onselfclosingtag(),this._state=h,this._sectionStart=this._index+1):r(e)||(this._state=b,this._index--)},s.prototype._stateInAttributeName=function(e){("="===e||"/"===e||">"===e||r(e))&&(this._cbs.onattribname(this._getSection()),this._sectionStart=-1,this._state=w,this._index--)},s.prototype._stateAfterAttributeName=function(e){"="===e?this._state=k:"/"===e||">"===e?(this._cbs.onattribend(),this._state=b,this._index--):r(e)||(this._cbs.onattribend(),this._state=x,this._sectionStart=this._index)},s.prototype._stateBeforeAttributeValue=function(e){'"'===e?(this._state=S,this._sectionStart=this._index+1):"'"===e?(this._state=E,this._sectionStart=this._index+1):r(e)||(this._state=C,this._sectionStart=this._index,this._index--)},s.prototype._stateInAttributeValueDoubleQuotes=function(e){'"'===e?(this._emitToken("onattribdata"),this._cbs.onattribend(),this._state=b):this._decodeEntities&&"&"===e&&(this._emitToken("onattribdata"),this._baseState=this._state,this._state=ce,this._sectionStart=this._index)},s.prototype._stateInAttributeValueSingleQuotes=function(e){"'"===e?(this._emitToken("onattribdata"),this._cbs.onattribend(),this._state=b):this._decodeEntities&&"&"===e&&(this._emitToken("onattribdata"),this._baseState=this._state,this._state=ce,this._sectionStart=this._index)},s.prototype._stateInAttributeValueNoQuotes=function(e){r(e)||">"===e?(this._emitToken("onattribdata"),this._cbs.onattribend(),this._state=b,this._index--):this._decodeEntities&&"&"===e&&(this._emitToken("onattribdata"),this._baseState=this._state,this._state=ce,this._sectionStart=this._index)},s.prototype._stateBeforeDeclaration=function(e){this._state="["===e?N:"-"===e?M:T},s.prototype._stateInDeclaration=function(e){">"===e&&(this._cbs.ondeclaration(this._getSection()),this._state=h,this._sectionStart=this._index+1)},s.prototype._stateInProcessingInstruction=function(e){">"===e&&(this._cbs.onprocessinginstruction(this._getSection()),this._state=h,this._sectionStart=this._index+1)},s.prototype._stateBeforeComment=function(e){"-"===e?(this._state=O,this._sectionStart=this._index+1):this._state=T},s.prototype._stateInComment=function(e){"-"===e&&(this._state=P)},s.prototype._stateAfterComment1=function(e){"-"===e?this._state=I:this._state=O},s.prototype._stateAfterComment2=function(e){">"===e?(this._cbs.oncomment(this._buffer.substring(this._sectionStart,this._index-2)),this._state=h,this._sectionStart=this._index+1):"-"!==e&&(this._state=O)},s.prototype._stateBeforeCdata1=o("C",R,T),s.prototype._stateBeforeCdata2=o("D",j,T),s.prototype._stateBeforeCdata3=o("A",F,T),s.prototype._stateBeforeCdata4=o("T",B,T),s.prototype._stateBeforeCdata5=o("A",L,T),s.prototype._stateBeforeCdata6=function(e){"["===e?(this._state=z,this._sectionStart=this._index+1):(this._state=T,this._index--)},s.prototype._stateInCdata=function(e){"]"===e&&(this._state=q)},s.prototype._stateAfterCdata1=i("]",U),s.prototype._stateAfterCdata2=function(e){">"===e?(this._cbs.oncdata(this._buffer.substring(this._sectionStart,this._index-2)),this._state=h,this._sectionStart=this._index+1):"]"!==e&&(this._state=z)},s.prototype._stateBeforeSpecial=function(e){"c"===e||"C"===e?this._state=V:"t"===e||"T"===e?this._state=te:(this._state=m,this._index--)},s.prototype._stateBeforeSpecialEnd=function(e){this._special!==ve||"c"!==e&&"C"!==e?this._special!==ye||"t"!==e&&"T"!==e?this._state=h:this._state=oe:this._state=Y},s.prototype._stateBeforeScript1=a("R",H),s.prototype._stateBeforeScript2=a("I",J),s.prototype._stateBeforeScript3=a("P",G),s.prototype._stateBeforeScript4=a("T",X),s.prototype._stateBeforeScript5=function(e){("/"===e||">"===e||r(e))&&(this._special=ve),this._state=m,this._index--},s.prototype._stateAfterScript1=o("R",$,h),s.prototype._stateAfterScript2=o("I",Z,h),s.prototype._stateAfterScript3=o("P",Q,h),s.prototype._stateAfterScript4=o("T",ee,h),s.prototype._stateAfterScript5=function(e){">"===e||r(e)?(this._special=me,this._state=g,this._sectionStart=this._index-6,this._index--):this._state=h},s.prototype._stateBeforeStyle1=a("Y",ne),s.prototype._stateBeforeStyle2=a("L",re),s.prototype._stateBeforeStyle3=a("E",ie),s.prototype._stateBeforeStyle4=function(e){("/"===e||">"===e||r(e))&&(this._special=ye),this._state=m,this._index--},s.prototype._stateAfterStyle1=o("Y",ae,h),s.prototype._stateAfterStyle2=o("L",se,h),s.prototype._stateAfterStyle3=o("E",ue,h),s.prototype._stateAfterStyle4=function(e){">"===e||r(e)?(this._special=me,this._state=g,this._sectionStart=this._index-5,this._index--):this._state=h},s.prototype._stateBeforeEntity=o("#",le,pe),s.prototype._stateBeforeNumericEntity=o("X",he,fe),s.prototype._parseNamedEntityStrict=function(){if(this._sectionStart+16&&(t=6);t>=2;){var n=this._buffer.substr(e,t);if(l.hasOwnProperty(n))return this._emitPartial(l[n]),void(this._sectionStart+=t+1);t--}},s.prototype._stateInNamedEntity=function(e){";"===e?(this._parseNamedEntityStrict(),this._sectionStart+1"z")&&(e<"A"||e>"Z")&&(e<"0"||e>"9")&&(this._xmlMode||this._sectionStart+1===this._index||(this._baseState!==h?"="!==e&&this._parseNamedEntityStrict():this._parseLegacyEntity()),this._state=this._baseState,this._index--)},s.prototype._decodeNumericEntity=function(e,t){var n=this._sectionStart+e;if(n!==this._index){var r=this._buffer.substring(n,this._index),i=parseInt(r,t);this._emitPartial(u(i)),this._sectionStart=this._index}else this._sectionStart--;this._state=this._baseState},s.prototype._stateInNumericEntity=function(e){";"===e?(this._decodeNumericEntity(2,10),this._sectionStart++):(e<"0"||e>"9")&&(this._xmlMode?this._state=this._baseState:this._decodeNumericEntity(2,10),this._index--)},s.prototype._stateInHexEntity=function(e){";"===e?(this._decodeNumericEntity(3,16),this._sectionStart++):(e<"a"||e>"f")&&(e<"A"||e>"F")&&(e<"0"||e>"9")&&(this._xmlMode?this._state=this._baseState:this._decodeNumericEntity(3,16),this._index--)},s.prototype._cleanup=function(){this._sectionStart<0?(this._buffer="",this._bufferOffset+=this._index,this._index=0):this._running&&(this._state===h?(this._sectionStart!==this._index&&this._cbs.ontext(this._buffer.substr(this._sectionStart)),this._buffer="",this._bufferOffset+=this._index,this._index=0):this._sectionStart===this._index?(this._buffer="",this._bufferOffset+=this._index,this._index=0):(this._buffer=this._buffer.substr(this._sectionStart),this._index-=this._sectionStart,this._bufferOffset+=this._sectionStart),this._sectionStart=0)},s.prototype.write=function(e){this._ended&&this._cbs.onerror(Error(".write() after done!")),this._buffer+=e,this._parse()},s.prototype._parse=function(){for(;this._index=55296&&e<=57343||e>1114111)return"�";e in i&&(e=i[e]);var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+=String.fromCharCode(e)}var i=n(1145);e.exports=r},function(e,t){e.exports={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376}},function(e,t){e.exports={Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",amp:"&",AMP:"&",andand:"⩕",And:"⩓",and:"∧",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angmsd:"∡",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",apacir:"⩯",ap:"≈",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxHd:"╤",boxhD:"╥",boxHD:"╦",boxhu:"┴",boxHu:"╧",boxhU:"╨",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsolb:"⧅",bsol:"\\",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",capand:"⩄",capbrcup:"⩉",capcap:"⩋",cap:"∩",Cap:"⋒",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cir:"○",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cup:"∪",Cup:"⋓",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",Darr:"↡",dArr:"⇓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",ddagger:"‡",ddarr:"⇊",DD:"ⅅ",dd:"ⅆ",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrowBar:"⤓",downarrow:"↓",DownArrow:"↓",Downarrow:"⇓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVectorBar:"⥖",DownLeftVector:"↽",DownRightTeeVector:"⥟",DownRightVectorBar:"⥗",DownRightVector:"⇁",DownTeeArrow:"↧",DownTee:"⊤",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",Ecirc:"Ê",ecirc:"ê",ecir:"≖",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",edot:"ė",eDot:"≑",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp13:" ",emsp14:" ",emsp:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",ge:"≥",gE:"≧",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",gescc:"⪩",ges:"⩾",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gla:"⪥",gl:"≷",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gtcc:"⪧",gtcir:"⩺",gt:">",GT:">",Gt:"≫",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",harrcir:"⥈",harr:"↔",hArr:"⇔",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",Im:"ℑ",imof:"⊷",imped:"Ƶ",Implies:"⇒",incare:"℅",in:"∈",infin:"∞",infintie:"⧝",inodot:"ı",intcal:"⊺",int:"∫",Int:"∬",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larrb:"⇤",larrbfs:"⤟",larr:"←",Larr:"↞",lArr:"⇐",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",latail:"⤙",lAtail:"⤛",lat:"⪫",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",LeftArrowBar:"⇤",leftarrow:"←",LeftArrow:"←",Leftarrow:"⇐",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVectorBar:"⥙",LeftDownVector:"⇃",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTeeArrow:"↤",LeftTee:"⊣",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangleBar:"⧏",LeftTriangle:"⊲",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVectorBar:"⥘",LeftUpVector:"↿",LeftVectorBar:"⥒",LeftVector:"↼",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",lescc:"⪨",les:"⩽",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",llarr:"⇇",ll:"≪",Ll:"⋘",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoustache:"⎰",lmoust:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftrightarrow:"⟷",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longmapsto:"⟼",longrightarrow:"⟶",LongRightArrow:"⟶",Longrightarrow:"⟹",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",ltcc:"⪦",ltcir:"⩹",lt:"<",LT:"<",Lt:"≪",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",midast:"*",midcir:"⫰",mid:"∣",middot:"·",minusb:"⊟",minus:"−",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natural:"♮",naturals:"ℕ",natur:"♮",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",ne:"≠",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nlE:"≦̸",nle:"≰",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangleBar:"⧏̸",NotLeftTriangle:"⋪",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangleBar:"⧐̸",NotRightTriangle:"⋫",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",nparallel:"∦",npar:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",nprec:"⊀",npreceq:"⪯̸",npre:"⪯̸",nrarrc:"⤳̸",nrarr:"↛",nrArr:"⇏",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",Ocirc:"Ô",ocirc:"ô",ocir:"⊚",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",orarr:"↻",Or:"⩔",or:"∨",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",otimesas:"⨶",Otimes:"⨷",otimes:"⊗",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",para:"¶",parallel:"∥",par:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plus:"+",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",prap:"⪷",Pr:"⪻",pr:"≺",prcue:"≼",precapprox:"⪷",prec:"≺",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",pre:"⪯",prE:"⪳",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportional:"∝",Proportion:"∷",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarr:"→",Rarr:"↠",rArr:"⇒",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",Re:"ℜ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrowBar:"⇥",rightarrow:"→",RightArrow:"→",Rightarrow:"⇒",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVectorBar:"⥕",RightDownVector:"⇂",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTeeArrow:"↦",RightTee:"⊢",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangleBar:"⧐",RightTriangle:"⊳",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVectorBar:"⥔",RightUpVector:"↾",RightVectorBar:"⥓",RightVector:"⇀",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoustache:"⎱",rmoust:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",scap:"⪸",Scaron:"Š",scaron:"š",Sc:"⪼",sc:"≻",sccue:"≽",sce:"⪰",scE:"⪴",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdotb:"⊡",sdot:"⋅",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",solbar:"⌿",solb:"⧄",sol:"/",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squ:"□",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succapprox:"⪸",succ:"≻",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",sup:"⊃",Sup:"⋑",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",therefore:"∴",Therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",ThinSpace:" ",thinsp:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",timesbar:"⨱",timesb:"⊠",times:"×",timesd:"⨰",tint:"∭",toea:"⤨",topbot:"⌶",topcir:"⫱",top:"⊤",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",uarr:"↑",Uarr:"↟",uArr:"⇑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrowBar:"⤒",uparrow:"↑",UpArrow:"↑",Uparrow:"⇑",UpArrowDownArrow:"⇅",updownarrow:"↕",UpDownArrow:"↕",Updownarrow:"⇕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTeeArrow:"↥",UpTee:"⊥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",Vcy:"В",vcy:"в",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",veebar:"⊻",vee:"∨",Vee:"⋁",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xharr:"⟷",xhArr:"⟺",Xi:"Ξ",xi:"ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",yuml:"ÿ",Yuml:"Ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",zfr:"𝔷",Zfr:"ℨ",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"}},function(e,t){e.exports={Aacute:"Á",aacute:"á",Acirc:"Â",acirc:"â",acute:"´",AElig:"Æ",aelig:"æ",Agrave:"À",agrave:"à",amp:"&",AMP:"&",Aring:"Å",aring:"å",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",brvbar:"¦",Ccedil:"Ç",ccedil:"ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",Eacute:"É",eacute:"é",Ecirc:"Ê",ecirc:"ê",Egrave:"È",egrave:"è",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",Iacute:"Í",iacute:"í",Icirc:"Î",icirc:"î",iexcl:"¡",Igrave:"Ì",igrave:"ì",iquest:"¿",Iuml:"Ï",iuml:"ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",Ntilde:"Ñ",ntilde:"ñ",Oacute:"Ó",oacute:"ó",Ocirc:"Ô",ocirc:"ô",Ograve:"Ò",ograve:"ò",ordf:"ª",ordm:"º",Oslash:"Ø",oslash:"ø",Otilde:"Õ",otilde:"õ",Ouml:"Ö",ouml:"ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",THORN:"Þ",thorn:"þ",times:"×",Uacute:"Ú",uacute:"ú",Ucirc:"Û",ucirc:"û",Ugrave:"Ù",ugrave:"ù",uml:"¨",Uuml:"Ü",uuml:"ü",Yacute:"Ý",yacute:"ý",yen:"¥",yuml:"ÿ"}},function(e,t){e.exports={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}},function(e,t,n){function r(e,t,n){"object"==typeof e?(n=t,t=e,e=null):"function"==typeof t&&(n=t,t=u),this._callback=e,this._options=t||u,this._elementCB=n,this.dom=[],this._done=!1,this._tagStack=[],this._parser=this._parser||null}var i=n(1150),o=/\s+/g,a=n(1151),s=n(1152),u={normalizeWhitespace:!1,withStartIndices:!1,withEndIndices:!1};r.prototype.onparserinit=function(e){this._parser=e},r.prototype.onreset=function(){r.call(this,this._callback,this._options,this._elementCB)},r.prototype.onend=function(){this._done||(this._done=!0,this._parser=null,this._handleCallback(null))},r.prototype._handleCallback=r.prototype.onerror=function(e){if("function"==typeof this._callback)this._callback(e,this.dom);else if(e)throw e},r.prototype.onclosetag=function(){var e=this._tagStack.pop();this._options.withEndIndices&&(e.endIndex=this._parser.endIndex),this._elementCB&&this._elementCB(e)},r.prototype._createDomElement=function(e){if(!this._options.withDomLvl1)return e;var t;t="tag"===e.type?Object.create(s):Object.create(a);for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t},r.prototype._addDomElement=function(e){var t=this._tagStack[this._tagStack.length-1],n=t?t.children:this.dom,r=n[n.length-1];e.next=null,this._options.withStartIndices&&(e.startIndex=this._parser.startIndex),this._options.withEndIndices&&(e.endIndex=this._parser.endIndex),r?(e.prev=r,r.next=e):e.prev=null,n.push(e),e.parent=t||null},r.prototype.onopentag=function(e,t){var n={type:"script"===e?i.Script:"style"===e?i.Style:i.Tag,name:e,attribs:t,children:[]},r=this._createDomElement(n);this._addDomElement(r),this._tagStack.push(r)},r.prototype.ontext=function(e){var t,n=this._options.normalizeWhitespace||this._options.ignoreWhitespace;if(!this._tagStack.length&&this.dom.length&&(t=this.dom[this.dom.length-1]).type===i.Text)n?t.data=(t.data+e).replace(o," "):t.data+=e;else if(this._tagStack.length&&(t=this._tagStack[this._tagStack.length-1])&&(t=t.children[t.children.length-1])&&t.type===i.Text)n?t.data=(t.data+e).replace(o," "):t.data+=e;else{n&&(e=e.replace(o," "));var r=this._createDomElement({data:e,type:i.Text});this._addDomElement(r)}},r.prototype.oncomment=function(e){var t=this._tagStack[this._tagStack.length-1];if(t&&t.type===i.Comment)return void(t.data+=e);var n={data:e,type:i.Comment},r=this._createDomElement(n);this._addDomElement(r),this._tagStack.push(r)},r.prototype.oncdatastart=function(){var e={children:[{data:"",type:i.Text}],type:i.CDATA},t=this._createDomElement(e);this._addDomElement(t),this._tagStack.push(t)},r.prototype.oncommentend=r.prototype.oncdataend=function(){this._tagStack.pop()},r.prototype.onprocessinginstruction=function(e,t){var n=this._createDomElement({name:e,data:t,type:i.Directive});this._addDomElement(n)},e.exports=r},function(e,t){e.exports={Text:"text",Directive:"directive",Comment:"comment",Script:"script",Style:"style",Tag:"tag",CDATA:"cdata",Doctype:"doctype",isTag:function(e){return"tag"===e.type||"script"===e.type||"style"===e.type}}},function(e,t){var n=e.exports={get firstChild(){var e=this.children;return e&&e[0]||null},get lastChild(){var e=this.children;return e&&e[e.length-1]||null},get nodeType(){return i[this.type]||i.element}},r={tagName:"name",childNodes:"children",parentNode:"parent",previousSibling:"prev",nextSibling:"next",nodeValue:"data"},i={element:1,text:3,cdata:4,comment:8};Object.keys(r).forEach(function(e){var t=r[e];Object.defineProperty(n,e,{get:function(){return this[t]||null},set:function(e){return this[t]=e,e}})})},function(e,t,n){var r=n(1151),i=e.exports=Object.create(r),o={tagName:"name"};Object.keys(o).forEach(function(e){var t=o[e];Object.defineProperty(i,e,{ -get:function(){return this[t]||null},set:function(e){return this[t]=e,e}})})},function(e,t,n){function r(e,t){this.init(e,t)}function i(e,t){return l.getElementsByTagName(e,t,!0)}function o(e,t){return l.getElementsByTagName(e,t,!0,1)[0]}function a(e,t,n){return l.getText(l.getElementsByTagName(e,t,n,1)).trim()}function s(e,t,n,r,i){var o=a(n,r,i);o&&(e[t]=o)}var u=n(1141),c=u.DomHandler,l=u.DomUtils;n(328)(r,c),r.prototype.init=c;var p=function(e){return"rss"===e||"feed"===e||"rdf:RDF"===e};r.prototype.onend=function(){var e,t,n={},r=o(p,this.dom);r&&("feed"===r.name?(t=r.children,n.type="atom",s(n,"id","id",t),s(n,"title","title",t),(e=o("link",t))&&(e=e.attribs)&&(e=e.href)&&(n.link=e),s(n,"description","subtitle",t),(e=a("updated",t))&&(n.updated=new Date(e)),s(n,"author","email",t,!0),n.items=i("entry",t).map(function(e){var t,n={};return e=e.children,s(n,"id","id",e),s(n,"title","title",e),(t=o("link",e))&&(t=t.attribs)&&(t=t.href)&&(n.link=t),(t=a("summary",e)||a("content",e))&&(n.description=t),(t=a("updated",e))&&(n.pubDate=new Date(t)),n})):(t=o("channel",r.children).children,n.type=r.name.substr(0,3),n.id="",s(n,"title","title",t),s(n,"link","link",t),s(n,"description","description",t),(e=a("lastBuildDate",t))&&(n.updated=new Date(e)),s(n,"author","managingEditor",t,!0),n.items=i("item",r.children).map(function(e){var t,n={};return e=e.children,s(n,"id","guid",e),s(n,"title","title",e),s(n,"link","link",e),s(n,"description","description",e),(t=a("pubDate",e))&&(n.pubDate=new Date(t)),n}))),this.dom=n,c.prototype._handleCallback.call(this,r?null:Error("couldn't find root of feed"))},e.exports=r},function(e,t,n){function r(e){o.call(this,new i(this),e)}function i(e){this.scope=e}e.exports=r;var o=n(1155);n(328)(r,o),r.prototype.readable=!0;var a=n(1141).EVENTS;Object.keys(a).forEach(function(e){if(0===a[e])i.prototype["on"+e]=function(){this.scope.emit(e)};else if(1===a[e])i.prototype["on"+e]=function(t){this.scope.emit(e,t)};else{if(2!==a[e])throw Error("wrong number of arguments!");i.prototype["on"+e]=function(t,n){this.scope.emit(e,t,n)}}})},function(e,t,n){function r(e,t){var n=this._parser=new i(e,t),r=this._decoder=new a;o.call(this,{decodeStrings:!1}),this.once("finish",function(){n.end(r.end())})}e.exports=r;var i=n(1142),o=n(326).Writable||n(1156).Writable,a=n(343).StringDecoder,s=n(132).Buffer;n(328)(r,o),o.prototype._write=function(e,t,n){e instanceof s&&(e=this._decoder.write(e)),this._parser.write(e),n()}},335,function(e,t,n){function r(e){this._cbs=e||{}}e.exports=r;var i=n(1141).EVENTS;Object.keys(i).forEach(function(e){if(0===i[e])e="on"+e,r.prototype[e]=function(){this._cbs[e]&&this._cbs[e]()};else if(1===i[e])e="on"+e,r.prototype[e]=function(t){this._cbs[e]&&this._cbs[e](t)};else{if(2!==i[e])throw Error("wrong number of arguments");e="on"+e,r.prototype[e]=function(t,n){this._cbs[e]&&this._cbs[e](t,n)}}})},function(e,t,n){var r=e.exports;[n(1159),n(1165),n(1166),n(1167),n(1168),n(1169)].forEach(function(e){Object.keys(e).forEach(function(t){r[t]=e[t].bind(r)})})},function(e,t,n){function r(e,t){return e.children?e.children.map(function(e){return a(e,t)}).join(""):""}function i(e){return Array.isArray(e)?e.map(i).join(""):s(e)?"br"===e.name?"\n":i(e.children):e.type===o.CDATA?i(e.children):e.type===o.Text?e.data:""}var o=n(1150),a=n(1160),s=o.isTag;e.exports={getInnerHTML:r,getOuterHTML:a,getText:i}},function(e,t,n){function r(e,t){if(e){var n,r="";for(var i in e)n=e[i],r&&(r+=" "),r+=!n&&p[i]?i:i+'="'+(t.decodeEntities?l.encodeXML(n):n)+'"';return r}}function i(e,t){"svg"===e.name&&(t={decodeEntities:t.decodeEntities,xmlMode:!0});var n="<"+e.name,i=r(e.attribs,t);return i&&(n+=" "+i),!t.xmlMode||e.children&&0!==e.children.length?(n+=">",e.children&&(n+=d(e.children,t)),h[e.name]&&!t.xmlMode||(n+="")):n+="/>",n}function o(e){return"<"+e.data+">"}function a(e,t){var n=e.data||"";return!t.decodeEntities||e.parent&&e.parent.name in f||(n=l.encodeXML(n)),n}function s(e){return""}function u(e){return""}var c=n(1161),l=n(1162),p={__proto__:null,allowfullscreen:!0,async:!0,autofocus:!0,autoplay:!0,checked:!0,controls:!0,default:!0,defer:!0,disabled:!0,hidden:!0,ismap:!0,loop:!0,multiple:!0,muted:!0,open:!0,readonly:!0,required:!0,reversed:!0,scoped:!0,seamless:!0,selected:!0,typemustmatch:!0},f={__proto__:null,style:!0,script:!0,xmp:!0,iframe:!0,noembed:!0,noframes:!0,plaintext:!0,noscript:!0},h={__proto__:null,area:!0,base:!0,basefont:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,isindex:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},d=e.exports=function(e,t){Array.isArray(e)||e.cheerio||(e=[e]),t=t||{};for(var n="",r=0;r0&&(o=i(e,o,n,r),a=a.concat(o),r-=o.length,r<=0)));s++);return a}function o(e,t){for(var n=0,r=t.length;n0&&(n=a(e,t[r].children)));return n}function s(e,t){for(var n=0,r=t.length;n0&&s(e,t[n].children)))return!0;return!1}function u(e,t){for(var n=[],r=[t];r.length;){for(var i=r.pop(),o=0,a=i.length;o0;)i[a].children&&i[a].children.length>0&&r.push(i[a].children)}return n}var c=n(1150).isTag;e.exports={filter:r,find:i,findOneChild:o,findOne:a,existsOne:s,findAll:u}},function(e,t,n){function r(e,t){return"function"==typeof t?function(n){return n.attribs&&t(n.attribs[e])}:function(n){return n.attribs&&n.attribs[e]===t}}function i(e,t){return function(n){return e(n)||t(n)}}var o=n(1150),a=t.isTag=o.isTag;t.testElement=function(e,t){for(var n in e)if(e.hasOwnProperty(n)){if("tag_name"===n){if(!a(t)||!e.tag_name(t.name))return!1}else if("tag_type"===n){if(!e.tag_type(t.type))return!1}else if("tag_contains"===n){if(a(t)||!e.tag_contains(t.data))return!1}else if(!t.attribs||!e[n](t.attribs[n]))return!1}else;return!0};var s={tag_name:function(e){return"function"==typeof e?function(t){return a(t)&&e(t.name)}:"*"===e?a:function(t){return a(t)&&t.name===e}},tag_type:function(e){return"function"==typeof e?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return"function"==typeof e?function(t){return!a(t)&&e(t.data)}:function(t){return!a(t)&&t.data===e}}};t.getElements=function(e,t,n,o){var a=Object.keys(e).map(function(t){var n=e[t];return t in s?s[t](n):r(t,n)});return 0===a.length?[]:this.filter(a.reduce(i),t,n,o)},t.getElementById=function(e,t,n){return Array.isArray(t)||(t=[t]),this.findOne(r("id",e),t,n!==!1)},t.getElementsByTagName=function(e,t,n,r){return this.filter(s.tag_name(e),t,n,r)},t.getElementsByTagType=function(e,t,n,r){return this.filter(s.tag_type(e),t,n,r)}},function(e,t){t.removeSubsets=function(e){for(var t,n,r,i=e.length;--i>-1;){for(t=n=e[i],e[i]=null,r=!0;n;){if(e.indexOf(n)>-1){r=!1,e.splice(i,1);break}n=n.parent}r&&(e[i]=t)}return e};var n={DISCONNECTED:1,PRECEDING:2,FOLLOWING:4,CONTAINS:8,CONTAINED_BY:16},r=t.compareDocumentPosition=function(e,t){var r,i,o,a,s,u,c=[],l=[];if(e===t)return 0;for(r=e;r;)c.unshift(r),r=r.parent;for(r=t;r;)l.unshift(r),r=r.parent;for(u=0;c[u]===l[u];)u++;return 0===u?n.DISCONNECTED:(i=c[u-1],o=i.children,a=c[u],s=l[u],o.indexOf(a)>o.indexOf(s)?i===t?n.FOLLOWING|n.CONTAINED_BY:n.FOLLOWING:i===e?n.PRECEDING|n.CONTAINS:n.PRECEDING)};t.uniqueSort=function(e){var t,i,o=e.length;for(e=e.slice();--o>-1;)t=e[o],i=e.indexOf(t),i>-1&&i-1}var o=n(r);e.exports=i},function(e,t,n,r){function i(e,t){var n=this.__data__,r=o(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var o=n(r);e.exports=i},function(e,t,n,r,i){var o=n(r),a=n(i),s=o(a,"Map");e.exports=s},function(e,t,n,r){function i(e){var t=o(this,e).delete(e);return this.size-=t?1:0,t}var o=n(r);e.exports=i},function(e,t,n,r){function i(e,t){var n=e.__data__;return o(t)?n["string"==typeof t?"string":"hash"]:n.map}var o=n(r);e.exports=i},function(e,t,n,r){function i(e){return o(this,e).get(e)}var o=n(r);e.exports=i},function(e,t,n,r){function i(e){return o(this,e).has(e)}var o=n(r);e.exports=i},function(e,t,n,r){function i(e,t){var n=o(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var o=n(r);e.exports=i},function(e,t,n,r,i,o){function a(e){return function(t,n,r){var i=Object(t);if(!u(t)){var o=s(n,3);t=c(t),n=function(e){return o(i[e],e,i)}}var a=e(t,n,r);return a>-1?i[o?t[a]:a]:void 0}}var s=n(r),u=n(i),c=n(o);e.exports=a},function(e,t,n,r,i,o,a,s){function u(e){return"function"==typeof e?e:null==e?p:"object"==typeof e?f(e)?l(e[0],e[1]):c(e):h(e)}var c=n(r),l=n(i),p=n(o),f=n(a),h=n(s);e.exports=u},function(e,t,n,r,i,o){function a(e){var t=u(e);return 1==t.length&&t[0][2]?c(t[0][0],t[0][1]):function(n){return n===e||s(n,e,t)}}var s=n(r),u=n(i),c=n(o);e.exports=a},function(e,t,n,r,i,o,a,s,u){function c(e){var t=this.__data__=new l(e);this.size=t.size}var l=n(r),p=n(i),f=n(o),h=n(a),d=n(s),m=n(u);c.prototype.clear=p,c.prototype.delete=f,c.prototype.get=h,c.prototype.has=d,c.prototype.set=m,e.exports=c},function(e,t,n,r){function i(){this.__data__=new o,this.size=0}var o=n(r);e.exports=i},function(e,t,n,r,i,o){function a(e,t){var n=this.__data__;if(n instanceof s){var r=n.__data__;if(!u||r.length0&&n(l)?t>1?o(l,t-1,n,r,i):a(i,l):r||(i[i.length]=l)}return i}var a=n(r),s=n(i);e.exports=o},function(e,t,n,r,i,o){function a(e){return c(e)||u(e)||!!(l&&e&&e[l])}var s=n(r),u=n(i),c=n(o),l=s?s.isConcatSpreadable:void 0;e.exports=a},function(e,t,n,r){function i(e,t,n){return t=a(void 0===t?e.length-1:t,0),function(){for(var r=arguments,i=-1,s=a(r.length-t,0),u=Array(s);++i=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){var r=n(19),i=n(20);e.exports=function(e){return function(t,n){var o,s,a=String(i(t)),u=r(n),c=a.length;return u<0||u>=c?e?"":void 0:(o=a.charCodeAt(u),o<55296||o>56319||u+1===c||(s=a.charCodeAt(u+1))<56320||s>57343?e?a.charAt(u):o:e?a.slice(u,u+2):(o-55296<<10)+(s-56320)+65536)}}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";var r=n(22),i=n(23),o=n(10),s=n(11),a=n(26),u=n(27),c=n(28),l=n(29),h=n(12).getProto,p=n(6)("iterator"),f=!([].keys&&"next"in[].keys()),d="@@iterator",m="keys",g="values",x=function(){return this};e.exports=function(e,t,n,y,v,b,D){c(n,t,y);var w,E,k=function(e){if(!f&&e in F)return F[e];switch(e){case m:return function(){return new n(this,e)};case g:return function(){return new n(this,e)}}return function(){return new n(this,e)}},A=t+" Iterator",C=v==g,S=!1,F=e.prototype,T=F[p]||F[d]||v&&F[v],B=T||k(v);if(T){var N=h(B.call(new e));l(N,A,!0),!r&&a(F,d)&&s(N,p,x),C&&T.name!==g&&(S=!0,B=function(){return T.call(this)})}if(r&&!D||!f&&!S&&F[p]||s(F,p,B),u[t]=B,u[A]=x,v)if(w={values:C?B:k(g),keys:b?B:k(m),entries:C?k("entries"):B},D)for(E in w)E in F||o(F,E,w[E]);else i(i.P+i.F*(f||S),t,w);return w}},function(e,t){e.exports=!1},function(e,t,n){var r=n(8),i=n(16),o=n(11),s=n(10),a=n(24),u="prototype",c=function(e,t,n){var l,h,p,f,d=e&c.F,m=e&c.G,g=e&c.S,x=e&c.P,y=e&c.B,v=m?r:g?r[t]||(r[t]={}):(r[t]||{})[u],b=m?i:i[t]||(i[t]={}),D=b[u]||(b[u]={});m&&(n=t);for(l in n)h=!d&&v&&l in v,p=(h?v:n)[l],f=y&&h?a(p,r):x&&"function"==typeof p?a(Function.call,p):p,v&&!h&&s(v,l,p),b[l]!=p&&o(b,l,f),x&&D[l]!=p&&(D[l]=p)};r.core=i,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,e.exports=c},function(e,t,n){var r=n(25);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t){e.exports={}},function(e,t,n){"use strict";var r=n(12),i=n(13),o=n(29),s={};n(11)(s,n(6)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r.create(s,{next:i(1,n)}),o(e,t+" Iterator")}},function(e,t,n){var r=n(12).setDesc,i=n(26),o=n(6)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},function(e,t,n){n(31);var r=n(8),i=n(11),o=n(27),s=n(6)("iterator"),a=r.NodeList,u=r.HTMLCollection,c=a&&a.prototype,l=u&&u.prototype,h=o.NodeList=o.HTMLCollection=o.Array;c&&!c[s]&&i(c,s,h),l&&!l[s]&&i(l,s,h)},function(e,t,n){"use strict";var r=n(32),i=n(33),o=n(27),s=n(34);e.exports=n(21)(Array,"Array",function(e,t){this._t=s(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):"keys"==t?i(0,n):"values"==t?i(0,e[n]):i(0,[n,e[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(e,t,n){var r=n(6)("unscopables"),i=Array.prototype;void 0==i[r]&&n(11)(i,r,{}),e.exports=function(e){i[r][e]=!0}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){var r=n(35),i=n(20);e.exports=function(e){return r(i(e))}},function(e,t,n){var r=n(5);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){"use strict";var r,i=n(12),o=n(22),s=n(8),a=n(24),u=n(4),c=n(23),l=n(37),h=n(38),p=n(25),f=n(39),d=n(40),m=n(45).set,g=n(46),x=n(6)("species"),y=n(47),v=n(48),b="Promise",D=s.process,w="process"==u(D),E=s[b],k=function(){},A=function(e){var t,n=new E(k);return e&&(n.constructor=function(e){e(k,k)}),(t=E.resolve(n)).catch(k),t===n},C=function(){function e(t){var n=new E(t);return m(n,e.prototype),n}var t=!1;try{if(t=E&&E.resolve&&A(),m(e,E),e.prototype=i.create(E.prototype,{constructor:{value:e}}),e.resolve(5).then(function(){})instanceof e||(t=!1),t&&n(14)){var r=!1;E.resolve(i.setDesc({},"then",{get:function(){r=!0}})),t=r}}catch(e){t=!1}return t}(),S=function(e,t){return!(!o||e!==E||t!==r)||g(e,t)},F=function(e){var t=h(e)[x];return void 0!=t?t:e},T=function(e){var t;return!(!l(e)||"function"!=typeof(t=e.then))&&t},B=function(e){var t,n;this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r}),this.resolve=p(t),this.reject=p(n)},N=function(e){try{e()}catch(e){return{error:e}}},I=function(e,t){if(!e.n){e.n=!0;var n=e.c;v(function(){for(var r=e.v,i=1==e.s,o=0,a=function(t){var n,o,s=i?t.ok:t.fail,a=t.resolve,u=t.reject;try{s?(i||(e.h=!0),n=s===!0?r:s(r),n===t.promise?u(TypeError("Promise-chain cycle")):(o=T(n))?o.call(n,a,u):a(n)):u(r)}catch(e){u(e)}};n.length>o;)a(n[o++]);n.length=0,e.n=!1,t&&setTimeout(function(){var t,n,i=e.p;P(i)&&(w?D.emit("unhandledRejection",r,i):(t=s.onunhandledrejection)?t({promise:i,reason:r}):(n=s.console)&&n.error&&n.error("Unhandled promise rejection",r)),e.a=void 0},1)})}},P=function(e){var t,n=e._d,r=n.a||n.c,i=0;if(n.h)return!1;for(;r.length>i;)if(t=r[i++],t.fail||!P(t.promise))return!1;return!0},M=function(e){var t=this;t.d||(t.d=!0,t=t.r||t,t.v=e,t.s=2,t.a=t.c.slice(),I(t,!0))},O=function(e){var t,n=this;if(!n.d){n.d=!0,n=n.r||n;try{if(n.p===e)throw TypeError("Promise can't be resolved itself");(t=T(e))?v(function(){var r={r:n,d:!1};try{t.call(e,a(O,r,1),a(M,r,1))}catch(e){M.call(r,e)}}):(n.v=e,n.s=1,I(n,!1))}catch(e){M.call({r:n,d:!1},e)}}};C||(E=function(e){p(e);var t=this._d={p:f(this,E,b),c:[],a:void 0,s:0,d:!1,v:void 0,h:!1,n:!1};try{e(a(O,t,1),a(M,t,1))}catch(e){M.call(t,e)}},n(53)(E.prototype,{then:function(e,t){var n=new B(y(this,E)),r=n.promise,i=this._d;return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,i.c.push(n),i.a&&i.a.push(n),i.s&&I(i,!1),r},catch:function(e){return this.then(void 0,e)}})),c(c.G+c.W+c.F*!C,{Promise:E}),n(29)(E,b),n(54)(b),r=n(16)[b],c(c.S+c.F*!C,b,{reject:function(e){var t=new B(this),n=t.reject;return n(e),t.promise}}),c(c.S+c.F*(!C||A(!0)),b,{resolve:function(e){if(e instanceof E&&S(e.constructor,this))return e;var t=new B(this),n=t.resolve;return n(e),t.promise}}),c(c.S+c.F*!(C&&n(55)(function(e){E.all(e).catch(function(){})})),b,{all:function(e){var t=F(this),n=new B(t),r=n.resolve,o=n.reject,s=[],a=N(function(){d(e,!1,s.push,s);var n=s.length,a=Array(n);n?i.each.call(s,function(e,i){var s=!1;t.resolve(e).then(function(e){s||(s=!0,a[i]=e,--n||r(a))},o)}):r(a)});return a&&o(a.error),n.promise},race:function(e){var t=F(this),n=new B(t),r=n.reject,i=N(function(){d(e,!1,function(e){t.resolve(e).then(n.resolve,r)})});return i&&r(i.error),n.promise}})},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var r=n(37);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e,t,n){if(!(e instanceof t))throw TypeError(n+": use the 'new' operator!");return e}},function(e,t,n){var r=n(24),i=n(41),o=n(42),s=n(38),a=n(43),u=n(44);e.exports=function(e,t,n,c){var l,h,p,f=u(e),d=r(n,c,t?2:1),m=0;if("function"!=typeof f)throw TypeError(e+" is not iterable!");if(o(f))for(l=a(e.length);l>m;m++)t?d(s(h=e[m])[0],h[1]):d(e[m]);else for(p=f.call(e);!(h=p.next()).done;)i(p,d,h.value,t)}},function(e,t,n){var r=n(38);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(t){var o=e.return;throw void 0!==o&&r(o.call(e)),t}}},function(e,t,n){var r=n(27),i=n(6)("iterator"),o=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||o[i]===e)}},function(e,t,n){var r=n(19),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},function(e,t,n){var r=n(4),i=n(6)("iterator"),o=n(27);e.exports=n(16).getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||o[r(e)]}},function(e,t,n){var r=n(12).getDesc,i=n(37),o=n(38),s=function(e,t){if(o(e),!i(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,i){try{i=n(24)(Function.call,r(Object.prototype,"__proto__").set,2),i(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return s(e,n),t?e.__proto__=n:i(e,n),e}}({},!1):void 0),check:s}},function(e,t){e.exports=Object.is||function(e,t){return e===t?0!==e||1/e===1/t:e!=e&&t!=t}},function(e,t,n){var r=n(38),i=n(25),o=n(6)("species");e.exports=function(e,t){var n,s=r(e).constructor;return void 0===s||void 0==(n=r(s)[o])?t:i(n)}},function(e,t,n){var r,i,o,s=n(8),a=n(49).set,u=s.MutationObserver||s.WebKitMutationObserver,c=s.process,l=s.Promise,h="process"==n(5)(c),p=function(){var e,t,n;for(h&&(e=c.domain)&&(c.domain=null,e.exit());r;)t=r.domain,n=r.fn,t&&t.enter(),n(),t&&t.exit(),r=r.next;i=void 0,e&&e.enter()};if(h)o=function(){c.nextTick(p)};else if(u){var f=1,d=document.createTextNode("");new u(p).observe(d,{characterData:!0}),o=function(){d.data=f=-f}}else o=l&&l.resolve?function(){l.resolve().then(p)}:function(){a.call(s,p)};e.exports=function(e){var t={fn:e,next:void 0,domain:h&&c.domain};i&&(i.next=t),r||(r=t,o()),i=t}},function(e,t,n){var r,i,o,s=n(24),a=n(50),u=n(51),c=n(52),l=n(8),h=l.process,p=l.setImmediate,f=l.clearImmediate,d=l.MessageChannel,m=0,g={},x="onreadystatechange",y=function(){var e=+this;if(g.hasOwnProperty(e)){var t=g[e];delete g[e],t()}},v=function(e){y.call(e.data)};p&&f||(p=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return g[++m]=function(){a("function"==typeof e?e:Function(e),t)},r(m),m},f=function(e){delete g[e]},"process"==n(5)(h)?r=function(e){h.nextTick(s(y,e,1))}:d?(i=new d,o=i.port2,i.port1.onmessage=v,r=s(o.postMessage,o,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(e){l.postMessage(e+"","*")},l.addEventListener("message",v,!1)):r=x in c("script")?function(e){u.appendChild(c("script"))[x]=function(){u.removeChild(this),y.call(e)}}:function(e){setTimeout(s(y,e,1),0)}),e.exports={set:p,clear:f}},function(e,t){e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t,n){e.exports=n(8).document&&document.documentElement},function(e,t,n){var r=n(37),i=n(8).document,o=r(i)&&r(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},function(e,t,n){var r=n(10);e.exports=function(e,t){for(var n in t)r(e,n,t[n]);return e}},function(e,t,n){"use strict";var r=n(8),i=n(12),o=n(14),s=n(6)("species");e.exports=function(e){var t=r[e];o&&t&&!t[s]&&i.setDesc(t,s,{configurable:!0,get:function(){return this}})}},function(e,t,n){var r=n(6)("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var o=[7],s=o[r]();s.next=function(){return{done:n=!0}},o[r]=function(){return s},e(o)}catch(e){}return n}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(57),o=r(i);n(174);var s=n(178),a=r(s),u=n(181),c=r(u),l=[a.default,c.default,function(){return{components:{StandaloneLayout:o.default}}}];e.exports=l},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(58),o=r(i),s=n(84),a=r(s),u=n(85),c=r(u),l=n(89),h=r(l),p=n(136),f=r(p),d=n(144),m=r(d),g=function(e){function t(){return(0,a.default)(this,t),(0,h.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,f.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props,t=e.getComponent,n=e.specSelectors,r=t("Container"),i=t("Row"),o=t("Col"),s=t("Topbar",!0),a=t("BaseLayout",!0),u=t("onlineValidatorBadge",!0),c=n.loadingStatus();return m.default.createElement(r,{className:"swagger-ui"},s?m.default.createElement(s,null):null,"loading"===c&&m.default.createElement("div",{className:"info"},m.default.createElement("h4",{className:"title"},"Loading...")),"failed"===c&&m.default.createElement("div",{className:"info"},m.default.createElement("h4",{className:"title"},"Failed to load spec.")),"failedConfig"===c&&m.default.createElement("div",{className:"info",style:{maxWidth:"880px",marginLeft:"auto",marginRight:"auto",textAlign:"center"}},m.default.createElement("h4",{className:"title"},"Failed to load config.")),!c||"success"===c&&m.default.createElement(a,null),m.default.createElement(i,null,m.default.createElement(o,null,m.default.createElement(u,null))))}}]),t}(m.default.Component);g.propTypes={errSelectors:d.PropTypes.object.isRequired,errActions:d.PropTypes.object.isRequired,specActions:d.PropTypes.object.isRequired,specSelectors:d.PropTypes.object.isRequired,layoutSelectors:d.PropTypes.object.isRequired,layoutActions:d.PropTypes.object.isRequired,getComponent:d.PropTypes.func.isRequired},t.default=g},function(e,t,n){e.exports={default:n(59),__esModule:!0}},function(e,t,n){n(60),e.exports=n(71).Object.getPrototypeOf},function(e,t,n){var r=n(61),i=n(63);n(69)("getPrototypeOf",function(){return function(e){return i(r(e))}})},function(e,t,n){var r=n(62);e.exports=function(e){return Object(r(e))}},20,function(e,t,n){var r=n(64),i=n(61),o=n(65)("IE_PROTO"),s=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),r(e,o)?e[o]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?s:null}},26,function(e,t,n){var r=n(66)("keys"),i=n(68);e.exports=function(e){return r[e]||(r[e]=i(e))}},function(e,t,n){var r=n(67),i="__core-js_shared__",o=r[i]||(r[i]={});e.exports=function(e){return o[e]||(o[e]={})}},8,9,function(e,t,n){var r=n(70),i=n(71),o=n(80);e.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],s={};s[e]=t(n),r(r.S+r.F*o(function(){n(1)}),"Object",s)}},function(e,t,n){var r=n(67),i=n(71),o=n(72),s=n(74),a="prototype",u=function(e,t,n){var c,l,h,p=e&u.F,f=e&u.G,d=e&u.S,m=e&u.P,g=e&u.B,x=e&u.W,y=f?i:i[t]||(i[t]={}),v=y[a],b=f?r:d?r[t]:(r[t]||{})[a];f&&(n=t);for(c in n)l=!p&&b&&void 0!==b[c],l&&c in y||(h=l?b[c]:n[c],y[c]=f&&"function"!=typeof b[c]?n[c]:g&&l?o(h,r):x&&b[c]==h?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t[a]=e[a],t}(h):m&&"function"==typeof h?o(Function.call,h):h,m&&((y.virtual||(y.virtual={}))[c]=h,e&u.R&&v&&!v[c]&&s(v,c,h)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},function(e,t){var n=e.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},function(e,t,n){var r=n(73);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},25,function(e,t,n){var r=n(75),i=n(83);e.exports=n(79)?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(76),i=n(78),o=n(82),s=Object.defineProperty;t.f=n(79)?Object.defineProperty:function(e,t,n){if(r(e),t=o(t,!0),r(n),i)try{return s(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){var r=n(77);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},37,function(e,t,n){e.exports=!n(79)&&!n(80)(function(){return 7!=Object.defineProperty(n(81)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){e.exports=!n(80)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},15,function(e,t,n){var r=n(77),i=n(67).document,o=r(i)&&r(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},function(e,t,n){var r=n(77);e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},13,function(e,t){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(86),o=r(i);t.default=function(){function e(e,t){for(var n=0;n=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){var r=n(95),i=n(62);e.exports=function(e){return function(t,n){var o,s,a=String(i(t)),u=r(n),c=a.length;return u<0||u>=c?e?"":void 0:(o=a.charCodeAt(u),o<55296||o>56319||u+1===c||(s=a.charCodeAt(u+1))<56320||s>57343?e?a.charAt(u):o:e?a.slice(u,u+2):(o-55296<<10)+(s-56320)+65536)}}},19,function(e,t,n){"use strict";var r=n(97),i=n(70),o=n(98),s=n(74),a=n(64),u=n(99),c=n(100),l=n(113),h=n(63),p=n(114)("iterator"),f=!([].keys&&"next"in[].keys()),d="@@iterator",m="keys",g="values",x=function(){return this};e.exports=function(e,t,n,y,v,b,D){c(n,t,y);var w,E,k,A=function(e){if(!f&&e in T)return T[e];switch(e){case m:return function(){return new n(this,e)};case g:return function(){return new n(this,e)}}return function(){return new n(this,e)}},C=t+" Iterator",S=v==g,F=!1,T=e.prototype,B=T[p]||T[d]||v&&T[v],N=B||A(v),I=v?S?A("entries"):N:void 0,P="Array"==t?T.entries||B:B;if(P&&(k=h(P.call(new e)),k!==Object.prototype&&(l(k,C,!0),r||a(k,p)||s(k,p,x))),S&&B&&B.name!==g&&(F=!0,N=function(){return B.call(this)}),r&&!D||!f&&!F&&T[p]||s(T,p,N),u[t]=N,u[C]=x,v)if(w={values:S?N:A(g),keys:b?N:A(m),entries:I},D)for(E in w)E in T||o(T,E,w[E]);else i(i.P+i.F*(f||F),t,w);return w}},function(e,t){e.exports=!0},function(e,t,n){e.exports=n(74)},27,function(e,t,n){"use strict";var r=n(101),i=n(83),o=n(113),s={};n(74)(s,n(114)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(s,{next:i(1,n)}),o(e,t+" Iterator")}},function(e,t,n){var r=n(76),i=n(102),o=n(111),s=n(65)("IE_PROTO"),a=function(){},u="prototype",c=function(){var e,t=n(81)("iframe"),r=o.length,i="<",s=">";for(t.style.display="none",n(112).appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write(i+"script"+s+"document.F=Object"+i+"/script"+s),e.close(),c=e.F;r--;)delete c[u][o[r]];return c()};e.exports=Object.create||function(e,t){var n;return null!==e?(a[u]=r(e),n=new a,a[u]=null,n[s]=e):n=c(),void 0===t?n:i(n,t)}},function(e,t,n){var r=n(75),i=n(76),o=n(103);e.exports=n(79)?Object.defineProperties:function(e,t){i(e);for(var n,s=o(t),a=s.length,u=0;a>u;)r.f(e,n=s[u++],t[n]);return e}},function(e,t,n){var r=n(104),i=n(111);e.exports=Object.keys||function(e){return r(e,i)}},function(e,t,n){var r=n(64),i=n(105),o=n(108)(!1),s=n(65)("IE_PROTO");e.exports=function(e,t){var n,a=i(e),u=0,c=[];for(n in a)n!=s&&r(a,n)&&c.push(n);for(;t.length>u;)r(a,n=t[u++])&&(~o(c,n)||c.push(n));return c}},function(e,t,n){var r=n(106),i=n(62);e.exports=function(e){return r(i(e))}},function(e,t,n){var r=n(107);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},5,function(e,t,n){var r=n(105),i=n(109),o=n(110);e.exports=function(e){return function(t,n,s){var a,u=r(t),c=i(u.length),l=o(s,c);if(e&&n!=n){for(;c>l;)if(a=u[l++],a!=a)return!0}else for(;c>l;l++)if((e||l in u)&&u[l]===n)return e||l||0;return!e&&-1}}},function(e,t,n){var r=n(95),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},function(e,t,n){var r=n(95),i=Math.max,o=Math.min;e.exports=function(e,t){return e=r(e),e<0?i(e+t,0):o(e,t)}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){e.exports=n(67).document&&document.documentElement},function(e,t,n){var r=n(75).f,i=n(64),o=n(114)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},function(e,t,n){var r=n(66)("wks"),i=n(68),o=n(67).Symbol,s="function"==typeof o,a=e.exports=function(e){return r[e]||(r[e]=s&&o[e]||(s?o:i)("Symbol."+e))};a.store=r},function(e,t,n){n(116);for(var r=n(67),i=n(74),o=n(99),s=n(114)("toStringTag"),a=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],u=0;u<5;u++){var c=a[u],l=r[c],h=l&&l.prototype;h&&!h[s]&&i(h,s,c),o[c]=o.Array}},function(e,t,n){"use strict";var r=n(117),i=n(118),o=n(99),s=n(105);e.exports=n(96)(Array,"Array",function(e,t){this._t=s(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):"keys"==t?i(0,n):"values"==t?i(0,e[n]):i(0,[n,e[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(e,t){e.exports=function(){}},33,function(e,t,n){t.f=n(114)},function(e,t,n){e.exports={default:n(121),__esModule:!0}},function(e,t,n){n(122),n(133),n(134),n(135),e.exports=n(71).Symbol},function(e,t,n){"use strict";var r=n(67),i=n(64),o=n(79),s=n(70),a=n(98),u=n(123).KEY,c=n(80),l=n(66),h=n(113),p=n(68),f=n(114),d=n(119),m=n(124),g=n(125),x=n(126),y=n(129),v=n(76),b=n(105),D=n(82),w=n(83),E=n(101),k=n(130),A=n(132),C=n(75),S=n(103),F=A.f,T=C.f,B=k.f,N=r.Symbol,I=r.JSON,P=I&&I.stringify,M="prototype",O=f("_hidden"),_=f("toPrimitive"),L={}.propertyIsEnumerable,R=l("symbol-registry"),U=l("symbols"),j=l("op-symbols"),z=Object[M],J="function"==typeof N,X=r.QObject,Y=!X||!X[M]||!X[M].findChild,K=o&&c(function(){return 7!=E(T({},"a",{get:function(){return T(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=F(z,t);r&&delete z[t],T(e,t,n),r&&e!==z&&T(z,t,r)}:T,W=function(e){var t=U[e]=E(N[M]);return t._k=e,t},H=J&&"symbol"==typeof N.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof N},q=function(e,t,n){return e===z&&q(j,t,n),v(e),t=D(t,!0),v(n),i(U,t)?(n.enumerable?(i(e,O)&&e[O][t]&&(e[O][t]=!1),n=E(n,{enumerable:w(0,!1)})):(i(e,O)||T(e,O,w(1,{})),e[O][t]=!0),K(e,t,n)):T(e,t,n)},G=function(e,t){v(e);for(var n,r=x(t=b(t)),i=0,o=r.length;o>i;)q(e,n=r[i++],t[n]);return e},V=function(e,t){return void 0===t?E(e):G(E(e),t)},$=function(e){var t=L.call(this,e=D(e,!0));return!(this===z&&i(U,e)&&!i(j,e))&&(!(t||!i(this,e)||!i(U,e)||i(this,O)&&this[O][e])||t)},Z=function(e,t){if(e=b(e),t=D(t,!0),e!==z||!i(U,t)||i(j,t)){var n=F(e,t);return!n||!i(U,t)||i(e,O)&&e[O][t]||(n.enumerable=!0),n}},Q=function(e){for(var t,n=B(b(e)),r=[],o=0;n.length>o;)i(U,t=n[o++])||t==O||t==u||r.push(t);return r},ee=function(e){for(var t,n=e===z,r=B(n?j:b(e)),o=[],s=0;r.length>s;)!i(U,t=r[s++])||n&&!i(z,t)||o.push(U[t]);return o};J||(N=function(){if(this instanceof N)throw TypeError("Symbol is not a constructor!");var e=p(arguments.length>0?arguments[0]:void 0),t=function(n){this===z&&t.call(j,n),i(this,O)&&i(this[O],e)&&(this[O][e]=!1),K(this,e,w(1,n))};return o&&Y&&K(z,e,{configurable:!0,set:t}),W(e)},a(N[M],"toString",function(){return this._k}),A.f=Z,C.f=q,n(131).f=k.f=Q,n(128).f=$,n(127).f=ee,o&&!n(97)&&a(z,"propertyIsEnumerable",$,!0),d.f=function(e){return W(f(e))}),s(s.G+s.W+s.F*!J,{Symbol:N});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ne=0;te.length>ne;)f(te[ne++]);for(var te=S(f.store),ne=0;te.length>ne;)m(te[ne++]);s(s.S+s.F*!J,"Symbol",{for:function(e){return i(R,e+="")?R[e]:R[e]=N(e)},keyFor:function(e){if(H(e))return g(R,e);throw TypeError(e+" is not a symbol!")},useSetter:function(){Y=!0},useSimple:function(){Y=!1}}),s(s.S+s.F*!J,"Object",{create:V,defineProperty:q,defineProperties:G,getOwnPropertyDescriptor:Z,getOwnPropertyNames:Q,getOwnPropertySymbols:ee}),I&&s(s.S+s.F*(!J||c(function(){var e=N();return"[null]"!=P([e])||"{}"!=P({a:e})||"{}"!=P(Object(e))})),"JSON",{stringify:function(e){if(void 0!==e&&!H(e)){for(var t,n,r=[e],i=1;arguments.length>i;)r.push(arguments[i++]);return t=r[1],"function"==typeof t&&(n=t),!n&&y(t)||(t=function(e,t){if(n&&(t=n.call(this,e,t)),!H(t))return t}),r[1]=t,P.apply(I,r)}}}),N[M][_]||n(74)(N[M],_,N[M].valueOf),h(N,"Symbol"),h(Math,"Math",!0),h(r.JSON,"JSON",!0)},function(e,t,n){var r=n(68)("meta"),i=n(77),o=n(64),s=n(75).f,a=0,u=Object.isExtensible||function(){return!0},c=!n(80)(function(){return u(Object.preventExtensions({}))}),l=function(e){s(e,r,{value:{i:"O"+ ++a,w:{}}})},h=function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!o(e,r)){if(!u(e))return"F";if(!t)return"E";l(e)}return e[r].i},p=function(e,t){if(!o(e,r)){if(!u(e))return!0;if(!t)return!1;l(e)}return e[r].w},f=function(e){return c&&d.NEED&&u(e)&&!o(e,r)&&l(e),e},d=e.exports={KEY:r,NEED:!1,fastKey:h,getWeak:p,onFreeze:f}},function(e,t,n){var r=n(67),i=n(71),o=n(97),s=n(119),a=n(75).f;e.exports=function(e){var t=i.Symbol||(i.Symbol=o?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||a(t,e,{value:s.f(e)})}},function(e,t,n){var r=n(103),i=n(105);e.exports=function(e,t){for(var n,o=i(e),s=r(o),a=s.length,u=0;a>u;)if(o[n=s[u++]]===t)return n}},function(e,t,n){var r=n(103),i=n(127),o=n(128);e.exports=function(e){var t=r(e),n=i.f;if(n)for(var s,a=n(e),u=o.f,c=0;a.length>c;)u.call(e,s=a[c++])&&t.push(s);return t}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var r=n(107);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(105),i=n(131).f,o={}.toString,s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(e){try{return i(e)}catch(e){return s.slice()}};e.exports.f=function(e){return s&&"[object Window]"==o.call(e)?a(e):i(r(e))}},function(e,t,n){var r=n(104),i=n(111).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},function(e,t,n){var r=n(128),i=n(83),o=n(105),s=n(82),a=n(64),u=n(78),c=Object.getOwnPropertyDescriptor;t.f=n(79)?c:function(e,t){if(e=o(e),t=s(t,!0),u)try{return c(e,t)}catch(e){}if(a(e,t))return i(!r.f.call(e,t),e[t])}},function(e,t){},function(e,t,n){n(124)("asyncIterator")},function(e,t,n){n(124)("observable")},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(137),o=r(i),s=n(141),a=r(s),u=n(90),c=r(u);t.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+("undefined"==typeof t?"undefined":(0,c.default)(t)));e.prototype=(0,a.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0 -}}),t&&(o.default?(0,o.default)(e,t):e.__proto__=t)}},function(e,t,n){e.exports={default:n(138),__esModule:!0}},function(e,t,n){n(139),e.exports=n(71).Object.setPrototypeOf},function(e,t,n){var r=n(70);r(r.S,"Object",{setPrototypeOf:n(140).set})},function(e,t,n){var r=n(77),i=n(76),o=function(e,t){if(i(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{r=n(72)(Function.call,n(132).f(Object.prototype,"__proto__").set,2),r(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return o(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:o}},function(e,t,n){e.exports={default:n(142),__esModule:!0}},function(e,t,n){n(143);var r=n(71).Object;e.exports=function(e,t){return r.create(e,t)}},function(e,t,n){var r=n(70);r(r.S,"Object",{create:n(101)})},function(e,t,n){"use strict";e.exports=n(145)},function(e,t,n){"use strict";var r=n(146),i=n(147),o=n(156),s=n(164),a=n(158),u=n(165),c=n(170),l=n(171),h=n(173),p=a.createElement,f=a.createFactory,d=a.cloneElement,m=r,g=function(e){return e},x={Children:{map:o.map,forEach:o.forEach,count:o.count,toArray:o.toArray,only:h},Component:i.Component,PureComponent:i.PureComponent,createElement:p,cloneElement:d,isValidElement:a.isValidElement,PropTypes:u,createClass:l,createFactory:f,createMixin:g,DOM:s,version:c,__spread:m};e.exports=x},function(e,t){/* - object-assign - (c) Sindre Sorhus - @license MIT - */ -"use strict";function n(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function r(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==r.join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(e){i[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(e){return!1}}var i=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable;e.exports=r()?Object.assign:function(e,t){for(var r,a,u=n(e),c=1;c1){for(var g=Array(m),x=0;x1){for(var v=Array(y),b=0;blabel{font-size:12px;font-weight:700;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin:-20px 15px 0 0;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .scheme-container .schemes>label select{min-width:130px;text-transform:uppercase}.swagger-ui .loading-container{padding:40px 0 60px}.swagger-ui .loading-container .loading{position:relative}.swagger-ui .loading-container .loading:after{font-size:10px;font-weight:700;position:absolute;top:50%;left:50%;content:\"loading\";-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-transform:uppercase;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .loading-container .loading:before{position:absolute;top:50%;left:50%;display:block;width:60px;height:60px;margin:-30px;content:\"\";-webkit-animation:rotation 1s infinite linear,opacity .5s;animation:rotation 1s infinite linear,opacity .5s;opacity:1;border:2px solid rgba(85,85,85,.1);border-top-color:rgba(0,0,0,.6);border-radius:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden}@-webkit-keyframes rotation{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotation{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes blinker{50%{opacity:0}}@keyframes blinker{50%{opacity:0}}.swagger-ui .btn{font-size:14px;font-weight:700;padding:5px 23px;transition:all .3s;border:2px solid #888;border-radius:4px;background:transparent;box-shadow:0 1px 2px rgba(0,0,0,.1);font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .btn[disabled]{cursor:not-allowed;opacity:.3}.swagger-ui .btn:hover{box-shadow:0 0 5px rgba(0,0,0,.3)}.swagger-ui .btn.cancel{border-color:#ff6060;font-family:Titillium Web,sans-serif;color:#ff6060}.swagger-ui .btn.authorize{line-height:1;display:inline;color:#49cc90;border-color:#49cc90}.swagger-ui .btn.authorize span{float:left;padding:4px 20px 0 0}.swagger-ui .btn.authorize svg{fill:#49cc90}.swagger-ui .btn.execute{-webkit-animation:swagger-ui-pulse 2s infinite;animation:swagger-ui-pulse 2s infinite;color:#fff;border-color:#4990e2}@-webkit-keyframes swagger-ui-pulse{0%{color:#fff;background:#4990e2;box-shadow:0 0 0 0 rgba(73,144,226,.8)}70%{box-shadow:0 0 0 5px rgba(73,144,226,0)}to{color:#fff;background:#4990e2;box-shadow:0 0 0 0 rgba(73,144,226,0)}}@keyframes swagger-ui-pulse{0%{color:#fff;background:#4990e2;box-shadow:0 0 0 0 rgba(73,144,226,.8)}70%{box-shadow:0 0 0 5px rgba(73,144,226,0)}to{color:#fff;background:#4990e2;box-shadow:0 0 0 0 rgba(73,144,226,0)}}.swagger-ui .btn-group{display:-webkit-box;display:-ms-flexbox;display:flex;padding:30px}.swagger-ui .btn-group .btn{-webkit-box-flex:1;-ms-flex:1;flex:1}.swagger-ui .btn-group .btn:first-child{border-radius:4px 0 0 4px}.swagger-ui .btn-group .btn:last-child{border-radius:0 4px 4px 0}.swagger-ui .authorization__btn{padding:0 10px;border:none;background:none}.swagger-ui .authorization__btn.locked{opacity:1}.swagger-ui .authorization__btn.unlocked{opacity:.4}.swagger-ui .expand-methods,.swagger-ui .expand-operation{border:none;background:none}.swagger-ui .expand-methods svg,.swagger-ui .expand-operation svg{width:20px;height:20px}.swagger-ui .expand-methods{padding:0 10px}.swagger-ui .expand-methods:hover svg{fill:#444}.swagger-ui .expand-methods svg{transition:all .3s;fill:#777}.swagger-ui button{cursor:pointer;outline:none}.swagger-ui select{font-size:14px;font-weight:700;padding:5px 40px 5px 10px;border:2px solid #41444e;border-radius:4px;background:#f7f7f7 url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+ICAgIDxwYXRoIGQ9Ik0xMy40MTggNy44NTljLjI3MS0uMjY4LjcwOS0uMjY4Ljk3OCAwIC4yNy4yNjguMjcyLjcwMSAwIC45NjlsLTMuOTA4IDMuODNjLS4yNy4yNjgtLjcwNy4yNjgtLjk3OSAwbC0zLjkwOC0zLjgzYy0uMjctLjI2Ny0uMjctLjcwMSAwLS45NjkuMjcxLS4yNjguNzA5LS4yNjguOTc4IDBMMTAgMTFsMy40MTgtMy4xNDF6Ii8+PC9zdmc+) right 10px center no-repeat;background-size:20px;box-shadow:0 1px 2px 0 rgba(0,0,0,.25);font-family:Titillium Web,sans-serif;color:#3b4151;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swagger-ui select[multiple]{margin:5px 0;padding:5px;background:#f7f7f7}.swagger-ui .opblock-body select{min-width:230px}.swagger-ui label{font-size:12px;font-weight:700;margin:0 0 5px;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui input[type=email],.swagger-ui input[type=password],.swagger-ui input[type=search],.swagger-ui input[type=text]{min-width:100px;margin:5px 0;padding:8px 10px;border:1px solid #d9d9d9;border-radius:4px;background:#fff}.swagger-ui input[type=email].invalid,.swagger-ui input[type=password].invalid,.swagger-ui input[type=search].invalid,.swagger-ui input[type=text].invalid{-webkit-animation:shake .4s 1;animation:shake .4s 1;border-color:#f93e3e;background:#feebeb}@-webkit-keyframes shake{10%,90%{-webkit-transform:translate3d(-1px,0,0);transform:translate3d(-1px,0,0)}20%,80%{-webkit-transform:translate3d(2px,0,0);transform:translate3d(2px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-4px,0,0);transform:translate3d(-4px,0,0)}40%,60%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}}@keyframes shake{10%,90%{-webkit-transform:translate3d(-1px,0,0);transform:translate3d(-1px,0,0)}20%,80%{-webkit-transform:translate3d(2px,0,0);transform:translate3d(2px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-4px,0,0);transform:translate3d(-4px,0,0)}40%,60%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}}.swagger-ui textarea{font-size:12px;width:100%;min-height:280px;padding:10px;border:none;border-radius:4px;outline:none;background:hsla(0,0%,100%,.8);font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui textarea:focus{border:2px solid #61affe}.swagger-ui textarea.curl{font-size:12px;min-height:100px;margin:0;padding:10px;resize:none;border-radius:4px;background:#41444e;font-family:Source Code Pro,monospace;font-weight:600;color:#fff}.swagger-ui .checkbox{padding:5px 0 10px;transition:opacity .5s;color:#333}.swagger-ui .checkbox label{display:-webkit-box;display:-ms-flexbox;display:flex}.swagger-ui .checkbox p{font-weight:400!important;font-style:italic;margin:0!important;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .checkbox input[type=checkbox]{display:none}.swagger-ui .checkbox input[type=checkbox]+label>.item{position:relative;top:3px;display:inline-block;width:16px;height:16px;margin:0 8px 0 0;padding:5px;cursor:pointer;border-radius:1px;background:#e8e8e8;box-shadow:0 0 0 2px #e8e8e8;-webkit-box-flex:0;-ms-flex:none;flex:none}.swagger-ui .checkbox input[type=checkbox]+label>.item:active{-webkit-transform:scale(.9);transform:scale(.9)}.swagger-ui .checkbox input[type=checkbox]:checked+label>.item{background:#e8e8e8 url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='10' height='8' viewBox='3 7 10 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%2341474E' fill-rule='evenodd' d='M6.333 15L3 11.667l1.333-1.334 2 2L11.667 7 13 8.333z'/%3E%3C/svg%3E\") 50% no-repeat}.swagger-ui .dialog-ux{position:fixed;z-index:9999;top:0;right:0;bottom:0;left:0}.swagger-ui .dialog-ux .backdrop-ux{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.8)}.swagger-ui .dialog-ux .modal-ux{position:absolute;z-index:9999;top:50%;left:50%;width:100%;min-width:300px;max-width:650px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);border:1px solid #ebebeb;border-radius:4px;background:#fff;box-shadow:0 10px 30px 0 rgba(0,0,0,.2)}.swagger-ui .dialog-ux .modal-ux-content{overflow-y:auto;max-height:540px;padding:20px}.swagger-ui .dialog-ux .modal-ux-content p{font-size:12px;margin:0 0 5px;color:#41444e;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .dialog-ux .modal-ux-content h4{font-size:18px;font-weight:600;margin:15px 0 0;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .dialog-ux .modal-ux-header{display:-webkit-box;display:-ms-flexbox;display:flex;padding:12px 0;border-bottom:1px solid #ebebeb;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swagger-ui .dialog-ux .modal-ux-header .close-modal{padding:0 10px;border:none;background:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swagger-ui .dialog-ux .modal-ux-header h3{font-size:20px;font-weight:600;margin:0;padding:0 20px;-webkit-box-flex:1;-ms-flex:1;flex:1;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .model{font-size:12px;font-weight:300;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .model-toggle{font-size:10px;position:relative;top:6px;display:inline-block;margin:auto .3em;cursor:pointer;transition:-webkit-transform .15s ease-in;transition:transform .15s ease-in;transition:transform .15s ease-in,-webkit-transform .15s ease-in;-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-transform-origin:50% 50%;transform-origin:50% 50%}.swagger-ui .model-toggle.collapsed{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.swagger-ui .model-toggle:after{display:block;width:20px;height:20px;content:\"\";background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z'/%3E%3C/svg%3E\") 50% no-repeat;background-size:100%}.swagger-ui .model-jump-to-path{position:relative;cursor:pointer}.swagger-ui .model-jump-to-path .view-line-link{position:absolute;top:-.4em;cursor:pointer}.swagger-ui .model-title{position:relative}.swagger-ui .model-title:hover .model-hint{visibility:visible}.swagger-ui .model-hint{position:absolute;top:-1.8em;visibility:hidden;padding:.1em .5em;white-space:nowrap;color:#ebebeb;border-radius:4px;background:rgba(0,0,0,.7)}.swagger-ui section.models{margin:30px 0;border:1px solid rgba(59,65,81,.3);border-radius:4px}.swagger-ui section.models.is-open{padding:0 0 20px}.swagger-ui section.models.is-open h4{margin:0 0 5px;border-bottom:1px solid rgba(59,65,81,.3)}.swagger-ui section.models.is-open h4 svg{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.swagger-ui section.models h4{font-size:16px;display:-webkit-box;display:-ms-flexbox;display:flex;margin:0;padding:10px 20px 10px 10px;cursor:pointer;transition:all .2s;font-family:Titillium Web,sans-serif;color:#777;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swagger-ui section.models h4 svg{transition:all .4s}.swagger-ui section.models h4 span{-webkit-box-flex:1;-ms-flex:1;flex:1}.swagger-ui section.models h4:hover{background:rgba(0,0,0,.02)}.swagger-ui section.models h5{font-size:16px;margin:0 0 10px;font-family:Titillium Web,sans-serif;color:#777}.swagger-ui section.models .model-jump-to-path{position:relative;top:5px}.swagger-ui section.models .model-container{margin:0 20px 15px;transition:all .5s;border-radius:4px;background:rgba(0,0,0,.05)}.swagger-ui section.models .model-container:hover{background:rgba(0,0,0,.07)}.swagger-ui section.models .model-container:first-of-type{margin:20px}.swagger-ui section.models .model-container:last-of-type{margin:0 20px}.swagger-ui section.models .model-box{background:none}.swagger-ui .model-box{padding:10px;border-radius:4px;background:rgba(0,0,0,.1)}.swagger-ui .model-box .model-jump-to-path{position:relative;top:4px}.swagger-ui .model-title{font-size:16px;font-family:Titillium Web,sans-serif;color:#555}.swagger-ui span>span.model,.swagger-ui span>span.model .brace-close{padding:0 0 0 10px}.swagger-ui .prop-type{color:#55a}.swagger-ui .prop-enum{display:block}.swagger-ui .prop-format{color:#999}.swagger-ui table{width:100%;padding:0 10px;border-collapse:collapse}.swagger-ui table.model tbody tr td{padding:0;vertical-align:top}.swagger-ui table.model tbody tr td:first-of-type{width:100px;padding:0}.swagger-ui table.headers td{font-size:12px;font-weight:300;vertical-align:middle;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui table tbody tr td{padding:10px 0 0;vertical-align:top}.swagger-ui table tbody tr td:first-of-type{width:20%;padding:10px 0}.swagger-ui table thead tr td,.swagger-ui table thead tr th{font-size:12px;font-weight:700;padding:12px 0;text-align:left;border-bottom:1px solid rgba(59,65,81,.2);font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .parameters-col_description p{font-size:14px;margin:0;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .parameters-col_description input[type=text]{width:100%;max-width:340px}.swagger-ui .parameter__name{font-size:16px;font-weight:400;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .parameter__name.required{font-weight:700}.swagger-ui .parameter__name.required:after{font-size:10px;position:relative;top:-6px;padding:5px;content:\"required\";color:rgba(255,0,0,.6)}.swagger-ui .parameter__in{font-size:12px;font-style:italic;font-family:Source Code Pro,monospace;font-weight:600;color:#888}.swagger-ui .table-container{padding:20px}.swagger-ui .topbar{padding:8px 30px;background-color:#89bf04}.swagger-ui .topbar .topbar-wrapper{-ms-flex-align:center}.swagger-ui .topbar .topbar-wrapper,.swagger-ui .topbar a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;align-items:center}.swagger-ui .topbar a{font-size:1.5em;font-weight:700;max-width:300px;text-decoration:none;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-align:center;font-family:Titillium Web,sans-serif;color:#fff}.swagger-ui .topbar a span{margin:0;padding:0 10px}.swagger-ui .topbar .download-url-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:3;-ms-flex:3;flex:3}.swagger-ui .topbar .download-url-wrapper input[type=text]{width:100%;min-width:350px;margin:0;border:2px solid #547f00;border-radius:4px 0 0 4px;outline:none}.swagger-ui .topbar .download-url-wrapper .download-url-button{font-size:16px;font-weight:700;padding:4px 40px;border:none;border-radius:0 4px 4px 0;background:#547f00;font-family:Titillium Web,sans-serif;color:#fff}.swagger-ui .info{margin:50px 0}.swagger-ui .info hgroup.main{margin:0 0 20px}.swagger-ui .info hgroup.main a{font-size:12px}.swagger-ui .info li,.swagger-ui .info p,.swagger-ui .info table{font-size:14px;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .info h1,.swagger-ui .info h2,.swagger-ui .info h3,.swagger-ui .info h4,.swagger-ui .info h5{font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .info code{padding:3px 5px;border-radius:4px;background:rgba(0,0,0,.05);font-family:Source Code Pro,monospace;font-weight:600;color:#9012fe}.swagger-ui .info a{font-size:14px;transition:all .4s;font-family:Open Sans,sans-serif;color:#4990e2}.swagger-ui .info a:hover{color:#1f69c0}.swagger-ui .info>div{margin:0 0 5px}.swagger-ui .info .base-url{font-size:12px;font-weight:300!important;margin:0;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .info .title{font-size:36px;margin:0;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .info .title small{font-size:10px;position:relative;top:-5px;display:inline-block;margin:0 0 0 5px;padding:2px 4px;vertical-align:super;border-radius:57px;background:#7d8492}.swagger-ui .info .title small pre{margin:0;font-family:Titillium Web,sans-serif;color:#fff}.swagger-ui .auth-btn-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;padding:10px 0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.swagger-ui .auth-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.swagger-ui .auth-wrapper .authorize{padding-right:20px}.swagger-ui .auth-container{margin:0 0 10px;padding:10px 20px;border-bottom:1px solid #ebebeb}.swagger-ui .auth-container:last-of-type{margin:0;padding:10px 20px;border:0}.swagger-ui .auth-container h4{margin:5px 0 15px!important}.swagger-ui .auth-container .wrapper{margin:0;padding:0}.swagger-ui .auth-container input[type=password],.swagger-ui .auth-container input[type=text]{min-width:230px}.swagger-ui .auth-container .errors{font-size:12px;padding:10px;border-radius:4px;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .scopes h2{font-size:14px;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .scope-def{padding:0 0 20px}.swagger-ui .errors-wrapper{margin:20px;padding:10px 20px;-webkit-animation:scaleUp .5s;animation:scaleUp .5s;border:2px solid #f93e3e;border-radius:4px;background:rgba(249,62,62,.1)}.swagger-ui .errors-wrapper .error-wrapper{margin:0 0 10px}.swagger-ui .errors-wrapper .errors h4{font-size:14px;margin:0;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .errors-wrapper .errors small{color:#666}.swagger-ui .errors-wrapper hgroup{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swagger-ui .errors-wrapper hgroup h4{font-size:20px;margin:0;-webkit-box-flex:1;-ms-flex:1;flex:1;font-family:Titillium Web,sans-serif;color:#3b4151}@-webkit-keyframes scaleUp{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes scaleUp{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}",""]); -},function(e,t){e.exports=function(){var e=[];return e.toString=function(){for(var e=[],t=0;t=0&&v.splice(t,1)}function a(e){var t=document.createElement("style");return t.type="text/css",o(e,t),t}function u(e){var t=document.createElement("link");return t.rel="stylesheet",o(e,t),t}function c(e,t){var n,r,i;if(t.singleton){var o=y++;n=x||(x=a(t)),r=l.bind(null,n,o,!1),i=l.bind(null,n,o,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=u(t),r=p.bind(null,n),i=function(){s(n),n.href&&URL.revokeObjectURL(n.href)}):(n=a(t),r=h.bind(null,n),i=function(){s(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else i()}}function l(e,t,n,r){var i=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=b(t,i);else{var o=document.createTextNode(i),s=e.childNodes;s[t]&&e.removeChild(s[t]),s.length?e.insertBefore(o,s[t]):e.appendChild(o)}}function h(e,t){var n=t.css,r=t.media;t.sourceMap;if(r&&e.setAttribute("media",r),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}function p(e,t){var n=t.css,r=(t.media,t.sourceMap);r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var i=new Blob([n],{type:"text/css"}),o=e.href;e.href=URL.createObjectURL(i),o&&URL.revokeObjectURL(o)}var f={},d=function(e){var t;return function(){return"undefined"==typeof t&&(t=e.apply(this,arguments)),t}},m=d(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),g=d(function(){return document.head||document.getElementsByTagName("head")[0]}),x=null,y=0,v=[];e.exports=function(e,t){t=t||{},"undefined"==typeof t.singleton&&(t.singleton=m()),"undefined"==typeof t.insertAt&&(t.insertAt="bottom");var n=i(e);return r(n,t),function(e){for(var o=[],s=0;s=400?(i.updateLoadingStatus("failedConfig"),i.updateLoadingStatus("failedConfig"),i.updateUrl(""),console.error(n.statusText+" "+e),t(null)):t(c(n.text))}var i=n.specActions;if(e)return i.downloadConfig(e).then(r,r)}}},r={getLocalConfig:function(){return c(u.default)}};return{statePlugins:{spec:{actions:n,selectors:r}}}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(182),s=r(o),a=n(217),u=r(a),c=function(e,t){try{return s.default.safeLoad(e)}catch(e){return t&&t.errActions.newThrownErr(new Error(e)),{}}}},function(e,t,n){"use strict";var r=n(183);e.exports=r},function(e,t,n){"use strict";function r(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}var i=n(184),o=n(216);e.exports.Type=n(190),e.exports.Schema=n(189),e.exports.FAILSAFE_SCHEMA=n(193),e.exports.JSON_SCHEMA=n(192),e.exports.CORE_SCHEMA=n(191),e.exports.DEFAULT_SAFE_SCHEMA=n(188),e.exports.DEFAULT_FULL_SCHEMA=n(211),e.exports.load=i.load,e.exports.loadAll=i.loadAll,e.exports.safeLoad=i.safeLoad,e.exports.safeLoadAll=i.safeLoadAll,e.exports.dump=o.dump,e.exports.safeDump=o.safeDump,e.exports.YAMLException=n(186),e.exports.MINIMAL_SCHEMA=n(193),e.exports.SAFE_SCHEMA=n(188),e.exports.DEFAULT_SCHEMA=n(211),e.exports.scan=r("scan"),e.exports.parse=r("parse"),e.exports.compose=r("compose"),e.exports.addConstructor=r("addConstructor")},function(e,t,n){"use strict";function r(e){return 10===e||13===e}function i(e){return 9===e||32===e}function o(e){return 9===e||32===e||10===e||13===e}function s(e){return 44===e||91===e||93===e||123===e||125===e}function a(e){var t;return 48<=e&&e<=57?e-48:(t=32|e,97<=t&&t<=102?t-97+10:-1)}function u(e){return 120===e?2:117===e?4:85===e?8:0}function c(e){return 48<=e&&e<=57?e-48:-1}function l(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e?"\t":9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function h(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function p(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Y,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function f(e,t){return new z(t,new J(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function d(e,t){throw f(e,t)}function m(e,t){e.onWarning&&e.onWarning.call(null,f(e,t))}function g(e,t,n,r){var i,o,s,a;if(t1&&(e.result+=j.repeat("\n",t-1))}function E(e,t,n){var a,u,c,l,h,p,f,d,m,x=e.kind,y=e.result;if(m=e.input.charCodeAt(e.position),o(m)||s(m)||35===m||38===m||42===m||33===m||124===m||62===m||39===m||34===m||37===m||64===m||96===m)return!1;if((63===m||45===m)&&(u=e.input.charCodeAt(e.position+1),o(u)||n&&s(u)))return!1;for(e.kind="scalar",e.result="",c=l=e.position,h=!1;0!==m;){if(58===m){if(u=e.input.charCodeAt(e.position+1),o(u)||n&&s(u))break}else if(35===m){if(a=e.input.charCodeAt(e.position-1),o(a))break}else{if(e.position===e.lineStart&&D(e)||n&&s(m))break;if(r(m)){if(p=e.line,f=e.lineStart,d=e.lineIndent,b(e,!1,-1),e.lineIndent>=t){h=!0,m=e.input.charCodeAt(e.position);continue}e.position=l,e.line=p,e.lineStart=f,e.lineIndent=d;break}}h&&(g(e,c,l,!1),w(e,e.line-p),c=l=e.position,h=!1),i(m)||(l=e.position+1),m=e.input.charCodeAt(++e.position)}return g(e,c,l,!1),!!e.result||(e.kind=x,e.result=y,!1)}function k(e,t){var n,i,o;if(n=e.input.charCodeAt(e.position),39!==n)return!1;for(e.kind="scalar",e.result="",e.position++,i=o=e.position;0!==(n=e.input.charCodeAt(e.position));)if(39===n){if(g(e,i,e.position,!0),n=e.input.charCodeAt(++e.position),39!==n)return!0;i=e.position,e.position++,o=e.position}else r(n)?(g(e,i,o,!0),w(e,b(e,!1,t)),i=o=e.position):e.position===e.lineStart&&D(e)?d(e,"unexpected end of the document within a single quoted scalar"):(e.position++,o=e.position);d(e,"unexpected end of the stream within a single quoted scalar")}function A(e,t){var n,i,o,s,c,l;if(l=e.input.charCodeAt(e.position),34!==l)return!1;for(e.kind="scalar",e.result="",e.position++,n=i=e.position;0!==(l=e.input.charCodeAt(e.position));){if(34===l)return g(e,n,e.position,!0),e.position++,!0;if(92===l){if(g(e,n,e.position,!0),l=e.input.charCodeAt(++e.position),r(l))b(e,!1,t);else if(l<256&&ie[l])e.result+=oe[l],e.position++;else if((c=u(l))>0){for(o=c,s=0;o>0;o--)l=e.input.charCodeAt(++e.position),(c=a(l))>=0?s=(s<<4)+c:d(e,"expected hexadecimal character");e.result+=h(s),e.position++}else d(e,"unknown escape sequence");n=i=e.position}else r(l)?(g(e,n,i,!0),w(e,b(e,!1,t)),n=i=e.position):e.position===e.lineStart&&D(e)?d(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}d(e,"unexpected end of the stream within a double quoted scalar")}function C(e,t){var n,r,i,s,a,u,c,l,h,p,f,m=!0,g=e.tag,x=e.anchor,v={};if(f=e.input.charCodeAt(e.position),91===f)s=93,c=!1,r=[];else{if(123!==f)return!1;s=125,c=!0,r={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=r),f=e.input.charCodeAt(++e.position);0!==f;){if(b(e,!0,t),f=e.input.charCodeAt(e.position),f===s)return e.position++,e.tag=g,e.anchor=x,e.kind=c?"mapping":"sequence",e.result=r,!0;m||d(e,"missed comma between flow collection entries"),h=l=p=null,a=u=!1,63===f&&(i=e.input.charCodeAt(e.position+1),o(i)&&(a=u=!0,e.position++,b(e,!0,t))),n=e.line,P(e,t,W,!1,!0),h=e.tag,l=e.result,b(e,!0,t),f=e.input.charCodeAt(e.position),!u&&e.line!==n||58!==f||(a=!0,f=e.input.charCodeAt(++e.position),b(e,!0,t),P(e,t,W,!1,!0),p=e.result),c?y(e,r,v,h,l,p):a?r.push(y(e,null,v,h,l,p)):r.push(l),b(e,!0,t),f=e.input.charCodeAt(e.position),44===f?(m=!0,f=e.input.charCodeAt(++e.position)):m=!1}d(e,"unexpected end of the stream within a flow collection")}function S(e,t){var n,o,s,a,u=V,l=!1,h=!1,p=t,f=0,m=!1;if(a=e.input.charCodeAt(e.position),124===a)o=!1;else{if(62!==a)return!1;o=!0}for(e.kind="scalar",e.result="";0!==a;)if(a=e.input.charCodeAt(++e.position),43===a||45===a)V===u?u=43===a?Z:$:d(e,"repeat of a chomping mode identifier");else{if(!((s=c(a))>=0))break;0===s?d(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):h?d(e,"repeat of an indentation width identifier"):(p=t+s-1,h=!0)}if(i(a)){do a=e.input.charCodeAt(++e.position);while(i(a));if(35===a)do a=e.input.charCodeAt(++e.position);while(!r(a)&&0!==a)}for(;0!==a;){for(v(e),e.lineIndent=0,a=e.input.charCodeAt(e.position);(!h||e.lineIndentp&&(p=e.lineIndent),r(a))f++;else{if(e.lineIndentt)&&0!==i)d(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(P(e,t,G,!0,s)&&(v?g=e.result:x=e.result),v||(y(e,p,f,m,g,x,a,u),m=g=x=null),b(e,!0,-1),c=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==c)d(e,"bad indentation of a mapping entry");else if(e.lineIndentt?f=1:e.lineIndent===t?f=0:e.lineIndentt?f=1:e.lineIndent===t?f=0:e.lineIndent tag; it should be "'+l.kind+'", not "'+e.kind+'"'),l.resolve(e.result)?(e.result=l.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):d(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):d(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||g}function M(e){var t,n,s,a,u=e.position,c=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(a=e.input.charCodeAt(e.position))&&(b(e,!0,-1),a=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==a));){for(c=!0,a=e.input.charCodeAt(++e.position),t=e.position;0!==a&&!o(a);)a=e.input.charCodeAt(++e.position);for(n=e.input.slice(t,e.position),s=[],n.length<1&&d(e,"directive name must not be less than one character in length");0!==a;){for(;i(a);)a=e.input.charCodeAt(++e.position);if(35===a){do a=e.input.charCodeAt(++e.position);while(0!==a&&!r(a));break}if(r(a))break;for(t=e.position;0!==a&&!o(a);)a=e.input.charCodeAt(++e.position);s.push(e.input.slice(t,e.position))}0!==a&&v(e),K.call(ae,n)?ae[n](e,n,s):m(e,'unknown document directive "'+n+'"')}return b(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,b(e,!0,-1)):c&&d(e,"directives end mark is expected"),P(e,e.lineIndent-1,G,!1,!0),b(e,!0,-1),e.checkLineBreaks&&ee.test(e.input.slice(u,e.position))&&m(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&D(e)?void(46===e.input.charCodeAt(e.position)&&(e.position+=3,b(e,!0,-1))):void(e.position0&&"\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(r-1))===-1;)if(r-=1,this.position-r>t/2-1){n=" ... ",r+=5;break}for(o="",s=this.position;st/2-1){o=" ... ",s-=5;break}return a=this.buffer.slice(r,s),i.repeat(" ",e)+n+a+o+"\n"+i.repeat(" ",e+this.position-r+n.length)+"^"},r.prototype.toString=function(e){var t,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(n+=":\n"+t)),n},e.exports=r},function(e,t,n){"use strict";var r=n(189);e.exports=new r({include:[n(191)],implicit:[n(201),n(202)],explicit:[n(203),n(208),n(209),n(210)]})},function(e,t,n){"use strict";function r(e,t,n){var i=[];return e.include.forEach(function(e){n=r(e,t,n)}),e[t].forEach(function(e){n.forEach(function(t,n){t.tag===e.tag&&t.kind===e.kind&&i.push(n)}),n.push(e)}),n.filter(function(e,t){return i.indexOf(t)===-1})}function i(){function e(e){r[e.kind][e.tag]=r.fallback[e.tag]=e}var t,n,r={scalar:{},sequence:{},mapping:{},fallback:{}};for(t=0,n=arguments.length;t=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(e){i.unshift(parseFloat(e,10))}),t=0,r=1,i.forEach(function(e){t+=e*r,r*=60}),n*t):n*parseFloat(t,10)}function o(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(a.isNegativeZero(e))return"-0.0";return n=e.toString(10),l.test(n)?n.replace("e",".e"):n}function s(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!==0||a.isNegativeZero(e))}var a=n(185),u=n(190),c=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),l=/^[-+]?[0-9]+e/;e.exports=new u("tag:yaml.org,2002:float",{kind:"scalar",resolve:r,construct:i,predicate:s,represent:o,defaultStyle:"lowercase"})},function(e,t,n){"use strict";function r(e){return null!==e&&(null!==a.exec(e)||null!==u.exec(e))}function i(e){var t,n,r,i,o,s,c,l,h,p,f=0,d=null;if(t=a.exec(e),null===t&&(t=u.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,r,i));if(o=+t[4],s=+t[5],c=+t[6],t[7]){for(f=t[7].slice(0,3);f.length<3;)f+="0";f=+f}return t[9]&&(l=+t[10],h=+(t[11]||0),d=6e4*(60*l+h),"-"===t[9]&&(d=-d)),p=new Date(Date.UTC(n,r,i,o,s,c,f)),d&&p.setTime(p.getTime()-d),p}function o(e){return e.toISOString()}var s=n(190),a=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),u=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");e.exports=new s("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:r,construct:i,instanceOf:Date,represent:o})},function(e,t,n){"use strict";function r(e){return"<<"===e||null===e}var i=n(190);e.exports=new i("tag:yaml.org,2002:merge",{kind:"scalar",resolve:r})},function(e,t,n){function r(e){if(null===e)return!1;var t,n,r=0,i=e.length,o=c;for(n=0;n64)){if(t<0)return!1;r+=6}return r%8===0}function i(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,o=c,s=0,u=[];for(t=0;t>16&255),u.push(s>>8&255),u.push(255&s)),s=s<<6|o.indexOf(r.charAt(t));return n=i%4*6,0===n?(u.push(s>>16&255),u.push(s>>8&255),u.push(255&s)):18===n?(u.push(s>>10&255),u.push(s>>2&255)):12===n&&u.push(s>>4&255),a?a.from?a.from(u):new a(u):u}function o(e){var t,n,r="",i=0,o=e.length,s=c;for(t=0;t>18&63],r+=s[i>>12&63],r+=s[i>>6&63],r+=s[63&i]),i=(i<<8)+e[t];return n=o%3,0===n?(r+=s[i>>18&63],r+=s[i>>12&63],r+=s[i>>6&63],r+=s[63&i]):2===n?(r+=s[i>>10&63],r+=s[i>>4&63],r+=s[i<<2&63],r+=s[64]):1===n&&(r+=s[i>>2&63],r+=s[i<<4&63],r+=s[64],r+=s[64]),r}function s(e){return a&&a.isBuffer(e)}var a;try{a=n(204).Buffer}catch(e){}var u=n(190),c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";e.exports=new u("tag:yaml.org,2002:binary",{kind:"scalar",resolve:r,construct:i,predicate:s,represent:o})},function(e,t,n){(function(e){/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -"use strict";function r(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}function i(){return s.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function o(e,t){if(i()=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function g(e){return+e!=e&&(e=0),s.alloc(+e)}function x(e,t){if(s.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return K(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return q(e).length;default:if(r)return K(e).length;t=(""+t).toLowerCase(),r=!0}}function y(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,t>>>=0,n<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return P(this,t,n);case"utf8":case"utf-8":return T(this,t,n);case"ascii":return N(this,t,n);case"latin1":case"binary":return I(this,t,n);case"base64":return F(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function v(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function b(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=s.from(t,r)),s.isBuffer(t))return 0===t.length?-1:D(e,t,n,r,i);if("number"==typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):D(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function D(e,t,n,r,i){function o(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}var s=1,a=e.length,u=t.length;if(void 0!==r&&(r=String(r).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;s=2,a/=2,u/=2,n/=2}var c;if(i){var l=-1;for(c=n;ca&&(n=a-u),c=n;c>=0;c--){for(var h=!0,p=0;pi&&(r=i)):r=i;var o=t.length;if(o%2!==0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var s=0;s239?4:o>223?3:o>191?2:1;if(i+a<=n){var u,c,l,h;switch(a){case 1:o<128&&(s=o);break;case 2:u=e[i+1],128===(192&u)&&(h=(31&o)<<6|63&u,h>127&&(s=h));break;case 3:u=e[i+1],c=e[i+2],128===(192&u)&&128===(192&c)&&(h=(15&o)<<12|(63&u)<<6|63&c,h>2047&&(h<55296||h>57343)&&(s=h));break;case 4:u=e[i+1],c=e[i+2],l=e[i+3],128===(192&u)&&128===(192&c)&&128===(192&l)&&(h=(15&o)<<18|(63&u)<<12|(63&c)<<6|63&l,h>65535&&h<1114112&&(s=h))}}null===s?(s=65533,a=1):s>65535&&(s-=65536,r.push(s>>>10&1023|55296),s=56320|1023&s),r.push(s),i+=a}return B(r)}function B(e){var t=e.length;if(t<=ee)return String.fromCharCode.apply(String,e);for(var n="",r=0;rr)&&(n=r);for(var i="",o=t;on)throw new RangeError("Trying to access beyond buffer length")}function _(e,t,n,r,i,o){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function L(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-n,2);i>>8*(r?i:1-i)}function R(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-n,4);i>>8*(r?i:3-i)&255}function U(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function j(e,t,n,r,i){return i||U(e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38),Z.write(e,t,n,r,23,4),n+4}function z(e,t,n,r,i){return i||U(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308),Z.write(e,t,n,r,52,8),n+8}function J(e){if(e=X(e).replace(te,""),e.length<2)return"";for(;e.length%4!==0;)e+="=";return e}function X(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function Y(e){return e<16?"0"+e.toString(16):e.toString(16)}function K(e,t){t=t||1/0;for(var n,r=e.length,i=null,o=[],s=0;s55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=(i-55296<<10|n-56320)+65536}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function W(e){for(var t=[],n=0;n>8,i=n%256,o.push(i),o.push(r);return o}function q(e){return $.toByteArray(J(e))}function G(e,t,n,r){for(var i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function V(e){return e!==e}var $=n(205),Z=n(206),Q=n(207);t.Buffer=s,t.SlowBuffer=g,t.INSPECT_MAX_BYTES=50,s.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:r(),t.kMaxLength=i(),s.poolSize=8192,s._augment=function(e){return e.__proto__=s.prototype,e},s.from=function(e,t,n){return a(null,e,t,n)},s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0})),s.alloc=function(e,t,n){return c(null,e,t,n)},s.allocUnsafe=function(e){return l(null,e)},s.allocUnsafeSlow=function(e){return l(null,e)},s.isBuffer=function(e){return!(null==e||!e._isBuffer)},s.compare=function(e,t){if(!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,o=Math.min(n,r);i0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},s.prototype.compare=function(e,t,n,r,i){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;for(var o=i-r,a=n-t,u=Math.min(o,a),c=this.slice(r,i),l=e.slice(t,n),h=0;hi)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return w(this,e,t,n);case"utf8":case"utf-8":return E(this,e,t,n);case"ascii":return k(this,e,t,n);case"latin1":case"binary":return A(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var ee=4096;s.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t0&&(i*=256);)r+=this[e+--t]*i;return r},s.prototype.readUInt8=function(e,t){return t||O(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||O(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||O(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||O(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return t||O(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||O(e,t,this.length);for(var r=this[e],i=1,o=0;++o=i&&(r-=Math.pow(2,8*t)),r},s.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||O(e,t,this.length);for(var r=t,i=1,o=this[e+--r];r>0&&(i*=256);)o+=this[e+--r]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},s.prototype.readInt8=function(e,t){return t||O(e,1,this.length),128&this[e]?(255-this[e]+1)*-1:this[e]},s.prototype.readInt16LE=function(e,t){t||O(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt16BE=function(e,t){t||O(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt32LE=function(e,t){return t||O(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return t||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return t||O(e,4,this.length),Z.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||O(e,4,this.length),Z.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||O(e,8,this.length),Z.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||O(e,8,this.length),Z.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t|=0,n|=0,!r){var i=Math.pow(2,8*n)-1;_(this,e,t,n,i,0)}var o=1,s=0;for(this[t]=255&e;++s=0&&(s*=256);)this[t+o]=e/s&255;return t+n},s.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,1,255,0),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):R(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);_(this,e,t,n,i-1,-i)}var o=0,s=1,a=0;for(this[t]=255&e;++o>0)-a&255;return t+n},s.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);_(this,e,t,n,i-1,-i)}var o=n-1,s=1,a=0;for(this[t+o]=255&e;--o>=0&&(s*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/s>>0)-a&255;return t+n},s.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,1,127,-128),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):R(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,n){return j(this,e,t,!0,n)},s.prototype.writeFloatBE=function(e,t,n){return j(this,e,t,!1,n)},s.prototype.writeDoubleLE=function(e,t,n){return z(this,e,t,!0,n)},s.prototype.writeDoubleBE=function(e,t,n){return z(this,e,t,!1,n)},s.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else if(o<1e3||!s.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var o;if("number"==typeof e)for(o=t;o0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function r(e){return 3*e.length/4-n(e)}function i(e){var t,r,i,o,s,a=e.length;o=n(e),s=new l(3*a/4-o),r=o>0?a-4:a;var u=0;for(t=0;t>16&255,s[u++]=i>>8&255,s[u++]=255&i;return 2===o?(i=c[e.charCodeAt(t)]<<2|c[e.charCodeAt(t+1)]>>4,s[u++]=255&i):1===o&&(i=c[e.charCodeAt(t)]<<10|c[e.charCodeAt(t+1)]<<4|c[e.charCodeAt(t+2)]>>2,s[u++]=i>>8&255,s[u++]=255&i),s}function o(e){return u[e>>18&63]+u[e>>12&63]+u[e>>6&63]+u[63&e]}function s(e,t,n){for(var r,i=[],s=t;sl?l:c+a));return 1===r?(t=e[n-1],i+=u[t>>2],i+=u[t<<4&63],i+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],i+=u[t>>10],i+=u[t>>4&63],i+=u[t<<2&63],i+="="),o.push(i),o.join("")}t.byteLength=r,t.toByteArray=i,t.fromByteArray=a;for(var u=[],c=[],l="undefined"!=typeof Uint8Array?Uint8Array:Array,h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",p=0,f=h.length;p>1,l=-7,h=n?i-1:0,p=n?-1:1,f=e[t+h];for(h+=p,o=f&(1<<-l)-1,f>>=-l,l+=a;l>0;o=256*o+e[t+h],h+=p,l-=8);for(s=o&(1<<-l)-1,o>>=-l,l+=r;l>0;s=256*s+e[t+h],h+=p,l-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:(f?-1:1)*(1/0);s+=Math.pow(2,r),o-=c}return(f?-1:1)*s*Math.pow(2,o-r)},t.write=function(e,t,n,r,i,o){var s,a,u,c=8*o-i-1,l=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:o-1,d=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=l):(s=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-s))<1&&(s--,u*=2),t+=s+h>=1?p/u:p*Math.pow(2,1-h),t*u>=2&&(s++,u/=2),s+h>=l?(a=0,s=l):s+h>=1?(a=(t*u-1)*Math.pow(2,i),s+=h):(a=t*Math.pow(2,h-1)*Math.pow(2,i),s=0));i>=8;e[n+f]=255&a,f+=d,a/=256,i-=8);for(s=s<0;e[n+f]=255&s,f+=d,s/=256,c-=8);e[n+f-d]|=128*m}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";function r(e){if(null===e)return!0;var t,n,r,i,o,u=[],c=e;for(t=0,n=c.length;t3)return!1;if("/"!==t[t.length-r.length-1])return!1}return!0}function i(e){var t=e,n=/\/([gim]*)$/.exec(e),r="";return"/"===t[0]&&(n&&(r=n[1]),t=t.slice(1,t.length-r.length-1)),new RegExp(t,r)}function o(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function s(e){return"[object RegExp]"===Object.prototype.toString.call(e)}var a=n(190);e.exports=new a("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:r,construct:i,predicate:s,represent:o})},function(e,t,n){function r(e){if(null===e)return!1;try{var t="("+e+")",n=a.parse(t,{range:!0});return"Program"===n.type&&1===n.body.length&&"ExpressionStatement"===n.body[0].type&&"FunctionExpression"===n.body[0].expression.type}catch(e){return!1}}function i(e){var t,n="("+e+")",r=a.parse(n,{range:!0}),i=[];if("Program"!==r.type||1!==r.body.length||"ExpressionStatement"!==r.body[0].type||"FunctionExpression"!==r.body[0].expression.type)throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(e){i.push(e.name)}),t=r.body[0].expression.body.range,new Function(i,n.slice(t[0]+1,t[1]-1))}function o(e){return e.toString()}function s(e){return"[object Function]"===Object.prototype.toString.call(e)}var a;try{a=n(215)}catch(e){"undefined"!=typeof window&&(a=window.esprima)}var u=n(190);e.exports=new u("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:r,construct:i,predicate:s,represent:o})},function(e,t,n){!function(t,n){e.exports=n()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e,t,n){var r=null,i=function(e,t){n&&n(e,t),r&&r.visit(e,t)},u="function"==typeof n?i:null,c=!1;if(t){c="boolean"==typeof t.comment&&t.comment;var l="boolean"==typeof t.attachComment&&t.attachComment;(c||l)&&(r=new o.CommentHandler,r.attach=l,t.comment=!0,u=i)}var h;h=t&&"boolean"==typeof t.jsx&&t.jsx?new a.JSXParser(e,t,u):new s.Parser(e,t,u);var p=h.parseProgram();return c&&(p.comments=r.comments),h.config.tokens&&(p.tokens=h.tokens),h.config.tolerant&&(p.errors=h.errorHandler.errors),p}function i(e,t,n){var r,i=new u.Tokenizer(e,t);r=[];try{for(;;){var o=i.getNextToken();if(!o)break;n&&(o=n(o)),r.push(o)}}catch(e){i.errorHandler.tolerate(e)}return i.errorHandler.tolerant&&(r.errors=i.errors()),r}var o=n(1),s=n(3),a=n(11),u=n(15);t.parse=r,t.tokenize=i;var c=n(2);t.Syntax=c.Syntax,t.version="3.1.3"},function(e,t,n){"use strict";var r=n(2),i=function(){function e(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return e.prototype.insertInnerComments=function(e,t){if(e.type===r.Syntax.BlockStatement&&0===e.body.length){for(var n=[],i=this.leading.length-1;i>=0;--i){var o=this.leading[i];t.end.offset>=o.start&&(n.unshift(o.comment),this.leading.splice(i,1),this.trailing.splice(i,1))}n.length&&(e.innerComments=n)}},e.prototype.findTrailingComments=function(e,t){var n=[];if(this.trailing.length>0){for(var r=this.trailing.length-1;r>=0;--r){var i=this.trailing[r];i.start>=t.end.offset&&n.unshift(i.comment)}return this.trailing.length=0,n}var o=this.stack[this.stack.length-1];if(o&&o.node.trailingComments){var s=o.node.trailingComments[0];s&&s.range[0]>=t.end.offset&&(n=o.node.trailingComments,delete o.node.trailingComments)}return n},e.prototype.findLeadingComments=function(e,t){for(var n,r=[];this.stack.length>0;){var i=this.stack[this.stack.length-1];if(!(i&&i.start>=t.start.offset))break;n=this.stack.pop().node}if(n){for(var o=n.leadingComments?n.leadingComments.length:0,s=o-1;s>=0;--s){var a=n.leadingComments[s];a.range[1]<=t.start.offset&&(r.unshift(a),n.leadingComments.splice(s,1))}return n.leadingComments&&0===n.leadingComments.length&&delete n.leadingComments,r}for(var s=this.leading.length-1;s>=0;--s){var i=this.leading[s];i.start<=t.start.offset&&(r.unshift(i.comment),this.leading.splice(s,1))}return r},e.prototype.visitNode=function(e,t){if(!(e.type===r.Syntax.Program&&e.body.length>0)){this.insertInnerComments(e,t);var n=this.findTrailingComments(e,t),i=this.findLeadingComments(e,t);i.length>0&&(e.leadingComments=i),n.length>0&&(e.trailingComments=n),this.stack.push({node:e,start:t.start.offset})}},e.prototype.visitComment=function(e,t){var n="L"===e.type[0]?"Line":"Block",r={type:n,value:e.value};if(e.range&&(r.range=e.range),e.loc&&(r.loc=e.loc),this.comments.push(r),this.attach){var i={comment:{type:n,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(i.comment.loc=e.loc),e.type=n,this.leading.push(i),this.trailing.push(i)}},e.prototype.visit=function(e,t){"LineComment"===e.type?this.visitComment(e,t):"BlockComment"===e.type?this.visitComment(e,t):this.attach&&this.visitNode(e,t)},e}();t.CommentHandler=i},function(e,t){"use strict";t.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,t,n){"use strict";var r=n(4),i=n(5),o=n(6),s=n(7),a=n(8),u=n(2),c=n(10),l="ArrowParameterPlaceHolder",h=function(){function e(e,t,n){void 0===t&&(t={}),this.config={range:"boolean"==typeof t.range&&t.range,loc:"boolean"==typeof t.loc&&t.loc,source:null,tokens:"boolean"==typeof t.tokens&&t.tokens,comment:"boolean"==typeof t.comment&&t.comment,tolerant:"boolean"==typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=String(t.source)),this.delegate=n,this.errorHandler=new o.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new a.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2, -"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.sourceType=t&&"module"===t.sourceType?"module":"script",this.lookahead=null,this.hasLineTerminator=!1,this.context={allowIn:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:"module"===this.sourceType},this.tokens=[],this.startMarker={index:0,lineNumber:this.scanner.lineNumber,lineStart:0},this.lastMarker={index:0,lineNumber:this.scanner.lineNumber,lineStart:0},this.nextToken(),this.lastMarker={index:this.scanner.index,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],n=1;n0&&this.delegate)for(var t=0;t>="===e||">>>="===e||"&="===e||"^="===e||"|="===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,n=this.context.isAssignmentTarget,r=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=n,this.context.firstCoverInitializedNameError=r,i},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,n=this.context.isAssignmentTarget,r=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&n,this.context.firstCoverInitializedNameError=r||this.context.firstCoverInitializedNameError,i},e.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(this.lookahead.type===s.Token.EOF||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.lineNumber=this.startMarker.lineNumber,this.lastMarker.lineStart=this.startMarker.lineStart)},e.prototype.parsePrimaryExpression=function(){var e,t,n,r,o=this.createNode();switch(this.lookahead.type){case s.Token.Identifier:"module"===this.sourceType&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.finalize(o,new c.Identifier(this.nextToken().value));break;case s.Token.NumericLiteral:case s.Token.StringLiteral:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,i.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),r=this.getTokenRaw(n),e=this.finalize(o,new c.Literal(n.value,r));break;case s.Token.BooleanLiteral:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),n.value="true"===n.value,r=this.getTokenRaw(n),e=this.finalize(o,new c.Literal(n.value,r));break;case s.Token.NullLiteral:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),n.value=null,r=this.getTokenRaw(n),e=this.finalize(o,new c.Literal(n.value,r));break;case s.Token.Template:e=this.parseTemplateLiteral();break;case s.Token.Punctuator:switch(t=this.lookahead.value){case"(":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,n=this.nextRegexToken(),r=this.getTokenRaw(n),e=this.finalize(o,new c.RegexLiteral(n.value,r,n.regex));break;default:this.throwUnexpectedToken(this.nextToken())}break;case s.Token.Keyword:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?e=this.finalize(o,new c.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?e=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),e=this.finalize(o,new c.ThisExpression)):this.matchKeyword("class")?e=this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:this.throwUnexpectedToken(this.nextToken())}return e},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new c.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){var n=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(n)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new c.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,n=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,n},e.prototype.parsePropertyMethodFunction=function(){var e=!1,t=this.createNode(),n=this.context.allowYield;this.context.allowYield=!1;var r=this.parseFormalParameters(),i=this.parsePropertyMethod(r);return this.context.allowYield=n,this.finalize(t,new c.FunctionExpression(null,r.params,i,e))},e.prototype.parseObjectPropertyKey=function(){var e=this.createNode(),t=this.nextToken(),n=null;switch(t.type){case s.Token.StringLiteral:case s.Token.NumericLiteral:this.context.strict&&t.octal&&this.tolerateUnexpectedToken(t,i.Messages.StrictOctalLiteral);var r=this.getTokenRaw(t);n=this.finalize(e,new c.Literal(t.value,r));break;case s.Token.Identifier:case s.Token.BooleanLiteral:case s.Token.NullLiteral:case s.Token.Keyword:n=this.finalize(e,new c.Identifier(t.value));break;case s.Token.Punctuator:"["===t.value?(n=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):this.throwUnexpectedToken(t);break;default:this.throwUnexpectedToken(t)}return n},e.prototype.isPropertyKey=function(e,t){return e.type===u.Syntax.Identifier&&e.name===t||e.type===u.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t,n,r,o=this.createNode(),a=this.lookahead,u=!1,l=!1,h=!1;a.type===s.Token.Identifier?(this.nextToken(),n=this.finalize(o,new c.Identifier(a.value))):this.match("*")?this.nextToken():(u=this.match("["),n=this.parseObjectPropertyKey());var p=this.qualifiedPropertyName(this.lookahead);if(a.type===s.Token.Identifier&&"get"===a.value&&p)t="get",u=this.match("["),n=this.parseObjectPropertyKey(),this.context.allowYield=!1,r=this.parseGetterMethod();else if(a.type===s.Token.Identifier&&"set"===a.value&&p)t="set",u=this.match("["),n=this.parseObjectPropertyKey(),r=this.parseSetterMethod();else if(a.type===s.Token.Punctuator&&"*"===a.value&&p)t="init",u=this.match("["),n=this.parseObjectPropertyKey(),r=this.parseGeneratorMethod(),l=!0;else if(n||this.throwUnexpectedToken(this.lookahead),t="init",this.match(":"))!u&&this.isPropertyKey(n,"__proto__")&&(e.value&&this.tolerateError(i.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),r=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))r=this.parsePropertyMethodFunction(),l=!0;else if(a.type===s.Token.Identifier){var f=this.finalize(o,new c.Identifier(a.value));if(this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),h=!0;var d=this.isolateCoverGrammar(this.parseAssignmentExpression);r=this.finalize(o,new c.AssignmentPattern(f,d))}else h=!0,r=f}else this.throwUnexpectedToken(this.nextToken());return this.finalize(o,new c.Property(t,n,u,r,l,h))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var t=[],n={value:!1};!this.match("}");)t.push(this.parseObjectProperty(n)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new c.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){r.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),t=this.nextToken(),n={raw:t.value.raw,cooked:t.value.cooked};return this.finalize(e,new c.TemplateElement(n,t.tail))},e.prototype.parseTemplateElement=function(){this.lookahead.type!==s.Token.Template&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),n={raw:t.value.raw,cooked:t.value.cooked};return this.finalize(e,new c.TemplateElement(n,t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],n=[],r=this.parseTemplateHead();for(n.push(r);!r.tail;)t.push(this.parseExpression()),r=this.parseTemplateElement(),n.push(r);return this.finalize(e,new c.TemplateLiteral(n,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case u.Syntax.Identifier:case u.Syntax.MemberExpression:case u.Syntax.RestElement:case u.Syntax.AssignmentPattern:break;case u.Syntax.SpreadElement:e.type=u.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case u.Syntax.ArrayExpression:e.type=u.Syntax.ArrayPattern;for(var t=0;t")||this.expect("=>"),e={type:l,params:[]};else{var t=this.lookahead,n=[];if(this.match("..."))e=this.parseRestElement(n),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:l,params:[e]};else{var r=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var i=[];for(this.context.isAssignmentTarget=!1,i.push(e);this.startMarker.index")||this.expect("=>"),this.context.isBindingElement=!1;for(var o=0;o")&&(e.type===u.Syntax.Identifier&&"yield"===e.name&&(r=!0,e={type:l,params:[e]}),!r)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===u.Syntax.SequenceExpression)for(var o=0;o0){this.nextToken(),n.prec=r,this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var i=[e,this.lookahead],o=t,s=this.isolateCoverGrammar(this.parseExponentiationExpression),a=[o,n,s];;){if(r=this.binaryPrecedence(this.lookahead),r<=0)break;for(;a.length>2&&r<=a[a.length-2].prec;){s=a.pop();var u=a.pop().value;o=a.pop(),i.pop();var l=this.startNode(i[i.length-1]);a.push(this.finalize(l,new c.BinaryExpression(u,o,s)))}n=this.nextToken(),n.prec=r,a.push(n),i.push(this.lookahead),a.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var h=a.length-1;for(t=a[h],i.pop();h>1;){var l=this.startNode(i.pop());t=this.finalize(l,new c.BinaryExpression(a[h-1].value,a[h-2],t)),h-=2}}return t},e.prototype.parseConditionalExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var n=this.context.allowIn;this.context.allowIn=!0;var r=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=n,this.expect(":");var i=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new c.ConditionalExpression(t,r,i)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t},e.prototype.checkPatternParam=function(e,t){switch(t.type){case u.Syntax.Identifier:this.validateParam(e,t,t.name);break;case u.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case u.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case u.Syntax.ArrayPattern:for(var n=0;n")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var r=this.reinterpretAsCoverFormalsList(e);if(r){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var o=this.context.strict,s=this.context.allowYield;this.context.allowYield=!0;var a=this.startNode(t);this.expect("=>");var h=this.match("{")?this.parseFunctionSourceElements():this.isolateCoverGrammar(this.parseAssignmentExpression),p=h.type!==u.Syntax.BlockStatement;this.context.strict&&r.firstRestricted&&this.throwUnexpectedToken(r.firstRestricted,r.message),this.context.strict&&r.stricted&&this.tolerateUnexpectedToken(r.stricted,r.message),e=this.finalize(a,new c.ArrowFunctionExpression(r.params,h,p)),this.context.strict=o,this.context.allowYield=s}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(i.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===u.Syntax.Identifier){var f=e;this.scanner.isRestrictedWord(f.name)&&this.tolerateUnexpectedToken(n,i.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(f.name)&&this.tolerateUnexpectedToken(n,i.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1),n=this.nextToken();var d=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new c.AssignmentExpression(n.value,e,d)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var n=[];for(n.push(t);this.startMarker.index",t.TokenName[n.Identifier]="Identifier",t.TokenName[n.Keyword]="Keyword",t.TokenName[n.NullLiteral]="Null",t.TokenName[n.NumericLiteral]="Numeric",t.TokenName[n.Punctuator]="Punctuator",t.TokenName[n.StringLiteral]="String",t.TokenName[n.RegularExpression]="RegularExpression",t.TokenName[n.Template]="Template"},function(e,t,n){"use strict";function r(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function i(e){return"01234567".indexOf(e)}var o=n(4),s=n(5),a=n(9),u=n(7),c=function(){function e(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return e.prototype.eof=function(){return this.index>=this.length},e.prototype.throwUnexpectedToken=function(e){void 0===e&&(e=s.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(){this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,s.Messages.UnexpectedTokenIllegal)},e.prototype.skipSingleLineComment=function(e){var t,n,r;for(this.trackComment&&(t=[],n=this.index-e,r={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var i=this.source.charCodeAt(this.index);if(++this.index,a.Character.isLineTerminator(i)){if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart-1};var o={multiLine:!1,slice:[n+e,this.index-1],range:[n,this.index-1],loc:r};t.push(o)}return 13===i&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t}}if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart};var o={multiLine:!1,slice:[n+e,this.index],range:[n,this.index],loc:r};t.push(o)}return t},e.prototype.skipMultiLineComment=function(){var e,t,n;for(this.trackComment&&(e=[],t=this.index-2,n={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var r=this.source.charCodeAt(this.index);if(a.Character.isLineTerminator(r))13===r&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===r){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart};var i={multiLine:!0,slice:[t+2,this.index-2],range:[t,this.index],loc:n};e.push(i)}return e}++this.index}else++this.index}if(this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart};var i={multiLine:!0,slice:[t+2,this.index],range:[t,this.index],loc:n};e.push(i)}return this.tolerateUnexpectedToken(),e},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index;!this.eof();){var n=this.source.charCodeAt(this.index);if(a.Character.isWhiteSpace(n))++this.index;else if(a.Character.isLineTerminator(n))++this.index,13===n&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===n)if(n=this.source.charCodeAt(this.index+1),47===n){this.index+=2;var r=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(r)),t=!0}else{if(42!==n)break;this.index+=2;var r=this.skipMultiLineComment();this.trackComment&&(e=e.concat(r))}else if(t&&45===n){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3;var r=this.skipSingleLineComment(3);this.trackComment&&(e=e.concat(r))}else{if(60!==n)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4;var r=this.skipSingleLineComment(4);this.trackComment&&(e=e.concat(r))}}return e},e.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}},e.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},e.prototype.isRestrictedWord=function(e){return"eval"===e||"arguments"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var n=this.source.charCodeAt(e+1);if(n>=56320&&n<=57343){var r=t;t=1024*(r-55296)+n-56320+65536}}return t},e.prototype.scanHexEscape=function(e){for(var t="u"===e?4:2,n=0,i=0;i1114111||"}"!==e)&&this.throwUnexpectedToken(),a.Character.fromCodePoint(t)},e.prototype.getIdentifier=function(){for(var e=this.index++;!this.eof();){var t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!a.Character.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e=this.codePointAt(this.index),t=a.Character.fromCodePoint(e);this.index+=t.length;var n;for(92===e&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,n=this.scanUnicodeCodePointEscape()):(n=this.scanHexEscape("u"),e=n.charCodeAt(0),n&&"\\"!==n&&a.Character.isIdentifierStart(e)||this.throwUnexpectedToken()),t=n);!this.eof()&&(e=this.codePointAt(this.index),a.Character.isIdentifierPart(e));)n=a.Character.fromCodePoint(e),t+=n,this.index+=n.length,92===e&&(t=t.substr(0,t.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,n=this.scanUnicodeCodePointEscape()):(n=this.scanHexEscape("u"),e=n.charCodeAt(0),n&&"\\"!==n&&a.Character.isIdentifierPart(e)||this.throwUnexpectedToken()),t+=n);return t},e.prototype.octalToDecimal=function(e){var t="0"!==e,n=i(e);return!this.eof()&&a.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,n=8*n+i(this.source[this.index++]),"0123".indexOf(e)>=0&&!this.eof()&&a.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(n=8*n+i(this.source[this.index++]))),{code:n,octal:t}},e.prototype.scanIdentifier=function(){var e,t=this.index,n=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();return e=1===n.length?u.Token.Identifier:this.isKeyword(n)?u.Token.Keyword:"null"===n?u.Token.NullLiteral:"true"===n||"false"===n?u.Token.BooleanLiteral:u.Token.Identifier,{type:e,value:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.scanPunctuator=function(){var e={type:u.Token.Punctuator,value:"",lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index},t=this.source[this.index];switch(t){case"(":case"{":"{"===t&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,t="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:t=this.source.substr(this.index,4),">>>="===t?this.index+=4:(t=t.substr(0,3),"==="===t||"!=="===t||">>>"===t||"<<="===t||">>="===t||"**="===t?this.index+=3:(t=t.substr(0,2),"&&"===t||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t||"**"===t?this.index+=2:(t=this.source[this.index],"<>=!+-*%&|^/".indexOf(t)>=0&&++this.index)))}return this.index===e.start&&this.throwUnexpectedToken(),e.end=this.index,e.value=t,e},e.prototype.scanHexLiteral=function(e){for(var t="";!this.eof()&&a.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),a.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:u.Token.NumericLiteral,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t,n="";!this.eof()&&(t=this.source[this.index],"0"===t||"1"===t);)n+=this.source[this.index++];return 0===n.length&&this.throwUnexpectedToken(),this.eof()||(t=this.source.charCodeAt(this.index),(a.Character.isIdentifierStart(t)||a.Character.isDecimalDigit(t))&&this.throwUnexpectedToken()),{type:u.Token.NumericLiteral,value:parseInt(n,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var n="",r=!1;for(a.Character.isOctalDigit(e.charCodeAt(0))?(r=!0,n="0"+this.source[this.index++]):++this.index;!this.eof()&&a.Character.isOctalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];return r||0!==n.length||this.throwUnexpectedToken(),(a.Character.isIdentifierStart(this.source.charCodeAt(this.index))||a.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:u.Token.NumericLiteral,value:parseInt(n,8),octal:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e=0&&(r=r.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,function(e,t,r){var o=parseInt(t||r,16);return o>1114111&&i.throwUnexpectedToken(s.Messages.InvalidRegExp),o<=65535?String.fromCharCode(o):n}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,n));try{RegExp(r)}catch(e){this.throwUnexpectedToken(s.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(e){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];o.assert("/"===e,"Regular expression literal must start with a slash");for(var t=this.source[this.index++],n=!1,r=!1;!this.eof();)if(e=this.source[this.index++],t+=e,"\\"===e)e=this.source[this.index++],a.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(s.Messages.UnterminatedRegExp),t+=e;else if(a.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(s.Messages.UnterminatedRegExp);else if(n)"]"===e&&(n=!1);else{if("/"===e){r=!0;break}"["===e&&(n=!0)}r||this.throwUnexpectedToken(s.Messages.UnterminatedRegExp);var i=t.substr(1,t.length-2);return{value:i,literal:t}},e.prototype.scanRegExpFlags=function(){for(var e="",t="";!this.eof();){var n=this.source[this.index];if(!a.Character.isIdentifierPart(n.charCodeAt(0)))break;if(++this.index,"\\"!==n||this.eof())t+=n,e+=n;else if(n=this.source[this.index],"u"===n){++this.index;var r=this.index;if(n=this.scanHexEscape("u"))for(t+=n,e+="\\u";r=55296&&e<57343&&a.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=c},function(e,t){"use strict";var n={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/ -};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&n.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&n.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,n){"use strict";var r=n(2),i=function(){function e(e){this.type=r.Syntax.ArrayExpression,this.elements=e}return e}();t.ArrayExpression=i;var o=function(){function e(e){this.type=r.Syntax.ArrayPattern,this.elements=e}return e}();t.ArrayPattern=o;var s=function(){function e(e,t,n){this.type=r.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=n}return e}();t.ArrowFunctionExpression=s;var a=function(){function e(e,t,n){this.type=r.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=n}return e}();t.AssignmentExpression=a;var u=function(){function e(e,t){this.type=r.Syntax.AssignmentPattern,this.left=e,this.right=t}return e}();t.AssignmentPattern=u;var c=function(){function e(e,t,n){var i="||"===e||"&&"===e;this.type=i?r.Syntax.LogicalExpression:r.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=n}return e}();t.BinaryExpression=c;var l=function(){function e(e){this.type=r.Syntax.BlockStatement,this.body=e}return e}();t.BlockStatement=l;var h=function(){function e(e){this.type=r.Syntax.BreakStatement,this.label=e}return e}();t.BreakStatement=h;var p=function(){function e(e,t){this.type=r.Syntax.CallExpression,this.callee=e,this.arguments=t}return e}();t.CallExpression=p;var f=function(){function e(e,t){this.type=r.Syntax.CatchClause,this.param=e,this.body=t}return e}();t.CatchClause=f;var d=function(){function e(e){this.type=r.Syntax.ClassBody,this.body=e}return e}();t.ClassBody=d;var m=function(){function e(e,t,n){this.type=r.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=n}return e}();t.ClassDeclaration=m;var g=function(){function e(e,t,n){this.type=r.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=n}return e}();t.ClassExpression=g;var x=function(){function e(e,t){this.type=r.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t}return e}();t.ComputedMemberExpression=x;var y=function(){function e(e,t,n){this.type=r.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=n}return e}();t.ConditionalExpression=y;var v=function(){function e(e){this.type=r.Syntax.ContinueStatement,this.label=e}return e}();t.ContinueStatement=v;var b=function(){function e(){this.type=r.Syntax.DebuggerStatement}return e}();t.DebuggerStatement=b;var D=function(){function e(e,t){this.type=r.Syntax.ExpressionStatement,this.expression=e,this.directive=t}return e}();t.Directive=D;var w=function(){function e(e,t){this.type=r.Syntax.DoWhileStatement,this.body=e,this.test=t}return e}();t.DoWhileStatement=w;var E=function(){function e(){this.type=r.Syntax.EmptyStatement}return e}();t.EmptyStatement=E;var k=function(){function e(e){this.type=r.Syntax.ExportAllDeclaration,this.source=e}return e}();t.ExportAllDeclaration=k;var A=function(){function e(e){this.type=r.Syntax.ExportDefaultDeclaration,this.declaration=e}return e}();t.ExportDefaultDeclaration=A;var C=function(){function e(e,t,n){this.type=r.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=n}return e}();t.ExportNamedDeclaration=C;var S=function(){function e(e,t){this.type=r.Syntax.ExportSpecifier,this.exported=t,this.local=e}return e}();t.ExportSpecifier=S;var F=function(){function e(e){this.type=r.Syntax.ExpressionStatement,this.expression=e}return e}();t.ExpressionStatement=F;var T=function(){function e(e,t,n){this.type=r.Syntax.ForInStatement,this.left=e,this.right=t,this.body=n,this.each=!1}return e}();t.ForInStatement=T;var B=function(){function e(e,t,n){this.type=r.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=n}return e}();t.ForOfStatement=B;var N=function(){function e(e,t,n,i){this.type=r.Syntax.ForStatement,this.init=e,this.test=t,this.update=n,this.body=i}return e}();t.ForStatement=N;var I=function(){function e(e,t,n,i){this.type=r.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=n,this.generator=i,this.expression=!1}return e}();t.FunctionDeclaration=I;var P=function(){function e(e,t,n,i){this.type=r.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=n,this.generator=i,this.expression=!1}return e}();t.FunctionExpression=P;var M=function(){function e(e){this.type=r.Syntax.Identifier,this.name=e}return e}();t.Identifier=M;var O=function(){function e(e,t,n){this.type=r.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=n}return e}();t.IfStatement=O;var _=function(){function e(e,t){this.type=r.Syntax.ImportDeclaration,this.specifiers=e,this.source=t}return e}();t.ImportDeclaration=_;var L=function(){function e(e){this.type=r.Syntax.ImportDefaultSpecifier,this.local=e}return e}();t.ImportDefaultSpecifier=L;var R=function(){function e(e){this.type=r.Syntax.ImportNamespaceSpecifier,this.local=e}return e}();t.ImportNamespaceSpecifier=R;var U=function(){function e(e,t){this.type=r.Syntax.ImportSpecifier,this.local=e,this.imported=t}return e}();t.ImportSpecifier=U;var j=function(){function e(e,t){this.type=r.Syntax.LabeledStatement,this.label=e,this.body=t}return e}();t.LabeledStatement=j;var z=function(){function e(e,t){this.type=r.Syntax.Literal,this.value=e,this.raw=t}return e}();t.Literal=z;var J=function(){function e(e,t){this.type=r.Syntax.MetaProperty,this.meta=e,this.property=t}return e}();t.MetaProperty=J;var X=function(){function e(e,t,n,i,o){this.type=r.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=n,this.kind=i,this.static=o}return e}();t.MethodDefinition=X;var Y=function(){function e(e,t){this.type=r.Syntax.NewExpression,this.callee=e,this.arguments=t}return e}();t.NewExpression=Y;var K=function(){function e(e){this.type=r.Syntax.ObjectExpression,this.properties=e}return e}();t.ObjectExpression=K;var W=function(){function e(e){this.type=r.Syntax.ObjectPattern,this.properties=e}return e}();t.ObjectPattern=W;var H=function(){function e(e,t){this.type=r.Syntax.Program,this.body=e,this.sourceType=t}return e}();t.Program=H;var q=function(){function e(e,t,n,i,o,s){this.type=r.Syntax.Property,this.key=t,this.computed=n,this.value=i,this.kind=e,this.method=o,this.shorthand=s}return e}();t.Property=q;var G=function(){function e(e,t,n){this.type=r.Syntax.Literal,this.value=e,this.raw=t,this.regex=n}return e}();t.RegexLiteral=G;var V=function(){function e(e){this.type=r.Syntax.RestElement,this.argument=e}return e}();t.RestElement=V;var $=function(){function e(e){this.type=r.Syntax.ReturnStatement,this.argument=e}return e}();t.ReturnStatement=$;var Z=function(){function e(e){this.type=r.Syntax.SequenceExpression,this.expressions=e}return e}();t.SequenceExpression=Z;var Q=function(){function e(e){this.type=r.Syntax.SpreadElement,this.argument=e}return e}();t.SpreadElement=Q;var ee=function(){function e(e,t){this.type=r.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t}return e}();t.StaticMemberExpression=ee;var te=function(){function e(){this.type=r.Syntax.Super}return e}();t.Super=te;var ne=function(){function e(e,t){this.type=r.Syntax.SwitchCase,this.test=e,this.consequent=t}return e}();t.SwitchCase=ne;var re=function(){function e(e,t){this.type=r.Syntax.SwitchStatement,this.discriminant=e,this.cases=t}return e}();t.SwitchStatement=re;var ie=function(){function e(e,t){this.type=r.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t}return e}();t.TaggedTemplateExpression=ie;var oe=function(){function e(e,t){this.type=r.Syntax.TemplateElement,this.value=e,this.tail=t}return e}();t.TemplateElement=oe;var se=function(){function e(e,t){this.type=r.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t}return e}();t.TemplateLiteral=se;var ae=function(){function e(){this.type=r.Syntax.ThisExpression}return e}();t.ThisExpression=ae;var ue=function(){function e(e){this.type=r.Syntax.ThrowStatement,this.argument=e}return e}();t.ThrowStatement=ue;var ce=function(){function e(e,t,n){this.type=r.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=n}return e}();t.TryStatement=ce;var le=function(){function e(e,t){this.type=r.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0}return e}();t.UnaryExpression=le;var he=function(){function e(e,t,n){this.type=r.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=n}return e}();t.UpdateExpression=he;var pe=function(){function e(e,t){this.type=r.Syntax.VariableDeclaration,this.declarations=e,this.kind=t}return e}();t.VariableDeclaration=pe;var fe=function(){function e(e,t){this.type=r.Syntax.VariableDeclarator,this.id=e,this.init=t}return e}();t.VariableDeclarator=fe;var de=function(){function e(e,t){this.type=r.Syntax.WhileStatement,this.test=e,this.body=t}return e}();t.WhileStatement=de;var me=function(){function e(e,t){this.type=r.Syntax.WithStatement,this.object=e,this.body=t}return e}();t.WithStatement=me;var ge=function(){function e(e,t){this.type=r.Syntax.YieldExpression,this.argument=e,this.delegate=t}return e}();t.YieldExpression=ge},function(e,t,n){"use strict";function r(e){var t;switch(e.type){case l.JSXSyntax.JSXIdentifier:var n=e;t=n.name;break;case l.JSXSyntax.JSXNamespacedName:var i=e;t=r(i.namespace)+":"+r(i.name);break;case l.JSXSyntax.JSXMemberExpression:var o=e;t=r(o.object)+"."+r(o.property)}return t}var i,o=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},s=n(9),a=n(7),u=n(3),c=n(12),l=n(13),h=n(10),p=n(14);!function(e){e[e.Identifier=100]="Identifier",e[e.Text=101]="Text"}(i||(i={})),a.TokenName[i.Identifier]="JSXIdentifier",a.TokenName[i.Text]="JSXText";var f=function(e){function t(t,n,r){e.call(this,t,n,r)}return o(t,e),t.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},t.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.lineNumber,this.scanner.lineStart=this.startMarker.lineStart},t.prototype.finishJSX=function(){this.nextToken()},t.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},t.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.scanXHTMLEntity=function(e){for(var t="&",n=!0,r=!1,i=!1,o=!1;!this.scanner.eof()&&n&&!r;){var a=this.scanner.source[this.scanner.index];if(a===e)break;if(r=";"===a,t+=a,++this.scanner.index,!r)switch(t.length){case 2:i="#"===a;break;case 3:i&&(o="x"===a,n=o||s.Character.isDecimalDigit(a.charCodeAt(0)),i=i&&!o);break;default:n=n&&!(i&&!s.Character.isDecimalDigit(a.charCodeAt(0))),n=n&&!(o&&!s.Character.isHexDigit(a.charCodeAt(0)))}}if(n&&r&&t.length>2){var u=t.substr(1,t.length-2);i&&u.length>1?t=String.fromCharCode(parseInt(u.substr(1),10)):o&&u.length>2?t=String.fromCharCode(parseInt("0"+u.substr(1),16)):i||o||!c.XHTMLEntities[u]||(t=c.XHTMLEntities[u])}return t},t.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e){var t=this.scanner.source[this.scanner.index++];return{type:a.Token.Punctuator,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index}}if(34===e||39===e){for(var n=this.scanner.index,r=this.scanner.source[this.scanner.index++],o="";!this.scanner.eof();){var u=this.scanner.source[this.scanner.index++];if(u===r)break;o+="&"===u?this.scanXHTMLEntity(r):u}return{type:a.Token.StringLiteral,value:o,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index}}if(46===e){var c=this.scanner.source.charCodeAt(this.scanner.index+1),l=this.scanner.source.charCodeAt(this.scanner.index+2),t=46===c&&46===l?"...":".",n=this.scanner.index;return this.scanner.index+=t.length,{type:a.Token.Punctuator,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index}}if(96===e)return{type:a.Token.Template,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(s.Character.isIdentifierStart(e)&&92!==e){var n=this.scanner.index;for(++this.scanner.index;!this.scanner.eof();){var u=this.scanner.source.charCodeAt(this.scanner.index);if(s.Character.isIdentifierPart(u)&&92!==u)++this.scanner.index;else{if(45!==u)break;++this.scanner.index}}var h=this.scanner.source.slice(n,this.scanner.index);return{type:i.Identifier,value:h,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index}}this.scanner.throwUnexpectedToken()},t.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},t.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;for(var e=this.scanner.index,t="";!this.scanner.eof();){var n=this.scanner.source[this.scanner.index];if("{"===n||"<"===n)break;++this.scanner.index,t+=n,s.Character.isLineTerminator(n.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===n&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart;var r={type:i.Text,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(r)),r},t.prototype.peekJSXToken=function(){var e=this.scanner.index,t=this.scanner.lineNumber,n=this.scanner.lineStart;this.scanner.scanComments();var r=this.lexJSX();return this.scanner.index=e,this.scanner.lineNumber=t,this.scanner.lineStart=n,r},t.prototype.expectJSX=function(e){var t=this.nextJSXToken();t.type===a.Token.Punctuator&&t.value===e||this.throwUnexpectedToken(t)},t.prototype.matchJSX=function(e){var t=this.peekJSXToken();return t.type===a.Token.Punctuator&&t.value===e},t.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode(),t=this.nextJSXToken();return t.type!==i.Identifier&&this.throwUnexpectedToken(t),this.finalize(e,new p.JSXIdentifier(t.value))},t.prototype.parseJSXElementName=function(){var e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(":")){var n=t;this.expectJSX(":");var r=this.parseJSXIdentifier();t=this.finalize(e,new p.JSXNamespacedName(n,r))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var i=t;this.expectJSX(".");var o=this.parseJSXIdentifier();t=this.finalize(e,new p.JSXMemberExpression(i,o))}return t},t.prototype.parseJSXAttributeName=function(){var e,t=this.createJSXNode(),n=this.parseJSXIdentifier();if(this.matchJSX(":")){var r=n;this.expectJSX(":");var i=this.parseJSXIdentifier();e=this.finalize(t,new p.JSXNamespacedName(r,i))}else e=n;return e},t.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode(),t=this.nextJSXToken();t.type!==a.Token.StringLiteral&&this.throwUnexpectedToken(t);var n=this.getTokenRaw(t);return this.finalize(e,new h.Literal(t.value,n))},t.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new p.JSXExpressionContainer(t))},t.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},t.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode(),t=this.parseJSXAttributeName(),n=null;return this.matchJSX("=")&&(this.expectJSX("="),n=this.parseJSXAttributeValue()),this.finalize(e,new p.JSXAttribute(t,n))},t.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new p.JSXSpreadAttribute(t))},t.prototype.parseJSXAttributes=function(){for(var e=[];!this.matchJSX("/")&&!this.matchJSX(">");){var t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName(),n=this.parseJSXAttributes(),r=this.matchJSX("/");return r&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new p.JSXOpeningElement(t,r,n))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new p.JSXClosingElement(t))}var n=this.parseJSXElementName(),r=this.parseJSXAttributes(),i=this.matchJSX("/");return i&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new p.JSXOpeningElement(n,i,r))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.finalize(e,new p.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e=this.createJSXNode();this.expectJSX("{");var t;return this.matchJSX("}")?(t=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),t=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(e,new p.JSXExpressionContainer(t))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),n=this.nextJSXText();if(n.start0))break;var s=this.finalize(e.node,new p.JSXElement(e.opening,e.children,e.closing));e=t.pop(),e.children.push(s)}}return e},t.prototype.parseJSXElement=function(){var e=this.createJSXNode(),t=this.parseJSXOpeningElement(),n=[],r=null;if(!t.selfClosing){var i=this.parseComplexJSXElement({node:e,opening:t,closing:r,children:n});n=i.children,r=i.closing}return this.finalize(e,new p.JSXElement(t,n,r))},t.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var e=this.parseJSXElement();return this.finishJSX(),e},t}(u.Parser);t.JSXParser=f},function(e,t){"use strict";t.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(e,t){"use strict";t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,n){"use strict";var r=n(13),i=function(){function e(e){this.type=r.JSXSyntax.JSXClosingElement,this.name=e}return e}();t.JSXClosingElement=i;var o=function(){function e(e,t,n){this.type=r.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=n}return e}();t.JSXElement=o;var s=function(){function e(){this.type=r.JSXSyntax.JSXEmptyExpression}return e}();t.JSXEmptyExpression=s;var a=function(){function e(e){this.type=r.JSXSyntax.JSXExpressionContainer,this.expression=e}return e}();t.JSXExpressionContainer=a;var u=function(){function e(e){this.type=r.JSXSyntax.JSXIdentifier,this.name=e}return e}();t.JSXIdentifier=u;var c=function(){function e(e,t){this.type=r.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t}return e}();t.JSXMemberExpression=c;var l=function(){function e(e,t){this.type=r.JSXSyntax.JSXAttribute,this.name=e,this.value=t}return e}();t.JSXAttribute=l;var h=function(){function e(e,t){this.type=r.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t}return e}();t.JSXNamespacedName=h;var p=function(){function e(e,t,n){this.type=r.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=n}return e}();t.JSXOpeningElement=p;var f=function(){function e(e){this.type=r.JSXSyntax.JSXSpreadAttribute,this.argument=e}return e}();t.JSXSpreadAttribute=f;var d=function(){function e(e,t){this.type=r.JSXSyntax.JSXText,this.value=e,this.raw=t}return e}();t.JSXText=d},function(e,t,n){"use strict";var r=n(8),i=n(6),o=n(7),s=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case"this":case"]":t=!1;break;case")":var n=this.values[this.paren-1];t="if"===n||"while"===n||"for"===n||"with"===n;break;case"}":if(t=!1,"function"===this.values[this.curly-3]){var r=this.values[this.curly-4];t=!!r&&!this.beforeFunctionExpression(r)}else if("function"===this.values[this.curly-4]){var i=this.values[this.curly-5];t=!i||!this.beforeFunctionExpression(i)}}return t},e.prototype.push=function(e){e.type===o.Token.Punctuator||e.type===o.Token.Keyword?("{"===e.value?this.curly=this.values.length:"("===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),a=function(){function e(e,t){this.errorHandler=new i.ErrorHandler,this.errorHandler.tolerant=!!t&&("boolean"==typeof t.tolerant&&t.tolerant),this.scanner=new r.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&("boolean"==typeof t.comment&&t.comment),this.trackRange=!!t&&("boolean"==typeof t.range&&t.range),this.trackLoc=!!t&&("boolean"==typeof t.loc&&t.loc),this.buffer=[],this.reader=new s}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var e=this.scanner.scanComments();if(this.scanner.trackComment)for(var t=0;tr&&" "!==e[d+1],d=o);else if(!l(s))return le;m=m&&h(s)}u=u||f&&o-d-1>r&&" "!==e[d+1]}return a||u?" "===e[0]&&n>9?le:u?ce:ue:m&&!i(e)?se:ae}function d(e,t,n,r){e.dump=function(){function i(t){return u(e,t)}if(0===t.length)return"''";if(!e.noCompatMode&&oe.indexOf(t)!==-1)return"'"+t+"'";var o=e.indent*Math.max(1,n),a=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o),c=r||e.flowLevel>-1&&n>=e.flowLevel;switch(f(t,c,e.indent,a,i)){case se:return t;case ae:return"'"+t.replace(/'/g,"''")+"'";case ue:return"|"+m(t,e.indent)+g(s(t,o));case ce:return">"+m(t,e.indent)+g(s(x(t,a),o));case le:return'"'+v(t,a)+'"';default:throw new N("impossible error: invalid scalar style")}}()}function m(e,t){var n=" "===e[0]?String(t):"",r="\n"===e[e.length-1],i=r&&("\n"===e[e.length-2]||"\n"===e),o=i?"+":r?"":"-";return n+o+"\n"}function g(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function x(e,t){for(var n,r,i=/(\n+)([^\n]*)/g,o=function(){var n=e.indexOf("\n");return n=n!==-1?n:e.length,i.lastIndex=n,y(e.slice(0,n),t)}(),s="\n"===e[0]||" "===e[0];r=i.exec(e);){var a=r[1],u=r[2];n=" "===u[0],o+=a+(s||n||""===u?"":"\n")+y(u,t),s=n}return o}function y(e,t){if(""===e||" "===e[0])return e;for(var n,r,i=/ [^ ]/g,o=0,s=0,a=0,u="";n=i.exec(e);)a=n.index,a-o>t&&(r=s>o?s:a,u+="\n"+e.slice(o,r),o=r+1),s=a;return u+="\n",u+=e.length-o>t&&s>o?e.slice(o,s)+"\n"+e.slice(s+1):e.slice(o),u.slice(1)}function v(e){for(var t,n,r="",o=0;o1024&&(a+="? "),a+=e.dump+": ",A(e,t,s,!1,!1)&&(a+=e.dump,u+=a));e.tag=c,e.dump="{"+u+"}"}function E(e,t,n,r){var i,o,s,u,c,l,h="",p=e.tag,f=Object.keys(n);if(e.sortKeys===!0)f.sort();else if("function"==typeof e.sortKeys)f.sort(e.sortKeys);else if(e.sortKeys)throw new N("sortKeys must be a boolean or a function"); -for(i=0,o=f.length;i1024,c&&(l+=e.dump&&L===e.dump.charCodeAt(0)?"?":"? "),l+=e.dump,c&&(l+=a(e,t)),A(e,t+1,u,!0,c)&&(l+=e.dump&&L===e.dump.charCodeAt(0)?":":": ",l+=e.dump,h+=l));e.tag=p,e.dump=h||"{}"}function k(e,t,n){var r,i,o,s,a,u;for(i=n?e.explicitTypes:e.implicitTypes,o=0,s=i.length;o tag resolver accepts not "'+u+'" style');r=a.represent[u](t,u)}e.dump=r}return!0}return!1}function A(e,t,n,r,i,o){e.tag=null,e.dump=n,k(e,n,!1)||k(e,n,!0);var s=M.call(e.dump);r&&(r=e.flowLevel<0||e.flowLevel>t);var a,u,c="[object Object]"===s||"[object Array]"===s;if(c&&(a=e.duplicates.indexOf(n),u=a!==-1),(null!==e.tag&&"?"!==e.tag||u||2!==e.indent&&t>0)&&(i=!1),u&&e.usedDuplicates[a])e.dump="*ref_"+a;else{if(c&&u&&!e.usedDuplicates[a]&&(e.usedDuplicates[a]=!0),"[object Object]"===s)r&&0!==Object.keys(e.dump).length?(E(e,t,e.dump,i),u&&(e.dump="&ref_"+a+e.dump)):(w(e,t,e.dump),u&&(e.dump="&ref_"+a+" "+e.dump));else if("[object Array]"===s)r&&0!==e.dump.length?(D(e,t,e.dump,i),u&&(e.dump="&ref_"+a+e.dump)):(b(e,t,e.dump),u&&(e.dump="&ref_"+a+" "+e.dump));else{if("[object String]"!==s){if(e.skipInvalid)return!1;throw new N("unacceptable kind of an object to dump "+s)}"?"!==e.tag&&d(e,e.dump,t,o)}null!==e.tag&&"?"!==e.tag&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function C(e,t){var n,r,i=[],o=[];for(S(e,i,o),n=0,r=o.length;nlabel{font-size:12px;font-weight:700;display:flex;flex-direction:column;margin:-20px 15px 0 0;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .scheme-container .schemes>label select{min-width:130px;text-transform:uppercase}.swagger-ui .loading-container{padding:40px 0 60px}.swagger-ui .loading-container .loading{position:relative}.swagger-ui .loading-container .loading:after{font-size:10px;font-weight:700;position:absolute;top:50%;left:50%;content:"loading";transform:translate(-50%,-50%);text-transform:uppercase;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .loading-container .loading:before{position:absolute;top:50%;left:50%;display:block;width:60px;height:60px;margin:-30px;content:"";animation:rotation 1s infinite linear,opacity .5s;opacity:1;border:2px solid rgba(85,85,85,.1);border-top-color:rgba(0,0,0,.6);border-radius:100%;backface-visibility:hidden}@keyframes rotation{to{transform:rotate(1turn)}}@keyframes blinker{50%{opacity:0}}.swagger-ui .btn{font-size:14px;font-weight:700;padding:5px 23px;transition:all .3s;border:2px solid #888;border-radius:4px;background:transparent;box-shadow:0 1px 2px rgba(0,0,0,.1);font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .btn[disabled]{cursor:not-allowed;opacity:.3}.swagger-ui .btn:hover{box-shadow:0 0 5px rgba(0,0,0,.3)}.swagger-ui .btn.cancel{border-color:#ff6060;font-family:Titillium Web,sans-serif;color:#ff6060}.swagger-ui .btn.authorize{line-height:1;display:inline;color:#49cc90;border-color:#49cc90}.swagger-ui .btn.authorize span{float:left;padding:4px 20px 0 0}.swagger-ui .btn.authorize svg{fill:#49cc90}.swagger-ui .btn.execute{animation:swagger-ui-pulse 2s infinite;color:#fff;border-color:#4990e2}@keyframes swagger-ui-pulse{0%{color:#fff;background:#4990e2;box-shadow:0 0 0 0 rgba(73,144,226,.8)}70%{box-shadow:0 0 0 5px rgba(73,144,226,0)}to{color:#fff;background:#4990e2;box-shadow:0 0 0 0 rgba(73,144,226,0)}}.swagger-ui .btn-group{display:flex;padding:30px}.swagger-ui .btn-group .btn{flex:1}.swagger-ui .btn-group .btn:first-child{border-radius:4px 0 0 4px}.swagger-ui .btn-group .btn:last-child{border-radius:0 4px 4px 0}.swagger-ui .authorization__btn{padding:0 10px;border:none;background:none}.swagger-ui .authorization__btn.locked{opacity:1}.swagger-ui .authorization__btn.unlocked{opacity:.4}.swagger-ui .expand-methods,.swagger-ui .expand-operation{border:none;background:none}.swagger-ui .expand-methods svg,.swagger-ui .expand-operation svg{width:20px;height:20px}.swagger-ui .expand-methods{padding:0 10px}.swagger-ui .expand-methods:hover svg{fill:#444}.swagger-ui .expand-methods svg{transition:all .3s;fill:#777}.swagger-ui button{cursor:pointer;outline:none}.swagger-ui select{font-size:14px;font-weight:700;padding:5px 40px 5px 10px;border:2px solid #41444e;border-radius:4px;background:#f7f7f7 url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+ICAgIDxwYXRoIGQ9Ik0xMy40MTggNy44NTljLjI3MS0uMjY4LjcwOS0uMjY4Ljk3OCAwIC4yNy4yNjguMjcyLjcwMSAwIC45NjlsLTMuOTA4IDMuODNjLS4yNy4yNjgtLjcwNy4yNjgtLjk3OSAwbC0zLjkwOC0zLjgzYy0uMjctLjI2Ny0uMjctLjcwMSAwLS45NjkuMjcxLS4yNjguNzA5LS4yNjguOTc4IDBMMTAgMTFsMy40MTgtMy4xNDF6Ii8+PC9zdmc+) right 10px center no-repeat;background-size:20px;box-shadow:0 1px 2px 0 rgba(0,0,0,.25);font-family:Titillium Web,sans-serif;color:#3b4151;appearance:none}.swagger-ui select[multiple]{margin:5px 0;padding:5px;background:#f7f7f7}.swagger-ui .opblock-body select{min-width:230px}.swagger-ui label{font-size:12px;font-weight:700;margin:0 0 5px;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui input[type=email],.swagger-ui input[type=password],.swagger-ui input[type=search],.swagger-ui input[type=text]{min-width:100px;margin:5px 0;padding:8px 10px;border:1px solid #d9d9d9;border-radius:4px;background:#fff}.swagger-ui input[type=email].invalid,.swagger-ui input[type=password].invalid,.swagger-ui input[type=search].invalid,.swagger-ui input[type=text].invalid{animation:shake .4s 1;border-color:#f93e3e;background:#feebeb}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.swagger-ui textarea{font-size:12px;width:100%;min-height:280px;padding:10px;border:none;border-radius:4px;outline:none;background:hsla(0,0%,100%,.8);font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui textarea:focus{border:2px solid #61affe}.swagger-ui textarea.curl{font-size:12px;min-height:100px;margin:0;padding:10px;resize:none;border-radius:4px;background:#41444e;font-family:Source Code Pro,monospace;font-weight:600;color:#fff}.swagger-ui .checkbox{padding:5px 0 10px;transition:opacity .5s;color:#333}.swagger-ui .checkbox label{display:flex}.swagger-ui .checkbox p{font-weight:400!important;font-style:italic;margin:0!important;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .checkbox input[type=checkbox]{display:none}.swagger-ui .checkbox input[type=checkbox]+label>.item{position:relative;top:3px;display:inline-block;width:16px;height:16px;margin:0 8px 0 0;padding:5px;cursor:pointer;border-radius:1px;background:#e8e8e8;box-shadow:0 0 0 2px #e8e8e8;flex:none}.swagger-ui .checkbox input[type=checkbox]+label>.item:active{transform:scale(.9)}.swagger-ui .checkbox input[type=checkbox]:checked+label>.item{background:#e8e8e8 url("data:image/svg+xml;charset=utf-8,%3Csvg width='10' height='8' viewBox='3 7 10 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%2341474E' fill-rule='evenodd' d='M6.333 15L3 11.667l1.333-1.334 2 2L11.667 7 13 8.333z'/%3E%3C/svg%3E") 50% no-repeat}.swagger-ui .dialog-ux{position:fixed;z-index:9999;top:0;right:0;bottom:0;left:0}.swagger-ui .dialog-ux .backdrop-ux{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.8)}.swagger-ui .dialog-ux .modal-ux{position:absolute;z-index:9999;top:50%;left:50%;width:100%;min-width:300px;max-width:650px;transform:translate(-50%,-50%);border:1px solid #ebebeb;border-radius:4px;background:#fff;box-shadow:0 10px 30px 0 rgba(0,0,0,.2)}.swagger-ui .dialog-ux .modal-ux-content{overflow-y:auto;max-height:540px;padding:20px}.swagger-ui .dialog-ux .modal-ux-content p{font-size:12px;margin:0 0 5px;color:#41444e;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .dialog-ux .modal-ux-content h4{font-size:18px;font-weight:600;margin:15px 0 0;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .dialog-ux .modal-ux-header{display:flex;padding:12px 0;border-bottom:1px solid #ebebeb;align-items:center}.swagger-ui .dialog-ux .modal-ux-header .close-modal{padding:0 10px;border:none;background:none;appearance:none}.swagger-ui .dialog-ux .modal-ux-header h3{font-size:20px;font-weight:600;margin:0;padding:0 20px;flex:1;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .model{font-size:12px;font-weight:300;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .model-toggle{font-size:10px;position:relative;top:6px;display:inline-block;margin:auto .3em;cursor:pointer;transition:transform .15s ease-in;transform:rotate(90deg);transform-origin:50% 50%}.swagger-ui .model-toggle.collapsed{transform:rotate(0deg)}.swagger-ui .model-toggle:after{display:block;width:20px;height:20px;content:"";background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z'/%3E%3C/svg%3E") 50% no-repeat;background-size:100%}.swagger-ui .model-jump-to-path{position:relative;cursor:pointer}.swagger-ui .model-jump-to-path .view-line-link{position:absolute;top:-.4em;cursor:pointer}.swagger-ui .model-title{position:relative}.swagger-ui .model-title:hover .model-hint{visibility:visible}.swagger-ui .model-hint{position:absolute;top:-1.8em;visibility:hidden;padding:.1em .5em;white-space:nowrap;color:#ebebeb;border-radius:4px;background:rgba(0,0,0,.7)}.swagger-ui section.models{margin:30px 0;border:1px solid rgba(59,65,81,.3);border-radius:4px}.swagger-ui section.models.is-open{padding:0 0 20px}.swagger-ui section.models.is-open h4{margin:0 0 5px;border-bottom:1px solid rgba(59,65,81,.3)}.swagger-ui section.models h4{font-size:16px;display:flex;margin:0;padding:10px 20px 10px 10px;cursor:pointer;transition:all .2s;font-family:Titillium Web,sans-serif;color:#777;align-items:center}.swagger-ui section.models h4 svg{transition:all .4s}.swagger-ui section.models h4 span{flex:1}.swagger-ui section.models h4:hover{background:rgba(0,0,0,.02)}.swagger-ui section.models h5{font-size:16px;margin:0 0 10px;font-family:Titillium Web,sans-serif;color:#777}.swagger-ui section.models .model-jump-to-path{position:relative;top:5px}.swagger-ui section.models .model-container{margin:0 20px 15px;transition:all .5s;border-radius:4px;background:rgba(0,0,0,.05)}.swagger-ui section.models .model-container:hover{background:rgba(0,0,0,.07)}.swagger-ui section.models .model-container:first-of-type{margin:20px}.swagger-ui section.models .model-container:last-of-type{margin:0 20px}.swagger-ui section.models .model-box{background:none}.swagger-ui .model-box{padding:10px;border-radius:4px;background:rgba(0,0,0,.1)}.swagger-ui .model-box .model-jump-to-path{position:relative;top:4px}.swagger-ui .model-title{font-size:16px;font-family:Titillium Web,sans-serif;color:#555}.swagger-ui span>span.model,.swagger-ui span>span.model .brace-close{padding:0 0 0 10px}.swagger-ui .prop-type{color:#55a}.swagger-ui .prop-enum{display:block}.swagger-ui .prop-format{color:#999}.swagger-ui table{width:100%;padding:0 10px;border-collapse:collapse}.swagger-ui table.model tbody tr td{padding:0;vertical-align:top}.swagger-ui table.model tbody tr td:first-of-type{width:100px;padding:0}.swagger-ui table.headers td{font-size:12px;font-weight:300;vertical-align:middle;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui table tbody tr td{padding:10px 0 0;vertical-align:top}.swagger-ui table tbody tr td:first-of-type{width:20%;padding:10px 0}.swagger-ui table thead tr td,.swagger-ui table thead tr th{font-size:12px;font-weight:700;padding:12px 0;text-align:left;border-bottom:1px solid rgba(59,65,81,.2);font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .parameters-col_description p{font-size:14px;margin:0;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .parameters-col_description input[type=text]{width:100%;max-width:340px}.swagger-ui .parameter__name{font-size:16px;font-weight:400;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .parameter__name.required{font-weight:700}.swagger-ui .parameter__name.required:after{font-size:10px;position:relative;top:-6px;padding:5px;content:"required";color:rgba(255,0,0,.6)}.swagger-ui .parameter__in{font-size:12px;font-style:italic;font-family:Source Code Pro,monospace;font-weight:600;color:#888}.swagger-ui .table-container{padding:20px}.swagger-ui .topbar{padding:8px 30px;background-color:#89bf04}.swagger-ui .topbar .topbar-wrapper,.swagger-ui .topbar a{display:flex;align-items:center}.swagger-ui .topbar a{font-size:1.5em;font-weight:700;flex:1;max-width:300px;text-decoration:none;font-family:Titillium Web,sans-serif;color:#fff}.swagger-ui .topbar a span{margin:0;padding:0 10px}.swagger-ui .topbar .download-url-wrapper{display:flex;flex:3;justify-content:flex-end}.swagger-ui .topbar .download-url-wrapper input[type=text]{width:100%;min-width:350px;margin:0;border:2px solid #547f00;border-radius:4px 0 0 4px;outline:none}.swagger-ui .topbar .download-url-wrapper .select-label{display:flex;align-items:center;width:100%;max-width:600px;margin:0}.swagger-ui .topbar .download-url-wrapper .select-label span{font-size:16px;flex:1;padding:0 10px 0 0;text-align:right}.swagger-ui .topbar .download-url-wrapper .select-label select{flex:2;width:100%;border:2px solid #547f00;outline:none;box-shadow:none}.swagger-ui .topbar .download-url-wrapper .download-url-button{font-size:16px;font-weight:700;padding:4px 40px;border:none;border-radius:0 4px 4px 0;background:#547f00;font-family:Titillium Web,sans-serif;color:#fff}.swagger-ui .info{margin:50px 0}.swagger-ui .info hgroup.main{margin:0 0 20px}.swagger-ui .info hgroup.main a{font-size:12px}.swagger-ui .info li,.swagger-ui .info p,.swagger-ui .info table{font-size:14px;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .info h1,.swagger-ui .info h2,.swagger-ui .info h3,.swagger-ui .info h4,.swagger-ui .info h5{font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .info code{padding:3px 5px;border-radius:4px;background:rgba(0,0,0,.05);font-family:Source Code Pro,monospace;font-weight:600;color:#9012fe}.swagger-ui .info a{font-size:14px;transition:all .4s;font-family:Open Sans,sans-serif;color:#4990e2}.swagger-ui .info a:hover{color:#1f69c0}.swagger-ui .info>div{margin:0 0 5px}.swagger-ui .info .base-url{font-size:12px;font-weight:300!important;margin:0;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .info .title{font-size:36px;margin:0;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .info .title small{font-size:10px;position:relative;top:-5px;display:inline-block;margin:0 0 0 5px;padding:2px 4px;vertical-align:super;border-radius:57px;background:#7d8492}.swagger-ui .info .title small pre{margin:0;font-family:Titillium Web,sans-serif;color:#fff}.swagger-ui .auth-btn-wrapper{display:flex;padding:10px 0;justify-content:center}.swagger-ui .auth-wrapper{display:flex;flex:1;justify-content:flex-end}.swagger-ui .auth-wrapper .authorize{padding-right:20px}.swagger-ui .auth-container{margin:0 0 10px;padding:10px 20px;border-bottom:1px solid #ebebeb}.swagger-ui .auth-container:last-of-type{margin:0;padding:10px 20px;border:0}.swagger-ui .auth-container h4{margin:5px 0 15px!important}.swagger-ui .auth-container .wrapper{margin:0;padding:0}.swagger-ui .auth-container input[type=password],.swagger-ui .auth-container input[type=text]{min-width:230px}.swagger-ui .auth-container .errors{font-size:12px;padding:10px;border-radius:4px;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .scopes h2{font-size:14px;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .scope-def{padding:0 0 20px}.swagger-ui .errors-wrapper{margin:20px;padding:10px 20px;animation:scaleUp .5s;border:2px solid #f93e3e;border-radius:4px;background:rgba(249,62,62,.1)}.swagger-ui .errors-wrapper .error-wrapper{margin:0 0 10px}.swagger-ui .errors-wrapper .errors h4{font-size:14px;margin:0;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .errors-wrapper .errors small{color:#666}.swagger-ui .errors-wrapper hgroup{display:flex;align-items:center}.swagger-ui .errors-wrapper hgroup h4{font-size:20px;margin:0;flex:1;font-family:Titillium Web,sans-serif;color:#3b4151}@keyframes scaleUp{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.swagger-ui .Resizer.vertical.disabled { - display: none; -} - -/*# sourceMappingURL=swagger-ui.css.map*/ \ No newline at end of file diff --git a/reference/dtr/2.5/cli/backup.md b/reference/dtr/2.5/cli/backup.md deleted file mode 100644 index 12fb4822aa..0000000000 --- a/reference/dtr/2.5/cli/backup.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: docker/dtr backup -description: Create a backup of DTR -keywords: dtr, cli, backup ---- - -Create a backup of DTR - -## Usage - -```bash -docker run -i --rm docker/dtr \ - backup [command options] > backup.tar -``` - -## Description - - -This command creates a tar file with the contents of the volumes used by -DTR, and prints it. You can then use the 'restore' command to restore the data -from an existing backup. - -Note: - - * This command only creates backups of configurations, and image metadata. - It doesn't backup users and organizations. Users and organizations can be - backed up when performing a UCP backup. - - It also doesn't backup the Docker images stored in your registry. - You should implement a separate backup policy for the Docker images stored - in your registry, taking in consideration whether your DTR installation is - configured to store images on the filesystem or using a cloud provider. - - * This backup contains sensitive information and should be - stored securely. - - * Using the '--offline-backup' flag will temporarily shut down the rethinkdb container. - You should take the replica out of your load balancer to avoid downtime. - - -## Options - -| Option | Environment Variable | Description | -|:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| -| `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | -| `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | -| `--offline-backup` | $DTR_OFFLINE_BACKUP | This flag takes rethinkdb down during backup and takes a more reliable backup..If you back up DTR with this flag, rethinkdb will go down during backup. However, it will be guaranteed to be consistent. With online backups there's no guarantee of consistency.. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | -| `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | -| `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | -| `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | - diff --git a/reference/dtr/2.5/cli/destroy.md b/reference/dtr/2.5/cli/destroy.md deleted file mode 100644 index b24252fb94..0000000000 --- a/reference/dtr/2.5/cli/destroy.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: docker/dtr destroy -description: Destroy a DTR replica's data -keywords: dtr, cli, destroy ---- - -Destroy a DTR replica's data - -## Usage - -```bash -docker run -it --rm docker/dtr \ - destroy [command options] -``` - -## Description - - -This command forcefully removes all containers and volumes associated with -a DTR replica without notifying the rest of the cluster. Use this command -on all replicas uninstall DTR. - -Use the 'remove' command to gracefully scale down your DTR cluster. - - -## Options - -| Option | Environment Variable | Description | -|:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| -| `--replica-id` | $DTR_DESTROY_REPLICA_ID | The ID of the replica to destroy. | -| `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | -| `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | -| `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | -| `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | - diff --git a/reference/dtr/2.5/cli/images.md b/reference/dtr/2.5/cli/images.md deleted file mode 100644 index 3d1a8cd306..0000000000 --- a/reference/dtr/2.5/cli/images.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: docker/dtr images -description: List all the images necessary to install DTR -keywords: dtr, cli, images ---- - -List all the images necessary to install DTR - -## Usage - -```bash -docker run -it --rm docker/dtr \ - images [command options] -``` - -## Description - - -This command lists all the images necessary to install DTR. - - - diff --git a/reference/dtr/2.5/cli/index.md b/reference/dtr/2.5/cli/index.md deleted file mode 100644 index f13629c2a0..0000000000 --- a/reference/dtr/2.5/cli/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: docker/dtr overview -description: Learn about the commands available in the docker/dtr image. -keywords: dtr, install, uninstall, configure ---- - -This tool has commands to install, configure, and backup Docker -Trusted Registry (DTR). It also allows uninstalling DTR. -By default the tool runs in interactive mode. It prompts you for -the values needed. - -Additional help is available for each command with the '--help' option. - - -## Usage - -```bash -docker run -it --rm docker/dtr \ - command [command options] -``` - - -## Commands - -| Option | Description | -|:-------------------------------------|:------------------------------------------------| -| [install](install) | Install Docker Trusted Registry | -| [join](join) | Add a new replica to an existing DTR cluster | -| [reconfigure](reconfigure) | Change DTR configurations | -| [remove](remove) | Remove a DTR replica from a cluster | -| [destroy](destroy) | Destroy a DTR replica's data | -| [restore](restore) | Install and restore DTR from an existing backup | -| [backup](backup) | Create a backup of DTR | -| [upgrade](upgrade) | Upgrade DTR 2.4.x cluster to this version | -| [images](images) | List all the images necessary to install DTR | -| [emergency-repair](emergency-repair) | Recover DTR from loss of quorum | diff --git a/reference/dtr/2.5/cli/install.md b/reference/dtr/2.5/cli/install.md deleted file mode 100644 index ad31b76f8c..0000000000 --- a/reference/dtr/2.5/cli/install.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: docker/dtr install -description: Install Docker Trusted Registry -keywords: dtr, cli, install ---- - -Install Docker Trusted Registry - -## Usage - -```bash -docker run -it --rm docker/dtr \ - install [command options] -``` - -## Description - - -This command installs Docker Trusted Registry (DTR) on a node managed by -Docker Universal Control Plane (UCP). - -After installing DTR, you can join additional DTR replicas using the 'join' -command. - -Example usage: - -$ docker run -it --rm docker/dtr:2.5.0 install \ - --ucp-node \ - --ucp-insecure-tls - -Note: Use --ucp-ca "$(cat ca.pem)" instead of --ucp-insecure-tls for a production deployment. - -## Options - -| Option | Environment Variable | Description | -|:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| -| `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--dtr-ca` | $DTR_CA | Use a PEM-encoded TLS CA certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS CA certificate with --dtr-ca "$(cat ca.pem)". | -| `--dtr-cert` | $DTR_CERT | Use a PEM-encoded TLS certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS certificate with --dtr-cert "$(cat ca.pem)". | -| `--dtr-external-url` | $DTR_EXTERNAL_URL | URL of the host or load balancer clients use to reach DTR.When you use this flag, users are redirected to UCP for logging in. Once authenticated they are redirected to the url you specify in this flag. If you don't use this flag, DTR is deployed without single sign-on with UCP. Users and teams are shared but users login separately into the two applications. You can enable and disable single sign-on in the DTR settings. Format https://host[:port], where port is the value you used with --replica-https-port. | -| `--dtr-key` | $DTR_KEY | Use a PEM-encoded TLS private key for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS private key with --dtr-key "$(cat ca.pem)". | -| `--dtr-storage-volume` | $DTR_STORAGE_VOLUME | Customize the volume to store Docker images.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify a full path or volume name for DTR to store images. For high-availability, make sure all DTR replicas can read and write data on this volume. If you're using NFS, use --nfs-storage-url instead. | -| `--enable-pprof` | $DTR_PPROF | Enables pprof profiling of the server; use --enable-pprof=false to disable it.Once DTR is deployed with this flag, you can access the pprof endpoint for the api server at /debug/pprof, and the registry endpoint at /registry_debug_pprof/debug/pprof. | -| `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | -| `--http-proxy` | $DTR_HTTP_PROXY | The HTTP proxy used for outgoing requests. | -| `--https-proxy` | $DTR_HTTPS_PROXY | The HTTPS proxy used for outgoing requests. | -| `--log-host` | $LOG_HOST | The syslog system to send logs to.The endpoint to send logs to. Use this flag if you set --log-protocol to tcp or udp. | -| `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO.The supported log levels are debug, info, warn, error, or fatal.. | -| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.By default, DTR internal components log information using the logger specified in the Docker daemon in the node where the DTR replica is deployed. Use this option to send DTR logs to an external syslog system. The supported values are tcp, udp, and internal. Internal is the default option, stopping DTR from sending logs to an external system. Use this flag with --log-host. | -| `--nfs-storage-url` | $NFS_STORAGE_URL | NFS to store Docker images. Format nfs:///.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify an NFS mount for DTR to store images, using the format nfs:///. To use this flag, you need to install an NFS client library like nfs-common in the node where you're deploying DTR. You can test this by running showmount -e . When you join new replicas, they will start using NFS so you don't need to use this flag. To reconfigure DTR to stop using NFS, leave this option empty. | -| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route through the proxy. Format acme.com[, acme.org]. | -| `--overlay-subnet` | $DTR_OVERLAY_SUBNET | The subnet used by the dtr-ol overlay network. Example: 10.0.0.0/24.For high-availalibity, DTR creates an overlay network between UCP nodes. This flag allows you to choose the subnet for that network. Make sure the subnet you choose is not used on any machine where DTR replicas are deployed. | -| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | -| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | -| `--replica-id` | $DTR_INSTALL_REPLICA_ID | Assign a 12-character hexadecimal ID to the DTR replica. Random by default. | -| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space for rethinkdb in-memory cache use for the given replica in MB. - Default is auto. Auto is (available_memory - 1024) / 2.This config allows changing the rethinkdb cache usage per replica. You need to run it once per replica to change each one.. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | -| `--ucp-node` | $UCP_NODE | The hostname of the UCP node to deploy DTR. Random by default.You can find the hostnames of the nodes in the cluster in the UCP web UI, or by running 'docker node ls' on a UCP manager node.. | -| `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | -| `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | -| `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | - diff --git a/reference/dtr/2.5/cli/join.md b/reference/dtr/2.5/cli/join.md deleted file mode 100644 index 5ca0ea55cb..0000000000 --- a/reference/dtr/2.5/cli/join.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: docker/dtr join -description: Add a new replica to an existing DTR cluster -keywords: dtr, cli, join ---- - -Add a new replica to an existing DTR cluster - - - -## Description - - -This command creates a replica of an existing DTR on a node managed by -Docker Universal Control Plane (UCP). - -For setting DTR for high-availability, create 3, 5, or 7 replicas of DTR. - - -## Options - -| Option | Environment Variable | Description | -|:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| -| `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | -| `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | -| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | -| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | -| `--replica-id` | $DTR_INSTALL_REPLICA_ID | Assign a 12-character hexadecimal ID to the DTR replica. Random by default. | -| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space for rethinkdb in-memory cache use for the given replica in MB. - Default is auto. Auto is (available_memory - 1024) / 2.This config allows changing the rethinkdb cache usage per replica. You need to run it once per replica to change each one.. | -| `--skip-network-test` | $DTR_SKIP_NETWORK_TEST | Don't test if overlay networks are working correctly between UCP nodes.For high-availalibity, DTR creates an overlay network between UCP nodes and tests that it is working when joining replicas. Don't use this option for production deployments. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | -| `--ucp-node` | $UCP_NODE | The hostname of the UCP node to deploy DTR. Random by default.You can find the hostnames of the nodes in the cluster in the UCP web UI, or by running 'docker node ls' on a UCP manager node.. | -| `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | -| `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | -| `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | -| `--unsafe-join` | $DTR_UNSAFE_JOIN | Join a new replica even if the cluster is unhealthy.Joining replicas to an unhealthy DTR cluster leads to split-brain scenarios, and data loss. Don't use this option for production deployments. | - diff --git a/reference/dtr/2.5/cli/reconfigure.md b/reference/dtr/2.5/cli/reconfigure.md deleted file mode 100644 index e017a5a82f..0000000000 --- a/reference/dtr/2.5/cli/reconfigure.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: docker/dtr reconfigure -description: Change DTR configurations -keywords: dtr, cli, reconfigure ---- - -Change DTR configurations - -## Usage - -```bash -docker run -it --rm docker/dtr \ - reconfigure [command options] -``` - -## Description - - -This command changes DTR configuration settings. - -DTR is restarted for the new configurations to take effect. To have no down -time, configure your DTR for high-availability. - - -## Options - -| Option | Environment Variable | Description | -|:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| -| `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--dtr-ca` | $DTR_CA | Use a PEM-encoded TLS CA certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS CA certificate with --dtr-ca "$(cat ca.pem)". | -| `--dtr-cert` | $DTR_CERT | Use a PEM-encoded TLS certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS certificate with --dtr-cert "$(cat ca.pem)". | -| `--dtr-external-url` | $DTR_EXTERNAL_URL | URL of the host or load balancer clients use to reach DTR.When you use this flag, users are redirected to UCP for logging in. Once authenticated they are redirected to the url you specify in this flag. If you don't use this flag, DTR is deployed without single sign-on with UCP. Users and teams are shared but users login separately into the two applications. You can enable and disable single sign-on in the DTR settings. Format https://host[:port], where port is the value you used with --replica-https-port. | -| `--dtr-key` | $DTR_KEY | Use a PEM-encoded TLS private key for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS private key with --dtr-key "$(cat ca.pem)". | -| `--dtr-storage-volume` | $DTR_STORAGE_VOLUME | Customize the volume to store Docker images.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify a full path or volume name for DTR to store images. For high-availability, make sure all DTR replicas can read and write data on this volume. If you're using NFS, use --nfs-storage-url instead. | -| `--enable-pprof` | $DTR_PPROF | Enables pprof profiling of the server; use --enable-pprof=false to disable it.Once DTR is deployed with this flag, you can access the pprof endpoint for the api server at /debug/pprof, and the registry endpoint at /registry_debug_pprof/debug/pprof. | -| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | -| `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | -| `--http-proxy` | $DTR_HTTP_PROXY | The HTTP proxy used for outgoing requests. | -| `--https-proxy` | $DTR_HTTPS_PROXY | The HTTPS proxy used for outgoing requests. | -| `--log-host` | $LOG_HOST | The syslog system to send logs to.The endpoint to send logs to. Use this flag if you set --log-protocol to tcp or udp. | -| `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO.The supported log levels are debug, info, warn, error, or fatal.. | -| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.By default, DTR internal components log information using the logger specified in the Docker daemon in the node where the DTR replica is deployed. Use this option to send DTR logs to an external syslog system. The supported values are tcp, udp, and internal. Internal is the default option, stopping DTR from sending logs to an external system. Use this flag with --log-host. | -| `--nfs-storage-url` | $NFS_STORAGE_URL | NFS to store Docker images. Format nfs:///.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify an NFS mount for DTR to store images, using the format nfs:///. To use this flag, you need to install an NFS client library like nfs-common in the node where you're deploying DTR. You can test this by running showmount -e . When you join new replicas, they will start using NFS so you don't need to use this flag. To reconfigure DTR to stop using NFS, leave this option empty. | -| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route through the proxy. Format acme.com[, acme.org]. | -| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | -| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | -| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space for rethinkdb in-memory cache use for the given replica in MB. - Default is auto. Auto is (available_memory - 1024) / 2.This config allows changing the rethinkdb cache usage per replica. You need to run it once per replica to change each one.. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | -| `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | -| `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | -| `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | - diff --git a/reference/dtr/2.5/cli/remove.md b/reference/dtr/2.5/cli/remove.md deleted file mode 100644 index 929d5df019..0000000000 --- a/reference/dtr/2.5/cli/remove.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: docker/dtr remove -description: Remove a DTR replica from a cluster -keywords: dtr, cli, remove ---- - -Remove a DTR replica from a cluster - -## Usage - -```bash -docker run -it --rm docker/dtr \ - remove [command options] -``` - -## Description - - -This command gracefully scales down your DTR cluster by removing exactly -one replica. All other replicas must be healthy and will remain healthy after -this operation. - - -## Options - -| Option | Environment Variable | Description | -|:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| -| `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | -| `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | -| `--replica-id` | $DTR_REMOVE_REPLICA_ID | DEPRECATED Alias for --replica-ids. | -| `--replica-ids` | $DTR_REMOVE_REPLICA_IDS | A comma separated list of IDs of replicas to remove from the cluster. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | -| `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | -| `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | -| `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | - diff --git a/reference/dtr/2.5/cli/restore.md b/reference/dtr/2.5/cli/restore.md deleted file mode 100644 index cdf8627ea1..0000000000 --- a/reference/dtr/2.5/cli/restore.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: docker/dtr restore -description: Install and restore DTR from an existing backup -keywords: dtr, cli, restore ---- - -Install and restore DTR from an existing backup - -## Usage - -```bash -docker run -i --rm docker/dtr \ - restore [command options] < backup.tar -``` - -## Description - - -This command performs a fresh installation of DTR, and reconfigures it -with configuration data from a tar file generated by the 'backup' command. - -There are three steps you can take to recover an unhealthy DTR cluster: - -1. If the majority of replicas are healthy, remove the unhealthy nodes from - the cluster, and join new ones for high availability. -2. If the majority of replicas are unhealthy, use this command to revert your - cluster to a single DTR replica. -3. If you can't repair your cluster to a single replica, you'll have to - restore from an existing backup, using the 'restore' command. - -This command does not restore Docker images. You should implement a separate -restore procedure for the Docker images stored in your registry, taking in -consideration whether your DTR installation is configured to store images on -the local filesystem or using a cloud provider. - -After restoring the cluster, you should use the 'join' command to add more -DTR replicas for high availability. - - -## Options - -| Option | Environment Variable | Description | -|:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| -| `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--dtr-ca` | $DTR_CA | Use a PEM-encoded TLS CA certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS CA certificate with --dtr-ca "$(cat ca.pem)". | -| `--dtr-cert` | $DTR_CERT | Use a PEM-encoded TLS certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS certificate with --dtr-cert "$(cat ca.pem)". | -| `--dtr-external-url` | $DTR_EXTERNAL_URL | URL of the host or load balancer clients use to reach DTR.When you use this flag, users are redirected to UCP for logging in. Once authenticated they are redirected to the url you specify in this flag. If you don't use this flag, DTR is deployed without single sign-on with UCP. Users and teams are shared but users login separately into the two applications. You can enable and disable single sign-on in the DTR settings. Format https://host[:port], where port is the value you used with --replica-https-port. | -| `--dtr-key` | $DTR_KEY | Use a PEM-encoded TLS private key for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS private key with --dtr-key "$(cat ca.pem)". | -| `--dtr-storage-volume` | $DTR_STORAGE_VOLUME | Customize the volume to store Docker images.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify a full path or volume name for DTR to store images. For high-availability, make sure all DTR replicas can read and write data on this volume. If you're using NFS, use --nfs-storage-url instead. | -| `--enable-pprof` | $DTR_PPROF | Enables pprof profiling of the server; use --enable-pprof=false to disable it.Once DTR is deployed with this flag, you can access the pprof endpoint for the api server at /debug/pprof, and the registry endpoint at /registry_debug_pprof/debug/pprof. | -| `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | -| `--http-proxy` | $DTR_HTTP_PROXY | The HTTP proxy used for outgoing requests. | -| `--https-proxy` | $DTR_HTTPS_PROXY | The HTTPS proxy used for outgoing requests. | -| `--log-host` | $LOG_HOST | The syslog system to send logs to.The endpoint to send logs to. Use this flag if you set --log-protocol to tcp or udp. | -| `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO.The supported log levels are debug, info, warn, error, or fatal.. | -| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.By default, DTR internal components log information using the logger specified in the Docker daemon in the node where the DTR replica is deployed. Use this option to send DTR logs to an external syslog system. The supported values are tcp, udp, and internal. Internal is the default option, stopping DTR from sending logs to an external system. Use this flag with --log-host. | -| `--nfs-storage-url` | $NFS_STORAGE_URL | NFS to store Docker images. Format nfs:///.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify an NFS mount for DTR to store images, using the format nfs:///. To use this flag, you need to install an NFS client library like nfs-common in the node where you're deploying DTR. You can test this by running showmount -e . When you join new replicas, they will start using NFS so you don't need to use this flag. To reconfigure DTR to stop using NFS, leave this option empty. | -| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route through the proxy. Format acme.com[, acme.org]. | -| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | -| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | -| `--replica-id` | $DTR_INSTALL_REPLICA_ID | Assign a 12-character hexadecimal ID to the DTR replica. Random by default. | -| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space for rethinkdb in-memory cache use for the given replica in MB. - Default is auto. Auto is (available_memory - 1024) / 2.This config allows changing the rethinkdb cache usage per replica. You need to run it once per replica to change each one.. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | -| `--ucp-node` | $UCP_NODE | The hostname of the UCP node to deploy DTR. Random by default.You can find the hostnames of the nodes in the cluster in the UCP web UI, or by running 'docker node ls' on a UCP manager node.. | -| `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | -| `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | -| `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | - diff --git a/reference/dtr/2.5/cli/upgrade.md b/reference/dtr/2.5/cli/upgrade.md deleted file mode 100644 index 274b63ef15..0000000000 --- a/reference/dtr/2.5/cli/upgrade.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: docker/dtr upgrade -description: Upgrade DTR 2.4.x cluster to this version -keywords: dtr, cli, upgrade ---- - -Upgrade DTR 2.4.x cluster to this version - -## Usage - -```bash -docker run -it --rm docker/dtr \ - upgrade [command options] -``` - -## Description - - -This command upgrades DTR 2.4.x to the current version of this image. - - -## Options - -| Option | Environment Variable | Description | -|:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| -| `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | -| `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | -| `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | -| `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | -| `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | - diff --git a/reference/dtr/2.6/cli/backup.md b/reference/dtr/2.6/cli/backup.md index 12fb4822aa..1c14112aef 100644 --- a/reference/dtr/2.6/cli/backup.md +++ b/reference/dtr/2.6/cli/backup.md @@ -2,6 +2,8 @@ title: docker/dtr backup description: Create a backup of DTR keywords: dtr, cli, backup +redirect_from: + - /reference/dtr/2.5/cli/backup/ --- Create a backup of DTR @@ -15,27 +17,27 @@ docker run -i --rm docker/dtr \ ## Description - -This command creates a tar file with the contents of the volumes used by -DTR, and prints it. You can then use the 'restore' command to restore the data +This command creates a `tar` file with the contents of the volumes used by +DTR, and prints it. You can then use `docker/dtr restore` to restore the data from an existing backup. + Note: * This command only creates backups of configurations, and image metadata. - It doesn't backup users and organizations. Users and organizations can be - backed up when performing a UCP backup. + It does not back up users and organizations. Users and organizations can be + backed up during a UCP backup. - It also doesn't backup the Docker images stored in your registry. + It also does not back up Docker images stored in your registry. You should implement a separate backup policy for the Docker images stored - in your registry, taking in consideration whether your DTR installation is - configured to store images on the filesystem or using a cloud provider. + in your registry, taking into consideration whether your DTR installation is + configured to store images on the filesystem or is using a cloud provider. * This backup contains sensitive information and should be stored securely. - * Using the '--offline-backup' flag will temporarily shut down the rethinkdb container. - You should take the replica out of your load balancer to avoid downtime. + * Using the `--offline-backup` flag temporarily shuts down the RethinkDB container. + Take the replica out of your load balancer to avoid downtime. ## Options @@ -43,11 +45,11 @@ Note: | Option | Environment Variable | Description | |:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| | `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | +| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica. To add, remove or modify a DTR replica, you must connect to an existing healthy replica's database. | | `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | -| `--offline-backup` | $DTR_OFFLINE_BACKUP | This flag takes rethinkdb down during backup and takes a more reliable backup..If you back up DTR with this flag, rethinkdb will go down during backup. However, it will be guaranteed to be consistent. With online backups there's no guarantee of consistency.. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | +| `--offline-backup` | $DTR_OFFLINE_BACKUP | This flag takes RethinkDB down during backup and takes a more reliable backup. If you back up DTR with this flag, RethinkDB will go down during backup. However, offline backups are guaranteed to be more consistent than online backups. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP. Download the UCP TLS CA certificate from `https:///ca`, and use `--ucp-ca "$(cat ca.pem)"`. | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP. The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to MITM (man-in-the-middle) attacks. For production deployments, use `--ucp-ca "$(cat ca.pem)"` instead. | | `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | | `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | | `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | diff --git a/reference/dtr/2.6/cli/emergency-repair.md b/reference/dtr/2.6/cli/emergency-repair.md index 7d8b299df3..be8b936349 100644 --- a/reference/dtr/2.6/cli/emergency-repair.md +++ b/reference/dtr/2.6/cli/emergency-repair.md @@ -26,14 +26,14 @@ There are three steps you can take to recover an unhealthy DTR cluster: 2. If the majority of replicas are unhealthy, use this command to revert your cluster to a single DTR replica. 3. If you can't repair your cluster to a single replica, you'll have to - restore from an existing backup, using the 'restore' command. + restore from an existing backup, using the `restore` command. When you run this command, a DTR replica of your choice is repaired and turned into the only replica in the whole DTR cluster. The containers for all the other DTR replicas are stopped and removed. When -using the 'force' option, the volumes for these replicas are also deleted. +using the `force` option, the volumes for these replicas are also deleted. -After repairing the cluster, you should use the 'join' command to add more +After repairing the cluster, you should use the `join` command to add more DTR replicas for high availability. @@ -42,12 +42,12 @@ DTR replicas for high availability. | Option | Environment Variable | Description | |:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| | `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | +| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica. To add, remove or modify DTR, you must connect to an existing healthy replica's database. | | `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | -| `--overlay-subnet` | $DTR_OVERLAY_SUBNET | The subnet used by the dtr-ol overlay network. Example: 10.0.0.0/24.For high-availalibity, DTR creates an overlay network between UCP nodes. This flag allows you to choose the subnet for that network. Make sure the subnet you choose is not used on any machine where DTR replicas are deployed. | -| `--prune` | $PRUNE | Delete the data volumes of all unhealthy replicas.With this option, the volume of the DTR replica you're restoring is preserved but the volumes for all other replicas are deleted. This has the same result as completely uninstalling DTR from those replicas.. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | +| `--overlay-subnet` | $DTR_OVERLAY_SUBNET | The subnet used by the dtr-ol overlay network. Example: `10.0.0.0/24`. For high-availability, DTR creates an overlay network between UCP nodes. This flag allows you to choose the subnet for that network. Make sure the subnet you choose is not used on any machine where DTR replicas are deployed. | +| `--prune` | $PRUNE | Delete the data volumes of all unhealthy replicas. With this option, the volume of the DTR replica you`re restoring is preserved but the volumes for all other replicas are deleted. This has the same result as completely uninstalling DTR from those replicas. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP. Download the UCP TLS CA certificate from https:///ca, and use `--ucp-ca "$(cat ca.pem)"`. | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP. The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to MITM (man-in-the-middle) attacks. For production deployments, use `--ucp-ca "$(cat ca.pem)"` instead. | | `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | | `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | | `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | diff --git a/reference/dtr/2.6/cli/index.md b/reference/dtr/2.6/cli/index.md index 2f4da89a0a..90eddd1a5d 100644 --- a/reference/dtr/2.6/cli/index.md +++ b/reference/dtr/2.6/cli/index.md @@ -20,6 +20,9 @@ docker run -it --rm docker/dtr \ ``` +If not specified, `docker/dtr` uses the `latest` tag by default. To work with a different version, specify it in the command. For example, `docker run -it --rm docker/dtr:2.6.0`. + + ## Commands | Option | Description | diff --git a/reference/dtr/2.6/cli/install.md b/reference/dtr/2.6/cli/install.md index 0d0f055607..8806e1440c 100644 --- a/reference/dtr/2.6/cli/install.md +++ b/reference/dtr/2.6/cli/install.md @@ -19,46 +19,45 @@ docker run -it --rm docker/dtr \ This command installs Docker Trusted Registry (DTR) on a node managed by Docker Universal Control Plane (UCP). -After installing DTR, you can join additional DTR replicas using the 'join' -command. +After installing DTR, you can join additional DTR replicas using `docker/dtr join`. -Example usage: +## Example Usage -$ docker run -it --rm docker/dtr:2.5.0 install \ +$ docker run -it --rm docker/dtr:{{ site.dtr_version }}.0 install \ --ucp-node \ --ucp-insecure-tls -Note: Use `--ucp-ca "$(cat ca.pem)"` instead of `--ucp-insecure-tls` for a production deployment. +> Note: Use `--ucp-ca "$(cat ca.pem)"` instead of `--ucp-insecure-tls` for a production deployment. ## Options | Option | Environment Variable | Description | |:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| | `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--dtr-ca` | $DTR_CA | Use a PEM-encoded TLS CA certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS CA certificate with --dtr-ca "$(cat ca.pem)". | -| `--dtr-cert` | $DTR_CERT | Use a PEM-encoded TLS certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS certificate with --dtr-cert "$(cat ca.pem)". | -| `--dtr-external-url` | $DTR_EXTERNAL_URL | URL of the host or load balancer clients use to reach DTR.When you use this flag, users are redirected to UCP for logging in. Once authenticated they are redirected to the url you specify in this flag. If you don't use this flag, DTR is deployed without single sign-on with UCP. Users and teams are shared but users login separately into the two applications. You can enable and disable single sign-on in the DTR settings. Format https://host[:port], where port is the value you used with --replica-https-port. | -| `--dtr-key` | $DTR_KEY | Use a PEM-encoded TLS private key for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS private key with --dtr-key "$(cat ca.pem)". | -| `--dtr-storage-volume` | $DTR_STORAGE_VOLUME | Customize the volume to store Docker images.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify a full path or volume name for DTR to store images. For high-availability, make sure all DTR replicas can read and write data on this volume. If you're using NFS, use --nfs-storage-url instead. | -| `--enable-pprof` | $DTR_PPROF | Enables pprof profiling of the server; use `--enable-pprof=false` to disable it.Once DTR is deployed with this flag, you can access the pprof endpoint for the api server at /debug/pprof, and the registry endpoint at /registry_debug_pprof/debug/pprof. | +| `--dtr-ca` | $DTR_CA | Use a PEM-encoded TLS CA certificate for DTR. By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS CA certificate with `--dtr-ca "$(cat ca.pem)"`. | +| `--dtr-cert` | $DTR_CERT | Use a PEM-encoded TLS certificate for DTR. By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS certificate with `--dtr-cert "$(cat ca.pem)"`. | +| `--dtr-external-url` | $DTR_EXTERNAL_URL | URL of the host or load balancer clients use to reach DTR. When you use this flag, users are redirected to UCP for logging in. Once authenticated they are redirected to the URL you specify in this flag. If you don't use this flag, DTR is deployed without single sign-on with UCP. Users and teams are shared but users log in separately into the two applications. You can enable and disable single sign-on within your DTR system settings. Format `https://host[:port]`, where port is the value you used with `--replica-https-port`. | +| `--dtr-key` | $DTR_KEY | Use a PEM-encoded TLS private key for DTR. By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS private key with `--dtr-key "$(cat ca.pem)"`. | +| `--dtr-storage-volume` | $DTR_STORAGE_VOLUME | Customize the volume to store Docker images. By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify a full path or volume name for DTR to store images. For high-availability, make sure all DTR replicas can read and write data on this volume. If you're using NFS, use `--nfs-storage-url` instead. | +| `--enable-pprof` | $DTR_PPROF | Enables pprof profiling of the server. Use `--enable-pprof=false` to disable it. Once DTR is deployed with this flag, you can access the `pprof` endpoint for the api server at `/debug/pprof`, and the registry endpoint at `/registry_debug_pprof/debug/pprof`. | | `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | | `--http-proxy` | $DTR_HTTP_PROXY | The HTTP proxy used for outgoing requests. | | `--https-proxy` | $DTR_HTTPS_PROXY | The HTTPS proxy used for outgoing requests. | -| `--log-host` | $LOG_HOST | The syslog system to send logs to.The endpoint to send logs to. Use this flag if you set --log-protocol to tcp or udp. | -| `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO.The supported log levels are debug, info, warn, error, or fatal.. | -| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.By default, DTR internal components log information using the logger specified in the Docker daemon in the node where the DTR replica is deployed. Use this option to send DTR logs to an external syslog system. The supported values are tcp, udp, and internal. Internal is the default option, stopping DTR from sending logs to an external system. Use this flag with --log-host. | -| `--nfs-storage-url` | $NFS_STORAGE_URL | Use NFS to store Docker images following this format: `nfs:///`.By default, DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high availability. To use this flag, you need to install an NFS client library like `nfs-common` in the node where you're deploying DTR. You can test this by running `showmount -e `. When you join new replicas, they will start using NFS so there is no need to specify this flag. To reconfigure DTR to stop using NFS, leave this option empty: `--nfs-storage-url ""`. See [USE NFS](../../../../ee/dtr/admin/configure/external-storage/nfs/) for more details. | +| `--log-host` | $LOG_HOST | The syslog system to send logs to.The endpoint to send logs to. Use this flag if you set `--log-protocol` to `tcp` or `udp`. | +| `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO. The supported log levels are debug, info, warn, error, or fatal. | +| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal. By default, DTR internal components log information using the logger specified in the Docker daemon in the node where the DTR replica is deployed. Use this option to send DTR logs to an external syslog system. The supported values are `tcp`, `udp`, or `internal`. Internal is the default option, stopping DTR from sending logs to an external system. Use this flag with `--log-host`. | +| `--nfs-storage-url` | $NFS_STORAGE_URL | Use NFS to store Docker images following this format: `nfs:///`. By default, DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high availability. To use this flag, you need to install an NFS client library like ***nfs-common*** in the node where you're deploying DTR. You can test this by running `showmount -e `. When you join new replicas, they will start using NFS so there is no need to specify this flag. To reconfigure DTR to stop using NFS, leave this option empty: `--nfs-storage-url ""`. See [USE NFS](/ee/dtr/admin/configure/external-storage/nfs/) for more details. | | `--async-nfs` | $ASYNC_NFS | Use async NFS volume options on the replica specified in the `--existing-replica-id` option. The NFS configuration must be set with `--nfs-storage-url` explicitly to use this option. Using `--async-nfs` will bring down any containers on the replica that use the NFS volume, delete the NFS volume, bring it back up with the appropriate configuration, and restart any containers that were brought down. | | `--nfs-options` | $NFS_OPTIONS | Pass in NFS volume options verbatim for the replica specified in the `--existing-replica-id` option. The NFS configuration must be set with `--nfs-storage-url` explicitly to use this option. Specifying `--nfs-options` will pass in character-for-character the options specified in the argument when creating or recreating the NFS volume. For instance, to use NFS v4 with async, pass in "rw,nfsvers=4,async" as the argument. | -| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for. When using `--http-proxy`, you can use this flag to specify a list of domains that you don't want to route throught the proxy. Format `acme.com[, acme.org]`. | -| `--overlay-subnet` | $DTR_OVERLAY_SUBNET | The subnet used by the dtr-ol overlay network. Example: `10.0.0.0/24`. For high-availability, DTR creates an overlay network between UCP nodes. This flag allows you to choose the subnet for that network. Make sure the subnet you choose is not used on any machine where DTR replicas are deployed. | -| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | -| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | +| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for. When using `--http-proxy` you can use this flag to specify a list of domains that you don't want to route through the proxy. Format `acme.com[, acme.org]`. | +| `--overlay-subnet` | $DTR_OVERLAY_SUBNET | The subnet used by the dtr-ol overlay network. Example: `10.0.0.0/24`. For high-availability, DTR creates an overlay network between UCP nodes. This flag allows you to choose the subnet for that network. Make sure the subnet you choose is not used on any machine where DTR replicas are deployed. | +| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is `80`. This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with `--replica-https-port`. This port can also be used for unencrypted health checks. | +| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is `443`. This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | | `--replica-id` | $DTR_INSTALL_REPLICA_ID | Assign a 12-character hexadecimal ID to the DTR replica. Random by default. | -| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space for rethinkdb in-memory cache use for the given replica in `MB`. Default is auto. Auto is `(available_memory - 1024) / 2`.This config allows you to change the RethinkDB cache usage per replica. You need to run it on a replica basis to apply the configuration change. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | -| `--ucp-node` | $UCP_NODE | The hostname of the UCP node to deploy DTR. Random by default.You can find the hostnames of the nodes in the cluster in the UCP web UI, or by running 'docker node ls' on a UCP manager node.. | +| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space in MB for RethinkDB in-memory cache used by the given replica. Default is auto. Auto is `(available_memory - 1024) / 2`. This config allows changing the RethinkDB cache usage per replica. You need to run it once per replica to change each one. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP. Download the UCP TLS CA certificate from `https:///ca`, and use `--ucp-ca "$(cat ca.pem)"`. | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP. The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to MITM (man-in-the-middle) attacks. For production deployments, use `--ucp-ca "$(cat ca.pem)"` instead. | +| `--ucp-node` | $UCP_NODE | The hostname of the UCP node to deploy DTR. Random by default. You can find the hostnames of the nodes in the cluster in the UCP web interface, or by running `docker node ls` on a UCP manager node. | | `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | | `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | | `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | diff --git a/reference/dtr/2.6/cli/join.md b/reference/dtr/2.6/cli/join.md index 5ca0ea55cb..80373de3e2 100644 --- a/reference/dtr/2.6/cli/join.md +++ b/reference/dtr/2.6/cli/join.md @@ -22,17 +22,16 @@ For setting DTR for high-availability, create 3, 5, or 7 replicas of DTR. | Option | Environment Variable | Description | |:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| | `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | +| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica. To add, remove or modify DTR, you must connect to an existing healthy replica's database. | | `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | -| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | -| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | +| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is `80`. This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | +| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is `443`. This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | | `--replica-id` | $DTR_INSTALL_REPLICA_ID | Assign a 12-character hexadecimal ID to the DTR replica. Random by default. | -| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space for rethinkdb in-memory cache use for the given replica in MB. - Default is auto. Auto is (available_memory - 1024) / 2.This config allows changing the rethinkdb cache usage per replica. You need to run it once per replica to change each one.. | -| `--skip-network-test` | $DTR_SKIP_NETWORK_TEST | Don't test if overlay networks are working correctly between UCP nodes.For high-availalibity, DTR creates an overlay network between UCP nodes and tests that it is working when joining replicas. Don't use this option for production deployments. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | -| `--ucp-node` | $UCP_NODE | The hostname of the UCP node to deploy DTR. Random by default.You can find the hostnames of the nodes in the cluster in the UCP web UI, or by running 'docker node ls' on a UCP manager node.. | +| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space in MB for RethinkDB in-memory cache used by the given replica. Default is auto. Auto is `(available_memory - 1024) / 2`. This config allows changing the RethinkDB cache usage per replica. You need to run it once per replica to change each one. | +| `--skip-network-test` | $DTR_SKIP_NETWORK_TEST | Don't test if overlay networks are working correctly between UCP nodes. For high-availability, DTR creates an overlay network between UCP nodes and tests that it is working when joining replicas. Don't use this option for production deployments. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from `https:///ca`, and use `--ucp-ca "$(cat ca.pem)"`. | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP. The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to MITM (man-in-the-middle) attacks. For production deployments, use `--ucp-ca "$(cat ca.pem)"` instead. | +| `--ucp-node` | $UCP_NODE | The hostname of the UCP node to deploy DTR. Random by default.You can find the hostnames of the nodes in the cluster in the UCP web interface, or by running `docker node ls` on a UCP manager node. | | `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | | `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | | `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | diff --git a/reference/dtr/2.6/cli/reconfigure.md b/reference/dtr/2.6/cli/reconfigure.md index 4f56f9f00c..200a93ab51 100644 --- a/reference/dtr/2.6/cli/reconfigure.md +++ b/reference/dtr/2.6/cli/reconfigure.md @@ -19,7 +19,7 @@ docker run -it --rm docker/dtr \ This command changes DTR configuration settings. DTR is restarted for the new configurations to take effect. To have no down -time, configure your DTR for high-availability. +time, configure your DTR for high availability. ## Options @@ -29,27 +29,26 @@ time, configure your DTR for high-availability. | `--debug` | $DEBUG | Enable debug mode for additional logs. | | `--dtr-ca` | $DTR_CA | Use a PEM-encoded TLS CA certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS CA certificate with --dtr-ca "$(cat ca.pem)". | | `--dtr-cert` | $DTR_CERT | Use a PEM-encoded TLS certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS certificate with --dtr-cert "$(cat ca.pem)". | -| `--dtr-external-url` | $DTR_EXTERNAL_URL | URL of the host or load balancer clients use to reach DTR.When you use this flag, users are redirected to UCP for logging in. Once authenticated they are redirected to the url you specify in this flag. If you don't use this flag, DTR is deployed without single sign-on with UCP. Users and teams are shared but users login separately into the two applications. You can enable and disable single sign-on in the DTR settings. Format https://host[:port], where port is the value you used with --replica-https-port. | -| `--dtr-key` | $DTR_KEY | Use a PEM-encoded TLS private key for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS private key with --dtr-key "$(cat ca.pem)". | -| `--dtr-storage-volume` | $DTR_STORAGE_VOLUME | Customize the volume to store Docker images.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify a full path or volume name for DTR to store images. For high-availability, make sure all DTR replicas can read and write data on this volume. If you're using NFS, use `--nfs-storage-url` instead. | -| `--enable-pprof` | $DTR_PPROF | Enables pprof profiling of the server; use --enable-pprof=false to disable it.Once DTR is deployed with this flag, you can access the pprof endpoint for the api server at /debug/pprof, and the registry endpoint at /registry_debug_pprof/debug/pprof. | -| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | +| `--dtr-external-url` | $DTR_EXTERNAL_URL | URL of the host or load balancer clients use to reach DTR. When you use this flag, users are redirected to UCP for logging in. Once authenticated they are redirected to the url you specify in this flag. If you don't use this flag, DTR is deployed without single sign-on with UCP. Users and teams are shared but users login separately into the two applications. You can enable and disable single sign-on in the DTR settings. Format `https://host[:port]`, where port is the value you used with `--replica-https-port`. | +| `--dtr-key` | $DTR_KEY | Use a PEM-encoded TLS private key for DTR. By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS private key with `--dtr-key "$(cat ca.pem)"`. | +| `--dtr-storage-volume` | $DTR_STORAGE_VOLUME | Customize the volume to store Docker images. By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify a full path or volume name for DTR to store images. For high-availability, make sure all DTR replicas can read and write data on this volume. If you're using NFS, use `--nfs-storage-url` instead. | +| `--enable-pprof` | $DTR_PPROF | Enables pprof profiling of the server. Use `--enable-pprof=false` to disable it. Once DTR is deployed with this flag, you can access the pprof endpoint for the api server at `/debug/pprof`, and the registry endpoint at `/registry_debug_pprof/debug/pprof`. | +| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica. To add, remove or modify DTR, you must connect to an existing healthy replica's database. | | `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | | `--http-proxy` | $DTR_HTTP_PROXY | The HTTP proxy used for outgoing requests. | | `--https-proxy` | $DTR_HTTPS_PROXY | The HTTPS proxy used for outgoing requests. | -| `--log-host` | $LOG_HOST | The syslog system to send logs to.The endpoint to send logs to. Use this flag if you set --log-protocol to tcp or udp. | -| `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO.The supported log levels are debug, info, warn, error, or fatal.. | -| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.By default, DTR internal components log information using the logger specified in the Docker daemon in the node where the DTR replica is deployed. Use this option to send DTR logs to an external syslog system. The supported values are tcp, udp, and internal. Internal is the default option, stopping DTR from sending logs to an external system. Use this flag with --log-host. | -| `--nfs-storage-url` | $NFS_STORAGE_URL | Use NFS to store Docker images following this format: `nfs:///`.By default, DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high availability. To use this flag, you need to install an NFS client library like `nfs-common` in the node where you're deploying DTR. You can test this by running `showmount -e `. When you join new replicas, they will start using NFS so there is no need to specify this flag. To reconfigure DTR to stop using NFS, leave this option empty: `--nfs-storage-url ""`. See [USE NFS](../../../../ee/dtr/admin/configure/external-storage/nfs/) for more details. | +| `--log-host` | $LOG_HOST | The syslog system to send logs to. The endpoint to send logs to. Use this flag if you set `--log-protocol` to `tcp` or `udp`. | +| `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO. The supported log levels are `debug`, `info`, `warn`, `error`, or `fatal`. | +| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal. By default, DTR internal components log information using the logger specified in the Docker daemon in the node where the DTR replica is deployed. Use this option to send DTR logs to an external syslog system. The supported values are `tcp`, `udp`, and `internal`. Internal is the default option, stopping DTR from sending logs to an external system. Use this flag with `--log-host`. | +| `--nfs-storage-url` | $NFS_STORAGE_URL | Use NFS to store Docker images following this format: `nfs:///`. By default, DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high availability. To use this flag, you need to install an NFS client library like `nfs-common` in the node where you're deploying DTR. You can test this by running `showmount -e `. When you join new replicas, they will start using NFS so there is no need to specify this flag. To reconfigure DTR to stop using NFS, leave this option empty: `--nfs-storage-url ""`. See [USE NFS](/ee/dtr/admin/configure/external-storage/nfs/) for more details. | | `--async-nfs` | $ASYNC_NFS | Use async NFS volume options on the replica specified in the `--existing-replica-id` option. The NFS configuration must be set with `--nfs-storage-url` explicitly to use this option. Using `--async-nfs` will bring down any containers on the replica that use the NFS volume, delete the NFS volume, bring it back up with the appropriate configuration, and restart any containers that were brought down. | | `--nfs-options` | $NFS_OPTIONS | Pass in NFS volume options verbatim for the replica specified in the `--existing-replica-id` option. The NFS configuration must be set with `--nfs-storage-url` explicitly to use this option. Specifying `--nfs-options` will pass in character-for-character the options specified in the argument when creating or recreating the NFS volume. For instance, to use NFS v4 with async, pass in "rw,nfsvers=4,async" as the argument. | -| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route throught the proxy. Format acme.com[, acme.org]. | -| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | -| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | -| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space for rethinkdb in-memory cache use for the given replica in MB. - Default is auto. Auto is (available_memory - 1024) / 2.This config allows changing the rethinkdb cache usage per replica. You need to run it once per replica to change each one.. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | +| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for. When using `--http-proxy` you can use this flag to specify a list of domains that you don't want to route through the proxy. Format `acme.com[, acme.org]`. | +| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is `80`. This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | +| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is `443`. This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | +| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space in MB for RethinkDB in-memory cache used by the given replica. Default is auto. Auto is `(available_memory - 1024) / 2`. This config allows changing the RethinkDB cache usage per replica. You need to run it once per replica to change each one. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP. Download the UCP TLS CA certificate from `https:///ca`, and use `--ucp-ca "$(cat ca.pem)"`. | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP. The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to MITM (man-in-the-middle) attacks. For production deployments, use `--ucp-ca "$(cat ca.pem)"` instead. | | `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | | `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | | `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | diff --git a/reference/dtr/2.6/cli/remove.md b/reference/dtr/2.6/cli/remove.md index 929d5df019..cc8720cb1e 100644 --- a/reference/dtr/2.6/cli/remove.md +++ b/reference/dtr/2.6/cli/remove.md @@ -26,12 +26,12 @@ this operation. | Option | Environment Variable | Description | |:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| | `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | +| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica. To add, remove or modify DTR, you must connect to an existing healthy replica's database. | | `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | -| `--replica-id` | $DTR_REMOVE_REPLICA_ID | DEPRECATED Alias for --replica-ids. | +| `--replica-id` | $DTR_REMOVE_REPLICA_ID | DEPRECATED Alias for `--replica-ids`. | | `--replica-ids` | $DTR_REMOVE_REPLICA_IDS | A comma separated list of IDs of replicas to remove from the cluster. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP. Download the UCP TLS CA certificate from `https:///ca`, and use `--ucp-ca "$(cat ca.pem)"`. | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP. The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to MITM (man-in-the-middle) attacks. For production deployments, use `--ucp-ca "$(cat ca.pem)"` instead. | | `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | | `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | | `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | diff --git a/reference/dtr/2.6/cli/restore.md b/reference/dtr/2.6/cli/restore.md index 906b30a573..a832c00031 100644 --- a/reference/dtr/2.6/cli/restore.md +++ b/reference/dtr/2.6/cli/restore.md @@ -17,12 +17,12 @@ docker run -i --rm docker/dtr \ This command performs a fresh installation of DTR, and reconfigures it -with configuration data from a tar file generated by the `backup` command. +with configuration data from a `tar` file generated by `docker/dtr backup`. There are three steps you can take to recover an unhealthy DTR cluster: 1. If the majority of replicas are healthy, remove the unhealthy nodes from - the cluster, and join new ones for high availability. + the cluster, and join new nodes for high availability. 2. If the majority of replicas are unhealthy, use this command to revert your cluster to a single DTR replica. 3. If you can't repair your cluster to a single replica, you'll have to @@ -42,28 +42,28 @@ DTR replicas for high availability. | Option | Environment Variable | Description | |:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| | `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--dtr-ca` | $DTR_CA | Use a PEM-encoded TLS CA certificate for DTR. By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS CA certificate with `--dtr-ca "$(cat ca.pem)"`. | -| `--dtr-cert` | $DTR_CERT | Use a PEM-encoded TLS certificate for DTR. By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS certificate with `--dtr-cert "$(cat ca.pem)"`. | -| `--dtr-external-url` | $DTR_EXTERNAL_URL | URL of the host or load balancer clients use to reach DTR.When you use this flag, users are redirected to UCP for logging in. Once authenticated they are redirected to the url you specify in this flag. If you don't use this flag, DTR is deployed without single sign-on with UCP. Users and teams are shared but users login separately into the two applications. You can enable and disable single sign-on in the DTR settings. Format https://host[:port], where port is the value you used with --replica-https-port. | -| `--dtr-key` | $DTR_KEY | Use a PEM-encoded TLS private key for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS private key with --dtr-key "$(cat ca.pem)". | +| `--dtr-ca` | $DTR_CA | Use a PEM-encoded TLS CA certificate for DTR. By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS CA certificate with `--dtr-ca "$(cat ca.pem)"`. | +| `--dtr-cert` | $DTR_CERT | Use a PEM-encoded TLS certificate for DTR. By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS certificate with `--dtr-cert "$(cat ca.pem)"`. | +| `--dtr-external-url` | $DTR_EXTERNAL_URL | URL of the host or load balancer clients use to reach DTR. When you use this flag, users are redirected to UCP for logging in. Once authenticated they are redirected to the URL you specify in this flag. If you don't use this flag, DTR is deployed without single sign-on with UCP. Users and teams are shared but users log in separately into the two applications. You can enable and disable single sign-on within your DTR system settings. Format `https://host[:port]`, where port is the value you used with `--replica-https-port`. | +| `--dtr-key` | $DTR_KEY | Use a PEM-encoded TLS private key for DTR. By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS private key with `--dtr-key "$(cat ca.pem)"`. | | `--dtr-storage-volume` | $DTR_STORAGE_VOLUME | Mandatory flag to allow for DTR to fall back to your configured storage setting at the time of backup. If you have previously configured DTR to use a full path or volume name for storage, specify this flag to use the same setting on restore. See [docker/dtr install](install.md) and [docker/dtr reconfigure](reconfigure.md) for usage details. Required if neither `--dtr-use-default-storage` nor `--nfs-storage-url` is set. | | `--dtr-use-default-storage` | $DTR_DEFAULT_STORAGE | Mandatory flag to allow for DTR to fall back to either your local filesystem or cloud storage depending on what was configured at the time of backup. If cloud storage was configured, then the default storage on restore is cloud storage. Otherwise, local storage is used. Required if neither `--dtr-storage-volume` nor `--nfs-storage-url` is set. | | `--nfs-storage-url` | $NFS_STORAGE_URL | Mandatory flag to allow for DTR to fall back to your configured storage setting at the time of backup. If NFS was previously configured, you must explicitly specify this flag to recover your NFS settings on restore. See [docker/dtr install](install.md) and [docker/dtr reconfigure](reconfigure.md) for NFS configuration options. Required if neither `--dtr-storage-volume` nor `--dtr-use-default-storage` is set. | -| `--enable-pprof` | $DTR_PPROF | Enables pprof profiling of the server; use --enable-pprof=false to disable it.Once DTR is deployed with this flag, you can access the pprof endpoint for the api server at /debug/pprof, and the registry endpoint at /registry_debug_pprof/debug/pprof. | +| `--enable-pprof` | $DTR_PPROF | Enables pprof profiling of the server. Use `--enable-pprof=false` to disable it. Once DTR is deployed with this flag, you can access the `pprof` endpoint for the api server at `/debug/pprof`, and the registry endpoint at `/registry_debug_pprof/debug/pprof`. | | `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | | `--http-proxy` | $DTR_HTTP_PROXY | The HTTP proxy used for outgoing requests. | | `--https-proxy` | $DTR_HTTPS_PROXY | The HTTPS proxy used for outgoing requests. | | `--log-host` | $LOG_HOST | The syslog system to send logs to.The endpoint to send logs to. Use this flag if you set --log-protocol to tcp or udp. | -| `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO.The supported log levels are debug, info, warn, error, or fatal.. | +| `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: `INFO`. The supported log levels are `debug`, `info`, `warn`, `error`, or `fatal`. | | `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.By default, DTR internal components log information using the logger specified in the Docker daemon in the node where the DTR replica is deployed. Use this option to send DTR logs to an external syslog system. The supported values are tcp, udp, and internal. Internal is the default option, stopping DTR from sending logs to an external system. Use this flag with --log-host. | | `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route through the proxy. Format acme.com[, acme.org]. | -| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | -| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | +| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is `80`. This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with `--replica-https-port`. This port can also be used for unencrypted health checks. | +| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is `443`. This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | | `--replica-id` | $DTR_INSTALL_REPLICA_ID | Assign a 12-character hexadecimal ID to the DTR replica. Random by default. | -| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space for rethinkdb in-memory cache use for the given replica in `MB`. Default is auto. Auto is (available_memory - 1024) / 2.This config allows changing the rethinkdb cache usage per replica. You need to run it once per replica to change each one.. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use `--ucp-ca "$(cat ca.pem)` instead. | -| `--ucp-node` | $UCP_NODE | The hostname of the UCP node to deploy DTR. Random by default.You can find the hostnames of the nodes in the cluster in the UCP web UI, or by running 'docker node ls' on a UCP manager node. | +| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space in MB for RethinkDB in-memory cache used by the given replica. Default is auto. Auto is `(available_memory - 1024) / 2`. This config allows changing the RethinkDB cache usage per replica. You need to run it once per replica to change each one. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP. Download the UCP TLS CA certificate from `https:///ca`, and use `--ucp-ca "$(cat ca.pem)"`. | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP. The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to MITM (man-in-the-middle) attacks. For production deployments, use `--ucp-ca "$(cat ca.pem)"` instead. | +| `--ucp-node` | $UCP_NODE | The hostname of the UCP node to deploy DTR. Random by default. You can find the hostnames of the nodes in the cluster in the UCP web interface, or by running `docker node ls` on a UCP manager node. | | `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | | `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | | `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | diff --git a/reference/dtr/2.6/cli/upgrade.md b/reference/dtr/2.6/cli/upgrade.md index 274b63ef15..b885f5706b 100644 --- a/reference/dtr/2.6/cli/upgrade.md +++ b/reference/dtr/2.6/cli/upgrade.md @@ -1,10 +1,10 @@ --- title: docker/dtr upgrade -description: Upgrade DTR 2.4.x cluster to this version +description: Upgrade DTR 2.5.x cluster to this version keywords: dtr, cli, upgrade --- -Upgrade DTR 2.4.x cluster to this version +Upgrade DTR 2.5.x cluster to this version ## Usage @@ -16,7 +16,7 @@ docker run -it --rm docker/dtr \ ## Description -This command upgrades DTR 2.4.x to the current version of this image. +This command upgrades DTR 2.5.x to the current version of this image. ## Options @@ -24,10 +24,10 @@ This command upgrades DTR 2.4.x to the current version of this image. | Option | Environment Variable | Description | |:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| | `--debug` | $DEBUG | Enable debug mode for additional logs. | -| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | +| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica. To add, remove or modify DTR, you must connect to an existing healthy replica's database. | | `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | -| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | -| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP. Download the UCP TLS CA certificate from `https:///ca`, and use `--ucp-ca "$(cat ca.pem)"`. | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP. The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to MITM (man-in-the-middle) attacks. For production deployments, use `--ucp-ca "$(cat ca.pem)"` instead. | | `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | | `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | | `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | diff --git a/reference/ucp/3.0/api/css/print.css b/reference/ucp/3.0/api/css/print.css deleted file mode 100644 index cd3aa8b6a4..0000000000 --- a/reference/ucp/3.0/api/css/print.css +++ /dev/null @@ -1,1172 +0,0 @@ -/* Original style from softwaremaniacs.org (c) Ivan Sagalaev */ -.swagger-section pre code { - display: block; - padding: 0.5em; - background: #F0F0F0; -} -.swagger-section pre code, -.swagger-section pre .subst, -.swagger-section pre .tag .title, -.swagger-section pre .lisp .title, -.swagger-section pre .clojure .built_in, -.swagger-section pre .nginx .title { - color: black; -} -.swagger-section pre .string, -.swagger-section pre .title, -.swagger-section pre .constant, -.swagger-section pre .parent, -.swagger-section pre .tag .value, -.swagger-section pre .rules .value, -.swagger-section pre .rules .value .number, -.swagger-section pre .preprocessor, -.swagger-section pre .ruby .symbol, -.swagger-section pre .ruby .symbol .string, -.swagger-section pre .aggregate, -.swagger-section pre .template_tag, -.swagger-section pre .django .variable, -.swagger-section pre .smalltalk .class, -.swagger-section pre .addition, -.swagger-section pre .flow, -.swagger-section pre .stream, -.swagger-section pre .bash .variable, -.swagger-section pre .apache .tag, -.swagger-section pre .apache .cbracket, -.swagger-section pre .tex .command, -.swagger-section pre .tex .special, -.swagger-section pre .erlang_repl .function_or_atom, -.swagger-section pre .markdown .header { - color: #800; -} -.swagger-section pre .comment, -.swagger-section pre .annotation, -.swagger-section pre .template_comment, -.swagger-section pre .diff .header, -.swagger-section pre .chunk, -.swagger-section pre .markdown .blockquote { - color: #888; -} -.swagger-section pre .number, -.swagger-section pre .date, -.swagger-section pre .regexp, -.swagger-section pre .literal, -.swagger-section pre .smalltalk .symbol, -.swagger-section pre .smalltalk .char, -.swagger-section pre .go .constant, -.swagger-section pre .change, -.swagger-section pre .markdown .bullet, -.swagger-section pre .markdown .link_url { - color: #080; -} -.swagger-section pre .label, -.swagger-section pre .javadoc, -.swagger-section pre .ruby .string, -.swagger-section pre .decorator, -.swagger-section pre .filter .argument, -.swagger-section pre .localvars, -.swagger-section pre .array, -.swagger-section pre .attr_selector, -.swagger-section pre .important, -.swagger-section pre .pseudo, -.swagger-section pre .pi, -.swagger-section pre .doctype, -.swagger-section pre .deletion, -.swagger-section pre .envvar, -.swagger-section pre .shebang, -.swagger-section pre .apache .sqbracket, -.swagger-section pre .nginx .built_in, -.swagger-section pre .tex .formula, -.swagger-section pre .erlang_repl .reserved, -.swagger-section pre .prompt, -.swagger-section pre .markdown .link_label, -.swagger-section pre .vhdl .attribute, -.swagger-section pre .clojure .attribute, -.swagger-section pre .coffeescript .property { - color: #8888ff; -} -.swagger-section pre .keyword, -.swagger-section pre .id, -.swagger-section pre .phpdoc, -.swagger-section pre .title, -.swagger-section pre .built_in, -.swagger-section pre .aggregate, -.swagger-section pre .css .tag, -.swagger-section pre .javadoctag, -.swagger-section pre .phpdoc, -.swagger-section pre .yardoctag, -.swagger-section pre .smalltalk .class, -.swagger-section pre .winutils, -.swagger-section pre .bash .variable, -.swagger-section pre .apache .tag, -.swagger-section pre .go .typename, -.swagger-section pre .tex .command, -.swagger-section pre .markdown .strong, -.swagger-section pre .request, -.swagger-section pre .status { - font-weight: bold; -} -.swagger-section pre .markdown .emphasis { - font-style: italic; -} -.swagger-section pre .nginx .built_in { - font-weight: normal; -} -.swagger-section pre .coffeescript .javascript, -.swagger-section pre .javascript .xml, -.swagger-section pre .tex .formula, -.swagger-section pre .xml .javascript, -.swagger-section pre .xml .vbscript, -.swagger-section pre .xml .css, -.swagger-section pre .xml .cdata { - opacity: 0.5; -} -.swagger-section .swagger-ui-wrap { - line-height: 1; - font-family: "Droid Sans", sans-serif; - max-width: 960px; - margin-left: auto; - margin-right: auto; -} -.swagger-section .swagger-ui-wrap b, -.swagger-section .swagger-ui-wrap strong { - font-family: "Droid Sans", sans-serif; - font-weight: bold; -} -.swagger-section .swagger-ui-wrap q, -.swagger-section .swagger-ui-wrap blockquote { - quotes: none; -} -.swagger-section .swagger-ui-wrap p { - line-height: 1.4em; - padding: 0 0 10px; - color: #333333; -} -.swagger-section .swagger-ui-wrap q:before, -.swagger-section .swagger-ui-wrap q:after, -.swagger-section .swagger-ui-wrap blockquote:before, -.swagger-section .swagger-ui-wrap blockquote:after { - content: none; -} -.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 { - display: block; - clear: none; - float: left; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; - width: 60%; -} -.swagger-section .swagger-ui-wrap table { - border-collapse: collapse; - border-spacing: 0; -} -.swagger-section .swagger-ui-wrap table thead tr th { - padding: 5px; - font-size: 0.9em; - color: #666666; - border-bottom: 1px solid #999999; -} -.swagger-section .swagger-ui-wrap table tbody tr:last-child td { - border-bottom: none; -} -.swagger-section .swagger-ui-wrap table tbody tr.offset { - background-color: #f0f0f0; -} -.swagger-section .swagger-ui-wrap table tbody tr td { - padding: 6px; - font-size: 0.9em; - border-bottom: 1px solid #cccccc; - vertical-align: top; - line-height: 1.3em; -} -.swagger-section .swagger-ui-wrap ol { - margin: 0px 0 10px; - padding: 0 0 0 18px; - list-style-type: decimal; -} -.swagger-section .swagger-ui-wrap ol li { - padding: 5px 0px; - font-size: 0.9em; - color: #333333; -} -.swagger-section .swagger-ui-wrap ol, -.swagger-section .swagger-ui-wrap ul { - list-style: none; -} -.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 { - text-decoration: none; -} -.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 { - text-decoration: underline; -} -.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 { - color: #aaaaaa; -} -.swagger-section .swagger-ui-wrap a { - color: #547f00; -} -.swagger-section .swagger-ui-wrap a img { - border: none; -} -.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 { - display: block; -} -.swagger-section .swagger-ui-wrap pre { - font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; - background-color: #fcf6db; - border: 1px solid #e5e0c6; - padding: 10px; -} -.swagger-section .swagger-ui-wrap pre code { - line-height: 1.6em; - background: none; -} -.swagger-section .swagger-ui-wrap .content > .content-type > div > label { - clear: both; - display: block; - color: #0F6AB4; - font-size: 1.1em; - margin: 0; - padding: 15px 0 5px; -} -.swagger-section .swagger-ui-wrap .content pre { - font-size: 12px; - margin-top: 5px; - padding: 5px; -} -.swagger-section .swagger-ui-wrap .icon-btn { - cursor: pointer; -} -.swagger-section .swagger-ui-wrap .info_title { - padding-bottom: 10px; - font-weight: bold; - font-size: 25px; -} -.swagger-section .swagger-ui-wrap .footer { - margin-top: 20px; -} -.swagger-section .swagger-ui-wrap p.big, -.swagger-section .swagger-ui-wrap div.big p { - font-size: 1em; - margin-bottom: 10px; -} -.swagger-section .swagger-ui-wrap form.fullwidth ol li.string input, -.swagger-section .swagger-ui-wrap form.fullwidth ol li.url input, -.swagger-section .swagger-ui-wrap form.fullwidth ol li.text textarea, -.swagger-section .swagger-ui-wrap form.fullwidth ol li.numeric input { - width: 500px !important; -} -.swagger-section .swagger-ui-wrap .info_license { - padding-bottom: 5px; -} -.swagger-section .swagger-ui-wrap .info_tos { - padding-bottom: 5px; -} -.swagger-section .swagger-ui-wrap .message-fail { - color: #cc0000; -} -.swagger-section .swagger-ui-wrap .info_url { - padding-bottom: 5px; -} -.swagger-section .swagger-ui-wrap .info_email { - padding-bottom: 5px; -} -.swagger-section .swagger-ui-wrap .info_name { - padding-bottom: 5px; -} -.swagger-section .swagger-ui-wrap .info_description { - padding-bottom: 10px; - font-size: 15px; -} -.swagger-section .swagger-ui-wrap .markdown ol li, -.swagger-section .swagger-ui-wrap .markdown ul li { - padding: 3px 0px; - line-height: 1.4em; - color: #333333; -} -.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, -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input { - display: block; - padding: 4px; - width: auto; - clear: both; -} -.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, -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input.title { - font-size: 1.3em; -} -.swagger-section .swagger-ui-wrap table.fullwidth { - width: 100%; -} -.swagger-section .swagger-ui-wrap .model-signature { - font-family: "Droid Sans", sans-serif; - font-size: 1em; - line-height: 1.5em; -} -.swagger-section .swagger-ui-wrap .model-signature .signature-nav a { - text-decoration: none; - color: #AAA; -} -.swagger-section .swagger-ui-wrap .model-signature .signature-nav a:hover { - text-decoration: underline; - color: black; -} -.swagger-section .swagger-ui-wrap .model-signature .signature-nav .selected { - color: black; - text-decoration: none; -} -.swagger-section .swagger-ui-wrap .model-signature .propType { - color: #5555aa; -} -.swagger-section .swagger-ui-wrap .model-signature pre:hover { - background-color: #ffffdd; -} -.swagger-section .swagger-ui-wrap .model-signature pre { - font-size: .85em; - line-height: 1.2em; - overflow: auto; - max-height: 200px; - cursor: pointer; -} -.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav { - display: block; - margin: 0; - padding: 0; -} -.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li:last-child { - padding-right: 0; - border-right: none; -} -.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li { - float: left; - margin: 0 5px 5px 0; - padding: 2px 5px 2px 0; - border-right: 1px solid #ddd; -} -.swagger-section .swagger-ui-wrap .model-signature .propOpt { - color: #555; -} -.swagger-section .swagger-ui-wrap .model-signature .snippet small { - font-size: 0.75em; -} -.swagger-section .swagger-ui-wrap .model-signature .propOptKey { - font-style: italic; -} -.swagger-section .swagger-ui-wrap .model-signature .description .strong { - font-weight: bold; - color: #000; - font-size: .9em; -} -.swagger-section .swagger-ui-wrap .model-signature .description div { - font-size: 0.9em; - line-height: 1.5em; - margin-left: 1em; -} -.swagger-section .swagger-ui-wrap .model-signature .description .stronger { - font-weight: bold; - color: #000; -} -.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper { - border-spacing: 0; - position: absolute; - background-color: #ffffff; - border: 1px solid #bbbbbb; - display: none; - font-size: 11px; - max-width: 400px; - line-height: 30px; - color: black; - padding: 5px; - margin-left: 10px; -} -.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper th { - text-align: center; - background-color: #eeeeee; - border: 1px solid #bbbbbb; - font-size: 11px; - color: #666666; - font-weight: bold; - padding: 5px; - line-height: 15px; -} -.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper .optionName { - font-weight: bold; -} -.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown > p:first-child, -.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown > p:last-child { - display: inline; -} -.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown > p:not(:first-child):before { - display: block; - content: ''; -} -.swagger-section .swagger-ui-wrap .model-signature .description span:last-of-type.propDesc.markdown > p:only-child { - margin-right: -3px; -} -.swagger-section .swagger-ui-wrap .model-signature .propName { - font-weight: bold; -} -.swagger-section .swagger-ui-wrap .model-signature .signature-container { - clear: both; -} -.swagger-section .swagger-ui-wrap .body-textarea { - width: 300px; - height: 100px; - border: 1px solid #aaa; -} -.swagger-section .swagger-ui-wrap .markdown p code, -.swagger-section .swagger-ui-wrap .markdown li code { - font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; - background-color: #f0f0f0; - color: black; - padding: 1px 3px; -} -.swagger-section .swagger-ui-wrap .required { - font-weight: bold; -} -.swagger-section .swagger-ui-wrap input.parameter { - width: 300px; - border: 1px solid #aaa; -} -.swagger-section .swagger-ui-wrap h1 { - color: black; - font-size: 1.5em; - line-height: 1.3em; - padding: 10px 0 10px 0; - font-family: "Droid Sans", sans-serif; - font-weight: bold; -} -.swagger-section .swagger-ui-wrap .heading_with_menu { - float: none; - clear: both; - overflow: hidden; - display: block; -} -.swagger-section .swagger-ui-wrap .heading_with_menu ul { - display: block; - clear: none; - float: right; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; - margin-top: 10px; -} -.swagger-section .swagger-ui-wrap h2 { - color: black; - font-size: 1.3em; - padding: 10px 0 10px 0; -} -.swagger-section .swagger-ui-wrap h2 a { - color: black; -} -.swagger-section .swagger-ui-wrap h2 span.sub { - font-size: 0.7em; - color: #999999; - font-style: italic; -} -.swagger-section .swagger-ui-wrap h2 span.sub a { - color: #777777; -} -.swagger-section .swagger-ui-wrap span.weak { - color: #666666; -} -.swagger-section .swagger-ui-wrap .message-success { - color: #89BF04; -} -.swagger-section .swagger-ui-wrap caption, -.swagger-section .swagger-ui-wrap th, -.swagger-section .swagger-ui-wrap td { - text-align: left; - font-weight: normal; - vertical-align: middle; -} -.swagger-section .swagger-ui-wrap .code { - font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.text textarea { - font-family: "Droid Sans", sans-serif; - height: 250px; - padding: 4px; - display: block; - clear: both; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.select select { - display: block; - clear: both; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean { - float: none; - clear: both; - overflow: hidden; - display: block; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean label { - display: block; - float: left; - clear: none; - margin: 0; - padding: 0; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean input { - display: block; - float: left; - clear: none; - margin: 0 5px 0 0; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.required label { - color: black; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label { - display: block; - clear: both; - width: auto; - padding: 0 0 3px; - color: #666666; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label abbr { - padding-left: 3px; - color: #888888; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li p.inline-hints { - margin-left: 0; - font-style: italic; - font-size: 0.9em; - margin: 0; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.buttons { - margin: 0; - padding: 0; -} -.swagger-section .swagger-ui-wrap span.blank, -.swagger-section .swagger-ui-wrap span.empty { - color: #888888; - font-style: italic; -} -.swagger-section .swagger-ui-wrap .markdown h3 { - color: #547f00; -} -.swagger-section .swagger-ui-wrap .markdown h4 { - color: #666666; -} -.swagger-section .swagger-ui-wrap .markdown pre { - font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; - background-color: #fcf6db; - border: 1px solid #e5e0c6; - padding: 10px; - margin: 0 0 10px 0; -} -.swagger-section .swagger-ui-wrap .markdown pre code { - line-height: 1.6em; -} -.swagger-section .swagger-ui-wrap div.gist { - margin: 20px 0 25px 0 !important; -} -.swagger-section .swagger-ui-wrap ul#resources { - font-family: "Droid Sans", sans-serif; - font-size: 0.9em; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource { - border-bottom: 1px solid #dddddd; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading h2 a, -.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading h2 a { - color: black; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading ul.options li a, -.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading ul.options li a { - color: #555555; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource:last-child { - border-bottom: none; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading { - border: 1px solid transparent; - float: none; - clear: both; - overflow: hidden; - display: block; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options { - overflow: hidden; - padding: 0; - display: block; - clear: none; - float: right; - margin: 14px 10px 0 0; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li { - float: left; - clear: none; - margin: 0; - padding: 2px 10px; - border-right: 1px solid #dddddd; - color: #666666; - font-size: 0.9em; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a { - color: #aaaaaa; - text-decoration: none; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover { - text-decoration: underline; - color: black; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover, -.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 { - text-decoration: underline; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:first-child, -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.first { - padding-left: 0; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:last-child, -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.last { - padding-right: 0; - border-right: none; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options:first-child, -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options.first { - padding-left: 0; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 { - color: #999999; - padding-left: 0; - display: block; - clear: none; - float: left; - font-family: "Droid Sans", sans-serif; - font-weight: bold; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a { - color: #999999; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a:hover { - color: black; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation { - float: none; - clear: both; - overflow: hidden; - display: block; - margin: 0 0 10px; - padding: 0; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading { - float: none; - clear: both; - overflow: hidden; - display: block; - margin: 0; - padding: 0; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 { - display: block; - clear: none; - float: left; - width: auto; - margin: 0; - padding: 0; - line-height: 1.1em; - color: black; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path { - padding-left: 10px; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a { - color: black; - text-decoration: none; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a:hover { - text-decoration: underline; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.http_method a { - text-transform: uppercase; - text-decoration: none; - color: white; - display: inline-block; - width: 50px; - font-size: 0.7em; - text-align: center; - padding: 7px 0 4px; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - -o-border-radius: 2px; - -ms-border-radius: 2px; - -khtml-border-radius: 2px; - border-radius: 2px; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span { - margin: 0; - padding: 0; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options { - overflow: hidden; - padding: 0; - display: block; - clear: none; - float: right; - margin: 6px 10px 0 0; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li { - float: left; - clear: none; - margin: 0; - padding: 2px 10px; - font-size: 0.9em; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li a { - text-decoration: none; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li.access { - color: black; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content { - border-top: none; - padding: 10px; - -moz-border-radius-bottomleft: 6px; - -webkit-border-bottom-left-radius: 6px; - -o-border-bottom-left-radius: 6px; - -ms-border-bottom-left-radius: 6px; - -khtml-border-bottom-left-radius: 6px; - border-bottom-left-radius: 6px; - -moz-border-radius-bottomright: 6px; - -webkit-border-bottom-right-radius: 6px; - -o-border-bottom-right-radius: 6px; - -ms-border-bottom-right-radius: 6px; - -khtml-border-bottom-right-radius: 6px; - border-bottom-right-radius: 6px; - margin: 0 0 20px; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content h4 { - font-size: 1.1em; - margin: 0; - padding: 15px 0 5px; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header { - float: none; - clear: both; - overflow: hidden; - display: block; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header a { - padding: 4px 0 0 10px; - display: inline-block; - font-size: 0.9em; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header input.submit { - display: block; - clear: none; - float: left; - padding: 6px 8px; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header span.response_throbber { - background-image: url('../images/throbber.gif'); - width: 128px; - height: 16px; - display: block; - clear: none; - float: right; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content form input[type='text'].error { - outline: 2px solid black; - outline-color: #cc0000; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.response div.block pre { - font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; - padding: 10px; - font-size: 0.9em; - max-height: 400px; - overflow-y: auto; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading { - background-color: #f9f2e9; - border: 1px solid #f0e0ca; -} -.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 { - background-color: #c5862b; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li { - border-right: 1px solid #dddddd; - border-right-color: #f0e0ca; - color: #c5862b; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li a { - color: #c5862b; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content { - background-color: #faf5ee; - border: 1px solid #f0e0ca; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content h4 { - color: #c5862b; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content div.sandbox_header a { - color: #dcb67f; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading { - background-color: #fcffcd; - border: 1px solid black; - border-color: #ffd20f; -} -.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 { - text-transform: uppercase; - background-color: #ffd20f; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li { - border-right: 1px solid #dddddd; - border-right-color: #ffd20f; - color: #ffd20f; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li a { - color: #ffd20f; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content { - background-color: #fcffcd; - border: 1px solid black; - border-color: #ffd20f; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content h4 { - color: #ffd20f; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content div.sandbox_header a { - color: #6fc992; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading { - background-color: #f5e8e8; - border: 1px solid #e8c6c7; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading h3 span.http_method a { - text-transform: uppercase; - background-color: #a41e22; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li { - border-right: 1px solid #dddddd; - border-right-color: #e8c6c7; - color: #a41e22; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li a { - color: #a41e22; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content { - background-color: #f7eded; - border: 1px solid #e8c6c7; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content h4 { - color: #a41e22; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content div.sandbox_header a { - color: #c8787a; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading { - background-color: #e7f6ec; - border: 1px solid #c3e8d1; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading h3 span.http_method a { - background-color: #10a54a; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li { - border-right: 1px solid #dddddd; - border-right-color: #c3e8d1; - color: #10a54a; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li a { - color: #10a54a; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content { - background-color: #ebf7f0; - border: 1px solid #c3e8d1; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content h4 { - color: #10a54a; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content div.sandbox_header a { - color: #6fc992; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading { - background-color: #FCE9E3; - border: 1px solid #F5D5C3; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading h3 span.http_method a { - background-color: #D38042; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li { - border-right: 1px solid #dddddd; - border-right-color: #f0cecb; - color: #D38042; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li a { - color: #D38042; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content { - background-color: #faf0ef; - border: 1px solid #f0cecb; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content h4 { - color: #D38042; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content div.sandbox_header a { - color: #dcb67f; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading { - background-color: #e7f0f7; - border: 1px solid #c3d9ec; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading h3 span.http_method a { - background-color: #0f6ab4; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li { - border-right: 1px solid #dddddd; - border-right-color: #c3d9ec; - color: #0f6ab4; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li a { - color: #0f6ab4; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content { - background-color: #ebf3f9; - border: 1px solid #c3d9ec; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content h4 { - color: #0f6ab4; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content div.sandbox_header a { - color: #6fa5d2; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading { - background-color: #e7f0f7; - border: 1px solid #c3d9ec; -} -.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 { - background-color: #0f6ab4; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li { - border-right: 1px solid #dddddd; - border-right-color: #c3d9ec; - color: #0f6ab4; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li a { - color: #0f6ab4; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content { - background-color: #ebf3f9; - border: 1px solid #c3d9ec; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content h4 { - color: #0f6ab4; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content div.sandbox_header a { - color: #6fa5d2; -} -.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.post 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.put 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.delete div.content { - border-top: none; -} -.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.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.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.put 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-child, -.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.post 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, -.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.patch 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 { - padding-right: 0; - border-right: none; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:hover, -.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 { - text-decoration: underline; -} -.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 ul.options li.first { - padding-left: 0; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations:first-child, -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations.first { - padding-left: 0; -} -.swagger-section .swagger-ui-wrap p#colophon { - margin: 0 15px 40px 15px; - padding: 10px 0; - font-size: 0.8em; - border-top: 1px solid #dddddd; - font-family: "Droid Sans", sans-serif; - color: #999999; - font-style: italic; -} -.swagger-section .swagger-ui-wrap p#colophon a { - text-decoration: none; - color: #547f00; -} -.swagger-section .swagger-ui-wrap h3 { - color: black; - font-size: 1.1em; - padding: 10px 0 10px 0; -} -.swagger-section .swagger-ui-wrap .markdown ol, -.swagger-section .swagger-ui-wrap .markdown ul { - font-family: "Droid Sans", sans-serif; - margin: 5px 0 10px; - padding: 0 0 0 18px; - list-style-type: disc; -} -.swagger-section .swagger-ui-wrap form.form_box { - background-color: #ebf3f9; - border: 1px solid #c3d9ec; - padding: 10px; -} -.swagger-section .swagger-ui-wrap form.form_box label { - color: #0f6ab4 !important; -} -.swagger-section .swagger-ui-wrap form.form_box input[type=submit] { - display: block; - padding: 10px; -} -.swagger-section .swagger-ui-wrap form.form_box p.weak { - font-size: 0.8em; -} -.swagger-section .swagger-ui-wrap form.form_box p { - font-size: 0.9em; - padding: 0 0 15px; - color: #7e7b6d; -} -.swagger-section .swagger-ui-wrap form.form_box p a { - color: #646257; -} -.swagger-section .swagger-ui-wrap form.form_box p strong { - color: black; -} -.swagger-section .swagger-ui-wrap .operation-status td.markdown > p:last-child { - padding-bottom: 0; -} -.swagger-section .title { - font-style: bold; -} -.swagger-section .secondary_form { - display: none; -} -.swagger-section .main_image { - display: block; - margin-left: auto; - margin-right: auto; -} -.swagger-section .oauth_body { - margin-left: 100px; - margin-right: 100px; -} -.swagger-section .oauth_submit { - text-align: center; -} -.swagger-section .api-popup-dialog { - z-index: 10000; - position: absolute; - width: 500px; - background: #FFF; - padding: 20px; - border: 1px solid #ccc; - border-radius: 5px; - display: none; - font-size: 13px; - color: #777; -} -.swagger-section .api-popup-dialog .api-popup-title { - font-size: 24px; - padding: 10px 0; -} -.swagger-section .api-popup-dialog .api-popup-title { - font-size: 24px; - padding: 10px 0; -} -.swagger-section .api-popup-dialog p.error-msg { - padding-left: 5px; - padding-bottom: 5px; -} -.swagger-section .api-popup-dialog button.api-popup-authbtn { - height: 30px; -} -.swagger-section .api-popup-dialog button.api-popup-cancel { - height: 30px; -} -.swagger-section .api-popup-scopes { - padding: 10px 20px; -} -.swagger-section .api-popup-scopes li { - padding: 5px 0; - line-height: 20px; -} -.swagger-section .api-popup-scopes .api-scope-desc { - padding-left: 20px; - font-style: italic; -} -.swagger-section .api-popup-scopes li input { - position: relative; - top: 2px; -} -.swagger-section .api-popup-actions { - padding-top: 10px; -} -#header { - display: none; -} -.swagger-section .swagger-ui-wrap .model-signature pre { - max-height: none; -} -.swagger-section .swagger-ui-wrap .body-textarea { - width: 100px; -} -.swagger-section .swagger-ui-wrap input.parameter { - width: 100px; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options { - display: none; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints { - display: block !important; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content { - display: block !important; -} diff --git a/reference/ucp/3.0/api/css/reset.css b/reference/ucp/3.0/api/css/reset.css deleted file mode 100644 index b2b078943c..0000000000 --- a/reference/ucp/3.0/api/css/reset.css +++ /dev/null @@ -1,125 +0,0 @@ -/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 */ -html, -body, -div, -span, -applet, -object, -iframe, -h1, -h2, -h3, -h4, -h5, -h6, -p, -blockquote, -pre, -a, -abbr, -acronym, -address, -big, -cite, -code, -del, -dfn, -em, -img, -ins, -kbd, -q, -s, -samp, -small, -strike, -strong, -sub, -sup, -tt, -var, -b, -u, -i, -center, -dl, -dt, -dd, -ol, -ul, -li, -fieldset, -form, -label, -legend, -table, -caption, -tbody, -tfoot, -thead, -tr, -th, -td, -article, -aside, -canvas, -details, -embed, -figure, -figcaption, -footer, -header, -hgroup, -menu, -nav, -output, -ruby, -section, -summary, -time, -mark, -audio, -video { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - font: inherit; - vertical-align: baseline; -} -/* HTML5 display-role reset for older browsers */ -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -menu, -nav, -section { - display: block; -} -body { - line-height: 1; -} -ol, -ul { - list-style: none; -} -blockquote, -q { - quotes: none; -} -blockquote:before, -blockquote:after, -q:before, -q:after { - content: ''; - content: none; -} -table { - border-collapse: collapse; - border-spacing: 0; -} diff --git a/reference/ucp/3.0/api/css/screen.css b/reference/ucp/3.0/api/css/screen.css deleted file mode 100644 index 436cc28edd..0000000000 --- a/reference/ucp/3.0/api/css/screen.css +++ /dev/null @@ -1,1279 +0,0 @@ -/* Original style from softwaremaniacs.org (c) Ivan Sagalaev */ -.swagger-section pre code { - display: block; - padding: 0.5em; - background: #F0F0F0; -} -.swagger-section pre code, -.swagger-section pre .subst, -.swagger-section pre .tag .title, -.swagger-section pre .lisp .title, -.swagger-section pre .clojure .built_in, -.swagger-section pre .nginx .title { - color: black; -} -.swagger-section pre .string, -.swagger-section pre .title, -.swagger-section pre .constant, -.swagger-section pre .parent, -.swagger-section pre .tag .value, -.swagger-section pre .rules .value, -.swagger-section pre .rules .value .number, -.swagger-section pre .preprocessor, -.swagger-section pre .ruby .symbol, -.swagger-section pre .ruby .symbol .string, -.swagger-section pre .aggregate, -.swagger-section pre .template_tag, -.swagger-section pre .django .variable, -.swagger-section pre .smalltalk .class, -.swagger-section pre .addition, -.swagger-section pre .flow, -.swagger-section pre .stream, -.swagger-section pre .bash .variable, -.swagger-section pre .apache .tag, -.swagger-section pre .apache .cbracket, -.swagger-section pre .tex .command, -.swagger-section pre .tex .special, -.swagger-section pre .erlang_repl .function_or_atom, -.swagger-section pre .markdown .header { - color: #800; -} -.swagger-section pre .comment, -.swagger-section pre .annotation, -.swagger-section pre .template_comment, -.swagger-section pre .diff .header, -.swagger-section pre .chunk, -.swagger-section pre .markdown .blockquote { - color: #888; -} -.swagger-section pre .number, -.swagger-section pre .date, -.swagger-section pre .regexp, -.swagger-section pre .literal, -.swagger-section pre .smalltalk .symbol, -.swagger-section pre .smalltalk .char, -.swagger-section pre .go .constant, -.swagger-section pre .change, -.swagger-section pre .markdown .bullet, -.swagger-section pre .markdown .link_url { - color: #080; -} -.swagger-section pre .label, -.swagger-section pre .javadoc, -.swagger-section pre .ruby .string, -.swagger-section pre .decorator, -.swagger-section pre .filter .argument, -.swagger-section pre .localvars, -.swagger-section pre .array, -.swagger-section pre .attr_selector, -.swagger-section pre .important, -.swagger-section pre .pseudo, -.swagger-section pre .pi, -.swagger-section pre .doctype, -.swagger-section pre .deletion, -.swagger-section pre .envvar, -.swagger-section pre .shebang, -.swagger-section pre .apache .sqbracket, -.swagger-section pre .nginx .built_in, -.swagger-section pre .tex .formula, -.swagger-section pre .erlang_repl .reserved, -.swagger-section pre .prompt, -.swagger-section pre .markdown .link_label, -.swagger-section pre .vhdl .attribute, -.swagger-section pre .clojure .attribute, -.swagger-section pre .coffeescript .property { - color: #8888ff; -} -.swagger-section pre .keyword, -.swagger-section pre .id, -.swagger-section pre .phpdoc, -.swagger-section pre .title, -.swagger-section pre .built_in, -.swagger-section pre .aggregate, -.swagger-section pre .css .tag, -.swagger-section pre .javadoctag, -.swagger-section pre .phpdoc, -.swagger-section pre .yardoctag, -.swagger-section pre .smalltalk .class, -.swagger-section pre .winutils, -.swagger-section pre .bash .variable, -.swagger-section pre .apache .tag, -.swagger-section pre .go .typename, -.swagger-section pre .tex .command, -.swagger-section pre .markdown .strong, -.swagger-section pre .request, -.swagger-section pre .status { - font-weight: bold; -} -.swagger-section pre .markdown .emphasis { - font-style: italic; -} -.swagger-section pre .nginx .built_in { - font-weight: normal; -} -.swagger-section pre .coffeescript .javascript, -.swagger-section pre .javascript .xml, -.swagger-section pre .tex .formula, -.swagger-section pre .xml .javascript, -.swagger-section pre .xml .vbscript, -.swagger-section pre .xml .css, -.swagger-section pre .xml .cdata { - opacity: 0.5; -} -.swagger-section .swagger-ui-wrap { - line-height: 1; - font-family: "Droid Sans", sans-serif; - max-width: 960px; - margin-left: auto; - margin-right: auto; -} -.swagger-section .swagger-ui-wrap b, -.swagger-section .swagger-ui-wrap strong { - font-family: "Droid Sans", sans-serif; - font-weight: bold; -} -.swagger-section .swagger-ui-wrap q, -.swagger-section .swagger-ui-wrap blockquote { - quotes: none; -} -.swagger-section .swagger-ui-wrap p { - line-height: 1.4em; - padding: 0 0 10px; - color: #333333; -} -.swagger-section .swagger-ui-wrap q:before, -.swagger-section .swagger-ui-wrap q:after, -.swagger-section .swagger-ui-wrap blockquote:before, -.swagger-section .swagger-ui-wrap blockquote:after { - content: none; -} -.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 { - display: block; - clear: none; - float: left; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; - width: 60%; -} -.swagger-section .swagger-ui-wrap table { - border-collapse: collapse; - border-spacing: 0; -} -.swagger-section .swagger-ui-wrap table thead tr th { - padding: 5px; - font-size: 0.9em; - color: #666666; - border-bottom: 1px solid #999999; -} -.swagger-section .swagger-ui-wrap table tbody tr:last-child td { - border-bottom: none; -} -.swagger-section .swagger-ui-wrap table tbody tr.offset { - background-color: #f0f0f0; -} -.swagger-section .swagger-ui-wrap table tbody tr td { - padding: 6px; - font-size: 0.9em; - border-bottom: 1px solid #cccccc; - vertical-align: top; - line-height: 1.3em; -} -.swagger-section .swagger-ui-wrap ol { - margin: 0px 0 10px; - padding: 0 0 0 18px; - list-style-type: decimal; -} -.swagger-section .swagger-ui-wrap ol li { - padding: 5px 0px; - font-size: 0.9em; - color: #333333; -} -.swagger-section .swagger-ui-wrap ol, -.swagger-section .swagger-ui-wrap ul { - list-style: none; -} -.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 { - text-decoration: none; -} -.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 { - text-decoration: underline; -} -.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 { - color: #aaaaaa; -} -.swagger-section .swagger-ui-wrap a { - color: #547f00; -} -.swagger-section .swagger-ui-wrap a img { - border: none; -} -.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 { - display: block; -} -.swagger-section .swagger-ui-wrap pre { - font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; - background-color: #fcf6db; - border: 1px solid #e5e0c6; - padding: 10px; -} -.swagger-section .swagger-ui-wrap pre code { - line-height: 1.6em; - background: none; -} -.swagger-section .swagger-ui-wrap .content > .content-type > div > label { - clear: both; - display: block; - color: #0F6AB4; - font-size: 1.1em; - margin: 0; - padding: 15px 0 5px; -} -.swagger-section .swagger-ui-wrap .content pre { - font-size: 12px; - margin-top: 5px; - padding: 5px; -} -.swagger-section .swagger-ui-wrap .icon-btn { - cursor: pointer; -} -.swagger-section .swagger-ui-wrap .info_title { - padding-bottom: 10px; - font-weight: bold; - font-size: 25px; -} -.swagger-section .swagger-ui-wrap .footer { - margin-top: 20px; -} -.swagger-section .swagger-ui-wrap p.big, -.swagger-section .swagger-ui-wrap div.big p { - font-size: 1em; - margin-bottom: 10px; -} -.swagger-section .swagger-ui-wrap form.fullwidth ol li.string input, -.swagger-section .swagger-ui-wrap form.fullwidth ol li.url input, -.swagger-section .swagger-ui-wrap form.fullwidth ol li.text textarea, -.swagger-section .swagger-ui-wrap form.fullwidth ol li.numeric input { - width: 500px !important; -} -.swagger-section .swagger-ui-wrap .info_license { - padding-bottom: 5px; -} -.swagger-section .swagger-ui-wrap .info_tos { - padding-bottom: 5px; -} -.swagger-section .swagger-ui-wrap .message-fail { - color: #cc0000; -} -.swagger-section .swagger-ui-wrap .info_url { - padding-bottom: 5px; -} -.swagger-section .swagger-ui-wrap .info_email { - padding-bottom: 5px; -} -.swagger-section .swagger-ui-wrap .info_name { - padding-bottom: 5px; -} -.swagger-section .swagger-ui-wrap .info_description { - padding-bottom: 10px; - font-size: 15px; -} -.swagger-section .swagger-ui-wrap .markdown ol li, -.swagger-section .swagger-ui-wrap .markdown ul li { - padding: 3px 0px; - line-height: 1.4em; - color: #333333; -} -.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, -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input { - display: block; - padding: 4px; - width: auto; - clear: both; -} -.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, -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input.title { - font-size: 1.3em; -} -.swagger-section .swagger-ui-wrap table.fullwidth { - width: 100%; -} -.swagger-section .swagger-ui-wrap .model-signature { - font-family: "Droid Sans", sans-serif; - font-size: 1em; - line-height: 1.5em; -} -.swagger-section .swagger-ui-wrap .model-signature .signature-nav a { - text-decoration: none; - color: #AAA; -} -.swagger-section .swagger-ui-wrap .model-signature .signature-nav a:hover { - text-decoration: underline; - color: black; -} -.swagger-section .swagger-ui-wrap .model-signature .signature-nav .selected { - color: black; - text-decoration: none; -} -.swagger-section .swagger-ui-wrap .model-signature .propType { - color: #5555aa; -} -.swagger-section .swagger-ui-wrap .model-signature pre:hover { - background-color: #ffffdd; -} -.swagger-section .swagger-ui-wrap .model-signature pre { - font-size: .85em; - line-height: 1.2em; - overflow: auto; - max-height: 200px; - cursor: pointer; -} -.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav { - display: block; - margin: 0; - padding: 0; -} -.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li:last-child { - padding-right: 0; - border-right: none; -} -.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li { - float: left; - margin: 0 5px 5px 0; - padding: 2px 5px 2px 0; - border-right: 1px solid #ddd; -} -.swagger-section .swagger-ui-wrap .model-signature .propOpt { - color: #555; -} -.swagger-section .swagger-ui-wrap .model-signature .snippet small { - font-size: 0.75em; -} -.swagger-section .swagger-ui-wrap .model-signature .propOptKey { - font-style: italic; -} -.swagger-section .swagger-ui-wrap .model-signature .description .strong { - font-weight: bold; - color: #000; - font-size: .9em; -} -.swagger-section .swagger-ui-wrap .model-signature .description div { - font-size: 0.9em; - line-height: 1.5em; - margin-left: 1em; -} -.swagger-section .swagger-ui-wrap .model-signature .description .stronger { - font-weight: bold; - color: #000; -} -.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper { - border-spacing: 0; - position: absolute; - background-color: #ffffff; - border: 1px solid #bbbbbb; - display: none; - font-size: 11px; - max-width: 400px; - line-height: 30px; - color: black; - padding: 5px; - margin-left: 10px; -} -.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper th { - text-align: center; - background-color: #eeeeee; - border: 1px solid #bbbbbb; - font-size: 11px; - color: #666666; - font-weight: bold; - padding: 5px; - line-height: 15px; -} -.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper .optionName { - font-weight: bold; -} -.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown > p:first-child, -.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown > p:last-child { - display: inline; -} -.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown > p:not(:first-child):before { - display: block; - content: ''; -} -.swagger-section .swagger-ui-wrap .model-signature .description span:last-of-type.propDesc.markdown > p:only-child { - margin-right: -3px; -} -.swagger-section .swagger-ui-wrap .model-signature .propName { - font-weight: bold; -} -.swagger-section .swagger-ui-wrap .model-signature .signature-container { - clear: both; -} -.swagger-section .swagger-ui-wrap .body-textarea { - width: 300px; - height: 100px; - border: 1px solid #aaa; -} -.swagger-section .swagger-ui-wrap .markdown p code, -.swagger-section .swagger-ui-wrap .markdown li code { - font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; - background-color: #f0f0f0; - color: black; - padding: 1px 3px; -} -.swagger-section .swagger-ui-wrap .required { - font-weight: bold; -} -.swagger-section .swagger-ui-wrap input.parameter { - width: 300px; - border: 1px solid #aaa; -} -.swagger-section .swagger-ui-wrap h1 { - color: black; - font-size: 1.5em; - line-height: 1.3em; - padding: 10px 0 10px 0; - font-family: "Droid Sans", sans-serif; - font-weight: bold; -} -.swagger-section .swagger-ui-wrap .heading_with_menu { - float: none; - clear: both; - overflow: hidden; - display: block; -} -.swagger-section .swagger-ui-wrap .heading_with_menu ul { - display: block; - clear: none; - float: right; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; - margin-top: 10px; -} -.swagger-section .swagger-ui-wrap h2 { - color: black; - font-size: 1.3em; - padding: 10px 0 10px 0; -} -.swagger-section .swagger-ui-wrap h2 a { - color: black; -} -.swagger-section .swagger-ui-wrap h2 span.sub { - font-size: 0.7em; - color: #999999; - font-style: italic; -} -.swagger-section .swagger-ui-wrap h2 span.sub a { - color: #777777; -} -.swagger-section .swagger-ui-wrap span.weak { - color: #666666; -} -.swagger-section .swagger-ui-wrap .message-success { - color: #89BF04; -} -.swagger-section .swagger-ui-wrap caption, -.swagger-section .swagger-ui-wrap th, -.swagger-section .swagger-ui-wrap td { - text-align: left; - font-weight: normal; - vertical-align: middle; -} -.swagger-section .swagger-ui-wrap .code { - font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.text textarea { - font-family: "Droid Sans", sans-serif; - height: 250px; - padding: 4px; - display: block; - clear: both; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.select select { - display: block; - clear: both; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean { - float: none; - clear: both; - overflow: hidden; - display: block; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean label { - display: block; - float: left; - clear: none; - margin: 0; - padding: 0; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean input { - display: block; - float: left; - clear: none; - margin: 0 5px 0 0; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.required label { - color: black; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label { - display: block; - clear: both; - width: auto; - padding: 0 0 3px; - color: #666666; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label abbr { - padding-left: 3px; - color: #888888; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li p.inline-hints { - margin-left: 0; - font-style: italic; - font-size: 0.9em; - margin: 0; -} -.swagger-section .swagger-ui-wrap form.formtastic fieldset.buttons { - margin: 0; - padding: 0; -} -.swagger-section .swagger-ui-wrap span.blank, -.swagger-section .swagger-ui-wrap span.empty { - color: #888888; - font-style: italic; -} -.swagger-section .swagger-ui-wrap .markdown h3 { - color: #547f00; -} -.swagger-section .swagger-ui-wrap .markdown h4 { - color: #666666; -} -.swagger-section .swagger-ui-wrap .markdown pre { - font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; - background-color: #fcf6db; - border: 1px solid #e5e0c6; - padding: 10px; - margin: 0 0 10px 0; -} -.swagger-section .swagger-ui-wrap .markdown pre code { - line-height: 1.6em; -} -.swagger-section .swagger-ui-wrap div.gist { - margin: 20px 0 25px 0 !important; -} -.swagger-section .swagger-ui-wrap ul#resources { - font-family: "Droid Sans", sans-serif; - font-size: 0.9em; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource { - border-bottom: 1px solid #dddddd; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading h2 a, -.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading h2 a { - color: black; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading ul.options li a, -.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading ul.options li a { - color: #555555; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource:last-child { - border-bottom: none; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading { - border: 1px solid transparent; - float: none; - clear: both; - overflow: hidden; - display: block; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options { - overflow: hidden; - padding: 0; - display: block; - clear: none; - float: right; - margin: 14px 10px 0 0; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li { - float: left; - clear: none; - margin: 0; - padding: 2px 10px; - border-right: 1px solid #dddddd; - color: #666666; - font-size: 0.9em; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a { - color: #aaaaaa; - text-decoration: none; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover { - text-decoration: underline; - color: black; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover, -.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 { - text-decoration: underline; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:first-child, -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.first { - padding-left: 0; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:last-child, -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.last { - padding-right: 0; - border-right: none; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options:first-child, -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options.first { - padding-left: 0; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 { - color: #999999; - padding-left: 0; - display: block; - clear: none; - float: left; - font-family: "Droid Sans", sans-serif; - font-weight: bold; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a { - color: #999999; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a:hover { - color: black; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation { - float: none; - clear: both; - overflow: hidden; - display: block; - margin: 0 0 10px; - padding: 0; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading { - float: none; - clear: both; - overflow: hidden; - display: block; - margin: 0; - padding: 0; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 { - display: block; - clear: none; - float: left; - width: auto; - margin: 0; - padding: 0; - line-height: 1.1em; - color: black; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path { - padding-left: 10px; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a { - color: black; - text-decoration: none; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a:hover { - text-decoration: underline; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.http_method a { - text-transform: uppercase; - text-decoration: none; - color: white; - display: inline-block; - width: 50px; - font-size: 0.7em; - text-align: center; - padding: 7px 0 4px; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - -o-border-radius: 2px; - -ms-border-radius: 2px; - -khtml-border-radius: 2px; - border-radius: 2px; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span { - margin: 0; - padding: 0; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options { - overflow: hidden; - padding: 0; - display: block; - clear: none; - float: right; - margin: 6px 10px 0 0; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li { - float: left; - clear: none; - margin: 0; - padding: 2px 10px; - font-size: 0.9em; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li a { - text-decoration: none; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li.access { - color: black; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content { - border-top: none; - padding: 10px; - -moz-border-radius-bottomleft: 6px; - -webkit-border-bottom-left-radius: 6px; - -o-border-bottom-left-radius: 6px; - -ms-border-bottom-left-radius: 6px; - -khtml-border-bottom-left-radius: 6px; - border-bottom-left-radius: 6px; - -moz-border-radius-bottomright: 6px; - -webkit-border-bottom-right-radius: 6px; - -o-border-bottom-right-radius: 6px; - -ms-border-bottom-right-radius: 6px; - -khtml-border-bottom-right-radius: 6px; - border-bottom-right-radius: 6px; - margin: 0 0 20px; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content h4 { - font-size: 1.1em; - margin: 0; - padding: 15px 0 5px; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header { - float: none; - clear: both; - overflow: hidden; - display: block; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header a { - padding: 4px 0 0 10px; - display: inline-block; - font-size: 0.9em; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header input.submit { - display: block; - clear: none; - float: left; - padding: 6px 8px; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header span.response_throbber { - background-image: url('../images/throbber.gif'); - width: 128px; - height: 16px; - display: block; - clear: none; - float: right; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content form input[type='text'].error { - outline: 2px solid black; - outline-color: #cc0000; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.response div.block pre { - font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; - padding: 10px; - font-size: 0.9em; - max-height: 400px; - overflow-y: auto; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading { - background-color: #f9f2e9; - border: 1px solid #f0e0ca; -} -.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 { - background-color: #c5862b; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li { - border-right: 1px solid #dddddd; - border-right-color: #f0e0ca; - color: #c5862b; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li a { - color: #c5862b; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content { - background-color: #faf5ee; - border: 1px solid #f0e0ca; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content h4 { - color: #c5862b; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content div.sandbox_header a { - color: #dcb67f; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading { - background-color: #fcffcd; - border: 1px solid black; - border-color: #ffd20f; -} -.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 { - text-transform: uppercase; - background-color: #ffd20f; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li { - border-right: 1px solid #dddddd; - border-right-color: #ffd20f; - color: #ffd20f; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li a { - color: #ffd20f; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content { - background-color: #fcffcd; - border: 1px solid black; - border-color: #ffd20f; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content h4 { - color: #ffd20f; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content div.sandbox_header a { - color: #6fc992; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading { - background-color: #f5e8e8; - border: 1px solid #e8c6c7; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading h3 span.http_method a { - text-transform: uppercase; - background-color: #a41e22; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li { - border-right: 1px solid #dddddd; - border-right-color: #e8c6c7; - color: #a41e22; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li a { - color: #a41e22; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content { - background-color: #f7eded; - border: 1px solid #e8c6c7; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content h4 { - color: #a41e22; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content div.sandbox_header a { - color: #c8787a; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading { - background-color: #e7f6ec; - border: 1px solid #c3e8d1; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading h3 span.http_method a { - background-color: #10a54a; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li { - border-right: 1px solid #dddddd; - border-right-color: #c3e8d1; - color: #10a54a; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li a { - color: #10a54a; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content { - background-color: #ebf7f0; - border: 1px solid #c3e8d1; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content h4 { - color: #10a54a; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content div.sandbox_header a { - color: #6fc992; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading { - background-color: #FCE9E3; - border: 1px solid #F5D5C3; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading h3 span.http_method a { - background-color: #D38042; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li { - border-right: 1px solid #dddddd; - border-right-color: #f0cecb; - color: #D38042; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li a { - color: #D38042; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content { - background-color: #faf0ef; - border: 1px solid #f0cecb; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content h4 { - color: #D38042; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content div.sandbox_header a { - color: #dcb67f; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading { - background-color: #e7f0f7; - border: 1px solid #c3d9ec; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading h3 span.http_method a { - background-color: #0f6ab4; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li { - border-right: 1px solid #dddddd; - border-right-color: #c3d9ec; - color: #0f6ab4; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li a { - color: #0f6ab4; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content { - background-color: #ebf3f9; - border: 1px solid #c3d9ec; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content h4 { - color: #0f6ab4; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content div.sandbox_header a { - color: #6fa5d2; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading { - background-color: #e7f0f7; - border: 1px solid #c3d9ec; -} -.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 { - background-color: #0f6ab4; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li { - border-right: 1px solid #dddddd; - border-right-color: #c3d9ec; - color: #0f6ab4; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li a { - color: #0f6ab4; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content { - background-color: #ebf3f9; - border: 1px solid #c3d9ec; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content h4 { - color: #0f6ab4; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content div.sandbox_header a { - color: #6fa5d2; -} -.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.post 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.put 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.delete div.content { - border-top: none; -} -.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.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.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.put 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-child, -.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.post 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, -.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.patch 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 { - padding-right: 0; - border-right: none; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:hover, -.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 { - text-decoration: underline; -} -.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 ul.options li.first { - padding-left: 0; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations:first-child, -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations.first { - padding-left: 0; -} -.swagger-section .swagger-ui-wrap p#colophon { - margin: 0 15px 40px 15px; - padding: 10px 0; - font-size: 0.8em; - border-top: 1px solid #dddddd; - font-family: "Droid Sans", sans-serif; - color: #999999; - font-style: italic; -} -.swagger-section .swagger-ui-wrap p#colophon a { - text-decoration: none; - color: #547f00; -} -.swagger-section .swagger-ui-wrap h3 { - color: black; - font-size: 1.1em; - padding: 10px 0 10px 0; -} -.swagger-section .swagger-ui-wrap .markdown ol, -.swagger-section .swagger-ui-wrap .markdown ul { - font-family: "Droid Sans", sans-serif; - margin: 5px 0 10px; - padding: 0 0 0 18px; - list-style-type: disc; -} -.swagger-section .swagger-ui-wrap form.form_box { - background-color: #ebf3f9; - border: 1px solid #c3d9ec; - padding: 10px; -} -.swagger-section .swagger-ui-wrap form.form_box label { - color: #0f6ab4 !important; -} -.swagger-section .swagger-ui-wrap form.form_box input[type=submit] { - display: block; - padding: 10px; -} -.swagger-section .swagger-ui-wrap form.form_box p.weak { - font-size: 0.8em; -} -.swagger-section .swagger-ui-wrap form.form_box p { - font-size: 0.9em; - padding: 0 0 15px; - color: #7e7b6d; -} -.swagger-section .swagger-ui-wrap form.form_box p a { - color: #646257; -} -.swagger-section .swagger-ui-wrap form.form_box p strong { - color: black; -} -.swagger-section .swagger-ui-wrap .operation-status td.markdown > p:last-child { - padding-bottom: 0; -} -.swagger-section .title { - font-style: bold; -} -.swagger-section .secondary_form { - display: none; -} -.swagger-section .main_image { - display: block; - margin-left: auto; - margin-right: auto; -} -.swagger-section .oauth_body { - margin-left: 100px; - margin-right: 100px; -} -.swagger-section .oauth_submit { - text-align: center; -} -.swagger-section .api-popup-dialog { - z-index: 10000; - position: absolute; - width: 500px; - background: #FFF; - padding: 20px; - border: 1px solid #ccc; - border-radius: 5px; - display: none; - font-size: 13px; - color: #777; -} -.swagger-section .api-popup-dialog .api-popup-title { - font-size: 24px; - padding: 10px 0; -} -.swagger-section .api-popup-dialog .api-popup-title { - font-size: 24px; - padding: 10px 0; -} -.swagger-section .api-popup-dialog p.error-msg { - padding-left: 5px; - padding-bottom: 5px; -} -.swagger-section .api-popup-dialog button.api-popup-authbtn { - height: 30px; -} -.swagger-section .api-popup-dialog button.api-popup-cancel { - height: 30px; -} -.swagger-section .api-popup-scopes { - padding: 10px 20px; -} -.swagger-section .api-popup-scopes li { - padding: 5px 0; - line-height: 20px; -} -.swagger-section .api-popup-scopes .api-scope-desc { - padding-left: 20px; - font-style: italic; -} -.swagger-section .api-popup-scopes li input { - position: relative; - top: 2px; -} -.swagger-section .api-popup-actions { - padding-top: 10px; -} -.swagger-section .access { - float: right; -} -.swagger-section .auth { - float: right; -} -.swagger-section .api-ic { - height: 18px; - vertical-align: middle; - display: inline-block; - background: url(../images/explorer_icons.png) no-repeat; -} -.swagger-section .api-ic .api_information_panel { - position: relative; - margin-top: 20px; - margin-left: -5px; - background: #FFF; - border: 1px solid #ccc; - border-radius: 5px; - display: none; - font-size: 13px; - max-width: 300px; - line-height: 30px; - color: black; - padding: 5px; -} -.swagger-section .api-ic .api_information_panel p .api-msg-enabled { - color: green; -} -.swagger-section .api-ic .api_information_panel p .api-msg-disabled { - color: red; -} -.swagger-section .api-ic:hover .api_information_panel { - position: absolute; - display: block; -} -.swagger-section .ic-info { - background-position: 0 0; - width: 18px; - margin-top: -6px; - margin-left: 4px; -} -.swagger-section .ic-warning { - background-position: -60px 0; - width: 18px; - margin-top: -6px; - margin-left: 4px; -} -.swagger-section .ic-error { - background-position: -30px 0; - width: 18px; - margin-top: -6px; - margin-left: 4px; -} -.swagger-section .ic-off { - background-position: -90px 0; - width: 58px; - margin-top: -4px; - cursor: pointer; -} -.swagger-section .ic-on { - background-position: -160px 0; - width: 58px; - margin-top: -4px; - cursor: pointer; -} -.swagger-section #header { - background-color: #89bf04; - padding: 14px; -} -.swagger-section #header a#logo { - font-size: 1.5em; - font-weight: bold; - text-decoration: none; - background: transparent url(../images/logo_small.png) no-repeat left center; - padding: 20px 0 20px 40px; - color: white; -} -.swagger-section #header form#api_selector { - display: block; - clear: none; - float: right; -} -.swagger-section #header form#api_selector .input { - display: block; - clear: none; - float: left; - margin: 0 10px 0 0; -} -.swagger-section #header form#api_selector .input input#input_apiKey { - width: 200px; -} -.swagger-section #header form#api_selector .input input#input_baseUrl { - width: 400px; -} -.swagger-section #header form#api_selector .input a#explore { - display: block; - text-decoration: none; - font-weight: bold; - padding: 6px 8px; - font-size: 0.9em; - color: white; - background-color: #547f00; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - -o-border-radius: 4px; - -ms-border-radius: 4px; - -khtml-border-radius: 4px; - border-radius: 4px; -} -.swagger-section #header form#api_selector .input a#explore:hover { - background-color: #547f00; -} -.swagger-section #header form#api_selector .input input { - font-size: 0.9em; - padding: 3px; - margin: 0; -} -.swagger-section #content_message { - margin: 10px 15px; - font-style: italic; - color: #999999; -} -.swagger-section #message-bar { - min-height: 30px; - text-align: center; - padding-top: 10px; -} diff --git a/reference/ucp/3.0/api/css/style.css b/reference/ucp/3.0/api/css/style.css deleted file mode 100644 index fc21a31db5..0000000000 --- a/reference/ucp/3.0/api/css/style.css +++ /dev/null @@ -1,250 +0,0 @@ -.swagger-section #header a#logo { - font-size: 1.5em; - font-weight: bold; - text-decoration: none; - background: transparent url(../images/logo.png) no-repeat left center; - padding: 20px 0 20px 40px; -} -#text-head { - font-size: 80px; - font-family: 'Roboto', sans-serif; - color: #ffffff; - float: right; - margin-right: 20%; -} -.navbar-fixed-top .navbar-nav { - height: auto; -} -.navbar-fixed-top .navbar-brand { - height: auto; -} -.navbar-header { - height: auto; -} -.navbar-inverse { - background-color: #000; - border-color: #000; -} -#navbar-brand { - margin-left: 20%; -} -.navtext { - font-size: 10px; -} -.h1, -h1 { - font-size: 60px; -} -.navbar-default .navbar-header .navbar-brand { - color: #a2dfee; -} -/* tag titles */ -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a { - color: #393939; - font-family: 'Arvo', serif; - font-size: 1.5em; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a:hover { - color: black; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 { - color: #525252; - padding-left: 0px; - display: block; - clear: none; - float: left; - font-family: 'Arvo', serif; - font-weight: bold; -} -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: #0A0A0A; -} -.container1 { - width: 1500px; - margin: auto; - margin-top: 0; - background-image: url('../images/shield.png'); - background-repeat: no-repeat; - background-position: -40px -20px; - margin-bottom: 210px; -} -.container-inner { - width: 1200px; - margin: auto; - background-color: rgba(223, 227, 228, 0.75); - padding-bottom: 40px; - padding-top: 40px; - border-radius: 15px; -} -.header-content { - padding: 0; - width: 1000px; -} -.title1 { - font-size: 80px; - font-family: 'Vollkorn', serif; - color: #404040; - text-align: center; - padding-top: 40px; - padding-bottom: 100px; -} -#icon { - margin-top: -18px; -} -.subtext { - font-size: 25px; - font-style: italic; - color: #08b; - text-align: right; - padding-right: 250px; -} -.bg-primary { - background-color: #00468b; -} -.navbar-default .nav > li > a, -.navbar-default .nav > li > a:focus { - color: #08b; -} -.navbar-default .nav > li > a, -.navbar-default .nav > li > a:hover { - color: #08b; -} -.navbar-default .nav > li > a, -.navbar-default .nav > li > a:focus:hover { - color: #08b; -} -.text-faded { - font-size: 25px; - font-family: 'Vollkorn', serif; -} -.section-heading { - font-family: 'Vollkorn', serif; - font-size: 45px; - padding-bottom: 10px; -} -hr { - border-color: #00468b; - padding-bottom: 10px; -} -.description { - margin-top: 20px; - padding-bottom: 200px; -} -.description li { - font-family: 'Vollkorn', serif; - font-size: 25px; - color: #525252; - margin-left: 28%; - padding-top: 5px; -} -.gap { - margin-top: 200px; -} -.troubleshootingtext { - color: rgba(255, 255, 255, 0.7); - padding-left: 30%; -} -.troubleshootingtext li { - list-style-type: circle; - font-size: 25px; - padding-bottom: 5px; -} -.overlay { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 1000; -} -.block.response_body.json:hover { - cursor: pointer; -} -.backdrop { - color: blue; -} -#myModal { - height: 100%; -} -.modal-backdrop { - bottom: 0; - position: fixed; -} -.curl { - padding: 10px; - font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; - font-size: 0.9em; - max-height: 400px; - margin-top: 5px; - overflow-y: auto; - background-color: #fcf6db; - border: 1px solid #e5e0c6; - border-radius: 4px; -} -.curl_title { - font-size: 1.1em; - margin: 0; - padding: 15px 0 5px; - font-family: 'Open Sans', 'Helvetica Neue', Arial, sans-serif; - font-weight: 500; - line-height: 1.1; -} -.footer { - display: none; -} -.swagger-section .swagger-ui-wrap h2 { - padding: 0; -} -h2 { - margin: 0; - margin-bottom: 5px; -} -.markdown p { - font-size: 15px; - font-family: 'Arvo', serif; -} -.swagger-section .swagger-ui-wrap .code { - font-size: 15px; - font-family: 'Arvo', serif; -} -.swagger-section .swagger-ui-wrap b { - font-family: 'Arvo', serif; -} -#signin:hover { - cursor: pointer; -} -.dropdown-menu { - padding: 15px; -} -.navbar-right .dropdown-menu { - left: 0; - right: auto; -} -#signinbutton { - width: 100%; - height: 32px; - font-size: 13px; - font-weight: bold; - color: #08b; -} -.navbar-default .nav > li .details { - color: #000000; - text-transform: none; - font-size: 15px; - font-weight: normal; - font-family: 'Open Sans', sans-serif; - font-style: italic; - line-height: 20px; - top: -2px; -} -.navbar-default .nav > li .details:hover { - color: black; -} -#signout { - width: 100%; - height: 32px; - font-size: 13px; - font-weight: bold; - color: #08b; -} diff --git a/reference/ucp/3.0/api/css/typography.css b/reference/ucp/3.0/api/css/typography.css deleted file mode 100644 index 27c3751ac2..0000000000 --- a/reference/ucp/3.0/api/css/typography.css +++ /dev/null @@ -1,26 +0,0 @@ -/* droid-sans-regular - latin */ -@font-face { - font-family: 'Droid Sans'; - font-style: normal; - font-weight: 400; - src: url('../fonts/droid-sans-v6-latin-regular.eot'); /* IE9 Compat Modes */ - src: local('Droid Sans'), local('DroidSans'), - url('../fonts/droid-sans-v6-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('../fonts/droid-sans-v6-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */ - url('../fonts/droid-sans-v6-latin-regular.woff') format('woff'), /* Modern Browsers */ - url('../fonts/droid-sans-v6-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */ - url('../fonts/droid-sans-v6-latin-regular.svg#DroidSans') format('svg'); /* Legacy iOS */ -} -/* droid-sans-700 - latin */ -@font-face { - font-family: 'Droid Sans'; - font-style: normal; - font-weight: 700; - src: url('../fonts/droid-sans-v6-latin-700.eot'); /* IE9 Compat Modes */ - src: local('Droid Sans Bold'), local('DroidSans-Bold'), - url('../fonts/droid-sans-v6-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('../fonts/droid-sans-v6-latin-700.woff2') format('woff2'), /* Super Modern Browsers */ - url('../fonts/droid-sans-v6-latin-700.woff') format('woff'), /* Modern Browsers */ - url('../fonts/droid-sans-v6-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */ - url('../fonts/droid-sans-v6-latin-700.svg#DroidSans') format('svg'); /* Legacy iOS */ -} diff --git a/reference/ucp/3.0/api/custom/custom.css b/reference/ucp/3.0/api/custom/custom.css deleted file mode 100644 index c365077de3..0000000000 --- a/reference/ucp/3.0/api/custom/custom.css +++ /dev/null @@ -1,15 +0,0 @@ -em { - font-weight: bold; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content h5 { - color: #10654A; -} -.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content h5 { - font-size: 1.0em; - margin: 0px; - padding: 15px 0px 5px; -} - -.swagger-section .swagger-ui-wrap table tr td:nth-child(2) textarea { - display: none !important; -} diff --git a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-700.eot b/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-700.eot deleted file mode 100644 index d8524983ad..0000000000 Binary files a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-700.eot and /dev/null differ diff --git a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-700.svg b/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-700.svg deleted file mode 100644 index a54bbbbf25..0000000000 --- a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-700.svg +++ /dev/null @@ -1,411 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-700.ttf b/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-700.ttf deleted file mode 100644 index 15896c441f..0000000000 Binary files a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-700.ttf and /dev/null differ diff --git a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-700.woff b/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-700.woff deleted file mode 100644 index 67e3e25f83..0000000000 Binary files a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-700.woff and /dev/null differ diff --git a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-700.woff2 b/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-700.woff2 deleted file mode 100644 index 1e726a7cfc..0000000000 Binary files a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-700.woff2 and /dev/null differ diff --git a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-regular.eot b/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-regular.eot deleted file mode 100644 index ac2698e85a..0000000000 Binary files a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-regular.eot and /dev/null differ diff --git a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-regular.svg b/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-regular.svg deleted file mode 100644 index d9f2a214f9..0000000000 --- a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-regular.svg +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-regular.ttf b/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-regular.ttf deleted file mode 100644 index fb8cea662b..0000000000 Binary files a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-regular.ttf and /dev/null differ diff --git a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-regular.woff b/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-regular.woff deleted file mode 100644 index abf19899f7..0000000000 Binary files a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-regular.woff and /dev/null differ diff --git a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-regular.woff2 b/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-regular.woff2 deleted file mode 100644 index 9f93f74c3b..0000000000 Binary files a/reference/ucp/3.0/api/fonts/droid-sans-v6-latin-regular.woff2 and /dev/null differ diff --git a/reference/ucp/3.0/api/images/explorer_icons.png b/reference/ucp/3.0/api/images/explorer_icons.png deleted file mode 100644 index ed9d2fffb6..0000000000 Binary files a/reference/ucp/3.0/api/images/explorer_icons.png and /dev/null differ diff --git a/reference/ucp/3.0/api/images/favicon-16x16.png b/reference/ucp/3.0/api/images/favicon-16x16.png deleted file mode 100644 index 66b1a5bfb9..0000000000 Binary files a/reference/ucp/3.0/api/images/favicon-16x16.png and /dev/null differ diff --git a/reference/ucp/3.0/api/images/favicon-32x32.png b/reference/ucp/3.0/api/images/favicon-32x32.png deleted file mode 100644 index 32f319f89b..0000000000 Binary files a/reference/ucp/3.0/api/images/favicon-32x32.png and /dev/null differ diff --git a/reference/ucp/3.0/api/images/favicon.ico b/reference/ucp/3.0/api/images/favicon.ico deleted file mode 100644 index 8b60bcf06a..0000000000 Binary files a/reference/ucp/3.0/api/images/favicon.ico and /dev/null differ diff --git a/reference/ucp/3.0/api/images/logo_small.png b/reference/ucp/3.0/api/images/logo_small.png deleted file mode 100644 index 5496a65579..0000000000 Binary files a/reference/ucp/3.0/api/images/logo_small.png and /dev/null differ diff --git a/reference/ucp/3.0/api/images/pet_store_api.png b/reference/ucp/3.0/api/images/pet_store_api.png deleted file mode 100644 index f9f9cd4aeb..0000000000 Binary files a/reference/ucp/3.0/api/images/pet_store_api.png and /dev/null differ diff --git a/reference/ucp/3.0/api/images/throbber.gif b/reference/ucp/3.0/api/images/throbber.gif deleted file mode 100644 index 0639388924..0000000000 Binary files a/reference/ucp/3.0/api/images/throbber.gif and /dev/null differ diff --git a/reference/ucp/3.0/api/images/wordnik_api.png b/reference/ucp/3.0/api/images/wordnik_api.png deleted file mode 100644 index dca4f1455a..0000000000 Binary files a/reference/ucp/3.0/api/images/wordnik_api.png and /dev/null differ diff --git a/reference/ucp/3.0/api/index.html b/reference/ucp/3.0/api/index.html deleted file mode 100644 index c496e357eb..0000000000 --- a/reference/ucp/3.0/api/index.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - Universal Control Plane API Documentation - - - - - - - - - - - - - - - - - - - - - - - -
    - - - diff --git a/reference/ucp/3.0/api/index.md b/reference/ucp/3.0/api/index.md deleted file mode 100644 index 6db4fe4dbe..0000000000 --- a/reference/ucp/3.0/api/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -description: Learn how to use the Universal Control Plane REST API -keywords: ucp, api, reference -title: Universal Control Plane 3.0 API ---- - -
    -
    - - - - - - - - - - - - - - - - - - - - -
    diff --git a/reference/ucp/3.0/api/lang/en.js b/reference/ucp/3.0/api/lang/en.js deleted file mode 100644 index 776a8b72e0..0000000000 --- a/reference/ucp/3.0/api/lang/en.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Warning: Deprecated", - "Implementation Notes":"Implementation Notes", - "Response Class":"Response Class", - "Status":"Status", - "Parameters":"Parameters", - "Parameter":"Parameter", - "Value":"Value", - "Description":"Description", - "Parameter Type":"Parameter Type", - "Data Type":"Data Type", - "Response Messages":"Response Messages", - "HTTP Status Code":"HTTP Status Code", - "Reason":"Reason", - "Response Model":"Response Model", - "Request URL":"Request URL", - "Response Body":"Response Body", - "Response Code":"Response Code", - "Response Headers":"Response Headers", - "Hide Response":"Hide Response", - "Headers":"Headers", - "Try it out!":"Try it out!", - "Show/Hide":"Show/Hide", - "List Operations":"List Operations", - "Expand Operations":"Expand Operations", - "Raw":"Raw", - "can't parse JSON. Raw result":"can't parse JSON. Raw result", - "Model Schema":"Model Schema", - "Model":"Model", - "apply":"apply", - "Username":"Username", - "Password":"Password", - "Terms of service":"Terms of service", - "Created by":"Created by", - "See more at":"See more at", - "Contact the developer":"Contact the developer", - "api version":"api version", - "Response Content Type":"Response Content Type", - "fetching resource":"fetching resource", - "fetching resource list":"fetching resource list", - "Explore":"Explore", - "Show Swagger Petstore Example Apis":"Show Swagger Petstore Example Apis", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"Can't read from server. It may not have the appropriate access-control-origin settings.", - "Please specify the protocol for":"Please specify the protocol for", - "Can't read swagger JSON from":"Can't read swagger JSON from", - "Finished Loading Resource Information. Rendering Swagger UI":"Finished Loading Resource Information. Rendering Swagger UI", - "Unable to read api":"Unable to read api", - "from path":"from path", - "server returned":"server returned" -}); diff --git a/reference/ucp/3.0/api/lang/es.js b/reference/ucp/3.0/api/lang/es.js deleted file mode 100644 index a8dff60b6a..0000000000 --- a/reference/ucp/3.0/api/lang/es.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Advertencia: Obsoleto", - "Implementation Notes":"Notas de implementación", - "Response Class":"Clase de la Respuesta", - "Status":"Status", - "Parameters":"Parámetros", - "Parameter":"Parámetro", - "Value":"Valor", - "Description":"Descripción", - "Parameter Type":"Tipo del Parámetro", - "Data Type":"Tipo del Dato", - "Response Messages":"Mensajes de la Respuesta", - "HTTP Status Code":"Código de Status HTTP", - "Reason":"Razón", - "Response Model":"Modelo de la Respuesta", - "Request URL":"URL de la Solicitud", - "Response Body":"Cuerpo de la Respuesta", - "Response Code":"Código de la Respuesta", - "Response Headers":"Encabezados de la Respuesta", - "Hide Response":"Ocultar Respuesta", - "Try it out!":"Pruébalo!", - "Show/Hide":"Mostrar/Ocultar", - "List Operations":"Listar Operaciones", - "Expand Operations":"Expandir Operaciones", - "Raw":"Crudo", - "can't parse JSON. Raw result":"no puede parsear el JSON. Resultado crudo", - "Model Schema":"Esquema del Modelo", - "Model":"Modelo", - "apply":"aplicar", - "Username":"Nombre de usuario", - "Password":"Contraseña", - "Terms of service":"Términos de Servicio", - "Created by":"Creado por", - "See more at":"Ver más en", - "Contact the developer":"Contactar al desarrollador", - "api version":"versión de la api", - "Response Content Type":"Tipo de Contenido (Content Type) de la Respuesta", - "fetching resource":"buscando recurso", - "fetching resource list":"buscando lista del recurso", - "Explore":"Explorar", - "Show Swagger Petstore Example Apis":"Mostrar Api Ejemplo de Swagger Petstore", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"No se puede leer del servidor. Tal vez no tiene la configuración de control de acceso de origen (access-control-origin) apropiado.", - "Please specify the protocol for":"Por favor, especificar el protocola para", - "Can't read swagger JSON from":"No se puede leer el JSON de swagger desde", - "Finished Loading Resource Information. Rendering Swagger UI":"Finalizada la carga del recurso de Información. Mostrando Swagger UI", - "Unable to read api":"No se puede leer la api", - "from path":"desde ruta", - "server returned":"el servidor retornó" -}); diff --git a/reference/ucp/3.0/api/lang/pt.js b/reference/ucp/3.0/api/lang/pt.js deleted file mode 100644 index f2e7c13d41..0000000000 --- a/reference/ucp/3.0/api/lang/pt.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Aviso: Depreciado", - "Implementation Notes":"Notas de Implementação", - "Response Class":"Classe de resposta", - "Status":"Status", - "Parameters":"Parâmetros", - "Parameter":"Parâmetro", - "Value":"Valor", - "Description":"Descrição", - "Parameter Type":"Tipo de parâmetro", - "Data Type":"Tipo de dados", - "Response Messages":"Mensagens de resposta", - "HTTP Status Code":"Código de status HTTP", - "Reason":"Razão", - "Response Model":"Modelo resposta", - "Request URL":"URL requisição", - "Response Body":"Corpo da resposta", - "Response Code":"Código da resposta", - "Response Headers":"Cabeçalho da resposta", - "Headers":"Cabeçalhos", - "Hide Response":"Esconder resposta", - "Try it out!":"Tente agora!", - "Show/Hide":"Mostrar/Esconder", - "List Operations":"Listar operações", - "Expand Operations":"Expandir operações", - "Raw":"Cru", - "can't parse JSON. Raw result":"Falha ao analisar JSON. Resulto cru", - "Model Schema":"Modelo esquema", - "Model":"Modelo", - "apply":"Aplicar", - "Username":"Usuário", - "Password":"Senha", - "Terms of service":"Termos do serviço", - "Created by":"Criado por", - "See more at":"Veja mais em", - "Contact the developer":"Contate o desenvolvedor", - "api version":"Versão api", - "Response Content Type":"Tipo de conteúdo da resposta", - "fetching resource":"busca recurso", - "fetching resource list":"buscando lista de recursos", - "Explore":"Explorar", - "Show Swagger Petstore Example Apis":"Show Swagger Petstore Example Apis", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"Não é possível ler do servidor. Pode não ter as apropriadas configurações access-control-origin", - "Please specify the protocol for":"Por favor especifique o protocolo", - "Can't read swagger JSON from":"Não é possível ler o JSON Swagger de", - "Finished Loading Resource Information. Rendering Swagger UI":"Carregar informação de recurso finalizada. Renderizando Swagger UI", - "Unable to read api":"Não foi possível ler api", - "from path":"do caminho", - "server returned":"servidor retornou" -}); diff --git a/reference/ucp/3.0/api/lang/ru.js b/reference/ucp/3.0/api/lang/ru.js deleted file mode 100644 index 065100f73f..0000000000 --- a/reference/ucp/3.0/api/lang/ru.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Ворнинг: Депрекейтед", - "Implementation Notes":"Заметки", - "Response Class":"Пример ответа", - "Status":"Статус", - "Parameters":"Параметры", - "Parameter":"Параметр", - "Value":"Значение", - "Description":"Описание", - "Parameter Type":"Тип параметра", - "Data Type":"Тип данных", - "HTTP Status Code":"HTTP код", - "Reason":"Причина", - "Response Model":"Структура ответа", - "Request URL":"URL запроса", - "Response Body":"Тело ответа", - "Response Code":"HTTP код ответа", - "Response Headers":"Заголовки ответа", - "Hide Response":"Спрятать ответ", - "Response Messages":"Что может прийти в ответ", - "Try it out!":"Попробовать!", - "Show/Hide":"Показать/Скрыть", - "List Operations":"Операции кратко", - "Expand Operations":"Операции подробно", - "Raw":"В сыром виде", - "can't parse JSON. Raw result":"Не удается распарсить ответ:", - "Model Schema":"Структура", - "Model":"Описание", - "apply":"применить", - "Username":"Имя пользователя", - "Password":"Пароль", - "Terms of service":"Условия использования", - "Created by":"Разработано", - "See more at":"Еще тут", - "Contact the developer":"Связаться с разработчиком", - "api version":"Версия API", - "Response Content Type":"Content Type ответа", - "fetching resource":"Получение ресурса", - "fetching resource list":"Получение ресурсов", - "Explore":"Поехали", - "Show Swagger Petstore Example Apis":"Показать примеры АПИ", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"Не удается получить ответ от сервера. Возможно, какая-то лажа с настройками доступа", - "Please specify the protocol for":"Пожалуйста, укажите протогол для", - "Can't read swagger JSON from":"Не получается прочитать swagger json из", - "Finished Loading Resource Information. Rendering Swagger UI":"Загрузка информации о ресурсах завершена. Рендерим", - "Unable to read api":"Не удалось прочитать api", - "from path":"по адресу", - "server returned":"сервер сказал" -}); diff --git a/reference/ucp/3.0/api/lang/tr.js b/reference/ucp/3.0/api/lang/tr.js deleted file mode 100644 index 16426a9c34..0000000000 --- a/reference/ucp/3.0/api/lang/tr.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Uyarı: Deprecated", - "Implementation Notes":"Gerçekleştirim Notları", - "Response Class":"Dönen Sınıf", - "Status":"Statü", - "Parameters":"Parametreler", - "Parameter":"Parametre", - "Value":"Değer", - "Description":"Açıklama", - "Parameter Type":"Parametre Tipi", - "Data Type":"Veri Tipi", - "Response Messages":"Dönüş Mesajı", - "HTTP Status Code":"HTTP Statü Kodu", - "Reason":"Gerekçe", - "Response Model":"Dönüş Modeli", - "Request URL":"İstek URL", - "Response Body":"Dönüş İçeriği", - "Response Code":"Dönüş Kodu", - "Response Headers":"Dönüş Üst Bilgileri", - "Hide Response":"Dönüşü Gizle", - "Headers":"Üst Bilgiler", - "Try it out!":"Dene!", - "Show/Hide":"Göster/Gizle", - "List Operations":"Operasyonları Listele", - "Expand Operations":"Operasyonları Aç", - "Raw":"Ham", - "can't parse JSON. Raw result":"JSON çözümlenemiyor. Ham sonuç", - "Model Schema":"Model Şema", - "Model":"Model", - "apply":"uygula", - "Username":"Kullanıcı Adı", - "Password":"Parola", - "Terms of service":"Servis şartları", - "Created by":"Oluşturan", - "See more at":"Daha fazlası için", - "Contact the developer":"Geliştirici ile İletişime Geçin", - "api version":"api versiyon", - "Response Content Type":"Dönüş İçerik Tipi", - "fetching resource":"kaynak getiriliyor", - "fetching resource list":"kaynak listesi getiriliyor", - "Explore":"Keşfet", - "Show Swagger Petstore Example Apis":"Swagger Petstore Örnek Api'yi Gör", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"Sunucudan okuma yapılamıyor. Sunucu access-control-origin ayarlarınızı kontrol edin.", - "Please specify the protocol for":"Lütfen istenen adres için protokol belirtiniz", - "Can't read swagger JSON from":"Swagger JSON bu kaynaktan okunamıyor", - "Finished Loading Resource Information. Rendering Swagger UI":"Kaynak baglantısı tamamlandı. Swagger UI gösterime hazırlanıyor", - "Unable to read api":"api okunamadı", - "from path":"yoldan", - "server returned":"sunucuya dönüldü" -}); diff --git a/reference/ucp/3.0/api/lang/translator.js b/reference/ucp/3.0/api/lang/translator.js deleted file mode 100644 index 591f6d4094..0000000000 --- a/reference/ucp/3.0/api/lang/translator.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -/** - * Translator for documentation pages. - * - * To enable translation you should include one of language-files in your index.html - * after . - * For example - - * - * If you wish to translate some new texsts you should do two things: - * 1. Add a new phrase pair ("New Phrase": "New Translation") into your language file (for example lang/ru.js). It will be great if you add it in other language files too. - * 2. Mark that text it templates this way New Phrase or . - * The main thing here is attribute data-sw-translate. Only inner html, title-attribute and value-attribute are going to translate. - * - */ -window.SwaggerTranslator = { - - _words:[], - - translate: function(sel) { - var $this = this; - sel = sel || '[data-sw-translate]'; - - $(sel).each(function() { - $(this).html($this._tryTranslate($(this).html())); - - $(this).val($this._tryTranslate($(this).val())); - $(this).attr('title', $this._tryTranslate($(this).attr('title'))); - }); - }, - - _tryTranslate: function(word) { - return this._words[$.trim(word)] !== undefined ? this._words[$.trim(word)] : word; - }, - - learn: function(wordsMap) { - this._words = wordsMap; - } -}; diff --git a/reference/ucp/3.0/api/lib/backbone-min.js b/reference/ucp/3.0/api/lib/backbone-min.js deleted file mode 100644 index a3f544be6d..0000000000 --- a/reference/ucp/3.0/api/lib/backbone-min.js +++ /dev/null @@ -1,15 +0,0 @@ -// Backbone.js 1.1.2 - -(function(t,e){if(typeof define==="function"&&define.amd){define(["underscore","jquery","exports"],function(i,r,s){t.Backbone=e(t,s,i,r)})}else if(typeof exports!=="undefined"){var i=require("underscore");e(t,exports,i)}else{t.Backbone=e(t,{},t._,t.jQuery||t.Zepto||t.ender||t.$)}})(this,function(t,e,i,r){var s=t.Backbone;var n=[];var a=n.push;var o=n.slice;var h=n.splice;e.VERSION="1.1.2";e.$=r;e.noConflict=function(){t.Backbone=s;return this};e.emulateHTTP=false;e.emulateJSON=false;var u=e.Events={on:function(t,e,i){if(!c(this,"on",t,[e,i])||!e)return this;this._events||(this._events={});var r=this._events[t]||(this._events[t]=[]);r.push({callback:e,context:i,ctx:i||this});return this},once:function(t,e,r){if(!c(this,"once",t,[e,r])||!e)return this;var s=this;var n=i.once(function(){s.off(t,n);e.apply(this,arguments)});n._callback=e;return this.on(t,n,r)},off:function(t,e,r){var s,n,a,o,h,u,l,f;if(!this._events||!c(this,"off",t,[e,r]))return this;if(!t&&!e&&!r){this._events=void 0;return this}o=t?[t]:i.keys(this._events);for(h=0,u=o.length;h").attr(t);this.setElement(r,false)}else{this.setElement(i.result(this,"el"),false)}}});e.sync=function(t,r,s){var n=T[t];i.defaults(s||(s={}),{emulateHTTP:e.emulateHTTP,emulateJSON:e.emulateJSON});var a={type:n,dataType:"json"};if(!s.url){a.url=i.result(r,"url")||M()}if(s.data==null&&r&&(t==="create"||t==="update"||t==="patch")){a.contentType="application/json";a.data=JSON.stringify(s.attrs||r.toJSON(s))}if(s.emulateJSON){a.contentType="application/x-www-form-urlencoded";a.data=a.data?{model:a.data}:{}}if(s.emulateHTTP&&(n==="PUT"||n==="DELETE"||n==="PATCH")){a.type="POST";if(s.emulateJSON)a.data._method=n;var o=s.beforeSend;s.beforeSend=function(t){t.setRequestHeader("X-HTTP-Method-Override",n);if(o)return o.apply(this,arguments)}}if(a.type!=="GET"&&!s.emulateJSON){a.processData=false}if(a.type==="PATCH"&&k){a.xhr=function(){return new ActiveXObject("Microsoft.XMLHTTP")}}var h=s.xhr=e.ajax(i.extend(a,s));r.trigger("request",r,h,s);return h};var k=typeof window!=="undefined"&&!!window.ActiveXObject&&!(window.XMLHttpRequest&&(new XMLHttpRequest).dispatchEvent);var T={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};e.ajax=function(){return e.$.ajax.apply(e.$,arguments)};var $=e.Router=function(t){t||(t={});if(t.routes)this.routes=t.routes;this._bindRoutes();this.initialize.apply(this,arguments)};var S=/\((.*?)\)/g;var H=/(\(\?)?:\w+/g;var A=/\*\w+/g;var I=/[\-{}\[\]+?.,\\\^$|#\s]/g;i.extend($.prototype,u,{initialize:function(){},route:function(t,r,s){if(!i.isRegExp(t))t=this._routeToRegExp(t);if(i.isFunction(r)){s=r;r=""}if(!s)s=this[r];var n=this;e.history.route(t,function(i){var a=n._extractParameters(t,i);n.execute(s,a);n.trigger.apply(n,["route:"+r].concat(a));n.trigger("route",r,a);e.history.trigger("route",n,r,a)});return this},execute:function(t,e){if(t)t.apply(this,e)},navigate:function(t,i){e.history.navigate(t,i);return this},_bindRoutes:function(){if(!this.routes)return;this.routes=i.result(this,"routes");var t,e=i.keys(this.routes);while((t=e.pop())!=null){this.route(t,this.routes[t])}},_routeToRegExp:function(t){t=t.replace(I,"\\$&").replace(S,"(?:$1)?").replace(H,function(t,e){return e?t:"([^/?]+)"}).replace(A,"([^?]*?)");return new RegExp("^"+t+"(?:\\?([\\s\\S]*))?$")},_extractParameters:function(t,e){var r=t.exec(e).slice(1);return i.map(r,function(t,e){if(e===r.length-1)return t||null;return t?decodeURIComponent(t):null})}});var N=e.History=function(){this.handlers=[];i.bindAll(this,"checkUrl");if(typeof window!=="undefined"){this.location=window.location;this.history=window.history}};var R=/^[#\/]|\s+$/g;var O=/^\/+|\/+$/g;var P=/msie [\w.]+/;var C=/\/$/;var j=/#.*$/;N.started=false;i.extend(N.prototype,u,{interval:50,atRoot:function(){return this.location.pathname.replace(/[^\/]$/,"$&/")===this.root},getHash:function(t){var e=(t||this).location.href.match(/#(.*)$/);return e?e[1]:""},getFragment:function(t,e){if(t==null){if(this._hasPushState||!this._wantsHashChange||e){t=decodeURI(this.location.pathname+this.location.search);var i=this.root.replace(C,"");if(!t.indexOf(i))t=t.slice(i.length)}else{t=this.getHash()}}return t.replace(R,"")},start:function(t){if(N.started)throw new Error("Backbone.history has already been started");N.started=true;this.options=i.extend({root:"/"},this.options,t);this.root=this.options.root;this._wantsHashChange=this.options.hashChange!==false;this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var r=this.getFragment();var s=document.documentMode;var n=P.exec(navigator.userAgent.toLowerCase())&&(!s||s<=7);this.root=("/"+this.root+"/").replace(O,"/");if(n&&this._wantsHashChange){var a=e.$('