diff --git a/404.md b/404.md index 8d9cf07ed6..8aa08de7c5 100644 --- a/404.md +++ b/404.md @@ -6,11 +6,5 @@ notoc: true tree: false --- -It seems the page you're looking for doesn't exist. Maybe you're on the wrong -track, maybe you found a broken link. Who knows? - -Either way, here's a couple of options for you: - -* [Open an issue](https://github.com/docker/docker.github.io/issues/new?title=I%20found%20a%20broken%20link&body=%3CDescribe%20how%20you%20got%20there%3E) -* [Go to back](/) -* [Tweet us something](https://twitter.com/docker) +![https://docs.docker.com/](/images/404-docs.png) +Please file an issue at [https://github.com/docker/docker.github.io](https://github.com/docker/docker.github.io/issues/new). diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2bc191cfe1..d9c125d19f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -121,8 +121,5 @@ know. ## Style guide -If you have questions about how to write for Docker's documentation, have a look -at the [style guide](/opensource/doc-style/). The style -guide provides guidance about grammar, syntax, formatting, styling, language, or -tone. If something isn't clear in the guide, submit an issue to let us -know or submit a pull request to help us improve it. +Docker does not currently maintain a style guide. Use your best judgment, and +try to follow the example set by the existing documentation. diff --git a/README.md b/README.md index bf6e17e9cc..0cda197bd6 100644 --- a/README.md +++ b/README.md @@ -174,7 +174,8 @@ You have two options: To read the docs offline, you can use either a standalone container or a swarm service. To see all available tags, go to -[Docker Cloud](https://cloud.docker.com/app/docs/repository/docker/docs/docker.github.io/tags). +[Docker Hub](https://docs.docker.com/docker-hub/). + The following examples use the `latest` tag: - Run a single container: @@ -197,7 +198,7 @@ Either way, you can now access the docs at port 4000 on your Docker host. - `/_data/toc.yaml` defines the left-hand navigation for the docs - `/js/menu.js` defines most of the docs-specific JS such as TOC generation and menu syncing -- `/css/documentation.css` defines the docs-specific style rules +- `/css/style.scss` defines the docs-specific style rules - `/_layouts/docs.html` is the HTML template file, which defines the header and footer, and includes all the JS/CSS that serves the docs content ## Relative linking for GitHub viewing @@ -318,7 +319,7 @@ still optimizes the bandwidth during browsing). ## Building archives and the live published docs -All the images described below are automatically built using Docker Cloud. To +All the images described below are automatically built using Docker Hub. To build the site manually, from scratch, including all utility and archive images, see the [README in the publish-tools branch](https://github.com/docker/docker.github.io/blob/publish-tools/README.md). diff --git a/_config.yml b/_config.yml index d10163795a..5cd0eb10b6 100644 --- a/_config.yml +++ b/_config.yml @@ -22,8 +22,8 @@ exclude: ["_scripts", "apidocs/layouts", "Gemfile", "hooks"] latest_stable_docker_engine_api_version: "1.39" docker_ce_stable_version: "18.09" docker_ce_edge_version: "18.09" -docker_ee_version: "2.1" -compose_version: "1.23.1" +docker_ee_version: "18.09" +compose_version: "1.23.2" machine_version: "0.16.0" distribution_version: "2.6" dtr_version: "2.6" @@ -95,7 +95,7 @@ defaults: - scope: path: "install" values: - win_latest_build: "docker-17.06.2-ee-17" + win_latest_build: "docker-18.09.0" - scope: path: "datacenter" values: @@ -148,14 +148,14 @@ defaults: values: ucp_org: "docker" ucp_repo: "ucp" - ucp_version: "3.1.0" + ucp_version: "3.1.1" - scope: # This is a bit of a hack for the get-support.md topic. path: "ee" values: ucp_org: "docker" ucp_repo: "ucp" dtr_repo: "dtr" - ucp_version: "3.1.0" + ucp_version: "3.1.1" dtr_version: "2.6.0" dtr_latest_image: "docker/dtr:2.6.0" - scope: @@ -164,7 +164,7 @@ defaults: hide_from_sitemap: true ucp_org: "docker" ucp_repo: "ucp" - ucp_version: "3.0.6" + ucp_version: "3.0.7" - scope: path: "datacenter/ucp/2.2" values: diff --git a/_data/advisories.yaml b/_data/advisories.yaml index 66a1e0a50a..f69a8b7ca1 100644 --- a/_data/advisories.yaml +++ b/_data/advisories.yaml @@ -17,7 +17,6 @@ texts: swarm: "See [Swarm mode overview](/engine/swarm/) for the orchestration features introduced in Docker Engine 1.12. Only refer to the Docker Swarm documents below for information on the standalone Swarm product." swarm-standalone: "**You are viewing docs for legacy standalone Swarm.** These topics describe standalone Docker Swarm. In Docker 1.12 and higher, [Swarm mode](/engine/swarm/) is integrated with Docker Engine. Most users should use integrated Swarm mode — a good place to start is [Getting started with swarm mode](/engine/swarm/swarm-tutorial/), [Swarm mode CLI commands](/engine/swarm/index.md#swarm-mode-cli-commands), and the [Get started with Docker walkthrough](/get-started/)). Standalone Docker Swarm is not integrated into the Docker Engine API and CLI commands." engine: "This site contains documentation for the v1.12 release candidate version of Docker Engine. For the Docker Engine v1.11 docs, see [https://docs.docker.com/v1.11/](https://docs.docker.com/v1.11/). Docker for Mac and Docker for Windows are currently in Beta." - cloud-swarm: "**Beta Feature.** Swarm Mode for Docker Cloud is currently a public Beta." # URL based advisories diff --git a/_data/ddc_offline_files_2.yaml b/_data/ddc_offline_files_2.yaml index 8032b1e1ce..dc493531a0 100644 --- a/_data/ddc_offline_files_2.yaml +++ b/_data/ddc_offline_files_2.yaml @@ -6,6 +6,14 @@ - product: "ucp" version: "3.1" tar-files: + - description: "3.1.1 Linux" + url: https://packages.docker.com/caas/ucp_images_3.1.1.tar.gz + - description: "3.1.1 Windows Server 2016 LTSC" + url: https://packages.docker.com/caas/ucp_images_win_2016_3.1.1.tar.gz + - description: "3.1.1 Windows Server 1709" + url: https://packages.docker.com/caas/ucp_images_win_1709_3.1.1.tar.gz + - description: "3.1.1 Windows Server 1803" + url: https://packages.docker.com/caas/ucp_images_win_1803_3.1.1.tar.gz - description: "3.1.0 Linux" url: https://packages.docker.com/caas/ucp_images_3.1.0.tar.gz - description: "3.1.0 Windows Server 2016 LTSC" @@ -17,6 +25,14 @@ - product: "ucp" version: "3.0" tar-files: + - description: "3.0.7 Linux" + url: https://packages.docker.com/caas/ucp_images_3.0.7.tar.gz + - description: "3.0.7 Windows Server 2016 LTSC" + url: https://packages.docker.com/caas/ucp_images_win_2016_3.0.7.tar.gz + - description: "3.0.7 Windows Server 1709" + url: https://packages.docker.com/caas/ucp_images_win_1709_3.0.7.tar.gz + - description: "3.0.7 Windows Server 1803" + url: https://packages.docker.com/caas/ucp_images_win_1803_3.0.7.tar.gz - description: "3.0.6 Linux" url: https://packages.docker.com/caas/ucp_images_3.0.6.tar.gz - description: "3.0.6 IBM Z" 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/not_edited_here.yaml b/_data/not_edited_here.yaml index 745c834845..a793c0005e 100644 --- a/_data/not_edited_here.yaml +++ b/_data/not_edited_here.yaml @@ -12,7 +12,7 @@ overrides: - path: /apidocs/ - description: "Auto-generated API docs for Docker Cloud, DTR, UCP. File an issue." + description: "Auto-generated API docs for DTR and UCP. File an issue." - path: /engine/api/ description: "ReDoc/Swagger API specs" diff --git a/_data/previewdocs.yaml b/_data/previewdocs.yaml deleted file mode 100644 index 37c933ccea..0000000000 --- a/_data/previewdocs.yaml +++ /dev/null @@ -1,13 +0,0 @@ -# Define Advisory texts -# can be used in page frontmatter, e.g.: -# previewflag: cloud-swarm -# modeled on advisories - -texts: - - cloud-swarm: "**Beta Feature.** Swarm Mode for Docker Cloud is currently a public Beta." - - -# URL based previewdocs -# any URL that begins with "/engine/" will get the "engine" preview -# will be over-ridden by the `previewdocs` frontmatter in the topic diff --git a/_data/redirects.csv b/_data/redirects.csv index e7120f63cd..3d6af48cf6 100644 --- a/_data/redirects.csv +++ b/_data/redirects.csv @@ -48,8 +48,9 @@ source,destination /v1.9/docker-hub/,/docker-hub/ /v1.10/docker-hub/,/docker-hub/ /v1.11/docker-hub/,/docker-hub/ -/login,https://cloud.docker.com/app/login +/login,https://hub.docker.com/ /bitbucket/use-docker-images-as-build-environments-in-bitbucket-pipelines-792298897.html,https://confluence.atlassian.com/bitbucket/use-docker-images-as-build-environments-in-bitbucket-pipelines-792298897.html /blog/docker-data-science/,https://www.dataquest.io/blog/docker-data-science/ /questions/19335444/how-to-assign-a-port-mapping-to-an-existing-docker-container,http://stackoverflow.com/questions/19335444/how-to-assign-a-port-mapping-to-an-existing-docker-container /engine/examples/mongodb/,/samples/library/mongo/ + diff --git a/_data/toc.yaml b/_data/toc.yaml index 82dea02647..dc4b8c23da 100644 --- a/_data/toc.yaml +++ b/_data/toc.yaml @@ -487,6 +487,8 @@ guides: title: NIST SP 800-53 - path: /compliance/nist/800_190/ title: NIST SP 800-190 + - path: /compliance/nist/fips140_2/ + title: FIPS 140-2 - path: /compliance/nist/nistir_8176/ title: NISTIR 8176 - path: /compliance/nist/itl_october2017/ @@ -1413,9 +1415,6 @@ reference: - title: Registry API path: /registry/spec/api/ nosync: true - - title: Cloud API - path: /apidocs/docker-cloud/ - nosync: true - sectiontitle: Drivers and specifications section: @@ -1729,6 +1728,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 @@ -2490,8 +2491,10 @@ manuals: path: /ee/dtr/admin/configure/deploy-caches/ - title: Cache deployment strategy path: /ee/dtr/admin/configure/deploy-caches/strategy/ - - title: Deploy a DTR cache + - title: Deploy a DTR cache with Docker Swarm path: /ee/dtr/admin/configure/deploy-caches/simple/ + - title: Deploy a DTR cache with Kubernetes + path: /ee/dtr/admin/configure/deploy-caches/simple-kube/ - title: Configure caches for high availability path: /ee/dtr/admin/configure/deploy-caches/high-availability/ - title: Cache configuration reference @@ -2658,10 +2661,14 @@ manuals: section: - path: /datacenter/dtr/2.5/guides/admin/configure/deploy-caches/ title: Overview - - path: /datacenter/dtr/2.5/guides/admin/configure/deploy-caches/tls/ - title: Deploy caches with TLS - - path: /datacenter/dtr/2.5/guides/admin/configure/deploy-caches/chaining/ - title: Chain multiple caches + - path: /datacenter/dtr/2.5/guides/admin/configure/deploy-caches/strategy/ + title: Cache deployment strategy + - path: /datacenter/dtr/2.5/guides/admin/configure/deploy-caches/simple/ + title: Deploy a DTR cache + - path: /datacenter/dtr/2.5/guides/admin/configure/deploy-caches/high-availability/ + title: Configure caches for high availability + - path: /datacenter/dtr/2.5/guides/admin/configure/deploy-caches/configuration-reference/ + title: Cache configuration reference - path: /datacenter/dtr/2.5/guides/admin/configure/garbage-collection/ title: Garbage collection - path: /datacenter/dtr/2.5/guides/admin/configure/use-a-web-proxy/ @@ -3374,179 +3381,6 @@ manuals: title: Get support - title: Get support path: /ee/get-support/ -- sectiontitle: Docker Cloud - section: - - sectiontitle: Migration - section: - - path: /docker-cloud/migration/ - title: Migration overview - - path: /docker-cloud/migration/cloud-to-swarm/ - title: Migrate to Docker CE - - path: /docker-cloud/migration/cloud-to-kube-aks/ - title: Migration to AKS - - path: /docker-cloud/migration/cloud-to-kube-gke/ - title: Migrate to GKE - - path: /docker-cloud/migration/cloud-to-aws-ecs/ - title: Migrate to Amazon ECS - - path: /docker-cloud/migration/deregister-swarms/ - title: Deregister swarms - - path: /docker-cloud/migration/kube-primer/ - title: Kubernetes primer - - path: /docker-cloud/ - title: About Docker Cloud - - path: /docker-cloud/dockerid/ - title: Docker Cloud settings and Docker ID - - path: /docker-cloud/orgs/ - title: Organizations and teams - - sectiontitle: Manage builds and images - section: - - path: /docker-cloud/builds/ - title: Builds and images overview - - path: /docker-cloud/builds/repos/ - title: Docker Cloud repositories - - path: /docker-cloud/builds/link-source/ - title: Link to a source code repository - - path: /docker-cloud/builds/push-images/ - title: Push images to Docker Cloud - - path: /docker-cloud/builds/automated-build/ - title: Automated builds - - path: /docker-cloud/builds/automated-testing/ - title: Automated repository tests - - path: /docker-cloud/builds/advanced/ - title: Advanced options for autobuild and autotest - - sectiontitle: Manage swarms (beta swarm mode) - section: - - path: /docker-cloud/cloud-swarm/ - title: Overview - - path: /docker-cloud/cloud-swarm/using-swarm-mode/ - title: Using Swarm mode - - path: /docker-cloud/cloud-swarm/register-swarms/ - title: Register existing swarms - - path: /docker-cloud/cloud-swarm/create-cloud-swarm-aws/ - title: Create a new swarm on Amazon Web Services in Docker Cloud - - path: /docker-cloud/cloud-swarm/create-cloud-swarm-azure/ - title: Create a new swarm on Microsoft Azure in Docker Cloud - - path: /docker-cloud/cloud-swarm/connect-to-swarm/ - title: Connect to a swarm through Docker Cloud - - path: /docker-cloud/cloud-swarm/link-aws-swarm/ - title: Link Amazon Web Services to Docker Cloud - - path: /docker-cloud/cloud-swarm/link-azure-swarm/ - title: Link Microsoft Azure Cloud Services to Docker Cloud - - path: /docker-cloud/cloud-swarm/ssh-key-setup/ - title: Set up SSH keys - - sectiontitle: Manage Infrastructure (standard mode) - section: - - path: /docker-cloud/infrastructure/ - title: Infrastructure overview - - path: /docker-cloud/infrastructure/deployment-strategies/ - title: Container distribution strategies - - path: /docker-cloud/infrastructure/link-aws/ - title: Link to Amazon Web Services hosts - - path: /docker-cloud/infrastructure/link-do/ - title: Link to DigitalOcean hosts - - path: /docker-cloud/infrastructure/link-azure/ - title: Link to Microsoft Azure hosts - - path: /docker-cloud/infrastructure/link-packet/ - title: Link to Packet hosts - - path: /docker-cloud/infrastructure/link-softlayer/ - title: Link to SoftLayer hosts - - path: /docker-cloud/infrastructure/ssh-into-a-node/ - title: SSH into a Docker Cloud-managed node - - path: /docker-cloud/infrastructure/docker-upgrade/ - title: Upgrade Docker on a node - - path: /docker-cloud/infrastructure/byoh/ - title: Use the Docker Cloud agent - - path: /docker-cloud/infrastructure/cloud-on-packet.net-faq/ - title: Use Docker Cloud and Packet.net - - path: /docker-cloud/infrastructure/cloud-on-aws-faq/ - title: Use Docker Cloud on AWS - - sectiontitle: Manage nodes and apps (standard mode) - section: - - path: /docker-cloud/standard/ - title: Overview - - sectiontitle: Getting started - section: - - path: /docker-cloud/getting-started/ - title: Getting started with Docker Cloud - - path: /docker-cloud/getting-started/intro_cloud/ - title: Introducing Docker Cloud - - path: /docker-cloud/getting-started/connect-infra/ - title: Link to your infrastructure - - path: /docker-cloud/getting-started/your_first_node/ - title: Deploy your first node - - path: /docker-cloud/getting-started/your_first_service/ - title: Deploy your first service - - sectiontitle: Deploy an application - section: - - path: /docker-cloud/getting-started/deploy-app/1_introduction/ - title: Introduction to deploying an app in Docker Cloud - - path: /docker-cloud/getting-started/deploy-app/2_set_up/ - title: Set up your environment - - path: /docker-cloud/getting-started/deploy-app/3_prepare_the_app/ - title: Prepare the application - - path: /docker-cloud/getting-started/deploy-app/4_push_to_cloud_registry/ - title: Push the image to Docker Cloud's Registry - - path: /docker-cloud/getting-started/deploy-app/5_deploy_the_app_as_a_service/ - title: Deploy the app as a Docker Cloud service - - path: /docker-cloud/getting-started/deploy-app/6_define_environment_variables/ - title: Define environment variables - - path: /docker-cloud/getting-started/deploy-app/7_scale_the_service/ - title: Scale the service - - path: /docker-cloud/getting-started/deploy-app/8_view_logs/ - title: View service logs - - path: /docker-cloud/getting-started/deploy-app/9_load-balance_the_service/ - title: Load-balance the service - - path: /docker-cloud/getting-started/deploy-app/10_provision_a_data_backend_for_your_service/ - title: Provision a data backend for the service - - path: /docker-cloud/getting-started/deploy-app/11_service_stacks/ - title: Stackfiles for your service - - path: /docker-cloud/getting-started/deploy-app/12_data_management_with_volumes/ - title: Data management with volumes - - sectiontitle: Manage applications - section: - - path: /docker-cloud/apps/ - title: Applications in Docker Cloud - - path: /docker-cloud/apps/deploy-to-cloud-btn/ - title: Add a deploy to Docker Cloud button - - path: /docker-cloud/apps/auto-destroy/ - title: Automatic container destroy - - path: /docker-cloud/apps/autorestart/ - title: Automatic container restart - - path: /docker-cloud/apps/auto-redeploy/ - title: Automatic service redeploy - - path: /docker-cloud/apps/load-balance-hello-world/ - title: Create a proxy or load balancer - - path: /docker-cloud/apps/deploy-tags/ - title: Deployment tags - - path: /docker-cloud/apps/stacks/ - title: Manage service stacks - - path: /docker-cloud/apps/ports/ - title: Publish and expose service or container ports - - path: /docker-cloud/apps/service-redeploy/ - title: Redeploy running services - - path: /docker-cloud/apps/service-scaling/ - title: Scale your service - - path: /docker-cloud/apps/api-roles/ - title: Service API roles - - path: /docker-cloud/apps/service-links/ - title: Service discovery and links - - path: /docker-cloud/apps/triggers/ - title: Use triggers - - path: /docker-cloud/apps/volumes/ - title: Work with data volumes - - path: /docker-cloud/apps/stack-yaml-reference/ - title: Cloud stack file YAML reference - - path: /docker-cloud/slack-integration/ - title: Docker Cloud notifications in Slack - - path: /apidocs/docker-cloud/ - title: Docker Cloud API - nosync: true - - path: /docker-cloud/installing-cli/ - title: The Docker Cloud CLI - - path: /docker-cloud/docker-errors-faq/ - title: Known issues in Docker Cloud - - path: /docker-cloud/release-notes/ - title: Release notes - sectiontitle: Docker Compose section: - path: /compose/overview/ @@ -3801,48 +3635,50 @@ manuals: title: Migrate from Boot2Docker to Machine - path: /release-notes/docker-machine/ title: Docker Machine release notes -- sectiontitle: Docker Store - section: - - path: /docker-store/ - title: About Docker Store - - sectiontitle: Docker Store FAQs - section: - - path: /docker-store/customer_faq/ - title: Customer FAQs - - path: /docker-store/publisher_faq/ - title: Publisher FAQs - - sectiontitle: For Publishers - section: - - path: /docker-store/publish/ - title: Publish content on Docker Store - - path: /docker-store/certify-images/ - title: Certify Docker images - - path: /docker-store/certify-plugins-logging/ - title: Certify Docker logging plugins - - path: /docker-store/trustchain/ - title: Docker Store trust chain - - path: /docker-store/byol/ - title: Bring Your Own License (BYOL) - sectiontitle: Docker Hub section: - path: /docker-hub/ - title: Overview of Docker Hub - - path: /docker-hub/accounts/ - title: Use Docker Hub with Docker ID - - path: /docker-hub/orgs/ - title: Teams & organizations + title: Quickstart - path: /docker-hub/repos/ - title: Repositories on Docker Hub - - path: /docker-hub/builds/ - title: Automated builds + title: Repositories + - path: /docker-hub/official_images/ + title: Official Images + - path: /docker-hub/orgs/ + title: Teams & Organizations - path: /docker-hub/webhooks/ - title: Webhooks for automated builds - - path: /docker-hub/bitbucket/ - title: Automated builds with Bitbucket - - path: /docker-hub/github/ - title: Automated builds from GitHub - - path: /docker-hub/official_repos/ - title: Official repositories on Docker Hub + title: Webhooks + - path: /docker-hub/slack_integration/ + title: Slack Integration + - path: /docker-hub/upgrade/ + title: Upgrading your plan + - sectiontitle: Automated Builds + section: + - path: /docker-hub/builds/ + title: Set up Automated builds + - path: /docker-hub/builds/automated-testing/ + title: Testing in Automated Builds + - path: /docker-hub/builds/advanced/ + title: Advanced Automated Builds + - path: /docker-hub/builds/link-source/ + title: Link to GitHub and BitBucket + - path: /docker-hub/builds/classic/ + title: Classic Automated Builds + - sectiontitle: Publisher & Certified Content + section: + - path: /docker-hub/publish/ + title: Overview + - path: /docker-hub/publish/customer_faq/ + title: User FAQs + - path: /docker-hub/publish/publisher_faq/ + title: Publisher FAQs + - path: /docker-hub/publish/certify-images/ + title: Certify Images & Plugins + - path: /docker-hub/publish/certify-plugins-logging/ + title: Certify Logging Plugins + - path: /docker-hub/publish/trustchain/ + title: Trust Chain + - path: /docker-hub/publish/byol/ + title: Bring Your Own License (BYOL) - sectiontitle: Open-source projects section: - sectiontitle: Docker Notary @@ -3962,9 +3798,6 @@ manuals: - path: /release-notes/docker-compose/ title: Docker Compose nosync: true - - path: /docker-cloud/release-notes/ - title: Docker Cloud - nosync: true - path: /docker-for-aws/release-notes/ title: Docker for AWS nosync: true diff --git a/_includes/api-version-matrix.md b/_includes/api-version-matrix.md index 89adc111a8..28cde9838f 100644 --- a/_includes/api-version-matrix.md +++ b/_includes/api-version-matrix.md @@ -1,6 +1,8 @@ | Docker version | Maximum API version | Change log | |:---------------|:---------------------------|:---------------------------------------------------------| +| 18.09 | [1.39](/engine/api/v1.39/) | [changes](/engine/api/version-history/#v139-api-changes) | +| 18.06 | [1.38](/engine/api/v1.38/) | [changes](/engine/api/version-history/#v138-api-changes) | | 18.05 | [1.37](/engine/api/v1.37/) | [changes](/engine/api/version-history/#v137-api-changes) | | 18.04 | [1.37](/engine/api/v1.37/) | [changes](/engine/api/version-history/#v137-api-changes) | | 18.03 | [1.37](/engine/api/v1.37/) | [changes](/engine/api/version-history/#v137-api-changes) | diff --git a/_includes/content/cloud-swarm-overview.md b/_includes/content/cloud-swarm-overview.md deleted file mode 100644 index 2017970350..0000000000 --- a/_includes/content/cloud-swarm-overview.md +++ /dev/null @@ -1,9 +0,0 @@ -You can now create _new_ Docker Swarms from within Docker Cloud as well as -register existing swarms. - -When you create a swarm, Docker Cloud connects to the Cloud provider on your -behalf, and uses the provider's APIs and a provider-specific template to launch -Docker instances. The instances are then joined to a swarm and the swarm is -configured using your input. When you access the swarm from Docker Cloud, the -system forwards your commands directly to the Docker instances running in the -swarm. diff --git a/_includes/content/compose-extfields-sub.md b/_includes/content/compose-extfields-sub.md index cbcec1cde0..c6af94c088 100644 --- a/_includes/content/compose-extfields-sub.md +++ b/_includes/content/compose-extfields-sub.md @@ -9,7 +9,7 @@ your Compose file and their name start with the `x-` character sequence. > of service, volume, network, config and secret definitions. ```none -version: '2.1' +version: '3.4' x-custom: items: - a diff --git a/_includes/content/ssh/ssh-add-keys-to-agent.md b/_includes/content/ssh/ssh-add-keys-to-agent.md index 82f26bea8a..5837d5906f 100644 --- a/_includes/content/ssh/ssh-add-keys-to-agent.md +++ b/_includes/content/ssh/ssh-add-keys-to-agent.md @@ -55,7 +55,7 @@ passphrases in your keychain. 2. Add your SSH private key to the ssh-agent. ```none - $ ssh-add -K ~/.ssh/id_rsa + $ ssh-add ~/.ssh/id_rsa ``` If you created your key with a different name or have an existing key @@ -81,7 +81,7 @@ passphrases in your keychain. 2. Add your SSH private key to the ssh-agent. ```none - $ ssh-add -K ~/.ssh/id_rsa + $ ssh-add ~/.ssh/id_rsa ``` If you created your key with a different name or have an existing key diff --git a/_includes/content/ssh/ssh-overview.md b/_includes/content/ssh/ssh-overview.md index 00f0c4f086..4a595008b8 100644 --- a/_includes/content/ssh/ssh-overview.md +++ b/_includes/content/ssh/ssh-overview.md @@ -2,7 +2,7 @@ provides authentication and encrypts data communication over insecure networks. These topics describe how to find existing SSH keys or generate new ones, and -add the public key to your Docker Cloud account. GitHub has a good set of +add the public key to your Docker Hub account. GitHub has a good set of topics on [Connecting to GitHub with SSH](https://help.github.com/articles/connecting-to-github-with-ssh/), which you can tailor to SSH scenarios beyond GitHub, including Docker. The quick-look diff --git a/_includes/ee-linux-install-reuse.md b/_includes/ee-linux-install-reuse.md index 4b075b899f..695196bfc6 100644 --- a/_includes/ee-linux-install-reuse.md +++ b/_includes/ee-linux-install-reuse.md @@ -30,7 +30,7 @@ For Docker Community Edition on {{ linux-dist-cap }}, see [Get Docker CE for Cen To install Docker EE, you will need the URL of the Docker EE repository associated with your trial or subscription: -1. Go to [https://store.docker.com/my-content](https://store.docker.com/my-content){: target="_blank" class="_" }. All of your subscriptions and trials are listed. +1. Go to [https://hub.docker.com/my-content](https://hub.docker.com/my-content){: target="_blank" class="_" }. All of your subscriptions and trials are listed. 2. Click the **Setup** button for **Docker Enterprise Edition for {{ linux-dist-long }}**. 3. Copy the URL from **Copy and paste this URL to download your Edition** and save it for later use. @@ -137,20 +137,12 @@ You only need to set up the repository once, after which you can install Docker {% elsif section == "install-using-yum-repo" %} -There are currently two versions of Docker EE Engine available: +> ***NOTE:*** If you need to run Docker EE 2.0, please see the following instructions: +> * [18.03](https://docs.docker.com/v18.03/ee/supported-platforms/) - Older Docker EE Engine only release +> * [17.06](https://docs.docker.com/v17.06/engine/installation/) - Docker Enterprise Edition 2.0 (Docker Engine, +> UCP, and DTR). -* 18.03 - Use this version if you're only running Docker EE Engine. -* 17.06 - Use this version if you're using Docker Enterprise Edition 2.0 (Docker -Engine, UCP, and DTR). - -1. By default, Docker EE Engine 17.06 is installed. If you want to install the -18.03 version run: - - ```bash - sudo yum-config-manager --enable docker-ee-stable-18.03 - ``` - -2. Install the latest patch release, or go to the next step to install a specific version: +1. Install the latest patch release, or go to the next step to install a specific version: ```bash $ sudo yum -y install docker-ee @@ -158,27 +150,34 @@ Engine, UCP, and DTR). If prompted to accept the GPG key, verify that the fingerprint matches `{{ gpg-fingerprint }}`, and if so, accept it. -3. To install a _specific version_ of Docker EE (recommended in production), list versions and install: + +2. To install a _specific version_ of Docker EE (recommended in production), list versions and install: a. List and sort the versions available in your repo. This example sorts results by version number, highest to lowest, and is truncated: ```bash $ sudo yum list docker-ee --showduplicates | sort -r - docker-ee.x86_64 {{ site.docker_ee_version }}.ee.2-1.el7.{{ linux-dist }} docker-ee-stable-17.06 + docker-ee.x86_64 {{ site.docker_ee_version }}.ee.2-1.el7.{{ linux-dist }} docker-ee-stable-18.09 ``` The list returned depends on which repositories you enabled, and is specific to your version of {{ linux-dist-long }} (indicated by `.el7` in this example). - b. Install a specific version by its **fully qualified package name** which is the package name (`docker-ee`) plus the version string (2nd column) up to the hyphen, for example: `docker-ee-17.06.1.ee.2` + b. Install a specific version by its **fully qualified package name** which is the package name (`docker-ee`) plus the version string (2nd column) up to the hyphen, for example: `docker-ee-18.09.0` ```bash $ sudo yum -y install ``` + 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 + ``` + Docker is installed but not started. The `docker` group is created, but no users are added to the group. -4. Start Docker: +3. Start Docker: > If using `devicemapper`, ensure it is properly configured before starting Docker, per the [storage guide](/storage/storagedriver/device-mapper-driver/){: target="_blank" class="_" }. @@ -186,7 +185,7 @@ Engine, UCP, and DTR). $ sudo systemctl start docker ``` -5. Verify that Docker EE is installed correctly by running the `hello-world` +4. Verify that Docker EE is installed correctly by running the `hello-world` image. This command downloads a test image, runs it in a container, prints an informational message, and exits: diff --git a/_includes/footer.html b/_includes/footer.html index 3f929ffe8a..9afab2104f 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -39,8 +39,7 @@
  • Community Edition
  • Enterprise Edition
  • Docker Datacenter
  • -
  • Docker Cloud
  • -
  • Docker Store
  • +
  • Docker Hub
  • diff --git a/_includes/global-header.html b/_includes/global-header.html index cf4dcbd764..b6aaf94384 100644 --- a/_includes/global-header.html +++ b/_includes/global-header.html @@ -33,8 +33,8 @@
  • Docs
  • Community
  • -
  • Create Docker ID
  • -
  • Sign In
  • +
  • Create Docker ID
  • +
  • Sign In
  • diff --git a/_includes/install-script.md b/_includes/install-script.md index 08e24fbf63..80014f274d 100644 --- a/_includes/install-script.md +++ b/_includes/install-script.md @@ -55,8 +55,8 @@ Remember to log out and back in for this to take effect! > **Warning**: > -> Adding a user to the "docker" group grants the ability to run containers -> which can be used to obtain root privileges on the docker host. Refer to +> Adding a user to the "docker" group grants them the ability to run containers +> which can be used to obtain root privileges on the Docker host. Refer to > [Docker Daemon Attack Surface](https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface) > for more information. {:.warning} diff --git a/_includes/kubernetes-mac-win.md b/_includes/kubernetes-mac-win.md index e4b895d95e..90f420dd37 100644 --- a/_includes/kubernetes-mac-win.md +++ b/_includes/kubernetes-mac-win.md @@ -13,7 +13,7 @@ Usage: {% include kubernetes-mac-win.md platform="mac" %} {% assign product = "Docker for Mac" %} {% capture min-version %}{{ product }} **17.12 CE Edge**{% endcapture %} - + {% capture version-caveat %} Kubernetes is available in {{ min-version }} and higher, and **18.06 Stable** and higher {% endcapture%} @@ -88,7 +88,7 @@ Run `kubectl get services -n my-app` to see only the services deployed in the ### Override the default orchestrator While testing Kubernetes, you may want to deploy some workloads in swarm mode. -Use the `DOCKER_ORCHESTRATOR` variable to override the default orchestrator for +Use the `DOCKER_STACK_ORCHESTRATOR` variable to override the default orchestrator for a given terminal session or a single Docker command. This variable can be unset (the default, in which case Kubernetes is the orchestrator) or set to `swarm` or `kubernetes`. The following command overrides the orchestrator for a single @@ -96,17 +96,24 @@ deployment, by setting the variable{% if platform == "mac"" %} at the start of the command itself. ```bash -DOCKER_ORCHESTRATOR=swarm docker stack deploy --compose-file /path/to/docker-compose.yml mystack +DOCKER_STACK_ORCHESTRATOR=swarm docker stack deploy --compose-file /path/to/docker-compose.yml mystack ```{% elsif platform == "windows" %} before running the command. ```shell -set DOCKER_ORCHESTRATOR=swarm +set DOCKER_STACK_ORCHESTRATOR=swarm docker stack deploy --compose-file /path/to/docker-compose.yml mystack ``` {% endif %} +Alternatively, the `--orchestrator` flag may be set to `swarm` or `kubernetes` +when deploying to override the default orchestrator for that deployment. + +```bash +docker stack deploy --orchestrator swarm --compose-file /path/to/docker-compose.yml mystack +``` + > **Note**: Deploying the same app in Kubernetes and swarm mode may lead to > conflicts with ports and service names. diff --git a/_includes/toc_pure_liquid.html b/_includes/toc_pure_liquid.html index 84bd122d9c..cd1a2ed60a 100644 --- a/_includes/toc_pure_liquid.html +++ b/_includes/toc_pure_liquid.html @@ -2,7 +2,7 @@ {% comment %} "...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe Usage: - {% include toc_pure_liquid.html html=content sanitize=true class="inline_toc" id="my_toc" toc_min=2 toc_max=3 my_name="unnamed" %} + {% include toc_pure_liquid.html html=content sanitize=true class="inline_toc" id="my_toc" toc_min=2 toc_max=3 %} Variables: * html (string) - the HTML of compiled markdown generated by kramdown in Jekyll @@ -11,7 +11,6 @@ * id (string) - an ID to assigned to the TOC * toc_min (int) - the minimum TOC header level to use (if not set, check page, then site, then default to 2) * toc_max (int) - the maximum TOC header level to use (if not set, check page, then site, then default to 3) - * page_name (string) - the URL of the page Output: An unordered list representing the table of contents of a markdown block. This snippet will only generate the table of contents and will NOT output the markdown given to it @@ -20,7 +19,6 @@ {% capture my_toc %}{% endcapture %} {% assign minHeader = include.toc_min | default: 2 %} {% assign maxHeader = include.toc_max | default: 3 %} - {% assign my_name = include.page_name | default: "unnamed" %} {% assign nodes = include.html | split: ' > This content is imported from > [the official Docker Library docs](https://github.com/docker-library/docs/tree/master/{{ page.repo}}/), -> and is provided by the original uploader. You can view the Docker Store page for this image at -> [https://store.docker.com/images/{{ page.repo }}](https://store.docker.com/images/{{ page.repo }}) +> and is provided by the original uploader. You can view the Docker Hub page for this image at +> [https://hub.docker.com/images/{{ page.repo }}](https://hub.docker.com/images/{{ page.repo }}) diff --git a/_scripts/make-archive-branch.sh b/_scripts/make-archive-branch.sh index 31d666f5b3..7ab787292e 100755 --- a/_scripts/make-archive-branch.sh +++ b/_scripts/make-archive-branch.sh @@ -85,9 +85,7 @@ bash _scripts/fetch-upstream-resources.sh -l # Currently, this is: # /samples/ # /docker-id/ -# /docker-cloud/ # /docker-hub/ -# /docker-store/ # These rely on _layout/archive-redirect.html only_live_contents=("samples" "docker-id" "docker-cloud" "docker-hub" "docker-store") @@ -145,5 +143,3 @@ echo " and get back to master, run the following:" echo echo " git reset --hard; git clean -fd; git checkout master; git branch -D v$version" echo - - diff --git a/_scss/_layout.scss b/_scss/_layout.scss index 5515605c20..b1894da2d6 100755 --- a/_scss/_layout.scss +++ b/_scss/_layout.scss @@ -185,6 +185,12 @@ section.section { padding-top: 20px; padding-bottom: 20px; } +/***Swagger***/ + +.swagger-section { + padding-top: 2rem; +} + /* * * global footer *********************************************************************** diff --git a/_scss/_navigation.scss b/_scss/_navigation.scss index 3047e1a4e1..183078fdf2 100755 --- a/_scss/_navigation.scss +++ b/_scss/_navigation.scss @@ -94,6 +94,11 @@ * */ +// Some links don't have 'href' attr, hence no mouse pointer +.nav-sidebar li a { + cursor: pointer; +} + .nav-sidebar>li>a { padding-right: 20px; padding-left: 20px; @@ -155,6 +160,12 @@ padding: 0 20px 20px 0; } +/* pointer for collapsed sidebar list items */ + +.collapsed +{ + cursor:pointer; +} /* * @@ -372,3 +383,5 @@ input:checked+.slider:before { float: left; margin: 2px 0 0; } + + diff --git a/apidocs/README.md b/apidocs/README.md deleted file mode 100644 index fac1a2e97f..0000000000 --- a/apidocs/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# The files in this directory are read-only - -The API docs for the products represented in this directory are generated -internally by Docker using our source code. If you have feedback on these -docs, the best way to let us know is to file an issue on GitHub. diff --git a/apidocs/cloud-api-source/.dockerignore b/apidocs/cloud-api-source/.dockerignore deleted file mode 100644 index 567609b123..0000000000 --- a/apidocs/cloud-api-source/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -build/ diff --git a/apidocs/cloud-api-source/.gitignore b/apidocs/cloud-api-source/.gitignore deleted file mode 100644 index 090a1f02df..0000000000 --- a/apidocs/cloud-api-source/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -.idea -.DS_Store diff --git a/apidocs/cloud-api-source/Dockerfile b/apidocs/cloud-api-source/Dockerfile deleted file mode 100644 index 9bd11f3778..0000000000 --- a/apidocs/cloud-api-source/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -FROM ubuntu:trusty - -RUN apt-get update && \ - DEBIAN_FRONTEND=noninteractive apt-get install -yq ruby ruby-dev build-essential git awscli && \ - gem install --no-ri --no-rdoc bundler -WORKDIR /app -ADD Gemfile /app/Gemfile -ADD Gemfile.lock /app/Gemfile.lock -RUN bundle install -ADD . /app - -ENV PATH=$PATH:/app AWS_ACCESS_KEY_ID=**setme** AWS_SECRET_ACCESS_KEY=**setme** BUCKET=**setme** - -EXPOSE 4567 -CMD ["bundle", "exec", "middleman", "server"] diff --git a/apidocs/cloud-api-source/Gemfile b/apidocs/cloud-api-source/Gemfile deleted file mode 100644 index 0933b9d683..0000000000 --- a/apidocs/cloud-api-source/Gemfile +++ /dev/null @@ -1,12 +0,0 @@ -source 'https://rubygems.org' - -# Middleman -gem 'middleman', '~>3.3.10' -gem 'middleman-gh-pages', '~> 0.0.3' -gem 'middleman-syntax', '~> 2.0.0' -gem 'middleman-autoprefixer', '~> 2.4.4' -gem 'rouge', '~> 1.9.0' -gem 'redcarpet', '~> 3.3.2' - -gem 'rake', '~> 10.4.2' -gem 'therubyracer', '~> 0.12.1', platforms: :ruby diff --git a/apidocs/cloud-api-source/Gemfile.lock b/apidocs/cloud-api-source/Gemfile.lock deleted file mode 100644 index fff5ee10cb..0000000000 --- a/apidocs/cloud-api-source/Gemfile.lock +++ /dev/null @@ -1,140 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - activesupport (4.1.11) - i18n (~> 0.6, >= 0.6.9) - json (~> 1.7, >= 1.7.7) - minitest (~> 5.1) - thread_safe (~> 0.1) - tzinfo (~> 1.1) - autoprefixer-rails (5.2.0.1) - execjs - json - celluloid (0.16.0) - timers (~> 4.0.0) - chunky_png (1.3.4) - coffee-script (2.4.1) - coffee-script-source - execjs - coffee-script-source (1.9.1.1) - compass (1.0.3) - chunky_png (~> 1.2) - compass-core (~> 1.0.2) - compass-import-once (~> 1.0.5) - rb-fsevent (>= 0.9.3) - rb-inotify (>= 0.9) - sass (>= 3.3.13, < 3.5) - compass-core (1.0.3) - multi_json (~> 1.0) - sass (>= 3.3.0, < 3.5) - compass-import-once (1.0.5) - sass (>= 3.2, < 3.5) - erubis (2.7.0) - execjs (2.5.2) - ffi (1.9.8) - haml (4.0.6) - tilt - hike (1.2.3) - hitimes (1.2.2) - hooks (0.4.0) - uber (~> 0.0.4) - i18n (0.7.0) - json (1.8.3) - kramdown (1.7.0) - libv8 (3.16.14.7) - listen (2.10.1) - celluloid (~> 0.16.0) - rb-fsevent (>= 0.9.3) - rb-inotify (>= 0.9) - middleman (3.3.12) - coffee-script (~> 2.2) - compass (>= 1.0.0, < 2.0.0) - compass-import-once (= 1.0.5) - execjs (~> 2.0) - haml (>= 4.0.5) - kramdown (~> 1.2) - middleman-core (= 3.3.12) - middleman-sprockets (>= 3.1.2) - sass (>= 3.4.0, < 4.0) - uglifier (~> 2.5) - middleman-autoprefixer (2.4.4) - autoprefixer-rails (~> 5.2.0) - middleman-core (>= 3.3.3) - middleman-core (3.3.12) - activesupport (~> 4.1.0) - bundler (~> 1.1) - erubis - hooks (~> 0.3) - i18n (~> 0.7.0) - listen (>= 2.7.9, < 3.0) - padrino-helpers (~> 0.12.3) - rack (>= 1.4.5, < 2.0) - rack-test (~> 0.6.2) - thor (>= 0.15.2, < 2.0) - tilt (~> 1.4.1, < 2.0) - middleman-gh-pages (0.0.3) - rake (> 0.9.3) - middleman-sprockets (3.4.2) - middleman-core (>= 3.3) - sprockets (~> 2.12.1) - sprockets-helpers (~> 1.1.0) - sprockets-sass (~> 1.3.0) - middleman-syntax (2.0.0) - middleman-core (~> 3.2) - rouge (~> 1.0) - minitest (5.7.0) - multi_json (1.11.1) - padrino-helpers (0.12.5) - i18n (~> 0.6, >= 0.6.7) - padrino-support (= 0.12.5) - tilt (~> 1.4.1) - padrino-support (0.12.5) - activesupport (>= 3.1) - rack (1.6.4) - rack-test (0.6.3) - rack (>= 1.0) - rake (10.4.2) - rb-fsevent (0.9.5) - rb-inotify (0.9.5) - ffi (>= 0.5.0) - redcarpet (3.3.2) - ref (1.0.5) - rouge (1.9.0) - sass (3.4.14) - sprockets (2.12.3) - hike (~> 1.2) - multi_json (~> 1.0) - rack (~> 1.0) - tilt (~> 1.1, != 1.3.0) - sprockets-helpers (1.1.0) - sprockets (~> 2.0) - sprockets-sass (1.3.1) - sprockets (~> 2.0) - tilt (~> 1.1) - therubyracer (0.12.2) - libv8 (~> 3.16.14.0) - ref - thor (0.19.1) - thread_safe (0.3.5) - tilt (1.4.1) - timers (4.0.1) - hitimes - tzinfo (1.2.2) - thread_safe (~> 0.1) - uber (0.0.13) - uglifier (2.7.1) - execjs (>= 0.3.0) - json (>= 1.8.0) - -PLATFORMS - ruby - -DEPENDENCIES - middleman (~> 3.3.10) - middleman-autoprefixer (~> 2.4.4) - middleman-gh-pages (~> 0.0.3) - middleman-syntax (~> 2.0.0) - rake (~> 10.4.2) - redcarpet (~> 3.3.2) - rouge (~> 1.9.0) - therubyracer (~> 0.12.1) diff --git a/apidocs/cloud-api-source/LICENSE b/apidocs/cloud-api-source/LICENSE deleted file mode 100644 index 5ceddf59f6..0000000000 --- a/apidocs/cloud-api-source/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2008-2013 Concur Technologies, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); you may -not use this file except in compliance with the License. You may obtain -a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations -under the License. \ No newline at end of file diff --git a/apidocs/cloud-api-source/Makefile b/apidocs/cloud-api-source/Makefile deleted file mode 100644 index b3119bb486..0000000000 --- a/apidocs/cloud-api-source/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -.PHONY: docs build release - -CONTAINER_NAME=api-build -export CONTAINER_NAME - -docs: build - docker run --rm -it -p 4567:4567 dockercloud/api-docs - -build: - git submodule init && git submodule update - docker build -t dockercloud/api-docs . - -release: build - docker rm -f $(CONTAINER_NAME) || true - docker run --name $(CONTAINER_NAME) -it \ - dockercloud/api-docs middleman build - docker cp $(CONTAINER_NAME):/app/build ../ - rm -r ../docker-cloud - mv ../build ../docker-cloud - cp ../docker-cloud/index.html ../layouts/single.html - # defuse text that looks like a go template - # commenting out until we know that we're not using Hugo anywhere & can remove -# grep -rl '{ {' ../docker-cloud/* | xargs sed -i~ "s/{ {/{ {/g" - #rm source/includes/node.md~ - #rm source/includes/stack.md~ - #rm ../source/index.html~ - #rm ../source/layouts/single.html~ - docker rm $(CONTAINER_NAME) diff --git a/apidocs/cloud-api-source/README.md b/apidocs/cloud-api-source/README.md deleted file mode 100644 index c636ecdb97..0000000000 --- a/apidocs/cloud-api-source/README.md +++ /dev/null @@ -1,29 +0,0 @@ -dockercloud/api-docs -==================== - -[![Deploy to Docker Cloud](https://files.cloud.docker.com/images/deploy-to-dockercloud.svg)](https://cloud.docker.com/stack/deploy/) - -If you find a typo or mismatch between the API and this documentation, send us a pull request! - - -## Usage - -To run it locally: - -```none -$ git clone --recursive https://github.com/docker/docker.github.io.git -$ make release -``` - -The documentation will be available in http://localhost:8000/ - -## Updating the release HTML - -As with the HTML generated by the DTR apidocs, the Docker Cloud documentation -needs to be generated and the resulting HTML committed to this repository. - -After merging all PR's, run `make release`. This will place the updated HTML -into the `apidocs/docker-cloud` directory. - -Create a new Pull Request and get it merged. - now this repository is ready for -the release process using `docker/docs.docker.com`. diff --git a/apidocs/cloud-api-source/Rakefile b/apidocs/cloud-api-source/Rakefile deleted file mode 100644 index 6a952e1e91..0000000000 --- a/apidocs/cloud-api-source/Rakefile +++ /dev/null @@ -1,6 +0,0 @@ -require 'middleman-gh-pages' -require 'rake/clean' - -CLOBBER.include('build') - -task :default => [:build] diff --git a/apidocs/cloud-api-source/config.rb b/apidocs/cloud-api-source/config.rb deleted file mode 100644 index 43bceaa5a4..0000000000 --- a/apidocs/cloud-api-source/config.rb +++ /dev/null @@ -1,38 +0,0 @@ -# Markdown -set :markdown_engine, :redcarpet -set :markdown, - fenced_code_blocks: true, - smartypants: true, - disable_indented_code_blocks: true, - prettify: true, - tables: true, - with_toc_data: true, - no_intra_emphasis: true - -# Assets -set :css_dir, 'stylesheets' -set :js_dir, 'javascripts' -set :images_dir, 'images' -set :fonts_dir, 'fonts' - -# Activate the syntax highlighter -activate :syntax - -activate :autoprefixer do |config| - config.browsers = ['last 2 version', 'Firefox ESR'] - config.cascade = false - config.inline = true -end - -# Github pages require relative links -activate :relative_assets -set :relative_links, true - -# Build Configuration -configure :build do - activate :minify_css - activate :minify_javascript - # activate :relative_assets - # activate :asset_hash - # activate :gzip -end diff --git a/apidocs/cloud-api-source/docker-compose.yml b/apidocs/cloud-api-source/docker-compose.yml deleted file mode 100644 index dc405f6e7f..0000000000 --- a/apidocs/cloud-api-source/docker-compose.yml +++ /dev/null @@ -1,4 +0,0 @@ -apidocs: - image: tutum/api-docs:latest - ports: - - "4567:4567" diff --git a/apidocs/cloud-api-source/font-selection.json b/apidocs/cloud-api-source/font-selection.json deleted file mode 100644 index 5e78f5d862..0000000000 --- a/apidocs/cloud-api-source/font-selection.json +++ /dev/null @@ -1,148 +0,0 @@ -{ - "IcoMoonType": "selection", - "icons": [ - { - "icon": { - "paths": [ - "M438.857 73.143q119.429 0 220.286 58.857t159.714 159.714 58.857 220.286-58.857 220.286-159.714 159.714-220.286 58.857-220.286-58.857-159.714-159.714-58.857-220.286 58.857-220.286 159.714-159.714 220.286-58.857zM512 785.714v-108.571q0-8-5.143-13.429t-12.571-5.429h-109.714q-7.429 0-13.143 5.714t-5.714 13.143v108.571q0 7.429 5.714 13.143t13.143 5.714h109.714q7.429 0 12.571-5.429t5.143-13.429zM510.857 589.143l10.286-354.857q0-6.857-5.714-10.286-5.714-4.571-13.714-4.571h-125.714q-8 0-13.714 4.571-5.714 3.429-5.714 10.286l9.714 354.857q0 5.714 5.714 10t13.714 4.286h105.714q8 0 13.429-4.286t6-10z" - ], - "attrs": [], - "isMulticolor": false, - "tags": [ - "exclamation-circle" - ], - "defaultCode": 61546, - "grid": 14 - }, - "attrs": [], - "properties": { - "id": 100, - "order": 4, - "prevSize": 28, - "code": 58880, - "name": "exclamation-sign", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 0 - }, - { - "icon": { - "paths": [ - "M585.143 786.286v-91.429q0-8-5.143-13.143t-13.143-5.143h-54.857v-292.571q0-8-5.143-13.143t-13.143-5.143h-182.857q-8 0-13.143 5.143t-5.143 13.143v91.429q0 8 5.143 13.143t13.143 5.143h54.857v182.857h-54.857q-8 0-13.143 5.143t-5.143 13.143v91.429q0 8 5.143 13.143t13.143 5.143h256q8 0 13.143-5.143t5.143-13.143zM512 274.286v-91.429q0-8-5.143-13.143t-13.143-5.143h-109.714q-8 0-13.143 5.143t-5.143 13.143v91.429q0 8 5.143 13.143t13.143 5.143h109.714q8 0 13.143-5.143t5.143-13.143zM877.714 512q0 119.429-58.857 220.286t-159.714 159.714-220.286 58.857-220.286-58.857-159.714-159.714-58.857-220.286 58.857-220.286 159.714-159.714 220.286-58.857 220.286 58.857 159.714 159.714 58.857 220.286z" - ], - "attrs": [], - "isMulticolor": false, - "tags": [ - "info-circle" - ], - "defaultCode": 61530, - "grid": 14 - }, - "attrs": [], - "properties": { - "id": 85, - "order": 3, - "name": "info-sign", - "prevSize": 28, - "code": 58882 - }, - "setIdx": 0, - "iconIdx": 2 - }, - { - "icon": { - "paths": [ - "M733.714 419.429q0-16-10.286-26.286l-52-51.429q-10.857-10.857-25.714-10.857t-25.714 10.857l-233.143 232.571-129.143-129.143q-10.857-10.857-25.714-10.857t-25.714 10.857l-52 51.429q-10.286 10.286-10.286 26.286 0 15.429 10.286 25.714l206.857 206.857q10.857 10.857 25.714 10.857 15.429 0 26.286-10.857l310.286-310.286q10.286-10.286 10.286-25.714zM877.714 512q0 119.429-58.857 220.286t-159.714 159.714-220.286 58.857-220.286-58.857-159.714-159.714-58.857-220.286 58.857-220.286 159.714-159.714 220.286-58.857 220.286 58.857 159.714 159.714 58.857 220.286z" - ], - "attrs": [], - "isMulticolor": false, - "tags": [ - "check-circle" - ], - "defaultCode": 61528, - "grid": 14 - }, - "attrs": [], - "properties": { - "id": 83, - "order": 9, - "prevSize": 28, - "code": 58886, - "name": "ok-sign" - }, - "setIdx": 0, - "iconIdx": 6 - }, - { - "icon": { - "paths": [ - "M658.286 475.429q0-105.714-75.143-180.857t-180.857-75.143-180.857 75.143-75.143 180.857 75.143 180.857 180.857 75.143 180.857-75.143 75.143-180.857zM950.857 950.857q0 29.714-21.714 51.429t-51.429 21.714q-30.857 0-51.429-21.714l-196-195.429q-102.286 70.857-228 70.857-81.714 0-156.286-31.714t-128.571-85.714-85.714-128.571-31.714-156.286 31.714-156.286 85.714-128.571 128.571-85.714 156.286-31.714 156.286 31.714 128.571 85.714 85.714 128.571 31.714 156.286q0 125.714-70.857 228l196 196q21.143 21.143 21.143 51.429z" - ], - "width": 951, - "attrs": [], - "isMulticolor": false, - "tags": [ - "search" - ], - "defaultCode": 61442, - "grid": 14 - }, - "attrs": [], - "properties": { - "id": 2, - "order": 1, - "prevSize": 28, - "code": 58887, - "name": "icon-search" - }, - "setIdx": 0, - "iconIdx": 7 - } - ], - "height": 1024, - "metadata": { - "name": "slate", - "license": "SIL OFL 1.1" - }, - "preferences": { - "showGlyphs": true, - "showQuickUse": true, - "showQuickUse2": true, - "showSVGs": true, - "fontPref": { - "prefix": "icon-", - "metadata": { - "fontFamily": "slate", - "majorVersion": 1, - "minorVersion": 0, - "description": "Based on FontAwesome", - "license": "SIL OFL 1.1" - }, - "metrics": { - "emSize": 1024, - "baseline": 6.25, - "whitespace": 50 - }, - "resetPoint": 58880, - "showSelector": false, - "selector": "class", - "classSelector": ".icon", - "showMetrics": false, - "showMetadata": true, - "showVersion": true, - "ie7": false - }, - "imagePref": { - "prefix": "icon-", - "png": true, - "useClassSelector": true, - "color": 4473924, - "bgColor": 16777215 - }, - "historySize": 100, - "showCodes": true, - "gridSize": 16, - "showLiga": false - } -} diff --git a/apidocs/cloud-api-source/publish.sh b/apidocs/cloud-api-source/publish.sh deleted file mode 100644 index 006e2da06b..0000000000 --- a/apidocs/cloud-api-source/publish.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -middleman build -aws s3 sync /app/build s3://${AWS_S3_BUCKET}/apidocs/docker-cloud/ --delete --acl public-read --region us-east-1 diff --git a/apidocs/cloud-api-source/source/fonts/slate.eot b/apidocs/cloud-api-source/source/fonts/slate.eot deleted file mode 100644 index 13c4839a19..0000000000 Binary files a/apidocs/cloud-api-source/source/fonts/slate.eot and /dev/null differ diff --git a/apidocs/cloud-api-source/source/fonts/slate.svg b/apidocs/cloud-api-source/source/fonts/slate.svg deleted file mode 100644 index 5f34982306..0000000000 --- a/apidocs/cloud-api-source/source/fonts/slate.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - -Generated by IcoMoon - - - - - - - - - - diff --git a/apidocs/cloud-api-source/source/fonts/slate.ttf b/apidocs/cloud-api-source/source/fonts/slate.ttf deleted file mode 100644 index ace9a46a7e..0000000000 Binary files a/apidocs/cloud-api-source/source/fonts/slate.ttf and /dev/null differ diff --git a/apidocs/cloud-api-source/source/fonts/slate.woff b/apidocs/cloud-api-source/source/fonts/slate.woff deleted file mode 100644 index 1e72e0ee00..0000000000 Binary files a/apidocs/cloud-api-source/source/fonts/slate.woff and /dev/null differ diff --git a/apidocs/cloud-api-source/source/fonts/slate.woff2 b/apidocs/cloud-api-source/source/fonts/slate.woff2 deleted file mode 100644 index 7c585a7273..0000000000 Binary files a/apidocs/cloud-api-source/source/fonts/slate.woff2 and /dev/null differ diff --git a/apidocs/cloud-api-source/source/images/logo.png b/apidocs/cloud-api-source/source/images/logo.png deleted file mode 100644 index 407d4cc3bf..0000000000 Binary files a/apidocs/cloud-api-source/source/images/logo.png and /dev/null differ diff --git a/apidocs/cloud-api-source/source/images/navbar.png b/apidocs/cloud-api-source/source/images/navbar.png deleted file mode 100644 index df38e90d87..0000000000 Binary files a/apidocs/cloud-api-source/source/images/navbar.png and /dev/null differ diff --git a/apidocs/cloud-api-source/source/includes/_errors.md b/apidocs/cloud-api-source/source/includes/_errors.md deleted file mode 100644 index 52615c126d..0000000000 --- a/apidocs/cloud-api-source/source/includes/_errors.md +++ /dev/null @@ -1,28 +0,0 @@ -# Errors - - -> API response structure - -```json -{ - "error": "Descriptive error message" -} -``` - -The Docker Cloud API uses the following error codes: - - -Error Code | Meaning ----------- | ------- -400 | Bad Request -- There's a problem in the content of your request. Retrying the same request will fail. -401 | Unauthorized -- Your API key is wrong or your account has been deactivated. -402 | Payment Required -- You need to provide billing information to perform this request. -403 | Forbidden -- Quota limit exceeded. Contact support to request a quota increase. -404 | Not Found -- The requested object cannot be found. -405 | Method Not Allowed -- The endpoint requested does not implement the method sent. -409 | Conflict -- The object cannot be created or updated because another object exists with the same unique fields -415 | Unsupported Media Type -- Make sure you are using `Accept` and `Content-Type` headers as `application/json` and that the data your are `POST`-ing or `PATCH`-ing is in valid JSON format. -429 | Too Many Requests -- You are being throttled because of too many requests in a short period of time. -500 | Internal Server Error -- There was a server error while processing your request. Try again later, or contact support. -503 | Service Unavailable -- We're temporarily offline for maintenance. Try again later. -504 | Gateway Timeout -- Our API servers are at full capacity. Try again later. \ No newline at end of file diff --git a/apidocs/cloud-api-source/source/includes/action.md b/apidocs/cloud-api-source/source/includes/action.md deleted file mode 100644 index fcbae2f329..0000000000 --- a/apidocs/cloud-api-source/source/includes/action.md +++ /dev/null @@ -1,353 +0,0 @@ -# Actions - -## Action - -> Example - -```json -{ - "action": "Cluster Create", - "end_date": "Wed, 17 Sep 2014 08:26:22 +0000", - "ip": "56.78.90.12", - "is_user_action": true, - "can_be_canceled": false, - "location": "New York, USA", - "method": "POST", - "object": "/api/infra/v1/user_namespace/cluster/eea638f4-b77a-4183-b241-22dbd7866f22/", - "path": "/api/infra/v1/user_namespace/cluster/", - "resource_uri": "/api/audit/v1/action/6246c558-976c-4df6-ba60-eb1a344a17af/", - "start_date": "Wed, 17 Sep 2014 08:26:22 +0000", - "state": "Success", - "user": "user_namespace", - "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.78.2 (KHTML, like Gecko) Version/7.0.6 Safari/537.78.2", - "uuid": "6246c558-976c-4df6-ba60-eb1a344a17af" -} -``` - -An action represents an API call by a user. Details of the API call such as timestamp, origin IP address, and user agent are logged in the action object. - -Simple API calls that do not require asynchronous execution will return immediately with the appropriate HTTP error code and an action object will be created either in `Success` or `Failed` states. API calls that do require asynchronous execution will return HTTP code `202 Accepted` immediately and create an action object in `In progress` state, which will change to `Success` or `Failed` state depending on the outcome of the operation being performed. In both cases the response will include a `X-DockerCloud-Action-URI` header with the resource URI of the created action. - - -### Attributes - -| Attribute | Description | -|:----------------|:-----------------------------------------------------------------------------------| -| resource_uri | A unique API endpoint that represents the action | -| uuid | A unique identifier for the action generated automatically on creation | -| object | The API object (resource URI) to which the action applies to | -| action | Name of the operation performed/being performed | -| method | HTTP method used to access the API | -| path | HTTP path of the API accessed | -| user | The user authenticated in the request that created the action | -| user_agent | The user agent provided by the client when accessing the API endpoint | -| start_date | Date and time when the API call was performed and the operation started processing | -| end_date | Date and time when the API call finished processing | -| state | State of the operation (see table below) | -| ip | IP address of the user that performed the API call | -| location | Geographic location of the IP address of the user that performed the API call | -| is_user_action | If the action has been triggered by the user | -| can_be_canceled | If the action can be canceled by the user in the middle of its execution | -| can_be_retried | If the action can be retried by the user | - - -### Action states - -| State | Description | -|:------------|:---------------------------------------------------------------------------------------------| -| Pending | The action needed asynchronous execution and it is waiting for an in progress action | -| In progress | The action needed asynchronous execution and is being performed | -| Canceling | The action is being canceled by user request | -| Canceled | The action has been canceled | -| Success | The action was executed successfully | -| Failed | There was an issue when the action was being performed. Check the logs for more information. | - - -## List all actions - -```python -import dockercloud - -actions = dockercloud.Action.list() -``` -```go -import "github.com/docker/go-dockercloud/dockercloud" - -actionList, err := dockercloud.ListActions() - -if err != nil { - log.Println(err) -} - -log.Println(actionList) -``` - -```http -GET /api/audit/v1/action/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud action ls -``` - -Lists all actions in chronological order. Returns a list of `Action` objects. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/audit/v1/action/` - -### Query Parameters - -| Parameter | Description | -|:----------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| uuid | Filter by UUID. | -| state | Filter by state. Possible values: `In progress`, `Success`, `Failed` | -| start_date | Filter by start date. Valid filtering values are `start_date__gte` (after or on the date supplied) and `start_date__lte` (before or on the date supplied) | -| end_date | Filter by end date. Valid filtering values are `end_date__gte` (after or on the date supplied) and `end_date__lte` (before or on the date supplied) | -| object | Filter by resource URI of the related object. This filter can only be combined with 'include_related' filter | -| include_related | There is a parent-child relationship between Docker Cloud objects, described in table `Relationships between Docker Cloud objects`. If set to 'true', will include the actions of the related objects to the object specified in "object" filter parameter. Possible values: 'true' or 'false' | - - -## Relationships between Docker Cloud objects - -| Object | Relationships | -|:-------------|:-------------------------------------------------------------------------------| -| Container | Container, service, stack (if any) | -| Service | All containers in the service, service, stack (if any) | -| Stack | All services in the stack, all containers in every service in the stack, stack | -| Node | Node, node cluster (if any) | -| Node cluster | All nodes in the cluster, node cluster | - - -## Get an action by UUID - -```python -import dockercloud - -action = dockercloud.Action.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -action, err := dockercloud.GetAction("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -log.Println(action) -``` - -```http -GET /api/audit/v1/action/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud action inspect 7eaf7fff -``` - - -Get all the details of an specific action - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/audit/v1/action/(uuid)/` - -### Path Parameters - -| Parameter | Description | -|:----------|:-----------------------------------| -| uuid | The UUID of the action to retrieve | - - -## Get the logs of an action - -> Example log line - -```json -{ - "type": "log", - "log": "Log line from the action", - "timestamp": 1433779324 -} -``` - -```python -import dockercloud - -def log_handler(message): - print message - -action = dockercloud.Action.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -action.logs(tail=300, follow=True, log_handler=log_handler) -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -c := make(chan dockercloud.Logs) -action, err := dockercloud.GetAction("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -go action.GetLogs(c) - -for { - log.Println(<-c) -} -``` - -```http -GET /api/audit/v1/action/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/logs/ HTTP/1.1 -Host: ws.cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Connection: Upgrade -Upgrade: websocket -``` - -```shell -docker-cloud action logs 7eaf7fff-882c-4f3d-9a8f-a22317ac00ce -``` - - -Get the logs of the specified action. - - -### Endpoint Type - -Available in Docker Cloud's **STREAM API** - -### HTTP Request - -`GET /api/audit/v1/action/(uuid)/logs/` - -### Path Parameters - -| Parameter | Description | -|:----------|:----------------------------------------| -| uuid | The UUID of the action to retrieve logs | - -### Query Parameters - -| Parameter | Description | -|:----------|:---------------------------------------------------------------------------| -| tail | Number of lines to show from the end of the logs (default: `300`) | -| follow | Whether to stream logs or close the connection immediately (default: true) | - -## Cancel an action - -```http -POST /api/audit/v1/action/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/cancel/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -action, err := dockercloud.GetAction("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -action, err = action.Cancel() - -if err != nil { - log.Println(err) -} - -log.Println(action) -``` - -Cancels an action in Pending or In progress state. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/audit/v1/action/(uuid)/cancel/` - -### Path Parameters - -| Parameter | Description | -|:----------|:---------------------------------| -| uuid | The UUID of the action to cancel | - - -## Retry an action - -```python -import dockercloud - -def log_handler(message): - print message - -action = dockercloud.Action.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -action.logs(tail=300, follow=True, log_handler=log_handler) -``` - -```http -POST /api/audit/v1/action/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/retry/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -action, err := dockercloud.GetAction("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -action, err = action.Retry() - -if err != nil { - log.Println(err) -} - -log.Println(action) -``` - -```shell -docker-cloud action logs 7eaf7fff-882c-4f3d-9a8f-a22317ac00ce -``` - -Retries an action in Success, Failed or Canceled state. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/audit/v1/action/(uuid)/retry/` - -### Path Parameters - -| Parameter | Description | -|:----------|:--------------------------------| -| uuid | The UUID of the action to retry | diff --git a/apidocs/cloud-api-source/source/includes/availabilityzone.md b/apidocs/cloud-api-source/source/includes/availabilityzone.md deleted file mode 100644 index 26e96960a9..0000000000 --- a/apidocs/cloud-api-source/source/includes/availabilityzone.md +++ /dev/null @@ -1,120 +0,0 @@ -# Availability Zones - -## Availability Zone - -> Example - -```json -{ - "available": true, - "name": "ap-northeast-1a", - "region": "/api/infra/v1/region/az/ap-northeast-1/", - "resource_uri": "/api/infra/v1/az/aws/ap-northeast-1/ap-northeast-1a/" -} -``` - -An Availability Zone is an isolated location inside a region. Providers that support availability zones: AWS - - -### Attributes - -Attribute | Description ---------- | ----------- -available | Whether the availability zone is currently available for new node deployments -name | An identifier for the availability zone -region | The resource URI of the region where the availability zone is allocated -resource_uri | A unique API endpoint that represents the zone - - -## List all availability zones - -```python -import dockercloud - -az = dockercloud.AZ.list() -``` - -```http -GET /api/infra/v1/az/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -az, err := dockercloud.ListAZ() -if err != nil { - log.Println(err) -} - -log.Println(az) -``` - -```shell -docker-cloud nodecluster az -``` - -Lists all availability zones from all regions of all supported cloud providers. Returns a list of `Availability Zone` objects. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/infra/v1/az/` - -### Query Parameters - -Parameter | Description ---------- | ----------- -name | Filter by availability zone name -region | Filter by resource URI of the target region - - - -## Get an individual availability zone - -```python -import dockercloud - -az = dockercloud.AZ.fetch("aws/sa-east-1/sa-east-1a") -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -az, err := dockercloud.GetAZ("aws/sa-east-1/sa-east-1a") -if err != nil { - log.Println(err) -} - -log.Println(az) -``` - -```http -GET /api/infra/v1/az/aws/sa-east-1/sa-east-1a/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -Get all the details of a specific availability zone - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/infra/v1/az/(provider.name)/(region.name)/(name)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -name | The name of the availability zone to retrieve -provider | The name of the provider -region | The name of the region diff --git a/apidocs/cloud-api-source/source/includes/container.md b/apidocs/cloud-api-source/source/includes/container.md deleted file mode 100644 index 0777feb23f..0000000000 --- a/apidocs/cloud-api-source/source/includes/container.md +++ /dev/null @@ -1,827 +0,0 @@ -# Containers - -## Container - -> Example - -```json -{ - "autodestroy": "OFF", - "autorestart": "OFF", - "bindings": [ - { - "volume": "/api/infra/v1/user_namespace/volume/1863e34d-6a7d-4945-aefc-8f27a4ab1a9e/", - "host_path": null, - "container_path": "/data", - "rewritable": true - }, - { - "volume": null, - "host_path": "/etc", - "container_path": "/etc", - "rewritable": true - } - ], - "cap_add": [ - "ALL" - ], - "cap_drop": [ - "NET_ADMIN", - "SYS_ADMIN" - ], - "container_envvars": [ - { - "key": "DB_1_ENV_DEBIAN_FRONTEND", - "value": "noninteractive" - }, - { - "key": "DB_1_ENV_MYSQL_PASS", - "value": "**Random**" - }, - { - "key": "DB_1_ENV_MYSQL_USER", - "value": "admin" - }, - { - "key": "DB_1_ENV_PATH", - "value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" - }, - { - "key": "DB_1_ENV_REPLICATION_MASTER", - "value": "**False**" - }, - { - "key": "DB_1_ENV_REPLICATION_PASS", - "value": "replica" - }, - { - "key": "DB_1_ENV_REPLICATION_SLAVE", - "value": "**False**" - }, - { - "key": "DB_1_ENV_REPLICATION_USER", - "value": "replica" - }, - { - "key": "DB_1_PORT", - "value": "tcp://172.16.0.3:3306" - }, - { - "key": "DB_1_PORT_3306_TCP", - "value": "tcp://172.16.0.3:3306" - }, - { - "key": "DB_1_PORT_3306_TCP_ADDR", - "value": "172.16.0.3" - }, - { - "key": "DB_1_PORT_3306_TCP_PORT", - "value": "3306" - }, - { - "key": "DB_1_PORT_3306_TCP_PROTO", - "value": "tcp" - }, - { - "key": "DB_ENV_DEBIAN_FRONTEND", - "value": "noninteractive" - }, - { - "key": "DB_ENV_MYSQL_PASS", - "value": "**Random**" - }, - { - "key": "DB_ENV_MYSQL_USER", - "value": "admin" - }, - { - "key": "DB_ENV_PATH", - "value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" - }, - { - "key": "DB_ENV_REPLICATION_MASTER", - "value": "**False**" - }, - { - "key": "DB_ENV_REPLICATION_PASS", - "value": "replica" - }, - { - "key": "DB_ENV_REPLICATION_SLAVE", - "value": "**False**" - }, - { - "key": "DB_ENV_REPLICATION_USER", - "value": "replica" - }, - { - "key": "DB_PASS", - "value": "szVaPz925B7I" - }, - { - "key": "DB_PORT", - "value": "tcp://172.16.0.3:3306" - }, - { - "key": "DB_PORT_3306_TCP", - "value": "tcp://172.16.0.3:3306" - }, - { - "key": "DB_PORT_3306_TCP_ADDR", - "value": "172.16.0.3" - }, - { - "key": "DB_PORT_3306_TCP_PORT", - "value": "3306" - }, - { - "key": "DB_PORT_3306_TCP_PROTO", - "value": "tcp" - }, - { - "key": "DB_DOCKERCLOUD_API_URL", - "value": "https://cloud.docker.com/api/app/v1/user_namespace/service/c0fed1dc-c528-40c9-aa4c-dc00672ebcbf/" - } - ], - "container_ports": [ - { - "endpoint_uri": "http://wordpress-stackable-1.admin.cont.dockerapp.io:49153/", - "inner_port": 80, - "outer_port": 49153, - "port_name": "http", - "protocol": "tcp", - "published": true, - "uri_protocol": "http" - } - ], - "cpu_shares": 100, - "cpuset": "0,1", - "cgroup_parent": "m-executor-abcd", - "deployed_datetime": "Thu, 16 Oct 2014 12:04:08 +0000", - "destroyed_datetime": null, - "devices": [ - "/dev/ttyUSB0:/dev/ttyUSB0" - ], - "dns": [ - "8.8.8.8" - ], - "dns_search": [ - "example.com", - "c1dd4e1e-1356-411c-8613-e15146633640.local.dockerapp.io" - ], - "domainname": "domainname", - "entrypoint": "", - "exit_code": null, - "exit_code_msg": null, - "extra_hosts": [ - "onehost:50.31.209.229" - ], - "hostname": "hostname", - "image_name": "tutum/wordpress-stackable:latest", - "labels": { - "com.example.description": "Accounting webapp", - "com.example.department": "Finance", - "com.example.label-with-empty-value": "" - }, - "linked_to_container": [ - { - "endpoints": { - "3306/tcp": "tcp://172.16.0.3:3306" - }, - "from_container": "/api/app/v1/user_namespace/container/c1dd4e1e-1356-411c-8613-e15146633640/", - "name": "DB_1", - "to_container": "/api/app/v1/user_namespace/container/ba434e1e-1234-411c-8613-e15146633640/" - } - ], - "link_variables": { - "WORDPRESS_STACKABLE_1_ENV_DB_HOST": "**LinkMe**", - "WORDPRESS_STACKABLE_1_ENV_DB_NAME": "wordpress", - "WORDPRESS_STACKABLE_1_ENV_DB_PASS": "szVaPz925B7I", - "WORDPRESS_STACKABLE_1_ENV_DB_PORT": "**LinkMe**", - "WORDPRESS_STACKABLE_1_ENV_DB_USER": "admin", - "WORDPRESS_STACKABLE_1_ENV_DEBIAN_FRONTEND": "noninteractive", - "WORDPRESS_STACKABLE_1_ENV_HOME": "/", - "WORDPRESS_STACKABLE_1_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", - "WORDPRESS_STACKABLE_1_PORT": "tcp://172.16.0.2:80", - "WORDPRESS_STACKABLE_1_PORT_80_TCP": "tcp://172.16.0.2:80", - "WORDPRESS_STACKABLE_1_PORT_80_TCP_ADDR": "172.16.0.2", - "WORDPRESS_STACKABLE_1_PORT_80_TCP_PORT": "80", - "WORDPRESS_STACKABLE_1_PORT_80_TCP_PROTO": "tcp", - "WORDPRESS_STACKABLE_ENV_DB_HOST": "**LinkMe**", - "WORDPRESS_STACKABLE_ENV_DB_NAME": "wordpress", - "WORDPRESS_STACKABLE_ENV_DB_PASS": "szVaPz925B7I", - "WORDPRESS_STACKABLE_ENV_DB_PORT": "**LinkMe**", - "WORDPRESS_STACKABLE_ENV_DB_USER": "admin", - "WORDPRESS_STACKABLE_ENV_DEBIAN_FRONTEND": "noninteractive", - "WORDPRESS_STACKABLE_ENV_HOME": "/", - "WORDPRESS_STACKABLE_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", - "WORDPRESS_STACKABLE_PORT": "tcp://172.16.0.2:80", - "WORDPRESS_STACKABLE_PORT_80_TCP": "tcp://172.16.0.2:80", - "WORDPRESS_STACKABLE_PORT_80_TCP_ADDR": "172.16.0.2", - "WORDPRESS_STACKABLE_PORT_80_TCP_PORT": "80", - "WORDPRESS_STACKABLE_PORT_80_TCP_PROTO": "tcp" - }, - "mac_address": "02:42:ac:11:65:43", - "memory": 1024, - "memory_swap": 4096, - "name": "wordpress-stackable", - "net": "bridge", - "node": "/api/infra/v1/user_namespace/node/9691c44e-3155-4ca2-958d-c9571aac0a14/", - "pid": "none", - "private_ip": "10.7.0.1", - "privileged": false, - "public_dns": "wordpress-stackable-1.admin.cont.dockerapp.io", - "read_only": true, - "resource_uri": "/api/app/v1/user_namespace/container/c1dd4e1e-1356-411c-8613-e15146633640/", - "roles": ["global"], - "run_command": "/run-wordpress.sh", - "security_opt": [ - "label:user:USER", - "label:role:ROLE" - ], - "service": "/api/app/v1/user_namespace/service/adeebc1b-1b81-4af0-b8f2-cefffc69d7fb/", - "started_datetime": "Thu, 16 Oct 2014 12:04:08 +0000", - "state": "Running", - "stdin_open": false, - "stopped_datetime": null, - "synchronized": true, - "tty": false, - "user": "root", - "uuid": "c1dd4e1e-1356-411c-8613-e15146633640", - "working_dir": "/app" -} -``` - - -A container is a representation of a Docker container in a node. - -This is a [namespaced endpoint](#namespaced-endpoints). - -### Attributes - -Attribute | Description ---------- | ----------- -uuid | A unique identifier for the container generated automatically on creation -resource_uri | A unique API endpoint that represents the container -image_name | The Docker image name and tag of the container -bindings | A list of volume bindings that the container has mounted (see table `Container Binding attributes` below) -name | A user provided name for the container (inherited from the service) -node | The resource URI of the node where this container is running -service | The resource URI of the service which this container is part of -public_dns | The external FQDN of the container -state | The state of the container (see table `Container states` below) -synchronized | Flag indicating if the container is synchronized with the current service definition. -exit_code | The numeric exit code of the container (if applicable, `null` otherwise) -exit_code_msg | A string representation of the exit code of the container (if applicable, `null` otherwise) -deployed_datetime | The date and time of the last deployment of the container (if applicable, `null` otherwise) -started_datetime | The date and time of the last `start` operation on the container (if applicable, `null` otherwise) -stopped_datetime | The date and time of the last `stop` operation on the container (if applicable, `null` otherwise) -destroyed_datetime | The date and time of the `terminate` operation on the container (if applicable, `null` otherwise) -container_ports | List of published ports of this container (see table `Container Port attributes` below) -container_envvars | List of user-defined environment variables set on the containers of the service, which will override the container environment variables (see table `Container Environment Variable attributes` below) -labels | Container metadata in form of dictionary -working_dir | Working directory for running binaries within a container -user | User used on the container on launch -hostname | Hostname used on the container on launch -domainname | Domainname used on the container on launch -mac_address | Ethernet device's MAC address used on the container on launch -cgroup_name | Optional parent cgroup for the container. -tty | If the container has the tty enable -stdin_open | If the container has stdin opened -dns | Container custom DNS servers -dns_search | Container custom DNS search domain -cap_add | Container added capabilities -cap_drop | Container dropped capabilities -devices | List of container device mappings -extra_hosts | List of container hostname mappings -secuirty_opt | Labeling scheme of this container -entrypoint | Entrypoint used on the container on launch -run_command | Run command used on the container on launch -cpu_shares | The relative CPU priority of the container (see [Runtime Constraints on CPU and Memory](/engine/reference/run/#runtime-constraints-on-cpu-and-memory) for more information) -cpuset | CPUs in which execution is allowed -memory | The memory limit of the container in MB (see [Runtime Constraints on CPU and Memory](/engine/reference/run/#runtime-constraints-on-cpu-and-memory) for more information) -memory_swap | Total memory limit (memory + swap) of the container in MB -autorestart | Whether to restart the container automatically if it stops (see [Crash recovery](/docker-cloud/apps/autorestart/) for more information) -autodestroy | Whether to terminate the container automatically if it stops (see [Autodestroy](/docker-cloud/apps/auto-destroy/) for more information) -roles | List of Docker Cloud roles assigned to this container (see [API roles](/docker-cloud/apps/api-roles/) for more information)) -linked_to_container | List of IP addresses of the linked containers (see table `Container Link attributes` below and [Service links](/docker-cloud/apps/service-links/) for more information) -link_variables | List of environment variables that would be exposed in any container that is linked to this one -privileged | Whether the container has Docker's `privileged` flag set or not (see [Runtime privilege](/engine/reference/run/#runtime-privilege-linux-capabilities-and-lxc-configuration) for more information) -read_only | Whether the container filesystem is read-only or not -private_ip | IP address of the container on the overlay network. This IP will be reachable from any other container. -net | Network mode set on the container (see table `Network Modes` below, [more information](/engine/reference/run/#network-settings)) -pid | PID (Process) Namespace mode for the container ([more information](/engine/reference/run/#pid-settings-pid)) - - -### Container Binding attributes - -Attribute | Description ---------- | ----------- -host_path | The host path of the volume -container_path | The container path where the volume is mounted -rewritable | `true` is the volume has writable permissions -volume | The resource URI of the volume - - -### Container Port attributes - -Attribute | Description ---------- | ----------- -protocol | The protocol of the port, either `tcp` or `udp` -inner_port | The published port number inside the container -outer_port | The published port number in the node public network interface -port_name | Name of the service associated to this port -uri_protocol | The protocol to be used in the endpoint for this port, such as `http` -endpoint_uri | The URI of the endpoint for this port -published | Whether the port has been published in the host public network interface or not. Non-published ports can only be accessed via links. - - -### Container Environment Variable attributes - -Attribute | Description ---------- | ----------- -key | The name of the environment variable -value | The value of the environment variable - - -### Container States - -State | Description ------ | ----------- -Starting | The container is being deployed or started (from Stopped). No actions allowed in this state. -Running | The container is deployed and running. Possible actions in this state: `stop`, `terminate`. -Stopping | The container is being stopped. No actions allowed in this state. -Stopped | The container is stopped. Possible actions in this state: `start`, `terminate`. -Terminating | The container is being deleted. No actions allowed in this state. -Terminated | The container has been deleted. No actions allowed in this state. - - -### Network Modes - -Strategy | Description --------- | ----------- -bridge | Creates a new network stack for the container on the docker bridge. -host | Uses the host network stack inside the container. - - -### Container Link attributes - -Attribute | Description ---------- | ----------- -name | The name given to the link -from_container | The resource URI of the "client" container -to_container | The resource URI of the "server" container being linked -endpoints | A dictionary with the endpoints (protocol, IP and port) to be used to reach each of the "server" container exposed ports - - -## List all containers - -```python -import dockercloud - -containers = dockercloud.Container.list() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -containerList, err := dockercloud.ListContainers() - -if err != nil { - log.Println(err) -} - -log.Println(containerList) -``` - -```http -GET /api/app/v1/container/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud container ps -``` - -Lists all current and recently terminated containers. Returns a list of `Container` objects. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/app/v1/[optional_namespace/]container/` - -### Query Parameters - -Parameter | Description ---------- | ----------- -uuid | Filter by UUID -state | Filter by state. Possible values: `Starting`, `Running`, `Stopping`, `Stopped`, `Terminating`, `Terminated` -name | Filter by container name -service | Filter by resource URI of the target service. -node | Filter by resource URI of the target node. - -## Get an existing container - -```python -import dockercloud - -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -container, err := dockerckoud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -log.Println(container) -``` - - -```http -GET /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud container inspect 7eaf7fff -``` - -Get all the details of an specific container - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/app/v1/[optional_namespace/]container/(uuid)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the container to retrieve - - -## Get the logs of a container - -> Example log line - -```json -{ - "type": "log", - "log": "Log line from the container", - "streamType": "stdout", - "timestamp": 1433779324 -} -``` - -```python -import dockercloud - -def log_handler(message): - print message - -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -container.logs(tail=300, follow=True, log_handler=log_handler) -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -container, err := dockercloud.GetContainer("447ecddc-2890-4ea2-849b-99392e0dd7a6") - -if err != nil { - log.Fatal(err) -} -c := make(chan dockercloud.Logs) - -go container.Logs(c) - for { - s := <-c - log.Println(s) - } -``` - -```http -GET /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/logs/ HTTP/1.1 -Host: ws.cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Connection: Upgrade -Upgrade: websocket -``` - -```shell -docker-cloud container logs 7eaf7fff -``` - -Get the logs of the specified container. - -### Endpoint Type - -Available in Docker Cloud's **STREAM API** - -### HTTP Request - -`GET /api/app/v1/[optional_namespace/]container/(uuid)/logs/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the container to retrieve logs - -### Query Parameters - -Parameter | Description ---------- | ----------- -tail | Number of lines to show from the end of the logs (default: `300`) -follow | Whether to stream logs or close the connection immediately (default: true) -service | Filter by service (resource URI) - - -## Start a container - -```python -import dockercloud - -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -container.start() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -if err = container.Start(); err != nil { - log.Println(err) -} -``` - -```http -POST /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/start/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud container start 7eaf7fff -``` - -Starts a stopped container. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/app/v1/[optional_namespace/]container/(uuid)/start/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the container to start - - -## Stop a container - -```python -import dockercloud - -container = dockerlcoud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -container.stop() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -if err = container.Stop(); err != nil { - log.Println(err) - } -``` - -```http -POST /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/stop/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud container stop 7eaf7fff -``` - -Stops a running container. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/app/v1/[optional_namespace/]container/(uuid)/stop/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the container to stop - - - -## Redeploy a container - -```python -import dockercloud - -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -container.redeploy() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: true) to reuse the existing volumes -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}) to not reuse the existing volumes -if err = container.Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}); err != nil { - log.Println(err) -} -``` - -```http -POST /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/start/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud container redeploy 7eaf7fff -``` - -Redeploys a container. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/app/v1/[optional_namespace/]container/(uuid)/redeploy/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the container to redeploy - -### Query Parameters - -Parameter | Description ---------- | ----------- -reuse_volumes | Whether to reuse container volumes for this redeploy operation or not (default: `true`). - - -## Terminate a container - -```python -import dockercloud - -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -container.delete() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -if err = container.Terminate(); err != nil { - log.Println(err) - } -``` - - -```http -DELETE /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud container terminate 7eaf7fff -``` - -Terminates the specified container. This is not reversible. All data stored in the container will be permanently deleted. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`DELETE /api/app/v1/[optional_namespace/]container/(uuid)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the container to terminate - - -## Execute command inside a container - -``` -import dockercloud - -def msg_handler(message): - print message - -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -container.execute("ls", handler=msg_handler) -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -c := make(chan dockercloud.Exec) - -container.Exec("ls", c) - -``` - -```http -GET /api/app/v1/container/(uuid)/exec/ HTTP/1.1 -Host: ws.cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Connection: Upgrade -Upgrade: websocket -``` - - -``` -docker-cloud exec 7eaf7fff ls -``` - -Executes a command inside the specified running container, creating a bi-directional stream for the process' standard input and output. This endpoint can be connected to using a bi-directional Secure Web Socket `wss://ws.cloud.docker.com/api/app/v1/container/(uuid)/exec/` - -### Endpoint Type - -Available in Docker Cloud's **STREAM API** - -### HTTP Request - -`GET /api/app/v1/[optional_namespace/]container/(uuid)/exec/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the container where the command will be executed - -### Query Parameters - -Parameter | Description ---------- | ----------- -command | Command to be executed (default: `sh`) diff --git a/apidocs/cloud-api-source/source/includes/dockercloud-events.md b/apidocs/cloud-api-source/source/includes/dockercloud-events.md deleted file mode 100644 index b611f9e77c..0000000000 --- a/apidocs/cloud-api-source/source/includes/dockercloud-events.md +++ /dev/null @@ -1,135 +0,0 @@ -# Docker Cloud Events - -## Docker Cloud Event - -> Example - -```json -{ - "type": "action", - "action": "update", - "parents": [ - "/api/app/v1/user_namespace/container/0b0e3538-88df-4f07-9aed-3a3cc4175076/" - ], - "resource_uri": "/api/app/v1/user_namespace/action/49f0efe8-a704-4a10-b02f-f96344fabadd/", - "state": "Success", - "uuid": "093ba3bb-08dd-48f0-8f12-4d3b85ef85b3", - "datetime": "2016-02-01T16:47:28Z" -} -``` - -Docker Cloud events are generated every time any of the following objects is created or changes state: - -* Stack -* Service -* Container -* Node Cluster -* Node -* Action - -This is a [namespaced endpoint](#namespaced-endpoints). - -### Attributes - -| Attribute | Description | -|:-------------|:---------------------------------------------------------------------------------------------------------------------------------| -| type | Type of object that was created or updated. For possible values, check the [events types](#event-types) table below. | -| action | Type of action that was executed on the object. Possible values: `create`, `update` or `delete` | -| parents | List of resource URIs (REST API) of the parents of the object, according to the "Parent-child hierarchy" table below | -| resource_uri | Resource URI (REST API) of the object that was created or updated. You can do a `GET` operation on this URL to fetch its details | -| state | The current state of the object | -| uuid | Unique identifier for the event | -| datetime | Date and time of the event in ISO 8601 format | - - -### Event types - -| Type | Description | -|:------------|:-----------------------------------------------------------------------------------------------| -| stack | Whenever a `Stack` is created or updated | -| service | Whenever a `Service` is created or updated | -| container | Whenever a `Container` is created or updated | -| nodecluster | Whenever a `Node Cluster` is created or updated | -| node | Whenever a `Node` is created or updated | -| action | Whenever a `Action` is created or updated | -| error | Sent when an error occurs on the websocket connection or as part of the authentication process | - - -### Parent-child hierarchy - -| Object type | Parent types | -|:-------------|:----------------------------------------| -| Stack | (None) | -| Service | Stack | -| Container | Service, Stack, Node, Node Cluster | -| Node Cluster | (None) | -| Node | Node Cluster | -| Action | (object to which the action applies to) | - - -## Listen to new Docker Cloud Events - -```python -import dockercloud - -def process_event(event): - print event - -events = dockercloud.Events() -events.on_message(process_event) -events.run_forever() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -// Listens for container events only -myFilter := dockercloud.NewStreamFilter(&dockercloud.EventFilter{Type: "container"}) - -stream := dockercloud.NewStream(myFilter) - -if err := stream.Connect(); err == nil { - go stream.RunForever() -} else { - log.Print("Connect err: " + err.Error()) -} - -for { - select { - case event := <-stream.MessageChan: - log.Println(event) - case err := <-stream.ErrorChan: - log.Println(err) - } -} -``` - -```http -GET /api/audit/v1/events/ HTTP/1.1 -Host: ws.cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Connection: Upgrade -Upgrade: websocket -``` - -```shell -docker-cloud event -``` - -Listens for new Docker Cloud Events - -### Endpoint Type - -Available in Docker Cloud's **STREAM API** - -### HTTP Request - -`GET /api/audit/v1/[optional_namespace/]events/` - -### Query Parameters - -Parameter | Description ---------- | ----------- -type | Filter by type -object | Filter by object resource URI -parent | Filter by object parents diff --git a/apidocs/cloud-api-source/source/includes/node.md b/apidocs/cloud-api-source/source/includes/node.md deleted file mode 100644 index 71293c0e62..0000000000 --- a/apidocs/cloud-api-source/source/includes/node.md +++ /dev/null @@ -1,370 +0,0 @@ -# Nodes - -## Node - -> Example - -```json -{ - "availability_zone": "/api/infra/v1/az/testing-provider/testing-region/testing-az/", - "cpu": 1, - "current_num_containers": 4, - "deployed_datetime": "Tue, 16 Sep 2014 17:01:15 +0000", - "destroyed_datetime": null, - "disk": 60, - "docker_execdriver": "native-0.2", - "docker_graphdriver": "aufs", - "docker_version": "1.5.0", - "external_fqdn": "fc1a5bb9-user.node.dockerapp.io", - "last_seen": "Thu, 25 Sep 2014 13:14:44 +0000", - "memory": 1792, - "nickname": "fc1a5bb9-user.node.dockerapp.io", - "node_cluster": "/api/infra/v1/user_namespace/nodecluster/d787a4b7-d525-4061-97a0-f423e8f1d229/", - "node_type": "/api/infra/v1/user_namespace/nodetype/testing-provider/testing-type/", - "public_ip": "10.45.2.11", - "region": "/api/infra/v1/region/testing-provider/testing-region/", - "resource_uri": "/api/infra/v1/user_namespace/node/fc1a5bb9-17f5-4819-b667-8c7cd819e949/", - "state": "Deployed", - "tags": [ - {"name": "tag_one"}, - {"name": "tag-two"} - ], - "tunnel": "https://tunnel01.cloud.docker.com:12345", - "uuid": "fc1a5bb9-17f5-4819-b667-8c7cd819e949" -} -``` - -A node is a virtual machine provided by a cloud provider where containers can be deployed. - -This is a [namespaced endpoint](#namespaced-endpoints). - -### Attributes - -Attribute | Description ---------- | ----------- -availability_zone | The resource URI of the availability zone where the node is deployed, if any -uuid | A unique identifier for the node generated automatically on creation -resource_uri | A unique API endpoint that represents the node -external_fqdn | An automatically generated FQDN for the node. Containers deployed on this node will inherit this FQDN. -state | The state of the node. See the below table for a list of possible states. -node_cluster | The resource URI of the node cluster to which this node belongs to (if applicable) -node_type | The resource URI of the node type used for the node -region | The resource URI of the region where the node is deployed -docker_execdriver | Docker's execution driver used in the node -docker_graphdriver | Docker's storage driver used in the node -docker_version | Docker's version used in the node -cpu | Node number of CPUs -disk | Node storage size in GB -memory | Node memory in MB -current_num_containers | The actual number of containers deployed in this node -last_seen | Date and time of the last time the node was contacted by Docker Cloud -public_ip | The public IP allocated to the node -tunnel | If the node does not accept incoming connections to port 2375, the address of the reverse tunnel to access the docker daemon, or `null` otherwise -deployed_datetime | The date and time when this node cluster was deployed -destroyed_datetime | The date and time when this node cluster was terminated (if applicable) -tags | List of tags to identify the node when deploying services (see [Tags](/docker-cloud/apps/deploy-tags/) for more information) -nickname | A user-friendly name for the node (`external_fqdn` by default) - - -### Node states - -State | Description ------ | ----------- -Deploying | The node is being deployed in the cloud provider. No actions allowed in this state. -Deployed | The node is deployed and provisioned and is ready to deploy containers. Possible actions in this state: `terminate`, `docker-upgrade`. -Unreachable | The node is deployed but Docker Cloud cannot connect to the docker daemon. Possible actions in this state: `health-check` and `terminate`. -Upgrading | The node docker daemon is being upgraded. No actions allowed in this state. -Terminating | The node is being terminated in the cloud provider. No actions allowed in this state. -Terminated | The node has been terminated and is no longer present in the cloud provider. No actions allowed in this state. - - -## List all nodes - -```python -import dockercloud - -nodes = dockercloud.Node.list() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -nodeList, err := dockercloud.ListNodes() - -if err != nil { - log.Println(err) -} - -log.Println(nodeList) -``` - -```http -GET /api/infra/v1/node/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud node ls -``` - -Lists all current and recently terminated nodes. Returns a list of `Node` objects. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/infra/v1/[optional_namespace/]node/` - -### Query Parameters - -Parameter | Description ---------- | ----------- -uuid | Filter by UUID -state | Filter by state. Possible values: `Deploying`, `Deployed`, `Unreachable`, `Upgrading`, `Terminating`, `Terminated` -node_cluster | Filter by resource URI of the target node cluster -node_type | Filter by resource URI of the target node type -region | Filter by resource URI of the target region -docker_version | Filter by Docker engine version running in the nodes - - - -## Get an existing node - -```python -import dockercloud - -node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -log.Println(node) -``` - -```http -GET /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud node inspect 7eaf7fff -``` - -Get all the details of an specific node - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/infra/v1/[optional_namespace/]node/(uuid)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the node to retrieve - - -## Update a node - -```python -import dockercloud - -node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -node.tags.add(["tag-1"]) -node.save() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -if err = node.Update(dockercloud.Node{Tags: []string{{Name: "tag-1"}}}); err != nil { - log.Println(err) -} -``` - -```http -PATCH /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json - -{"tags": [{"name": "tag-1"}], "nickname": "dev node"} -``` - -```shell -docker-cloud tag add -t tag-1 7eaf7fff -docker-cloud tag set -t tag-2 7eaf7fff -``` - -Names the node with a user-friendly name and/or replaces the old tags for the new list provided. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`PATCH /api/infra/v1/[optional_namespace/]node/(uuid)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the node to retrieve - -### JSON Parameters - -Parameter | Description ---------- | ----------- -nickname | (optional) A user-friendly name for the node (`external_fqdn` by default) -tags | (optional) List of tags the node will have. This operation replaces the user tag list. - - -## Upgrade Docker Daemon - -```python -import dockercloud - -node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -node.upgrade_docker() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -if err = node.Upgrade(); err != nil { - log.Println(err) - } -``` - -```http -POST /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/docker-upgrade/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud node upgrade 7eaf7fff -``` - -Upgrades the docker daemon of the node. This will restart your containers on that node. See [Docker upgrade](/docker-cloud/infrastructure/docker-upgrade/) for more information. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/infra/v1/[optional_namespace/]node/(uuid)/docker-upgrade/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the node to upgrade - - -## Perform a health check of a node - -```http -POST /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/health-check/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -Tests connectivity between Docker Cloud and the node. Updates the node status to `Deployed` if the check was successful, or to `Unreachable` otherwise. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/infra/v1/[optional_namespace/]node/(uuid)/health-check/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the node to perform the health check to - - -## Terminate a node - -```python -import dockercloud - -node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -node.delete() -``` - -```http -DELETE /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -if err = node.Terminate(); err != nil { - log.Println(err) -} -``` - -```shell -docker-cloud node rm 7eaf7fff -``` - -Terminates the specified node. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`DELETE /api/infra/v1/[optional_namespace/]node/(uuid)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the node to terminate diff --git a/apidocs/cloud-api-source/source/includes/nodecluster.md b/apidocs/cloud-api-source/source/includes/nodecluster.md deleted file mode 100644 index e3ed9c2308..0000000000 --- a/apidocs/cloud-api-source/source/includes/nodecluster.md +++ /dev/null @@ -1,412 +0,0 @@ -# Node Clusters - -## Node Cluster - -> Example - -```json -{ - "current_num_nodes": 1, - "deployed_datetime": "Tue, 16 Sep 2014 17:01:15 +0000", - "destroyed_datetime": null, - "disk": 60, - "nickname": "my test cluster", - "name": "TestCluster", - "node_type": "/api/infra/v1/nodetype/aws/t2.micro/", - "nodes": [ - "/api/infra/v1/user_namespace/node/75d20367-0948-4f10-8ba4-ffb4d16ed3c6/" - ], - "region": "/api/infra/v1/region/aws/us-east-1/", - "resource_uri": "/api/infra/v1/user_namespace/nodecluster/5516df0b-721e-4470-b350-741ff22e63a0/", - "state": "Deployed", - "tags": [ - {"name": "tag_one"}, - {"name": "tag-two"}, - {"name": "tagthree3"} - ], - "target_num_nodes": 2, - "uuid": "5516df0b-721e-4470-b350-741ff22e63a0", - "provider_options": { - "vpc": { - "id": "vpc-aa1c70d4", - "subnets": ["subnet-aaa7d94f", "subnet-aa15fa64"], - "security_groups": ["sg-aa1c70d4"] - }, - "iam": { - "instance_profile_name": "my_instance_profile" - } - } -} -``` - -A node cluster is a group of nodes that share the same provider, region and/or availability zone, and node type. They are on the same private network. - -This is a [namespaced endpoint](#namespaced-endpoints). - - -### Attributes - -Attribute | Description ---------- | ----------- -uuid | A unique identifier for the node cluster generated automatically on creation -resource_uri | A unique API endpoint that represents the node cluster -name | A user provided name for the node cluster -state | The state of the node cluster. See the below table for a list of possible states. -node_type | The resource URI of the node type used for the node cluster -disk | The size of the disk where images and containers are stored (in GB) -nodes | A list of resource URIs of the `Node` objects on the node cluster -region | The resource URI of the `Region` object where the node cluster is deployed -target_num_nodes | The desired number of nodes for the node cluster -current_num_nodes | The actual number of nodes in the node cluster. This may differ from `target_num_nodes` if the node cluster is being deployed or scaled -deployed_datetime | The date and time when this node cluster was deployed -destroyed_datetime | The date and time when this node cluster was terminated (if applicable) -tags | List of tags to identify the node cluster nodes when deploying services (see [Tags](/docker-cloud/apps/deploy-tags/) for more information) -provider_options | Provider-specific extra options for the deployment of the node (see `Provider options` table below for more information) -nickname | A user-friendly name for the node cluster (`name` by default) - - -### Node Cluster states - -State | Description ------ | ----------- -Init | The node cluster has been created and has no deployed containers yet. Possible actions in this state: `deploy`, `terminate`. -Deploying | All nodes in the cluster are either deployed or being deployed. No actions allowed in this state. -Deployed | All nodes in the cluster are deployed and provisioned. Possible actions in this state: `terminate`. -Partly deployed | One or more nodes of the cluster are deployed and running. Possible actions in this state: `terminate`. -Scaling | The cluster is either deploying new nodes or terminating existing ones responding to a scaling request. No actions allowed in this state. -Terminating | All nodes in the cluster are either being terminated or already terminated. No actions allowed in this state. -Terminated | The node cluster and all its nodes have been terminated. No actions allowed in this state. -Empty cluster | There are no nodes deployed in this cluster. Possible actions in this state: `terminate`. - - -### Provider options - -You can specify the following options when using the Amazon Web Services provider: - -* `vpc`: VPC-related options (optional) - * `id`: AWS VPC identifier of the target VPC where the nodes of the cluster will be deployed (required) - * `subnets`: a list of target subnet identifiers inside selected VPC. If you specify more than one subnet, Docker Cloud will balance among all of them following a high-availability schema (optional) - * `security_groups`: the security group that will be applied to every node of the cluster (optional) -* `iam`: IAM-related options (optional) - * `instance_profile_name`: name of the instance profile (container for instance an IAM role) to attach to every node of the cluster (required) - - -## List all node clusters - -```python -import dockercloud - -nodeclusters = dockercloud.NodeCluster.list() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -nodeclusters, err := dockercloud.ListNodeClusters() - -if err != nil { - log.Println(err) -} - -log.Println(nodeclusters) -``` - -```http -GET /api/infra/v1/nodecluster/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud nodecluster ls -``` - -Lists all current and recently terminated node clusters. Returns a list of `NodeCluster` objects. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/infra/v1/[optional_namespace/]nodecluster/` - -### Query Parameters - -Parameter | Description ---------- | ----------- -uuid | Filter by UUID -state | Filter by state. Possible values: `Init`, `Deploying`, `Deployed`, `Partly deployed`, `Scaling`, `Terminating`, `Terminated`, `Empty cluster` -name | Filter by node cluster name -region | Filter by resource URI of the target region -node_type | Filter by resource URI of the target node type - - -## Create a new node cluster - -```python -import dockercloud - -region = dockercloud.Region.fetch("digitalocean/lon1") -node_type = dockercloud.NodeType.fetch("digitalocean/1gb") -nodecluster = dockercloud.NodeCluster.create(name="my_cluster", node_type=node_type, region=region, disk=60) -nodecluster.save() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -nodecluster, err := dockercloud.CreateNodeCluster(dockercloud.NodeCreateRequest{Name: "my_cluster", Region: "/api/infra/v1/region/digitalocean/lon1/", NodeType: "/api/infra/v1/nodetype/digitalocean/1gb/", Target_num_nodes: 2}) - -if err != nil { - log.Println(err) -} - -log.Println(nodecluster) -``` - -```http -POST /api/infra/v1/nodecluster/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -Content-Type: application/json - -{"name": "my_cluster", "region": "/api/infra/v1/region/digitalocean/lon1/", "node_type": "/api/infra/v1/nodetype/digitalocean/1gb/", "disk": 60} -``` - -```shell -docker-cloud nodecluster create my_cluster digitalocean lon1 1gb -``` - -Creates a new node cluster without deploying it. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/infra/v1/[optional_namespace/]nodecluster/` - -### JSON Parameters - -Parameter | Description ---------- | ----------- -name | (required) A user provided name for the node cluster -node_type | (required) The resource URI of the node type to be used for the node cluster -region | (required) The resource URI of the region where the node cluster is to be deployed -disk | (optional) The size of the volume to create where images and containers will be stored, in GB (default: `60`). Not available for Digital Ocean. To create Softlayer nodes you must select one of the following sizes (in GBs): 10, 20, 25, 30, 40, 50, 75, 100, 125, 150, 175, 200, 250, 300, 350, 400, 500, 750, 1000, 1500 or 2000 -nickname | (optional) A user-friendly name for the node cluster (`name` by default) -target_num_nodes | (optional) The desired number of nodes for the node cluster (default: `1`) -tags | (optional) List of tags of the node cluster to be used when deploying services see [Tags](/docker-cloud/apps/deploy-tags/) for more information) (default: `[]`) -provider_options | Provider-specific extra options for the deployment of the node (see table `Provider options` above for more information) - - -## Get an existing node cluster - -```python -import dockercloud - -service = dockercloud.NodeCluster.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -nodecluster, err := dockercloud.GetNodeCluster("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -log.Println(nodecluster) -``` - -```http -GET /api/infra/v1/nodecluster/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud nodecluster inspect 7eaf7fff -``` - -Get all the details of an specific node cluster - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/infra/v1/[optional_namespace/]nodecluster/(uuid)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the node cluster to retrieve - -## Deploy a node cluster - -```python -import dockercloud - -nodecluster = dockercloud.NodeCluster.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -nodecluster.deploy() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -nodecluster, err := dockercloud.GetNodeCluster("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -if err = nodecluster.Deploy(); err != nil { - log.Println(err) -} -``` - -```http -POST /api/infra/v1/nodecluster/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/deploy/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -Deploys and provisions a recently created node cluster in the specified region and cloud provider. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/infra/v1/[optional_namespace/]nodecluster/(uuid)/deploy/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the node cluster to deploy - -## Update an existing node cluster - -```python -import dockercloud - -nodecluster = dockercloud.NodeCluster.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -nodecluster.target_num_nodes = 3 -nodecluster.tags.add("tag-1") -nodecluster.save() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -nodecluster, err := dockercloud.GetNodeCluster("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -if err = nodecluster.Update(dockercloud.NodeCreateRequest{Target_num_nodes: 4}); err != nil { - log.Println(err) -} -``` - -```http -PATCH /api/infra/v1/nodecluster/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -Content-Type: application/json - -{"target_num_nodes": 3, "tags": [{"name": "tag-1"}]} -``` - -```shell -docker-cloud nodecluster scale 7eaf7fff 3 -docker-cloud tag add -t tag-1 7eaf7fff -docker-cloud tag set -t tag-2 7eaf7fff -``` - -Updates the node cluster details and applies the changes automatically. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`PATCH /api/infra/v1/[optional_namespace/]nodecluster/(uuid)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the node cluster to update - - -### JSON Parameters - -Parameter | Description ---------- | ----------- -target_num_nodes | (optional) The number of nodes to scale this node cluster to -tags | (optional) List of tags the node cluster (and nodes within the node cluster) will have. This operation replaces the user tag list. -## Terminate a node cluster - -```python -import dockercloud - -nodecluster = dockercloud.NodeCluster.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -nodecluster.delete() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -nodecluster, err := dockercloud.GetNodeCluster("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -if err = nodecluster.Terminate(); err != nil { - log.Println(err) -} -``` - -```http -DELETE /api/infra/v1/nodecluster/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -dockercloud nodecluster rm 7eaf7fff -``` - -Terminates all the nodes in a node cluster and the node cluster itself. This is not reversible. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`DELETE /api/infra/v1/[optional_namespace/]nodecluster/(uuid)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the node cluster to terminate diff --git a/apidocs/cloud-api-source/source/includes/nodetype.md b/apidocs/cloud-api-source/source/includes/nodetype.md deleted file mode 100644 index fec5c7683a..0000000000 --- a/apidocs/cloud-api-source/source/includes/nodetype.md +++ /dev/null @@ -1,137 +0,0 @@ -# Node Types - -## Node Type - -> Example - -```json -{ - "availability_zones": [], - "available": true, - "label": "1GB", - "name": "1gb", - "provider": "/api/infra/v1/provider/digitalocean/", - "regions": [ - "/api/infra/v1/region/digitalocean/ams1/", - "/api/infra/v1/region/digitalocean/sfo1/", - "/api/infra/v1/region/digitalocean/nyc2/", - "/api/infra/v1/region/digitalocean/ams2/", - "/api/infra/v1/region/digitalocean/sgp1/", - "/api/infra/v1/region/digitalocean/lon1/", - "/api/infra/v1/region/digitalocean/nyc3/", - "/api/infra/v1/region/digitalocean/nyc1/" - ], - "resource_uri": "/api/infra/v1/nodetype/digitalocean/1gb/" -} -``` - -A node type is a representation of an instance size supported by a certain cloud provider in a certain region and/or availability zone. - - -### Attributes - -Attribute | Description ---------- | ----------- -resource_uri | A unique API endpoint that represents the node type -name | An identifier for the node type -label | A user-friendly name for the node type -regions | A list of resource URIs of the regions to which this node type can be deployed to -availability_zones | A list of resource URIs of the availability zones to which this node type can be deployed to -provider | The resource URI of the provider of the node type -available | Whether the node type is currently available for new node deployments - - -## List all node types - -```python -import dockercloud - -nodetypes = dockercloud.NodeType.list() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -nodetypeList, err := dockercloud.ListNodeTypes() - -if err != nil { - log.Println(err) -} - -log.Println(nodetypeList) -``` - -```http -GET /api/infra/v1/nodetype/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud nodecluster nodetype -``` - -Lists all node types of all supported cloud providers. Returns a list of `NodeType` objects. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/infra/v1/nodetype/` - -### Query Parameters - -Parameter | Description ---------- | ----------- -name | Filter by node type name -regions | Filter by resource URI of the target regions -availability_zones | Filter by resource URI of the target availability zones - - -## Get an individual node type - -```python -import dockercloud - -nodetype = dockercloud.NodeType.fetch("digitalocean/1gb") -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -nodetype, err := dockercloud.GetNodeType("digitalocean","1gb") - -if err != nil { - log.Println(err) -} - -log.Println(nodetype) -``` - -```http -GET /api/infra/v1/nodetype/digitalocean/1gb/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - - -Get all the details of a specific node type - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/infra/v1/nodetype/(provider.name)/(name)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -name | The name of the node type to retrieve -provider.name | The name of the provider of the node type diff --git a/apidocs/cloud-api-source/source/includes/provider.md b/apidocs/cloud-api-source/source/includes/provider.md deleted file mode 100644 index 44e63ab337..0000000000 --- a/apidocs/cloud-api-source/source/includes/provider.md +++ /dev/null @@ -1,132 +0,0 @@ -# Providers - -## Provider - -> Example - -```json -{ - "available": true, - "label": "Digital Ocean", - "name": "digitalocean", - "regions": [ - "/api/infra/v1/region/digitalocean/ams1/", - "/api/infra/v1/region/digitalocean/ams2/", - "/api/infra/v1/region/digitalocean/ams3/", - "/api/infra/v1/region/digitalocean/lon1/", - "/api/infra/v1/region/digitalocean/nyc1/", - "/api/infra/v1/region/digitalocean/nyc2/", - "/api/infra/v1/region/digitalocean/nyc3/", - "/api/infra/v1/region/digitalocean/sfo1/", - "/api/infra/v1/region/digitalocean/sgp1/" - ], - "resource_uri": "/api/infra/v1/provider/digitalocean/" -} -``` - -A provider is a representation of a cloud provider supported by Docker Cloud. Providers have one or more regions where nodes are deployed. - - -### Attributes - -Attribute | Description ---------- | ----------- -resource_uri | A unique API endpoint that represents the provider -name | A unique identifier for the provider -label | A user-friendly name for the provider -regions | A list of resource URIs of the regions available in this provider -available | Whether the provider is currently available for new node deployments - - -## List all providers - -```python -import dockercloud - -providers = dockercloud.Provider.list() -``` - -```http -GET /api/infra/v1/provider/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -providerList, err := dockercloud.ListProviders() - -if err != nil { - log.Println(err) -} - -log.Println(providerList) -``` - -```shell -docker-cloud nodecluster provider -``` - -Lists all supported cloud providers. Returns a list of `Provider` objects. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/infra/v1/provider/` - -### Query Parameters - -Parameter | Description ---------- | ----------- -name | Filter by provider name - - - -## Get an individual provider - -```python -import dockercloud - -provider = dockercloud.Provider.fetch("digitalocean") -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -provider, err := dockercloud.GetProvider("digitalocean") - -if err != nil { - log.Println(err) -} - -log.Println(provider) -``` - -```http -GET /api/infra/v1/provider/digitalocean/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - - -Get all the details of a specific provider - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/infra/v1/provider/(name)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -name | The name of the provider to retrieve diff --git a/apidocs/cloud-api-source/source/includes/region.md b/apidocs/cloud-api-source/source/includes/region.md deleted file mode 100644 index 4bfd58b309..0000000000 --- a/apidocs/cloud-api-source/source/includes/region.md +++ /dev/null @@ -1,137 +0,0 @@ -# Regions - -## Region - -> Example - -```json -{ - "availability_zones": [], - "available": true, - "label": "Amsterdam 2", - "name": "ams2", - "node_types": [ - "/api/infra/v1/nodetype/digitalocean/1gb/", - "/api/infra/v1/nodetype/digitalocean/2gb/", - "/api/infra/v1/nodetype/digitalocean/4gb/", - "/api/infra/v1/nodetype/digitalocean/8gb/", - "/api/infra/v1/nodetype/digitalocean/16gb/", - "/api/infra/v1/nodetype/digitalocean/32gb/", - "/api/infra/v1/nodetype/digitalocean/48gb/", - "/api/infra/v1/nodetype/digitalocean/64gb/" - ], - "provider": "/api/infra/v1/provider/digitalocean/", - "resource_uri": "/api/infra/v1/region/digitalocean/ams2/" -} -``` - -A region is a representation of an entire or a subset of a data center of a cloud provider. It can contain availability zones (depending on the provider) and one or more node types. - - -### Attributes - -Attribute | Description ---------- | ----------- -resource_uri | A unique API endpoint that represents the region -name | An identifier for the region -label | A user-friendly name for the region -node_types | A list of resource URIs of the node types available in the region -availability_zones | A list of resource URIs of the availability zones available in the region -provider | The resource URI of the provider of the region -available | Whether the region is currently available for new node deployments - - -## List all regions - -```python -import dockercloud - -regions = dockercloud.Region.list() -``` - -```http -GET /api/infra/v1/region/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -regionList, err := dockercloud.ListRegions() - -if err != nil { - log.Println(err) -} - -log.Println(regionList) -``` - -```shell -docker-cloud nodecluster region -``` - -Lists all regions of all supported cloud providers. Returns a list of `Region` objects. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/infra/v1/region/` - -### Query Parameters - -Parameter | Description ---------- | ----------- -name | Filter by region name -provider | Filter by resource URI of the target provider - - - -## Get an individual region - -```python -import dockercloud - -region = dockercloud.Region.fetch("digitalocean/lon1") -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -region, err := dockercloud.GetRegion("digitalocean","lon1") - -if err != nil { - log.Println(err) -} - -log.Println(region) -``` - -```http -GET /api/infra/v1/region/digitalocean/lon1/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - - -Get all the details of a specific region - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/infra/v1/region/(provider.name)/(name)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -name | The name of the region to retrieve -provider.name | The name of the provider of the region diff --git a/apidocs/cloud-api-source/source/includes/registry.md b/apidocs/cloud-api-source/source/includes/registry.md deleted file mode 100644 index b84c304ff0..0000000000 --- a/apidocs/cloud-api-source/source/includes/registry.md +++ /dev/null @@ -1,87 +0,0 @@ -# Registries - -## Registry - -> Example - -```json -{ - "host": "registry-1.docker.io", - "is_docker_registry": true, - "is_ssl": true, - "name": "Docker Hub", - "port": 443, - "resource_uri": "/api/repo/v1/user_namespace/registry/registry-1.docker.io/" -} -``` - -Represents a registry where repositories are hosted. - -This is a [namespaced endpoint](#namespaced-endpoints). - - -### Attributes - -Attribute | Description ---------- | ----------- -resource_uri | A unique API endpoint that represents the registry -name | Human-readable name of the registry -host | FQDN of the registry, such as `registry-1.docker.io` -is_docker_registry | Whether this registry is run by Docker -is_ssl | Whether this registry has SSL activated or not -port | The port number where the registry is listening to - - -## List all registries - -```http -GET /api/repo/v1/registry/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -Lists all current registries. Returns a list of `Registry` objects. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/repo/v1/[optional_namespace/]registry/` - -### Query Parameters - -Parameter | Description ---------- | ----------- -uuid | Filter by UUID -name | Filter by registry name -host | Filter by registry host -is_docker_registry | Filter by whether the registry is run by Docker or not. Possible values: 'true' or 'false' - - -## Get an existing registry - -```http -GET /api/repo/v1/registry/registry-1.docker.io/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -Gets all the details of an specific registry - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/v1/[optional_namespace/]registry/(host)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -host | The host of the registry to retrieve diff --git a/apidocs/cloud-api-source/source/includes/repository.md b/apidocs/cloud-api-source/source/includes/repository.md deleted file mode 100644 index cf96964ffe..0000000000 --- a/apidocs/cloud-api-source/source/includes/repository.md +++ /dev/null @@ -1,275 +0,0 @@ -# External Repositories - -## External Repository - -> Example - -```json -{ - "in_use": false, - "name": "my.registry.com/myrepo", - "registry": "/api/repo/v1/user_namespace/registry/my.registry.com/", - "resource_uri": "/api/repo/v1/user_namespace/repository/my.registry.com/myrepo/", -} -``` - -The `repository` endpoint is used to add and remove existing repositories on third party registries to be used in deployments and builds. - -This is a [namespaced endpoint](#namespaced-endpoints). - -### Attributes - -Attribute | Description ---------- | ----------- -resource_uri | A unique API endpoint that represents the repository -name | Name of the repository, such as `my.registry.com/myrepo` -in_use | If the image is being used by any of your services -registry | Resource URI of the registry where this image is hosted - - -## List all external repositories - -```python -import dockercloud - -repositories = dockercloud.Repository.list() -``` - -```http -GET /api/repo/v1/repository/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -repositoriesList, err := dockercloud.ListRepositories() - -if err != nil { - log.Println(err) -} - -log.Pringln(repositoriesList) -``` - -```shell -docker-cloud repository ls -``` - -Lists all added repositories from third party registries. Returns a list of `Repository` objects. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/repo/v1/[optional_namespace/]repository/` - -### Query Parameters - -Parameter | Description ---------- | ----------- -name | Filter by image name -registry | Filter by resource URI of the target repository registry - - -## Add a new external repository - -```python -import dockercloud - -repository = dockercloud.Repository.create(name="registry.local/user1/image1", username=username, password=password) -repository.save() -``` - -```http -POST /api/repo/v1/repository/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -Content-Type: application/json - -{"name": "registry.local/user1/image1", "username": "username", "password": "password"} -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -image, err := dockercloud.CreateImage(dockercloud.ImageCreateRequest{ - Name: "registry.local/user1/image1", - Username: "username", - Password: "password" -}) -``` - -```shell -docker-cloud repository register -u username -p password registry.local/user1/image1 -``` - -Adds an existing repository on a third party registry. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/repo/v1/[optional_namespace/]repository/` - -### JSON Parameters - -Parameter | Description ---------- | ----------- -name | Name of the repository, such as 'my.registry.com/myrepo' -username | Username to authenticate with the third party registry -password | Password to authenticate with the third party registry - - -## Get an external repository details - -```python -import dockercloud - -repository = dockercloud.Repository.fetch("registry.local/user1/image1") -``` - -```http -GET /api/repo/v1/repository/registry.local/user1/image1/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -repository, err = dockercloud.GetRepository("registry.local/user1/image1") - -if err != nil { - log.Println(err) -} - -log.Println(repository) -``` - -```shell -docker-cloud repository inspect registry.local/user1/image1 -``` - -Gets all the details of an specific repository - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/repo/v1/[optional_namespace/]repository/(name)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -name | The name of the repository to retrieve - - -## Update credentials of an external repository - -```python -import dockercloud - -repository = dockercloud.Repository.fetch("registry.local/user1/image1") -repository.username = "new username" -repository.password = "new password" -repository.save() -``` - -```http -PATCH /api/repo/v1/repository/registry.local/user1/image1/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -Content-Type: application/json - -{"username": "username", "password": "password"} -``` - -```shell -docker-cloud repository update -n "new username" -p "new password" registry.local/user1/image1 -``` - -Updates the external repository credentials. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`PATCH /api/repo/v1/[optional_namespace/]repository/(name)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -name | The name of the repository to update - - -### JSON Parameters - -Parameter | Description ---------- | ----------- -username | Username to authenticate with the private registry -password | Password to authenticate with the private registry - - -## Remove an external repository - -```python -import dockercloud - -repository = dockercloud.Repository.fetch("registry.local/user1/image1") -repository.delete() -``` - -```http -DELETE /api/repo/v1/repository/registry.local/user1/image1/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -repository, err = dockercloud.GetRepository("registry.local/user1/image1") - -if err != nil { - log.Println(err) -} - -repository.Remove() -``` - -```shell -docker-cloud repository rm registry.local/user1/image1 -``` - -Removes the external repository from Docker Cloud. It doesn't remove the repository from the third party registry where it's stored. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`DELETE /api/repo/v1/[optional_namespace/]repository/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -name | The name of the external repository to remove diff --git a/apidocs/cloud-api-source/source/includes/service.md b/apidocs/cloud-api-source/source/includes/service.md deleted file mode 100644 index 28f9e6761a..0000000000 --- a/apidocs/cloud-api-source/source/includes/service.md +++ /dev/null @@ -1,935 +0,0 @@ -# Services - -## Service - -> Example - -```json -{ - "autodestroy": "OFF", - "autoredeploy": false, - "autorestart": "ON_FAILURE", - "bindings": [ - { - "host_path": null, - "container_path": "/tmp", - "rewritable": true, - "volumes_from": null - }, - { - "host_path": "/etc", - "container_path": "/etc", - "rewritable": true, - "volumes_from": null - }, - { - "host_path": null, - "container_path": null, - "rewritable": true, - "volumes_from": "/api/app/v1/user_namespace/service/2f4f54e5-9d3b-4ac1-85ad-a2d4ff25a179/" - } - ], - "cap_add": [ - "ALL" - ], - "cap_drop": [ - "NET_ADMIN", - "SYS_ADMIN" - ], - "container_envvars": [ - { - "key": "DB_PASS", - "value": "test" - } - ], - "container_ports": [ - { - "endpoint_uri": "http://wordpress-stackable.admin.srv.dockerapp.io:80/", - "inner_port": 80, - "outer_port": 80, - "port_name": "http", - "protocol": "tcp", - "published": true - } - ], - "containers": [ - "/api/app/v1/user_namespace/container/6f8ee454-9dc3-4387-80c3-57aac1be3cc6/", - "/api/app/v1/user_namespace/container/fdf9c116-7c08-4a60-b0ce-c54ca72c2f25/" - ], - "cpu_shares": 100, - "cpuset": "0,1", - "cgroup_parent": "m-executor-abcd", - "current_num_containers": 2, - "deployed_datetime": "Mon, 13 Oct 2014 11:01:43 +0000", - "deployment_strategy": "EMPTIEST_NODE", - "destroyed_datetime": null, - "devices": [ - "/dev/ttyUSB0:/dev/ttyUSB0" - ], - "dns": [ - "8.8.8.8" - ], - "dns_search": [ - "example.com" - ], - "domainname": "domainname", - "entrypoint": "", - "extra_hosts": [ - "onehost:50.31.209.229" - ], - "hostname": "hostname", - "image_name": "tutum/wordpress-stackable:latest", - "nickname": "wordpress-stackable", - "labels": { - "com.example.description": "Accounting webapp", - "com.example.department": "Finance", - "com.example.label-with-empty-value": "" - }, - "link_variables": { - "WORDPRESS_STACKABLE_1_ENV_DB_HOST": "**LinkMe**", - "WORDPRESS_STACKABLE_1_ENV_DB_NAME": "wordpress", - "WORDPRESS_STACKABLE_1_ENV_DB_PASS": "szVaPz925B7I", - "WORDPRESS_STACKABLE_1_ENV_DB_PORT": "**LinkMe**", - "WORDPRESS_STACKABLE_1_ENV_DB_USER": "admin", - "WORDPRESS_STACKABLE_1_ENV_DEBIAN_FRONTEND": "noninteractive", - "WORDPRESS_STACKABLE_1_ENV_HOME": "/", - "WORDPRESS_STACKABLE_1_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", - "WORDPRESS_STACKABLE_1_PORT": "tcp://wordpress-stackable-1.admin.cont.dockerapp.io:49153", - "WORDPRESS_STACKABLE_1_PORT_80_TCP": "tcp://wordpress-stackable-1.admin.cont.dockerapp.io:49153", - "WORDPRESS_STACKABLE_1_PORT_80_TCP_ADDR": "wordpress-stackable-1.admin.cont.dockerapp.io", - "WORDPRESS_STACKABLE_1_PORT_80_TCP_PORT": "49153", - "WORDPRESS_STACKABLE_1_PORT_80_TCP_PROTO": "tcp", - "WORDPRESS_STACKABLE_2_ENV_DB_HOST": "**LinkMe**", - "WORDPRESS_STACKABLE_2_ENV_DB_NAME": "wordpress", - "WORDPRESS_STACKABLE_2_ENV_DB_PASS": "szVaPz925B7I", - "WORDPRESS_STACKABLE_2_ENV_DB_PORT": "**LinkMe**", - "WORDPRESS_STACKABLE_2_ENV_DB_USER": "admin", - "WORDPRESS_STACKABLE_2_ENV_DEBIAN_FRONTEND": "noninteractive", - "WORDPRESS_STACKABLE_2_ENV_HOME": "/", - "WORDPRESS_STACKABLE_2_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", - "WORDPRESS_STACKABLE_2_PORT": "tcp://wordpress-stackable-2.admin.cont.dockerapp.io:49154", - "WORDPRESS_STACKABLE_2_PORT_80_TCP": "tcp://wordpress-stackable-2.admin.cont.dockerapp.io:49154", - "WORDPRESS_STACKABLE_2_PORT_80_TCP_ADDR": "wordpress-stackable-2.admin.cont.dockerapp.io", - "WORDPRESS_STACKABLE_2_PORT_80_TCP_PORT": "49154", - "WORDPRESS_STACKABLE_2_PORT_80_TCP_PROTO": "tcp", - "WORDPRESS_STACKABLE_ENV_DB_HOST": "**LinkMe**", - "WORDPRESS_STACKABLE_ENV_DB_NAME": "wordpress", - "WORDPRESS_STACKABLE_ENV_DB_PASS": "szVaPz925B7I", - "WORDPRESS_STACKABLE_ENV_DB_PORT": "**LinkMe**", - "WORDPRESS_STACKABLE_ENV_DB_USER": "admin", - "WORDPRESS_STACKABLE_ENV_DEBIAN_FRONTEND": "noninteractive", - "WORDPRESS_STACKABLE_ENV_HOME": "/", - "WORDPRESS_STACKABLE_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", - "WORDPRESS_STACKABLE_PORT": "tcp://wordpress-stackable-1.admin.cont.dockerapp.io:49153", - "WORDPRESS_STACKABLE_PORT_80_TCP": "tcp://wordpress-stackable-1.admin.cont.dockerapp.io:49153", - "WORDPRESS_STACKABLE_PORT_80_TCP_ADDR": "wordpress-stackable-1.admin.cont.dockerapp.io", - "WORDPRESS_STACKABLE_PORT_80_TCP_PORT": "49153", - "WORDPRESS_STACKABLE_PORT_80_TCP_PROTO": "tcp", - "WORDPRESS_STACKABLE_DOCKERCLOUD_API_URL": "https://cloud.docker.com/api/app/v1/user_namespace/service/adeebc1b-1b81-4af0-b8f2-cefffc69d7fb/" - }, - "linked_from_service": [], - "linked_to_service": [ - { - "from_service": "/api/app/v1/user_namespace/service/09cbcf8d-a727-40d9-b420-c8e18b7fa55b/", - "name": "DB", - "to_service": "/api/app/v1/user_namespace/service/72f175bd-390b-46e3-9463-830aca32ce3e/" - } - ], - "mac_address": "02:42:ac:11:65:43", - "memory": 2048, - "memory_swap": 8192, - "name": "wordpress-stackable", - "net": "bridge", - "privileged": false, - "public_dns": "wordpress-stackable.admin.svc.dockerapp.io", - "read_only": true, - "resource_uri": "/api/app/v1/user_namespace/service/09cbcf8d-a727-40d9-b420-c8e18b7fa55b/", - "roles": ["global"], - "run_command": "/run-wordpress.sh", - "running_num_containers": 1, - "security_opt": [ - ], - "sequential_deployment": false, - "started_datetime": "Mon, 13 Oct 2014 11:01:43 +0000", - "state": "Partly running", - "stack": "/api/app/v1/user_namespace/stack/46aca402-2109-4a70-a378-760cfed43816/", - "stdin_open": false, - "stopped_datetime": null, - "stopped_num_containers": 0, - "synchronized": true, - "tags": [ - {"name": "tag_one"}, - {"name": "tag-two"}, - {"name": "tagthree3"} - ], - "target_num_containers": 2, - "tty": false, - "user": "root", - "uuid": "09cbcf8d-a727-40d9-b420-c8e18b7fa55b", - "working_dir": "/app" -} -``` - - -A service is a template used to deploy one or more containers. - -This is a [namespaced endpoint](#namespaced-endpoints). - -### Attributes - -Attribute | Description ---------- | ----------- -uuid | A unique identifier for the service generated automatically on creation -resource_uri | A unique API endpoint that represents the service -image_name | The Docker image name and tag used for the service containers -name | A user provided name for the service. This name will be inherited by the service containers and will be used in endpoint URLs, environment variable names, etc. -public_dns | An external FQDN that resolves to all IPs of the nodes where the service containers are running on (as an `A` record with multiple IP entries which will be used by clients in a [round-robin fashion](http://en.wikipedia.org/wiki/Round-robin_DNS)). If the service is not publishing any ports, this FQDN will fail to resolve. -state | The state of the service (see table `Service states` below) -net | Network mode to set on the containers (see table `Network Modes` below, more information /docker-cloud/apps/service-links/) -pid | Set the PID (Process) Namespace mode for the containers ([more information](/engine/reference/run/#pid-settings-pid)) -synchronized | Flag indicating if the current service definition is synchronized with the current containers. -deployed_datetime | The date and time of the last deployment of the service (if applicable, `null` otherwise) -started_datetime | The date and time of the last `start` operation on the service (if applicable, `null` otherwise) -stopped_datetime | The date and time of the last `stop` operation on the service (if applicable, `null` otherwise) -destroyed_datetime | The date and time of the `terminate` operation on the service (if applicable, `null` otherwise) -target_num_containers | The requested number of containers to deploy for the service -current_num_containers | The actual number of containers deployed for the service -running_num_containers | The actual number of containers deployed for the service in `Running` state -stopped_num_containers | The actual number of containers deployed for the service in `Stopped` state -stack | Resource URIs of the stack that the service belongs to -containers | List of resource URIs of the containers launched as part of the service -container_ports | List of ports to be published on the containers of this service (see table `Service Port attributes` below) -container_envvars | List of user-defined environment variables to set on the containers of the service, which will override the image environment variables (see table `Service Environment Variable attributes` below) -labels | Metadata in form of dictionary used for every container of this service -working_dir | Working directory for running binaries within a container of this service -user | Set the user used on containers of this service (`root` by default) -hostname | Set the hostname used on containers of this service -domainname | Set the domainname used on containers of this service -mac_address | Ethernet device's MAC address used on containers of this service -cgroup_name | Optional parent cgroup used on containers of this service. -tty | If the containers of this service have the tty enable (`false` by default) -stdin_open | If the containers of this service have stdin opened (`false` by default) -dns | Custom DNS servers for containers of this service -dns_search | Custom DNS search domain for containers of this service -cap_add | Added capabilities for containers of this service -cap_drop | Dropped capabilities for containers of this service -devices | List of device mappings for containers of this service -extra_hosts | List of hostname mappings for containers of this service -secuirty_opt | Labeling scheme for containers of this service -entrypoint | Entrypoint to be set on the containers launched as part of the service, which will override the image entrypoint -run_command | Run command to be set on the containers launched as part of the service, which will override the image run command -sequential_deployment | Whether the containers for this service should be deployed in sequence, linking each of them to the previous containers (see [Service scaling](/docker-cloud/apps/service-scaling/) for more information) -cpu_shares | The relative CPU priority of the containers of the service (see [Runtime Constraints on CPU and Memory](/engine/reference/run/#runtime-constraints-on-cpu-and-memory) for more information) -cpuset | CPUs in which to allow execution -memory | The memory limit of the containers of the service in MB (see [Runtime Constraints on CPU and Memory](/engine/reference/run/#runtime-constraints-on-cpu-and-memory) for more information) -memory_swap | Total memory limit (memory + swap) of the containers of the service in MB -linked_from_service | A list of services that are linked to this one (see table `Related services attributes` below) -linked_to_service | A list of services that the service is linked to (see table `Related services attributes` below) -bindings | A list of volume bindings that the service has mounted (see table `Service binding attributes` below) -autorestart | Whether to restart the containers of the service automatically if they stop (see [Crash recovery](/docker-cloud/apps/autorestart/) for more information) -autodestroy | Whether to terminate the containers of the service automatically if they stop (see [Autodestroy](/docker-cloud/apps/auto-destroy/) for more information) -roles | List of Docker Cloud roles assigned to this service (see [Service links](/docker-cloud/apps/service-links/) for more information) -link_variables | List of environment variables that would be exposed in the containers if they are linked to this service -privileged | Whether to start the containers with Docker's `privileged` flag set or not, which allows containers to access all devices on the host among other things (see [Runtime privilege](/engine/reference/run/#runtime-privilege-linux-capabilities-and-lxc-configuration) for more information) -read_only | Whether the filesystem of every service container is read-only or not (`false` by default) -deployment_strategy | Container distribution among nodes (see table `Deployment strategies` below and [Deployment strategies](/docker-cloud/infrastructure/deployment-strategies/) for more information) -tags | List of tags to be used to deploy the service (see [Tags](/docker-cloud/apps/deploy-tags/) for more information) -autoredeploy | Whether to redeploy the containers of the service when its image is updated in Docker Cloud registry (see [Docker Cloud's private registry](/docker-cloud/apps/auto-redeploy/) for more information) -nickname | A user-friendly name for the service (`name` by default) - - -### Service binding attributes - -Attribute | Description ---------- | ----------- -host_path | The host path of the volume -container_path | The container path where the volume is mounted -rewritable | `true` is the volume has writable permissions -volumes_from | The resource URI of the service - - -### Service Port attributes - -Attribute | Description ---------- | ----------- -protocol | The protocol of the port, either `tcp` or `udp` -inner_port | The published port number inside the container -outer_port | The published port number in the node public network interface -port_name | Name of the service associated to this port -endpoint_uri | The URI of the service endpoint for this port -published | Whether the port has been published in the host public network interface or not. Non-published ports can only be accessed via links. - - -### Service Environment Variable attributes - -Attribute | Description ---------- | ----------- -key | The name of the environment variable -value | The value of the environment variable - - -### Related services attributes - -Attribute | Description ---------- | ----------- -name | The link name -from_service | The resource URI of the origin of the link -to_service | The resource URI of the target of the link - - -### Service states - -State | Description ------ | ----------- -Not running | The service has been created and has no deployed containers yet. Possible actions in this state: `start`, `terminate`. -Starting | All containers for the service are either starting or already running. No actions allowed in this state. -Running | All containers for the service are deployed and running. Possible actions in this state: `stop`, `redeploy`, `terminate`. -Partly running | One or more containers of the service are deployed and running. Possible actions in this state: `stop`, `redeploy`, `terminate`. -Scaling | The service is either deploying new containers or destroying existing ones responding to a scaling request. No actions allowed in this state. -Redeploying | The service is redeploying all its containers with the updated configuration. No actions allowed in this state. -Stopping | All containers for the service are either stopping or already stopped. No actions allowed in this state. -Stopped | All containers for the service are stopped. Possible actions in this state: `start`, `redeploy`, `terminate`. -Terminating | All containers for the service are either being terminated or already terminated. No actions allowed in this state. -Terminated | The service and all its containers have been terminated. No actions allowed in this state. - - -### Deployment strategies - -Strategy | Description --------- | ----------- -EMPTIEST_NODE | It will deploy containers to the node with the lower total amount of running containers (default). -HIGH_AVAILABILITY | It will deploy containers to the node with the lower amount of running containers of the same service. -EVERY_NODE | It will deploy one container on every node. The service can't scale manually. New containers will be deployed to new nodes automatically. - - -### Network Modes - -Strategy | Description --------- | ----------- -bridge | Creates a new network stack for the container on the docker bridge. -host | Uses the host network stack inside the container. - -## List all services - -```python -import dockercloud - -services = dockercloud.Service.list() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -serviceList, err := dockercloud.ListServices() - -if err != nil { - log.Println(err) -} - -log.Println(serviceList) -``` - -```http -GET /api/app/v1/service/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud service ps -``` - -Lists all current and recently terminated services. Returns a list of `Service` objects. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/app/v1/[optional_namespace/]service/` - -### Query Parameters - -Parameter | Description ---------- | ----------- -uuid | Filter by UUID -state | Filter by state. Possible values: `Not running`, `Starting`, `Running`, `Partly running`, `Scaling`, `Redeploying`, `Stopping`, `Stopped`, `Terminating`, `Terminated` -name | Filter by service name -stack | Filter by resource URI of the target stack. - -## Create a new service - -```python -import dockercloud - -service = dockercloud.Service.create(image="tutum/hello-world", name="my-new-app", target_num_containers=2) -service.save() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -service, err := dockercloud.CreateService(dockercloud.ServiceCreateRequest{Image: "tutum/hello-world", Name: "my-new-app", Target_num_containers: 2}) - -if err != nil { - log.Println(err) -} - -log.Println(service) -``` - -```http -POST /api/app/v1/service/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -Content-Type: application/json - -{"image": "tutum/hello-world", "name": "my-new-app", "target_num_containers": 2} -``` - -```shell -docker-cloud service create -t 2 --name my-new-app tutum/hello-world -``` - -Creates a new service without starting it. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/app/v1/[optional_namespace/]service/` - -### JSON Parameters - -Parameter | Description ---------- | ----------- -image | (required) The image used to deploy this service in docker format, such as `tutum/hello-world` -name | (optional) A human-readable name for the service, such as `my-hello-world-app` (default: `image` without namespace) -target_num_containers | (optional) The number of containers to run for this service initially (default: 1) -run_command | (optional) The command used to start the containers of this service, overriding the value specified in the image, i.e. `/run.sh` (default: `null`) -entrypoint | (optional) The command prefix used to start the containers of this service, overriding the value specified in the image, i.e. `/usr/sbin/sshd` (default: `null`) -container_ports | (optional) An array of objects with port information to be published in the containers for this service, which will be added to the image port information, i.e. `[{"protocol": "tcp", "inner_port": 80, "outer_port": 80}]` (default: `[]`) (See table `Service Port attributes` below) -container_envvars | (optional) An array of objects with environment variables to be added in the service containers on launch (overriding any image-defined environment variables), i.e. `[{"key": "DB_PASSWORD", "value": "mypass"}]` (default: `[]`) (See table `Service Environment Variable attributes` below) -linked_to_service | (optional) An array of service resource URIs to link this service to, including the link name, i.e. `[{"to_service": "/api/app/v1/service/80ff1635-2d56-478d-a97f-9b59c720e513/", "name": "db"}]` (default: `[]`) (See table `Related services attributes` below) -bindings | (optional) An array of bindings this service mounts, i.e. `[{"volumes_from": "/api/app/v1/service/80ff1635-2d56-478d-a97f-9b59c720e513/", "rewritable": true}]` (default: `[]`) (See table `Related bindings attributes` below) -autorestart | (optional) Whether the containers for this service should be restarted if they stop, i.e. `ALWAYS` (default: `OFF`, possible values: `OFF`, `ON_FAILURE`, `ALWAYS`) (see [Crash recovery](/docker-cloud/apps/autorestart/) for more information) -autodestroy | (optional) Whether the containers should be terminated if they stop, i.e. `OFF` (default: `OFF`, possible values: `OFF`, `ON_SUCCESS`, `ALWAYS`) (see [Autodestroy](/docker-cloud/apps/auto-destroy/) for more information) -sequential_deployment | (optional) Whether the containers should be launched and scaled in sequence, i.e. `true` (default: `false`) (see [Service scaling](/docker-cloud/apps/service-scaling/) for more information) -roles | (optional) A list of Docker Cloud API roles to grant the service, i.e. `["global"]` (default: `[]`, possible values: `global`) (see [Service links](/docker-cloud/apps/service-links/) for more information) -privileged | (optional) Whether to start the containers with Docker's `privileged` flag set or not, i.e. `false` (default: `false`) (see [Runtime privilege](/engine/reference/run/#runtime-privilege-linux-capabilities-and-lxc-configuration) for more information) -deployment_strategy | (optional) Container distribution among nodes (default: `EMPTIEST_NODE`, see table `Deployment strategies` above and [Deployment strategies](/docker-cloud/infrastructure/deployment-strategies/) for more information) -tags | (optional) A list of tags to be used to deploy the service (see [Tags](/docker-cloud/apps/deploy-tags/) for more information) (default: `[]`) -autoredeploy | (optional) Whether to redeploy the containers of the service when its image is updated in Docker Cloud registry (default: `false`) (see [Docker Cloud's private registry](/docker-cloud/apps/auto-redeploy/) for more information) -net | (optional) Set the network mode to the containers (default: `bridge`, possible values: `bridge`, `host`) -pid | (optional) Set the PID (Process) Namespace mode for the containers (default: `none` value, possible values: `none`, `host`) -working_dir | (optional) Working directory for running binaries within a container of this service (default: `/`) -nickname | (optional) A user-friendly name for the service (`name` by default) - - -### Related bindings attributes - -Attribute | Description ---------- | ----------- -host_path | (optional) The host path of the volume -container_path | (required if `volumes_from` is omitted) The container path where the volume is mounted -rewritable | (optional) `true` is the volume has writable permissions (default: `true`) -volumes_from | (required if `container_path` is omitted) The resource URI of the service - - -### Service Port attributes - -Attribute | Description ---------- | ----------- -protocol | (required) The protocol of the port, either `tcp` or `udp` -inner_port | (required) The port number inside the container to be published -outer_port | (optional) The port number in the node public network interface to be published (default: dynamic allocation if `published` is `true`) -published | (optional) Whether to publish the port in the host public network interface or not. Non-published ports can only be accessed via links. (default: `false`) - - -### Service Environment Variable attributes - -Attribute | Description ---------- | ----------- -key | (required) The name of the environment variable -value | (required) The value of the environment variable - - -### Related services attributes - -Attribute | Description ---------- | ----------- -to_service | (required) The resource URI of the target of the link -name | (optional) The link name - - -## Get an existing service - -```python -import dockercloud - -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -log.Println(service) -``` - -```http -GET /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud service inspect 7eaf7fff -``` - -Get all the details of an specific service - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/app/v1/[optional_namespace/]service/(uuid)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the service to retrieve - - -## Get the logs of a service - -> Example log line - -```json -{ - "type": "log", - "source": "wordpress-stackable-1", - "log": "Log line from the container indicated by 'source'", - "streamType": "stdout", - "timestamp": 1433779324 -} -``` - -```python -import dockercloud - -def log_handler(message): - print message - -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -service.logs(tail=300, follow=True, log_handler=log_handler) -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -c := make(chan Logs) - -go service.Logs(c) - for { - s := <-c - log.Println(s) - } -``` - -```http -GET /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/logs/ HTTP/1.1 -Host: ws.cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Connection: Upgrade -Upgrade: websocket -``` - -```shell -docker-cloud service logs 7eaf7fff -``` - -Get the aggregated logs of all the containers of the service. - -### Endpoint Type - -Available in Docker Cloud's **STREAM API** - -### HTTP Request - -`GET /api/app/v1/[optional_namespace/]service/(uuid)/logs/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the service to retrieve logs - -### Query Parameters - -Parameter | Description ---------- | ----------- -tail | Number of lines to show from the end of the logs (default: `300`) -follow | Whether to stream logs or close the connection immediately (default: true) - - -## Update an existing service - -```python -import dockercloud - -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -service.target_num_containers = 3 -service.tags.append({"name":"tag-1"}) -service.save() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -if err = service.Update(dockercloud.ServiceCreateRequest{Target_num_containers: 3}); err != nil { - log.Println(err) -} -``` - -```http -PATCH /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -Content-Type: application/json - -{"autorestart": "ON_FAILURE", "autodestroy": "OFF", "container_envvars": [{"key": "DB_PASSWORD", "value": "mypass"}], -"container_ports": [{"protocol": "tcp", "inner_port": 80, "outer_port": 80}], "cpu_shares": 512, -"entrypoint": "/usr/sbin/sshd", "image": "tutum/hello-world", -"linked_to_service": [{"to_service": "/api/app/v1/service/80ff1635-2d56-478d-a97f-9b59c720e513/", "name": "db"}], -"memory": 2048, "privileged": True, "roles": ["global"], "run_command": "/run.sh", "sequential_deployment": False, -"tags": [{"name": "tag-1"}], "target_num_containers": 3, "autoredeploy": False} - -``` - -```shell -docker-cloud service scale 7eaf7fff 3 -docker-cloud tag add -t tag-1 7eaf7fff -docker-cloud tag set -t tag-2 7eaf7fff -``` - -Updates the service details. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`PATCH /api/app/v1/[optional_namespace/]service/(uuid)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the service to update - - -### JSON Parameters - -Parameter | Description ---------- | ----------- -autorestart | (optional) Whether the containers for this service should be restarted if they stop, i.e. `ALWAYS` (possible values: `OFF`, `ON_FAILURE`, `ALWAYS`) (see [Crash recovery](/docker-cloud/apps/autorestart/) for more information) -autodestroy | (optional) Whether the containers should be terminated if they stop, i.e. `OFF` (possible values: `OFF`, `ON_SUCCESS`, `ALWAYS`) (see [Autodestroy](/docker-cloud/apps/auto-destroy/) for more information) -container_envvars | (optional) An array of objects with environment variables to be added in the service containers on launch (overriding any image-defined environment variables), i.e. `[{"key": "DB_PASSWORD", "value": "mypass"}]` (See table `Service Environment Variable attributes`) -container_ports | (optional) An array of objects with port information to be published in the containers for this service, which will be added to the image port information, i.e. `[{"protocol": "tcp", "inner_port": 80, "outer_port": 80}]` (See table `Service Port attributes`) -cpu_shares | (optional) The relative CPU priority of the containers the service describes (see [Runtime Constraints on CPU and Memory](/engine/reference/run/#runtime-constraints-on-cpu-and-memory) for more information) -entrypoint | (optional) The command prefix used to start the containers of this service, overriding the value specified in the image, i.e. `/usr/sbin/sshd` -image | (optional) The image used to deploy this service in docker format, i.e. `tutum/hello-world`, `tutum/ubuntu:5.6`. If no tag is indicated, it will be set to `latest` by default -linked_to_service | (optional) An array of service resource URIs to link this service to, including the link name, i.e. `[{"to_service": "/api/app/v1/service/80ff1635-2d56-478d-a97f-9b59c720e513/", "name": "db"}]` (See table `Related services attributes` below) -memory | (optional) The memory limit of the containers of the service in MB (see [Runtime Constraints on CPU and Memory](/engine/reference/run/#runtime-constraints-on-cpu-and-memory) for more information) -privileged | (optional) Whether to start the containers with Docker's `privileged` flag set or not, i.e. `false` (see [Runtime privilege](/engine/reference/run/#runtime-privilege-linux-capabilities-and-lxc-configuration) for more information) -roles | (optional) A list of Docker Cloud API roles to grant the service, i.e. `["global"]` (possible values: `global`) (see [Service links](/docker-cloud/apps/service-links/) for more information) -run_command | (optional) The command used to start the containers of this service, overriding the value specified in the image, i.e. `/run.sh` -sequential_deployment | (optional) Whether the containers should be launched and scaled in sequence, i.e. `true` (see [Service scaling](/docker-cloud/apps/service-scaling/) for more information) -tags | (optional) List of new tags the service will have. This operation replaces the tag list -target_num_containers | (optional) The number of containers to scale this service to -deployment_strategy | (optional) Container distribution among nodes. A service cannot be updated to or from a deployment strategy of `EVERY_NODE`. (See table `Deployment strategies` above and [Deployment strategies](/docker-cloud/infrastructure/deployment-strategies/) for more information) -autoredeploy | Whether to redeploy the containers of the service when its image is updated in Docker Cloud registry (see [Docker Cloud's private registry](/docker-cloud/apps/auto-redeploy/) for more information) -net | (optional) Set the network mode to the containers (default: `bridge`, possible values: `bridge`, `host`) -pid | (optional) Set the PID (Process) Namespace mode for the containers (default: `none` value, possible values: `none`, `host`) -working_dir | (optional) Working directory for running binaries within a container of this service (default: `/`) -nickname | (optional) A user-friendly name for the service (`name` by default) - - -## Start a service - -```python -import dockercloud - -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -service.start() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -if err = service.Start(); err != nil { - log.Println(err) -} -``` - -```http -POST /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/start/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud service start 7eaf7fff -``` - -Starts all containers in a stopped or partly running service. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/app/v1/[optional_namespace/]service/(uuid)/start/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the service to start - - -## Stop a service - -```python -import dockercloud - -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -service.stop() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -if err = service.Stop(); err != nil { - log.Println(err) -} -``` - -```http -POST /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/stop/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud service stop 7eaf7fff -``` - -Stops all containers in a running or partly running service. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/app/v1/[optional_namespace/]service/(uuid)/stop/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the service to stop - - -## Scale a service - -```python -import dockercloud - -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -service.target_num_containers = 3 -service.save() -service.scale() -``` - -```http -POST /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/scale/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud service scale 7eaf7fff-882c-4f3d-9a8f-a22317ac00ce 3 -``` - -Scales the service to its current `target_num_containers` field. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/app/v1/[optional_namespace/]service/(uuid)/scale/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the service to scale - - -## Redeploy a service - -```python -import dockercloud - -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -service.redeploy() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: true}) to reuse the existing volumes -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}) to not reuse the existing volumes -if err = service.Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}); err != nil { - log.Println(err) -} -``` - -```http -POST /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/redeploy/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud service redeploy 7eaf7fff -``` - -Redeploys all containers in the service with the current service configuration. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/app/v1/[optional_namespace/]service/(uuid)/redeploy/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the service to redeploy - -### Query Parameters - -Parameter | Description ---------- | ----------- -reuse_volumes | Whether to reuse container volumes for this redeploy operation or not (default: `true`). - - -## Terminate a service - -```python -import dockercloud - -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -service.delete() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -if err = service.Terminate(); err != nil { - log.Println(err) -} -``` - -```http -DELETE /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud service terminate 7eaf7fff -``` - -Terminate all the containers in a service and the service itself. This is not reversible. All the data stored in all containers of the service will be permanently deleted. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`DELETE /api/app/v1/[optional_namespace/]service/(uuid)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the service to terminate diff --git a/apidocs/cloud-api-source/source/includes/stack.md b/apidocs/cloud-api-source/source/includes/stack.md deleted file mode 100644 index b25708a782..0000000000 --- a/apidocs/cloud-api-source/source/includes/stack.md +++ /dev/null @@ -1,572 +0,0 @@ -# Stacks - -## Stack - -> Example - -```json -{ - "deployed_datetime": "Mon, 13 Oct 2014 11:01:43 +0000", - "destroyed_datetime": null, - "nickname": "deployment stack", - "name": "dockercloud-app", - "resource_uri": "/api/app/v1/user_namespace/stack/7fe7ec85-58be-4904-81da-de2219098d7c/", - "services": [ - "/api/app/v1/user_namespace/service/09cbcf8d-a727-40d9-b420-c8e18b7fa55b/" - ], - "state": "Running", - "synchronized": true, - "uuid": "09cbcf8d-a727-40d9-b420-c8e18b7fa55b" -} -``` - -A stack is a logical grouping of closely related services, that may be linked with one another. - -This is a [namespaced endpoint](#namespaced-endpoints). - -### Attributes - -Attribute | Description ---------- | ----------- -uuid | A unique identifier for the stack generated automatically on creation -resource_uri | A unique API endpoint that represents the stack -name | A user provided name for the stack. -state | The state of the stack (see table `Stack states` below) -synchronized | Flag indicating if the current stack definition is synchronized with their services. -services | List of service resource URIs belonging to the stack -deployed_datetime | The date and time of the last deployment of the stack (if applicable, `null` otherwise) -destroyed_datetime | The date and time of the `terminate` operation on the stack (if applicable, `null` otherwise) -nickname | A user-friendly name for the stack (`name` by default) - - -### Stack states - -State | Description ------ | ----------- -Not Running | The stack has been created and has no deployed services yet. Possible actions in this state: `start`, `terminate`. -Starting | All services for the stack are either starting or already running. No actions allowed in this state. -Running | All services for the service are deployed and running. Possible actions in this state: `redeploy`, `terminate`. -Partly running | One or more services of the stack are deployed and running. Possible actions in this state: `redeploy`, `terminate`. -Stopping | All services for the stack are either stopping or already stopped. No actions allowed in this state. -Stopped | All services for the service are stopped. Possible actions in this state: `start`, `redeploy`, `terminate`. -Redeploying | The stack is redeploying all its services with the updated configuration. No actions allowed in this state. -Terminating | All services for the stack are either being terminated or already terminated. No actions allowed in this state. -Terminated | The stack and all its services have been terminated. No actions allowed in this state. - - -## List all stacks - -```python -import dockercloud - -stacks = dockercloud.Stack.list() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -stackList, err := dockercloud.ListStacks() - -if err != nil { - log.Println(err) -} - -log.Println(stackList) -``` - -```http -GET /api/app/v1/stack/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud stack ls -``` - -Lists all current and recently terminated stacks. Returns a list of `Stack` objects. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/app/v1/[optional_namespace/]stack/` - -### Query Parameters - -Parameter | Description ---------- | ----------- -uuid | Filter by UUID -name | Filter by stack name - - -## Create a new stack - -```python -import dockercloud - -stack = dockercloud.Stack.create(name="my-new-stack", services=[{"name": "hello-word", "image": "tutum/hello-world", "target_num_containers": 2}]) -stack.save() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -stack, err := dockercloud.CreateStack(dockercloud.StackCreateRequest{Name: "my-new-stack", Services: []dockercloud.ServiceCreateRequest{{Image: "tutum/hello-world", Name: "test", Target_num_containers: 2}}}) - -if err != nil { - log.Println(err) -} - -log.Println(stack) -``` - -```http -POST /api/app/v1/stack/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -Content-Type: application/json - -{ - "name": "my-new-stack", - "services": [ - { - "name": "hello-word", - "image": "tutum/hello-world", - "target_num_containers": 2, - "linked_to_service": [ - { - "to_service": "database", - "name": "DB" - } - ] - }, - { - "name": "database", - "image": "tutum/mysql" - } - ] -} -``` - -```shell -docker-cloud stack create --name hello-world -f docker-compose.yml -``` - -Creates a new stack without starting it. The JSON syntax is abstracted to use -[Stack YAML files](/docker-cloud/apps/stack-yaml-reference/) in both -the Docker Cloud CLI and our UI, - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/app/v1/[optional_namespace/]stack/` - -### JSON Parameters - -Parameter | Description ---------- | ----------- -name | (required) A human-readable name for the stack, such as `my-hello-world-stack` -nickname | (optional) A user-friendly name for the stack (`name` by default) -services | (optional) List of services belonging to the stack. Each service accepts the same parameters as a [Create new service](#create-a-new-service) operation (default: `[]`) plus the ability to refer "links" and "volumes-from" by the name of another service in the stack (see example). - - -## Export an existing stack - -```python -import dockercloud - -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816") -stack.export() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816") - -if err != nil { - log.Println(err) -} - -if err = stack.Export(); err != nil { - log.Println(err) -} -``` - -```http -GET /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/export/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud stack export 46aca402 -``` - -Get a JSON representation of the stack following the [Stack YAML representation](/docker-cloud/apps/stacks/). - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/app/v1/[optional_namespace/]stack/(uuid)/export/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the stack to retrieve - - - -## Get an existing stack - -```python -import dockercloud - -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816") -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816") - -if err != nil { - log.Println(err) -} - -log.Println(stack) -``` - -```http -GET /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud stack inspect 46aca402-2109-4a70-a378-760cfed43816 -``` - -Get all the details of an specific stack - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/app/v1/[optional_namespace/]stack/(uuid)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the stack to retrieve - - - -## Update an existing stack - -```python -import dockercloud - -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816") -stack.services = {"services": [{"name": "hello-word", "image": "tutum/hello-world", "target_num_containers": 2}]} -stack.save() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816") - -if err != nil { - log.Println(err) -} - -if err = stack.Update(dockercloud.StackCreateRequest{Services: []dockercloud.ServiceCreateRequest{{Name: "hello-world", Image: "tutum/hello-world", Target_num_containers: 2}}}); err != nil { - log.Println(err) -} -``` - -```http -PATCH /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -Content-Type: application/json - -{ - "services": [ - { - "name": "hello-word", - "image": "tutum/hello-world", - "target_num_containers": 3, - "linked_to_service": [ - { - "to_service": "database", - "name": "DB" - } - ] - }, - { - "name": "database", - "image": "tutum/mysql" - } - ] -} -``` - -```shell -docker-cloud stack update -f docker-compose.yml 46aca402 -``` - -Updates the details of every service in the stack. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`PATCH /api/app/v1/[optional_namespace/]stack/(uuid)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the stack to update - - -### JSON Parameters - -Parameter | Description ---------- | ----------- -services | (optional) List of services belonging to the stack. Each service accepts the same parameters as a [Update an existing service](#update-an-existing-service) operation (default: `[]`) plus the ability to refer "links" and "volumes-from" by the name of another service in the stack (see example). - - - -## Stop a stack - -```python -import dockercloud - -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816") -stack.stop() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816") - -if err != nil { - log.Println(err) -} - -if err = stack.Stop(); err != nil { - log.Println(err) -} -``` - -```http -POST /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/stop/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud stack stop 46aca402-2109-4a70-a378-760cfed43816 -``` - -Stops the services in the stack. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/app/v1/[optional_namespace/]stack/(uuid)/stop/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the stack to stop - - -## Start a stack - -```python -import dockercloud - -stack = dockercloud.Stack.fetch() -stack.start() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816") - -if err != nil { - log.Println(err) -} - -if err = stack.Start(); err != nil { - log.Println(err) -} -``` - -```http -POST /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/start/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud stack start 46aca402 -``` - -Starts the services in the stack. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/app/v1/[optional_namespace/]stack/(uuid)/start/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the stack to start - - -## Redeploy a stack - -```python -import dockercloud - -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816") -stack.redeploy() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816") - -if err != nil { - log.Println(err) -} - -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: true}) to reuse the existing volumes -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}) to not reuse the existing volumes -if err = stack.Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}); err != nil { - log.Println(err) -} -``` - -```http -POST /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/redeploy/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud stack redeploy 46aca402 -``` - -Redeploys all the services in the stack. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/app/v1/[optional_namespace/]stack/(uuid)/redeploy/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the stack to redeploy - -### Query Parameters - -Parameter | Description ---------- | ----------- -reuse_volumes | Whether to reuse container volumes for this redeploy operation or not (default: `true`). - - -## Terminate a stack - -```python -import dockercloud - -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816") -stack.delete() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816") - -if err != nil { - log.Println(err) -} - -if err = stack.Terminate(); err != nil { - log.Println(err) -} -``` - -```http -DELETE /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud stack terminate 46aca402 -``` - -Terminate all the services in a the stack and the stack itself. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`DELETE /api/app/v1/[optional_namespace/]stack/(uuid)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the stack to terminate diff --git a/apidocs/cloud-api-source/source/includes/tag.md b/apidocs/cloud-api-source/source/includes/tag.md deleted file mode 100644 index ccd334ede5..0000000000 --- a/apidocs/cloud-api-source/source/includes/tag.md +++ /dev/null @@ -1,52 +0,0 @@ -# Tags - -## Tag - -> Example - -```json -{ - "name": "byon=false", - "origin": "tutum" -} -``` - -Tags are used to target the deployment of services to a specific set of nodes. [Learn more](/docker-cloud/apps/deploy-tags/) - -### Attributes - -Attribute | Description ---------- | ----------- -name | Name of the tag -origin | Possible values: `user`, `tutum` - - -## List all node tags - -```http -GET /api/infra/v1/tag/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -``` -docker-cloud tag ls 7eaf7fff-882c -``` - -Lists all tags used by all nodes. Returns a list of `Tag` objects. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/infra/v1/tag/` - -### Query Parameters - -Parameter | Description ---------- | ----------- -name | Filter by name -origin | Filter by origin. Possible values: `user`, `tutum` diff --git a/apidocs/cloud-api-source/source/includes/triggers.md b/apidocs/cloud-api-source/source/includes/triggers.md deleted file mode 100644 index 768eb9ec87..0000000000 --- a/apidocs/cloud-api-source/source/includes/triggers.md +++ /dev/null @@ -1,301 +0,0 @@ -# Triggers - -## Service triggers - -> Example - -```json -{ - "url": "/api/app/v1/user_namespace/service/82d4a246-52d8-468d-903d-9da9ef05ff28/trigger/0224815a-c156-44e4-92d7-997c69354438/call/", - "operation": "REDEPLOY", - "name": "docker_trigger", - "resource_uri": "/api/app/v1/user_namespace/service/82d4a246-52d8-468d-903d-9da9ef05ff28/trigger/0224815a-c156-44e4-92d7-997c69354438/" -} -``` - -Triggers are URLs that will start a redeploy of the service whenever a `POST` request is sent to them. They require no authorization headers, so they should be treated as access tokens. Triggers can be revoked if they are leaked or no longer used for security purposes. See [Triggers](/docker-cloud/apps/triggers/) for more information. - -This is a [namespaced endpoint](#namespaced-endpoints). - - -### Attributes - -Attribute | Description ---------- | ----------- -url | Address to be used to call the trigger with a `POST` request -name | A user provided name for the trigger -operation | The operation that the trigger call performs (see table `Operations` below) -resource_uri | A unique API endpoint that represents the trigger - - -### Operations - -Operation | Description ---------- | ----------- -REDEPLOY | Performs a `redeploy` service operation. -SCALEUP | Performs a `scale up` service operation. - - - -## List all triggers - -```python -import dockercloud - -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826') -trigger = dockercloud.Trigger.fetch(service) -trigger.list() -``` - -```http -GET /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826") - - if err != nil { - log.Println(err) - } - -trigger, err := service.ListTriggers() - - if err != nil { - log.Println(err) - } - - log.Println(trigger) -``` - -```shell -docker-cloud trigger list 61a29874-9134-48f9-b460-f37d4bec4826 -``` - -Lists all current triggers the service has associated to. Returns a list of `Service Trigger` objects. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/app/v1/[optional_namespace/]service/(uuid)/trigger/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the service the triggers are associated to - - -## Create a new trigger - -```python -import dockercloud - -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826') -trigger = dockercloud.Trigger.fetch(service) -trigger.add(name="mytrigger_name", operation="REDEPLOY") -trigger.save() -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826") - -if err != nil { - log.Println(err) -} - -trigger, err := service.CreateTrigger(dockercloud.TriggerCreateRequest{Name: "test-trigger", Operation: "REDEPLOY"}) - -if err != nil { - log.Println(err) -} - -log.Println(trigger) -``` - -```http -POST /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -Content-Type: application/json - -{"name": "mytrigger_name", "operation": "REDEPLOY"} -``` - -```shell -docker-cloud trigger create --name mytrigger_name --operation REDEPLOY 61a29874-9134-48f9-b460-f37d4bec4826 -``` - -Creates a new service trigger. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/app/v1/[optional_namespace/]service/(uuid)/trigger/` - -### JSON Parameters - -Parameter | Description ---------- | ----------- -name | (optional) A user provided name for the trigger -operation | (optional) The operation to be performed by the trigger (default: "REDEPLOY") - -## Get an existing trigger -```python -import dockercloud - -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826') -trigger = dockercloud.Trigger.fetch(service) -``` - - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826") - -if err != nil { - log.Println(err) -} - -trigger, err := service.GetTrigger("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") - -if err != nil { - log.Println(err) -} - -log.Println(trigger) -``` - -```http -GET /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -Get all the details of an specific trigger - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`GET /api/app/v1/[optional_namespace/]service/(uuid)/trigger/(trigger_uuid)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the service the triggers are associated to -trigger_uuid | The UUID of the trigger to retrieve - -## Delete a trigger - -```python -import dockercloud - -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826') -trigger = dockercloud.Trigger.fetch(service) -trigger.delete("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826") - -if err != nil { - log.Println(err) -} - -service.DeleteTrigger("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -``` - -```http -DELETE /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -docker-cloud trigger rm 61a29874-9134-48f9-b460-f37d4bec4826 7eaf7fff-882c-4f3d-9a8f-a22317ac00ce -``` - -Deletes specific trigger. It will be no longer available to be called. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`DELETE /api/app/v1/[optional_namespace/]service/(uuid)/trigger/(trigger_uuid)/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the associated service -trigger_uuid | The UUID of the trigger to delete - - -## Call a trigger - -```python -import dockercloud - -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826') -trigger = dockercloud.Trigger.fetch(service) -trigger.call("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826") - -if err != nil { - log.Println(err) -} - -service.CallTrigger("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce") -``` - -```http -POST /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/call/ HTTP/1.1 -Host: cloud.docker.com -Accept: application/json -``` - -Executes the trigger. For `SCALEUP` triggers, the number of containers to scale up can be passed at the end of the trigger call url, for example `/api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/call/3/`. - -### Endpoint Type - -Available in Docker Cloud's **REST API** - -### HTTP Request - -`POST /api/app/v1/[optional_namespace/]service/(uuid)/trigger/(trigger_uuid)/call/` - -### Path Parameters - -Parameter | Description ---------- | ----------- -uuid | The UUID of the associated service -trigger_uuid | The UUID of the trigger to call diff --git a/apidocs/cloud-api-source/source/index.md b/apidocs/cloud-api-source/source/index.md deleted file mode 100644 index 857c6a0dca..0000000000 --- a/apidocs/cloud-api-source/source/index.md +++ /dev/null @@ -1,170 +0,0 @@ ---- -title: Docker Cloud API reference - -language_tabs: - - http - - go - - python - - shell: CLI - -toc_footers: - -includes: - - action - - provider - - region - - availabilityzone - - nodetype - - nodecluster - - node - - registry - - repository - - stack - - service - - container - - triggers - - dockercloud-events - - errors - -search: true ---- - -# Introduction - -Docker Cloud currently offers a **HTTP REST API** and a **Websocket Stream API** which are used by both the [Web UI](https://cloud.docker.com/) and the [CLI](https://github.com/moby/mobycloud-cli). This API documentation contains all API operations currently supported in the platform and provides examples of how to execute them using our Command Line Interface (CLI), [Python SDK](https://github.com/docker/python-dockercloud) and [Go SDK](https://github.com/docker/go-dockercloud). - -# Authentication - -To make requests to the Docker Cloud API, you need an ApiKey for your account. -To get one: - -1. Log into Docker Cloud. -2. Click on the menu on the upper right corner of the screen. -3. Select **Account info**. -4. Select **API keys**. - -## REST API - -```python -import dockercloud -dockercloud.user = "username" -dockercloud.apikey = "apikey" -``` - -```go -import "github.com/docker/go-dockercloud/dockercloud" - -dockercloud.User = "username" -dockercloud.ApiKey = "apikey" -``` - -```http -GET /api/app/v1/service/ HTTP/1.1 -Host: cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Accept: application/json -``` - -```shell -export DOCKERCLOUD_USER=username -export DOCKERCLOUD_APIKEY=apikey -``` - -> Make sure to replace `username` with your username and `apikey` with your API key. - -The Docker Cloud REST API is reachable through the following hostname: - -`https://cloud.docker.com/` - -All requests should be sent to this endpoint using `Basic` authentication using your API key as password: - -`Authorization: Basic dXNlcm5hbWU6YXBpa2V5` - -HTTP responses are given in JSON format, so the following `Accept` header is required for every API call: - -`Accept: application/json` - -### Namespaced endpoints - -Endpoints that are labeled as "namespaced" allow the users to operate over -different namespaces, for example over an individual user namespace, or the -namespace of an organization the user is a member of. A namespace identifies the -owner of the resource. - -The namespace is optional. If left blank, it defaults to the authenticated user -in the request. The namespace is set before the resource in the URL schema: -`https://cloud.docker.com/api///(optional_namespace/)/` - -Examples: - -- The user `exampleuser` wants to operate on the node cluster list endpoint in their own namespace. They can use either of the following urls: - - https://cloud.docker.com/api/infra/v1/nodecluster/ (namespace omitted, so will use the user authenticated in the request) - - https://cloud.docker.com/api/infra/v1/exampleuser/nodecluster/ -- The user wants to operate on the node cluster list endpoint in an organization called `exampleorg` (which they have permission to see): - - https://cloud.docker.com/api/infra/v1/exampleorg/nodecluster/ - -### Namespaced endpoints in the docker-cloud CLI - -If you are using namespaces with the `docker-cloud` CLI, set them by changing -the value of the `DOCKERCLOUD_NAMESPACE` environment variable. You can either -set this globally, or specify it before each CLI command. To learn more, see the -[Docker Cloud CLI README](https://github.com/moby/mobycloud-cli#namespace). - -## Stream API - -```python -import websocket -import base64 - -header = "Authorization: Basic %s" % base64.b64encode("%s:%s" % (username, password)) -ws = websocket.WebSocketApp('wss://ws.cloud.docker.com/v1/events', header=[header]) -``` - -```go -import "github.com/gorilla/websocket" -import "encoding/base64" - -var StreamUrl = "wss://ws.cloud.docker.com:443/v1/events" - -sEnc := base64.StdEncoding.EncodeToString([]byte(User + ":" + ApiKey)) -header := http.Header{} -header.Add("Authorization", fmt.Sprintf("Basic %s", sEnc)) - -var Dialer websocket.Dialer -ws, _, err := Dialer.Dial(url, header) -if err != nil { - log.Println(err) -} -``` - -```http -GET /api/audit/v1/events HTTP/1.1 -Host: ws.cloud.docker.com -Authorization: Basic dXNlcm5hbWU6YXBpa2V5 -Connection: Upgrade -Upgrade: websocket -``` - -```shell -export DOCKERCLOUD_USER=username -export DOCKERCLOUD_APIKEY=apikey -``` - -> Make sure to replace `username` with your username and `apikey` with your API key. - -The Docker Cloud Stream API is reachable through the following hostname: - -`wss://ws.cloud.docker.com/` - -The Stream API requires the same authentication mechanism as the REST API: - -`Authorization: Basic dXNlcm5hbWU6YXBpa2V5` - - -## API roles - -> The CLI and the SDKs will detect this environment variable and automatically use it - -If you give an [API role](/docker-cloud/apps/api-roles/) to a container, the environment variable `DOCKERCLOUD_AUTH` inside the container will have the contents of the `Authorization` header that you can use to authenticate against the REST or Stream APIs: - -`curl -H "Authorization: $DOCKERCLOUD_AUTH" https://cloud.docker.com/api/app/v1/service/` diff --git a/apidocs/cloud-api-source/source/javascripts/all.js b/apidocs/cloud-api-source/source/javascripts/all.js deleted file mode 100644 index ffaa9b0130..0000000000 --- a/apidocs/cloud-api-source/source/javascripts/all.js +++ /dev/null @@ -1,4 +0,0 @@ -//= require ./lib/_energize -//= require ./app/_lang -//= require ./app/_search -//= require ./app/_toc diff --git a/apidocs/cloud-api-source/source/javascripts/all_nosearch.js b/apidocs/cloud-api-source/source/javascripts/all_nosearch.js deleted file mode 100644 index 818bc4e509..0000000000 --- a/apidocs/cloud-api-source/source/javascripts/all_nosearch.js +++ /dev/null @@ -1,3 +0,0 @@ -//= require ./lib/_energize -//= require ./app/_lang -//= require ./app/_toc diff --git a/apidocs/cloud-api-source/source/javascripts/app/_lang.js b/apidocs/cloud-api-source/source/javascripts/app/_lang.js deleted file mode 100644 index 1a124bb68a..0000000000 --- a/apidocs/cloud-api-source/source/javascripts/app/_lang.js +++ /dev/null @@ -1,162 +0,0 @@ -/* -Copyright 2008-2013 Concur Technologies, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); you may -not use this file except in compliance with the License. You may obtain -a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations -under the License. -*/ -(function (global) { - 'use strict'; - - var languages = []; - - global.setupLanguages = setupLanguages; - global.activateLanguage = activateLanguage; - - function activateLanguage(language) { - if (!language) return; - if (language === "") return; - - $(".lang-selector a").removeClass('active'); - $(".lang-selector a[data-language-name='" + language + "']").addClass('active'); - for (var i=0; i < languages.length; i++) { - $(".highlight." + languages[i]).hide(); - } - $(".highlight." + language).show(); - - global.toc.calculateHeights(); - - // scroll to the new location of the position - if ($(window.location.hash).get(0)) { - $(window.location.hash).get(0).scrollIntoView(true); - } - } - - // parseURL and stringifyURL are from https://github.com/sindresorhus/query-string - // MIT licensed - // https://github.com/sindresorhus/query-string/blob/7bee64c16f2da1a326579e96977b9227bf6da9e6/license - function parseURL(str) { - if (typeof str !== 'string') { - return {}; - } - - str = str.trim().replace(/^(\?|#|&)/, ''); - - if (!str) { - return {}; - } - - return str.split('&').reduce(function (ret, param) { - var parts = param.replace(/\+/g, ' ').split('='); - var key = parts[0]; - var val = parts[1]; - - key = decodeURIComponent(key); - // missing `=` should be `null`: - // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters - val = val === undefined ? null : decodeURIComponent(val); - - if (!ret.hasOwnProperty(key)) { - ret[key] = val; - } else if (Array.isArray(ret[key])) { - ret[key].push(val); - } else { - ret[key] = [ret[key], val]; - } - - return ret; - }, {}); - }; - - function stringifyURL(obj) { - return obj ? Object.keys(obj).sort().map(function (key) { - var val = obj[key]; - - if (Array.isArray(val)) { - return val.sort().map(function (val2) { - return encodeURIComponent(key) + '=' + encodeURIComponent(val2); - }).join('&'); - } - - return encodeURIComponent(key) + '=' + encodeURIComponent(val); - }).join('&') : ''; - }; - - // gets the language set in the query string - function getLanguageFromQueryString() { - if (location.search.length >= 1) { - var language = parseURL(location.search).language - if (language) { - return language; - } else if (jQuery.inArray(location.search.substr(1), languages) != -1) { - return location.search.substr(1); - } - } - - return false; - } - - // returns a new query string with the new language in it - function generateNewQueryString(language) { - var url = parseURL(location.search); - if (url.language) { - url.language = language; - return stringifyURL(url); - } - return language; - } - - // if a button is clicked, add the state to the history - function pushURL(language) { - if (!history) { return; } - var hash = window.location.hash; - if (hash) { - hash = hash.replace(/^#+/, ''); - } - history.pushState({}, '', '?' + generateNewQueryString(language) + '#' + hash); - - // save language as next default - localStorage.setItem("language", language); - } - - function setupLanguages(l) { - var defaultLanguage = localStorage.getItem("language"); - - languages = l; - - var presetLanguage = getLanguageFromQueryString(); - if (presetLanguage) { - // the language is in the URL, so use that language! - activateLanguage(presetLanguage); - - localStorage.setItem("language", presetLanguage); - } else if ((defaultLanguage !== null) && (jQuery.inArray(defaultLanguage, languages) != -1)) { - // the language was the last selected one saved in localstorage, so use that language! - activateLanguage(defaultLanguage); - } else { - // no language selected, so use the default - activateLanguage(languages[0]); - } - } - - // if we click on a language tab, activate that language - $(function() { - $(".lang-selector a").on("click", function() { - var language = $(this).data("language-name"); - pushURL(language); - activateLanguage(language); - return false; - }); - window.onpopstate = function() { - activateLanguage(getLanguageFromQueryString()); - }; - }); -})(window); diff --git a/apidocs/cloud-api-source/source/javascripts/app/_search.js b/apidocs/cloud-api-source/source/javascripts/app/_search.js deleted file mode 100644 index 91f38a04ed..0000000000 --- a/apidocs/cloud-api-source/source/javascripts/app/_search.js +++ /dev/null @@ -1,74 +0,0 @@ -//= require ../lib/_lunr -//= require ../lib/_jquery.highlight -(function () { - 'use strict'; - - var content, searchResults; - var highlightOpts = { element: 'span', className: 'search-highlight' }; - - var index = new lunr.Index(); - - index.ref('id'); - index.field('title', { boost: 10 }); - index.field('body'); - index.pipeline.add(lunr.trimmer, lunr.stopWordFilter); - - $(populate); - $(bind); - - function populate() { - $('h1, h2').each(function() { - var title = $(this); - var body = title.nextUntil('h1, h2'); - index.add({ - id: title.prop('id'), - title: title.text(), - body: body.text() - }); - }); - } - - function bind() { - content = $('.content'); - searchResults = $('.search-results'); - - $('#input-search').on('keyup', search); - } - - function search(event) { - unhighlight(); - searchResults.addClass('visible'); - - // ESC clears the field - if (event.keyCode === 27) this.value = ''; - - if (this.value) { - var results = index.search(this.value).filter(function(r) { - return r.score > 0.0001; - }); - - if (results.length) { - searchResults.empty(); - $.each(results, function (index, result) { - var elem = document.getElementById(result.ref); - searchResults.append("
  • " + $(elem).text() + "
  • "); - }); - highlight.call(this); - } else { - searchResults.html('
  • '); - $('.search-results li').text('No Results Found for "' + this.value + '"'); - } - } else { - unhighlight(); - searchResults.removeClass('visible'); - } - } - - function highlight() { - if (this.value) content.highlight(this.value, highlightOpts); - } - - function unhighlight() { - content.unhighlight(highlightOpts); - } -})(); diff --git a/apidocs/cloud-api-source/source/javascripts/app/_toc.js b/apidocs/cloud-api-source/source/javascripts/app/_toc.js deleted file mode 100644 index bc2aa3e1f1..0000000000 --- a/apidocs/cloud-api-source/source/javascripts/app/_toc.js +++ /dev/null @@ -1,55 +0,0 @@ -//= require ../lib/_jquery_ui -//= require ../lib/_jquery.tocify -//= require ../lib/_imagesloaded.min -(function (global) { - 'use strict'; - - var closeToc = function() { - $(".tocify-wrapper").removeClass('open'); - $("#nav-button").removeClass('open'); - }; - - var makeToc = function() { - global.toc = $("#toc").tocify({ - selectors: 'h1, h2', - extendPage: false, - theme: 'none', - smoothScroll: false, - showEffectSpeed: 0, - hideEffectSpeed: 180, - ignoreSelector: '.toc-ignore', - highlightOffset: 60, - scrollTo: -1, - scrollHistory: true, - hashGenerator: function (text, element) { - return element.prop('id'); - } - }).data('toc-tocify'); - - $("#nav-button").click(function() { - $(".tocify-wrapper").toggleClass('open'); - $("#nav-button").toggleClass('open'); - return false; - }); - - $(".page-wrapper").click(closeToc); - $(".tocify-item").click(closeToc); - }; - - // Hack to make already open sections to start opened, - // instead of displaying an ugly animation - function animate() { - setTimeout(function() { - toc.setOption('showEffectSpeed', 180); - }, 50); - } - - $(function() { - makeToc(); - animate(); - $('.content').imagesLoaded( function() { - global.toc.calculateHeights(); - }); - }); -})(window); - diff --git a/apidocs/cloud-api-source/source/javascripts/lib/_energize.js b/apidocs/cloud-api-source/source/javascripts/lib/_energize.js deleted file mode 100644 index 6798f3c03f..0000000000 --- a/apidocs/cloud-api-source/source/javascripts/lib/_energize.js +++ /dev/null @@ -1,169 +0,0 @@ -/** - * energize.js v0.1.0 - * - * Speeds up click events on mobile devices. - * https://github.com/davidcalhoun/energize.js - */ - -(function() { // Sandbox - /** - * Don't add to non-touch devices, which don't need to be sped up - */ - if(!('ontouchstart' in window)) return; - - var lastClick = {}, - isThresholdReached, touchstart, touchmove, touchend, - click, closest; - - /** - * isThresholdReached - * - * Compare touchstart with touchend xy coordinates, - * and only fire simulated click event if the coordinates - * are nearby. (don't want clicking to be confused with a swipe) - */ - isThresholdReached = function(startXY, xy) { - return Math.abs(startXY[0] - xy[0]) > 5 || Math.abs(startXY[1] - xy[1]) > 5; - }; - - /** - * touchstart - * - * Save xy coordinates when the user starts touching the screen - */ - touchstart = function(e) { - this.startXY = [e.touches[0].clientX, e.touches[0].clientY]; - this.threshold = false; - }; - - /** - * touchmove - * - * Check if the user is scrolling past the threshold. - * Have to check here because touchend will not always fire - * on some tested devices (Kindle Fire?) - */ - touchmove = function(e) { - // NOOP if the threshold has already been reached - if(this.threshold) return false; - - this.threshold = isThresholdReached(this.startXY, [e.touches[0].clientX, e.touches[0].clientY]); - }; - - /** - * touchend - * - * If the user didn't scroll past the threshold between - * touchstart and touchend, fire a simulated click. - * - * (This will fire before a native click) - */ - touchend = function(e) { - // Don't fire a click if the user scrolled past the threshold - if(this.threshold || isThresholdReached(this.startXY, [e.changedTouches[0].clientX, e.changedTouches[0].clientY])) { - return; - } - - /** - * Create and fire a click event on the target element - * https://developer.mozilla.org/en/DOM/event.initMouseEvent - */ - var touch = e.changedTouches[0], - evt = document.createEvent('MouseEvents'); - evt.initMouseEvent('click', true, true, window, 0, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null); - evt.simulated = true; // distinguish from a normal (nonsimulated) click - e.target.dispatchEvent(evt); - }; - - /** - * click - * - * Because we've already fired a click event in touchend, - * we need to listed for all native click events here - * and suppress them as necessary. - */ - click = function(e) { - /** - * Prevent ghost clicks by only allowing clicks we created - * in the click event we fired (look for e.simulated) - */ - var time = Date.now(), - timeDiff = time - lastClick.time, - x = e.clientX, - y = e.clientY, - xyDiff = [Math.abs(lastClick.x - x), Math.abs(lastClick.y - y)], - target = closest(e.target, 'A') || e.target, // needed for standalone apps - nodeName = target.nodeName, - isLink = nodeName === 'A', - standAlone = window.navigator.standalone && isLink && e.target.getAttribute("href"); - - lastClick.time = time; - lastClick.x = x; - lastClick.y = y; - - /** - * Unfortunately Android sometimes fires click events without touch events (seen on Kindle Fire), - * so we have to add more logic to determine the time of the last click. Not perfect... - * - * Older, simpler check: if((!e.simulated) || standAlone) - */ - if((!e.simulated && (timeDiff < 500 || (timeDiff < 1500 && xyDiff[0] < 50 && xyDiff[1] < 50))) || standAlone) { - e.preventDefault(); - e.stopPropagation(); - if(!standAlone) return false; - } - - /** - * Special logic for standalone web apps - * See http://stackoverflow.com/questions/2898740/iphone-safari-web-app-opens-links-in-new-window - */ - if(standAlone) { - window.location = target.getAttribute("href"); - } - - /** - * Add an energize-focus class to the targeted link (mimics :focus behavior) - * TODO: test and/or remove? Does this work? - */ - if(!target || !target.classList) return; - target.classList.add("energize-focus"); - window.setTimeout(function(){ - target.classList.remove("energize-focus"); - }, 150); - }; - - /** - * closest - * @param {HTMLElement} node current node to start searching from. - * @param {string} tagName the (uppercase) name of the tag you're looking for. - * - * Find the closest ancestor tag of a given node. - * - * Starts at node and goes up the DOM tree looking for a - * matching nodeName, continuing until hitting document.body - */ - closest = function(node, tagName){ - var curNode = node; - - while(curNode !== document.body) { // go up the dom until we find the tag we're after - if(!curNode || curNode.nodeName === tagName) { return curNode; } // found - curNode = curNode.parentNode; // not found, so keep going up - } - - return null; // not found - }; - - /** - * Add all delegated event listeners - * - * All the events we care about bubble up to document, - * so we can take advantage of event delegation. - * - * Note: no need to wait for DOMContentLoaded here - */ - document.addEventListener('touchstart', touchstart, false); - document.addEventListener('touchmove', touchmove, false); - document.addEventListener('touchend', touchend, false); - document.addEventListener('click', click, true); // TODO: why does this use capture? - -})(); \ No newline at end of file diff --git a/apidocs/cloud-api-source/source/javascripts/lib/_imagesloaded.min.js b/apidocs/cloud-api-source/source/javascripts/lib/_imagesloaded.min.js deleted file mode 100644 index d66f658937..0000000000 --- a/apidocs/cloud-api-source/source/javascripts/lib/_imagesloaded.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * imagesLoaded PACKAGED v3.1.8 - * JavaScript is all like "You images are done yet or what?" - * MIT License - */ - -(function(){function e(){}function t(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function n(e){return function(){return this[e].apply(this,arguments)}}var i=e.prototype,r=this,o=r.EventEmitter;i.getListeners=function(e){var t,n,i=this._getEvents();if("object"==typeof e){t={};for(n in i)i.hasOwnProperty(n)&&e.test(n)&&(t[n]=i[n])}else t=i[e]||(i[e]=[]);return t},i.flattenListeners=function(e){var t,n=[];for(t=0;e.length>t;t+=1)n.push(e[t].listener);return n},i.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},i.addListener=function(e,n){var i,r=this.getListenersAsObject(e),o="object"==typeof n;for(i in r)r.hasOwnProperty(i)&&-1===t(r[i],n)&&r[i].push(o?n:{listener:n,once:!1});return this},i.on=n("addListener"),i.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},i.once=n("addOnceListener"),i.defineEvent=function(e){return this.getListeners(e),this},i.defineEvents=function(e){for(var t=0;e.length>t;t+=1)this.defineEvent(e[t]);return this},i.removeListener=function(e,n){var i,r,o=this.getListenersAsObject(e);for(r in o)o.hasOwnProperty(r)&&(i=t(o[r],n),-1!==i&&o[r].splice(i,1));return this},i.off=n("removeListener"),i.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},i.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},i.manipulateListeners=function(e,t,n){var i,r,o=e?this.removeListener:this.addListener,s=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(i=n.length;i--;)o.call(this,t,n[i]);else for(i in t)t.hasOwnProperty(i)&&(r=t[i])&&("function"==typeof r?o.call(this,i,r):s.call(this,i,r));return this},i.removeEvent=function(e){var t,n=typeof e,i=this._getEvents();if("string"===n)delete i[e];else if("object"===n)for(t in i)i.hasOwnProperty(t)&&e.test(t)&&delete i[t];else delete this._events;return this},i.removeAllListeners=n("removeEvent"),i.emitEvent=function(e,t){var n,i,r,o,s=this.getListenersAsObject(e);for(r in s)if(s.hasOwnProperty(r))for(i=s[r].length;i--;)n=s[r][i],n.once===!0&&this.removeListener(e,n.listener),o=n.listener.apply(this,t||[]),o===this._getOnceReturnValue()&&this.removeListener(e,n.listener);return this},i.trigger=n("emitEvent"),i.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},i.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},i._getOnceReturnValue=function(){return this.hasOwnProperty("_onceReturnValue")?this._onceReturnValue:!0},i._getEvents=function(){return this._events||(this._events={})},e.noConflict=function(){return r.EventEmitter=o,e},"function"==typeof define&&define.amd?define("eventEmitter/EventEmitter",[],function(){return e}):"object"==typeof module&&module.exports?module.exports=e:this.EventEmitter=e}).call(this),function(e){function t(t){var n=e.event;return n.target=n.target||n.srcElement||t,n}var n=document.documentElement,i=function(){};n.addEventListener?i=function(e,t,n){e.addEventListener(t,n,!1)}:n.attachEvent&&(i=function(e,n,i){e[n+i]=i.handleEvent?function(){var n=t(e);i.handleEvent.call(i,n)}:function(){var n=t(e);i.call(e,n)},e.attachEvent("on"+n,e[n+i])});var r=function(){};n.removeEventListener?r=function(e,t,n){e.removeEventListener(t,n,!1)}:n.detachEvent&&(r=function(e,t,n){e.detachEvent("on"+t,e[t+n]);try{delete e[t+n]}catch(i){e[t+n]=void 0}});var o={bind:i,unbind:r};"function"==typeof define&&define.amd?define("eventie/eventie",o):e.eventie=o}(this),function(e,t){"function"==typeof define&&define.amd?define(["eventEmitter/EventEmitter","eventie/eventie"],function(n,i){return t(e,n,i)}):"object"==typeof exports?module.exports=t(e,require("wolfy87-eventemitter"),require("eventie")):e.imagesLoaded=t(e,e.EventEmitter,e.eventie)}(window,function(e,t,n){function i(e,t){for(var n in t)e[n]=t[n];return e}function r(e){return"[object Array]"===d.call(e)}function o(e){var t=[];if(r(e))t=e;else if("number"==typeof e.length)for(var n=0,i=e.length;i>n;n++)t.push(e[n]);else t.push(e);return t}function s(e,t,n){if(!(this instanceof s))return new s(e,t);"string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=o(e),this.options=i({},this.options),"function"==typeof t?n=t:i(this.options,t),n&&this.on("always",n),this.getImages(),a&&(this.jqDeferred=new a.Deferred);var r=this;setTimeout(function(){r.check()})}function f(e){this.img=e}function c(e){this.src=e,v[e]=this}var a=e.jQuery,u=e.console,h=u!==void 0,d=Object.prototype.toString;s.prototype=new t,s.prototype.options={},s.prototype.getImages=function(){this.images=[];for(var e=0,t=this.elements.length;t>e;e++){var n=this.elements[e];"IMG"===n.nodeName&&this.addImage(n);var i=n.nodeType;if(i&&(1===i||9===i||11===i))for(var r=n.querySelectorAll("img"),o=0,s=r.length;s>o;o++){var f=r[o];this.addImage(f)}}},s.prototype.addImage=function(e){var t=new f(e);this.images.push(t)},s.prototype.check=function(){function e(e,r){return t.options.debug&&h&&u.log("confirm",e,r),t.progress(e),n++,n===i&&t.complete(),!0}var t=this,n=0,i=this.images.length;if(this.hasAnyBroken=!1,!i)return this.complete(),void 0;for(var r=0;i>r;r++){var o=this.images[r];o.on("confirm",e),o.check()}},s.prototype.progress=function(e){this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded;var t=this;setTimeout(function(){t.emit("progress",t,e),t.jqDeferred&&t.jqDeferred.notify&&t.jqDeferred.notify(t,e)})},s.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";this.isComplete=!0;var t=this;setTimeout(function(){if(t.emit(e,t),t.emit("always",t),t.jqDeferred){var n=t.hasAnyBroken?"reject":"resolve";t.jqDeferred[n](t)}})},a&&(a.fn.imagesLoaded=function(e,t){var n=new s(this,e,t);return n.jqDeferred.promise(a(this))}),f.prototype=new t,f.prototype.check=function(){var e=v[this.img.src]||new c(this.img.src);if(e.isConfirmed)return this.confirm(e.isLoaded,"cached was confirmed"),void 0;if(this.img.complete&&void 0!==this.img.naturalWidth)return this.confirm(0!==this.img.naturalWidth,"naturalWidth"),void 0;var t=this;e.on("confirm",function(e,n){return t.confirm(e.isLoaded,n),!0}),e.check()},f.prototype.confirm=function(e,t){this.isLoaded=e,this.emit("confirm",this,t)};var v={};return c.prototype=new t,c.prototype.check=function(){if(!this.isChecked){var e=new Image;n.bind(e,"load",this),n.bind(e,"error",this),e.src=this.src,this.isChecked=!0}},c.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},c.prototype.onload=function(e){this.confirm(!0,"onload"),this.unbindProxyEvents(e)},c.prototype.onerror=function(e){this.confirm(!1,"onerror"),this.unbindProxyEvents(e)},c.prototype.confirm=function(e,t){this.isConfirmed=!0,this.isLoaded=e,this.emit("confirm",this,t)},c.prototype.unbindProxyEvents=function(e){n.unbind(e.target,"load",this),n.unbind(e.target,"error",this)},s}); \ No newline at end of file diff --git a/apidocs/cloud-api-source/source/javascripts/lib/_jquery.highlight.js b/apidocs/cloud-api-source/source/javascripts/lib/_jquery.highlight.js deleted file mode 100644 index 9b9d3d8e4c..0000000000 --- a/apidocs/cloud-api-source/source/javascripts/lib/_jquery.highlight.js +++ /dev/null @@ -1,108 +0,0 @@ -/* - * jQuery Highlight plugin - * - * Based on highlight v3 by Johann Burkard - * http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html - * - * Code a little bit refactored and cleaned (in my humble opinion). - * Most important changes: - * - has an option to highlight only entire words (wordsOnly - false by default), - * - has an option to be case sensitive (caseSensitive - false by default) - * - highlight element tag and class names can be specified in options - * - * Usage: - * // wrap every occurrence of text 'lorem' in content - * // with (default options) - * $('#content').highlight('lorem'); - * - * // search for and highlight more terms at once - * // so you can save some time on traversing DOM - * $('#content').highlight(['lorem', 'ipsum']); - * $('#content').highlight('lorem ipsum'); - * - * // search only for entire word 'lorem' - * $('#content').highlight('lorem', { wordsOnly: true }); - * - * // don't ignore case during search of term 'lorem' - * $('#content').highlight('lorem', { caseSensitive: true }); - * - * // wrap every occurrence of term 'ipsum' in content - * // with - * $('#content').highlight('ipsum', { element: 'em', className: 'important' }); - * - * // remove default highlight - * $('#content').unhighlight(); - * - * // remove custom highlight - * $('#content').unhighlight({ element: 'em', className: 'important' }); - * - * - * Copyright (c) 2009 Bartek Szopka - * - * Licensed under MIT license. - * - */ - -jQuery.extend({ - highlight: function (node, re, nodeName, className) { - if (node.nodeType === 3) { - var match = node.data.match(re); - if (match) { - var highlight = document.createElement(nodeName || 'span'); - highlight.className = className || 'highlight'; - var wordNode = node.splitText(match.index); - wordNode.splitText(match[0].length); - var wordClone = wordNode.cloneNode(true); - highlight.appendChild(wordClone); - wordNode.parentNode.replaceChild(highlight, wordNode); - return 1; //skip added node in parent - } - } else if ((node.nodeType === 1 && node.childNodes) && // only element nodes that have children - !/(script|style)/i.test(node.tagName) && // ignore script and style nodes - !(node.tagName === nodeName.toUpperCase() && node.className === className)) { // skip if already highlighted - for (var i = 0; i < node.childNodes.length; i++) { - i += jQuery.highlight(node.childNodes[i], re, nodeName, className); - } - } - return 0; - } -}); - -jQuery.fn.unhighlight = function (options) { - var settings = { className: 'highlight', element: 'span' }; - jQuery.extend(settings, options); - - return this.find(settings.element + "." + settings.className).each(function () { - var parent = this.parentNode; - parent.replaceChild(this.firstChild, this); - parent.normalize(); - }).end(); -}; - -jQuery.fn.highlight = function (words, options) { - var settings = { className: 'highlight', element: 'span', caseSensitive: false, wordsOnly: false }; - jQuery.extend(settings, options); - - if (words.constructor === String) { - words = [words]; - } - words = jQuery.grep(words, function(word, i){ - return word != ''; - }); - words = jQuery.map(words, function(word, i) { - return word.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); - }); - if (words.length == 0) { return this; }; - - var flag = settings.caseSensitive ? "" : "i"; - var pattern = "(" + words.join("|") + ")"; - if (settings.wordsOnly) { - pattern = "\\b" + pattern + "\\b"; - } - var re = new RegExp(pattern, flag); - - return this.each(function () { - jQuery.highlight(this, re, settings.element, settings.className); - }); -}; - diff --git a/apidocs/cloud-api-source/source/javascripts/lib/_jquery.tocify.js b/apidocs/cloud-api-source/source/javascripts/lib/_jquery.tocify.js deleted file mode 100644 index 037366cbed..0000000000 --- a/apidocs/cloud-api-source/source/javascripts/lib/_jquery.tocify.js +++ /dev/null @@ -1,1042 +0,0 @@ -/* jquery Tocify - v1.8.0 - 2013-09-16 -* http://www.gregfranko.com/jquery.tocify.js/ -* Copyright (c) 2013 Greg Franko; Licensed MIT -* Modified lightly by Robert Lord to fix a bug I found, -* and also so it adds ids to headers -* also because I want height caching, since the -* height lookup for h1s and h2s was causing serious -* lag spikes below 30 fps */ - -// Immediately-Invoked Function Expression (IIFE) [Ben Alman Blog Post](http://benalman.com/news/2010/11/immediately-invoked-function-expression/) that calls another IIFE that contains all of the plugin logic. I used this pattern so that anyone viewing this code would not have to scroll to the bottom of the page to view the local parameters that were passed to the main IIFE. -(function(tocify) { - - // ECMAScript 5 Strict Mode: [John Resig Blog Post](http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/) - "use strict"; - - // Calls the second IIFE and locally passes in the global jQuery, window, and document objects - tocify(window.jQuery, window, document); - -} - -// Locally passes in `jQuery`, the `window` object, the `document` object, and an `undefined` variable. The `jQuery`, `window` and `document` objects are passed in locally, to improve performance, since javascript first searches for a variable match within the local variables set before searching the global variables set. All of the global variables are also passed in locally to be minifier friendly. `undefined` can be passed in locally, because it is not a reserved word in JavaScript. -(function($, window, document, undefined) { - - // ECMAScript 5 Strict Mode: [John Resig Blog Post](http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/) - "use strict"; - - var tocClassName = "tocify", - tocClass = "." + tocClassName, - tocFocusClassName = "tocify-focus", - tocHoverClassName = "tocify-hover", - hideTocClassName = "tocify-hide", - hideTocClass = "." + hideTocClassName, - headerClassName = "tocify-header", - headerClass = "." + headerClassName, - subheaderClassName = "tocify-subheader", - subheaderClass = "." + subheaderClassName, - itemClassName = "tocify-item", - itemClass = "." + itemClassName, - extendPageClassName = "tocify-extend-page", - extendPageClass = "." + extendPageClassName; - - // Calling the jQueryUI Widget Factory Method - $.widget("toc.tocify", { - - //Plugin version - version: "1.8.0", - - // These options will be used as defaults - options: { - - // **context**: Accepts String: Any jQuery selector - // The container element that holds all of the elements used to generate the table of contents - context: "body", - - // **ignoreSelector**: Accepts String: Any jQuery selector - // A selector to any element that would be matched by selectors that you wish to be ignored - ignoreSelector: null, - - // **selectors**: Accepts an Array of Strings: Any jQuery selectors - // The element's used to generate the table of contents. The order is very important since it will determine the table of content's nesting structure - selectors: "h1, h2, h3", - - // **showAndHide**: Accepts a boolean: true or false - // Used to determine if elements should be shown and hidden - showAndHide: true, - - // **showEffect**: Accepts String: "none", "fadeIn", "show", or "slideDown" - // Used to display any of the table of contents nested items - showEffect: "slideDown", - - // **showEffectSpeed**: Accepts Number (milliseconds) or String: "slow", "medium", or "fast" - // The time duration of the show animation - showEffectSpeed: "medium", - - // **hideEffect**: Accepts String: "none", "fadeOut", "hide", or "slideUp" - // Used to hide any of the table of contents nested items - hideEffect: "slideUp", - - // **hideEffectSpeed**: Accepts Number (milliseconds) or String: "slow", "medium", or "fast" - // The time duration of the hide animation - hideEffectSpeed: "medium", - - // **smoothScroll**: Accepts a boolean: true or false - // Determines if a jQuery animation should be used to scroll to specific table of contents items on the page - smoothScroll: true, - - // **smoothScrollSpeed**: Accepts Number (milliseconds) or String: "slow", "medium", or "fast" - // The time duration of the smoothScroll animation - smoothScrollSpeed: "medium", - - // **scrollTo**: Accepts Number (pixels) - // The amount of space between the top of page and the selected table of contents item after the page has been scrolled - scrollTo: 0, - - // **showAndHideOnScroll**: Accepts a boolean: true or false - // Determines if table of contents nested items should be shown and hidden while scrolling - showAndHideOnScroll: true, - - // **highlightOnScroll**: Accepts a boolean: true or false - // Determines if table of contents nested items should be highlighted (set to a different color) while scrolling - highlightOnScroll: true, - - // **highlightOffset**: Accepts a number - // The offset distance in pixels to trigger the next active table of contents item - highlightOffset: 40, - - // **theme**: Accepts a string: "bootstrap", "jqueryui", or "none" - // Determines if Twitter Bootstrap, jQueryUI, or Tocify classes should be added to the table of contents - theme: "bootstrap", - - // **extendPage**: Accepts a boolean: true or false - // If a user scrolls to the bottom of the page and the page is not tall enough to scroll to the last table of contents item, then the page height is increased - extendPage: true, - - // **extendPageOffset**: Accepts a number: pixels - // How close to the bottom of the page a user must scroll before the page is extended - extendPageOffset: 100, - - // **history**: Accepts a boolean: true or false - // Adds a hash to the page url to maintain history - history: true, - - // **scrollHistory**: Accepts a boolean: true or false - // Adds a hash to the page url, to maintain history, when scrolling to a TOC item - scrollHistory: false, - - // **hashGenerator**: How the hash value (the anchor segment of the URL, following the - // # character) will be generated. - // - // "compact" (default) - #CompressesEverythingTogether - // "pretty" - #looks-like-a-nice-url-and-is-easily-readable - // function(text, element){} - Your own hash generation function that accepts the text as an - // argument, and returns the hash value. - hashGenerator: "compact", - - // **highlightDefault**: Accepts a boolean: true or false - // Set's the first TOC item as active if no other TOC item is active. - highlightDefault: true - - }, - - // _Create - // ------- - // Constructs the plugin. Only called once. - _create: function() { - - var self = this; - - self.tocifyWrapper = $('.tocify-wrapper'); - self.extendPageScroll = true; - - // Internal array that keeps track of all TOC items (Helps to recognize if there are duplicate TOC item strings) - self.items = []; - - // Generates the HTML for the dynamic table of contents - self._generateToc(); - - // Caches heights and anchors - self.cachedHeights = [], - self.cachedAnchors = []; - - // Adds CSS classes to the newly generated table of contents HTML - self._addCSSClasses(); - - self.webkit = (function() { - - for(var prop in window) { - - if(prop) { - - if(prop.toLowerCase().indexOf("webkit") !== -1) { - - return true; - - } - - } - - } - - return false; - - }()); - - // Adds jQuery event handlers to the newly generated table of contents - self._setEventHandlers(); - - // Binding to the Window load event to make sure the correct scrollTop is calculated - $(window).load(function() { - - // Sets the active TOC item - self._setActiveElement(true); - - // Once all animations on the page are complete, this callback function will be called - $("html, body").promise().done(function() { - - setTimeout(function() { - - self.extendPageScroll = false; - - },0); - - }); - - }); - - }, - - // _generateToc - // ------------ - // Generates the HTML for the dynamic table of contents - _generateToc: function() { - - // _Local variables_ - - // Stores the plugin context in the self variable - var self = this, - - // All of the HTML tags found within the context provided (i.e. body) that match the top level jQuery selector above - firstElem, - - // Instantiated variable that will store the top level newly created unordered list DOM element - ul, - ignoreSelector = self.options.ignoreSelector; - - // If the selectors option has a comma within the string - if(this.options.selectors.indexOf(",") !== -1) { - - // Grabs the first selector from the string - firstElem = $(this.options.context).find(this.options.selectors.replace(/ /g,"").substr(0, this.options.selectors.indexOf(","))); - - } - - // If the selectors option does not have a comman within the string - else { - - // Grabs the first selector from the string and makes sure there are no spaces - firstElem = $(this.options.context).find(this.options.selectors.replace(/ /g,"")); - - } - - if(!firstElem.length) { - - self.element.addClass(hideTocClassName); - - return; - - } - - self.element.addClass(tocClassName); - - // Loops through each top level selector - firstElem.each(function(index) { - - //If the element matches the ignoreSelector then we skip it - if($(this).is(ignoreSelector)) { - return; - } - - // Creates an unordered list HTML element and adds a dynamic ID and standard class name - ul = $("
      ", { - "id": headerClassName + index, - "class": headerClassName - }). - - // Appends a top level list item HTML element to the previously created HTML header - append(self._nestElements($(this), index)); - - // Add the created unordered list element to the HTML element calling the plugin - self.element.append(ul); - - // Finds all of the HTML tags between the header and subheader elements - $(this).nextUntil(this.nodeName.toLowerCase()).each(function() { - - // If there are no nested subheader elemements - if($(this).find(self.options.selectors).length === 0) { - - // Loops through all of the subheader elements - $(this).filter(self.options.selectors).each(function() { - - //If the element matches the ignoreSelector then we skip it - if($(this).is(ignoreSelector)) { - return; - } - - self._appendSubheaders.call(this, self, ul); - - }); - - } - - // If there are nested subheader elements - else { - - // Loops through all of the subheader elements - $(this).find(self.options.selectors).each(function() { - - //If the element matches the ignoreSelector then we skip it - if($(this).is(ignoreSelector)) { - return; - } - - self._appendSubheaders.call(this, self, ul); - - }); - - } - - }); - - }); - - }, - - _setActiveElement: function(pageload) { - - var self = this, - - hash = window.location.hash.substring(1), - - elem = self.element.find("li[data-unique='" + hash + "']"); - - if(hash.length) { - - // Removes highlighting from all of the list item's - self.element.find("." + self.focusClass).removeClass(self.focusClass); - - // Highlights the current list item that was clicked - elem.addClass(self.focusClass); - - // If the showAndHide option is true - if(self.options.showAndHide) { - - // Triggers the click event on the currently focused TOC item - elem.click(); - - } - - } - - else { - - // Removes highlighting from all of the list item's - self.element.find("." + self.focusClass).removeClass(self.focusClass); - - if(!hash.length && pageload && self.options.highlightDefault) { - - // Highlights the first TOC item if no other items are highlighted - self.element.find(itemClass).first().addClass(self.focusClass); - - } - - } - - return self; - - }, - - // _nestElements - // ------------- - // Helps create the table of contents list by appending nested list items - _nestElements: function(self, index) { - - var arr, item, hashValue; - - arr = $.grep(this.items, function (item) { - - return item === self.text(); - - }); - - // If there is already a duplicate TOC item - if(arr.length) { - - // Adds the current TOC item text and index (for slight randomization) to the internal array - this.items.push(self.text() + index); - - } - - // If there not a duplicate TOC item - else { - - // Adds the current TOC item text to the internal array - this.items.push(self.text()); - - } - - hashValue = this._generateHashValue(arr, self, index); - - // ADDED BY ROBERT - // actually add the hash value to the element's id - // self.attr("id", "link-" + hashValue); - - // Appends a list item HTML element to the last unordered list HTML element found within the HTML element calling the plugin - item = $("
    • ", { - - // Sets a common class name to the list item - "class": itemClassName, - - "data-unique": hashValue - - }).append($("", { - - "text": self.text() - - })); - - // Adds an HTML anchor tag before the currently traversed HTML element - self.before($("
      ", { - - // Sets a name attribute on the anchor tag to the text of the currently traversed HTML element (also making sure that all whitespace is replaced with an underscore) - "name": hashValue, - - "data-unique": hashValue - - })); - - return item; - - }, - - // _generateHashValue - // ------------------ - // Generates the hash value that will be used to refer to each item. - _generateHashValue: function(arr, self, index) { - - var hashValue = "", - hashGeneratorOption = this.options.hashGenerator; - - if (hashGeneratorOption === "pretty") { - // remove weird characters - - - // prettify the text - hashValue = self.text().toLowerCase().replace(/\s/g, "-"); - - // ADDED BY ROBERT - // remove weird characters - hashValue = hashValue.replace(/[^\x00-\x7F]/g, ""); - - // fix double hyphens - while (hashValue.indexOf("--") > -1) { - hashValue = hashValue.replace(/--/g, "-"); - } - - // fix colon-space instances - while (hashValue.indexOf(":-") > -1) { - hashValue = hashValue.replace(/:-/g, "-"); - } - - } else if (typeof hashGeneratorOption === "function") { - - // call the function - hashValue = hashGeneratorOption(self.text(), self); - - } else { - - // compact - the default - hashValue = self.text().replace(/\s/g, ""); - - } - - // add the index if we need to - if (arr.length) { hashValue += ""+index; } - - // return the value - return hashValue; - - }, - - // _appendElements - // --------------- - // Helps create the table of contents list by appending subheader elements - - _appendSubheaders: function(self, ul) { - - // The current element index - var index = $(this).index(self.options.selectors), - - // Finds the previous header DOM element - previousHeader = $(self.options.selectors).eq(index - 1), - - currentTagName = +$(this).prop("tagName").charAt(1), - - previousTagName = +previousHeader.prop("tagName").charAt(1), - - lastSubheader; - - // If the current header DOM element is smaller than the previous header DOM element or the first subheader - if(currentTagName < previousTagName) { - - // Selects the last unordered list HTML found within the HTML element calling the plugin - self.element.find(subheaderClass + "[data-tag=" + currentTagName + "]").last().append(self._nestElements($(this), index)); - - } - - // If the current header DOM element is the same type of header(eg. h4) as the previous header DOM element - else if(currentTagName === previousTagName) { - - ul.find(itemClass).last().after(self._nestElements($(this), index)); - - } - - else { - - // Selects the last unordered list HTML found within the HTML element calling the plugin - ul.find(itemClass).last(). - - // Appends an unorderedList HTML element to the dynamic `unorderedList` variable and sets a common class name - after($("
        ", { - - "class": subheaderClassName, - - "data-tag": currentTagName - - })).next(subheaderClass). - - // Appends a list item HTML element to the last unordered list HTML element found within the HTML element calling the plugin - append(self._nestElements($(this), index)); - } - - }, - - // _setEventHandlers - // ---------------- - // Adds jQuery event handlers to the newly generated table of contents - _setEventHandlers: function() { - - // _Local variables_ - - // Stores the plugin context in the self variable - var self = this, - - // Instantiates a new variable that will be used to hold a specific element's context - $self, - - // Instantiates a new variable that will be used to determine the smoothScroll animation time duration - duration; - - // Event delegation that looks for any clicks on list item elements inside of the HTML element calling the plugin - this.element.on("click.tocify", "li", function(event) { - - if(self.options.history) { - - window.location.hash = $(this).attr("data-unique"); - - } - - // Removes highlighting from all of the list item's - self.element.find("." + self.focusClass).removeClass(self.focusClass); - - // Highlights the current list item that was clicked - $(this).addClass(self.focusClass); - - // If the showAndHide option is true - if(self.options.showAndHide) { - - var elem = $('li[data-unique="' + $(this).attr("data-unique") + '"]'); - - self._triggerShow(elem); - - } - - self._scrollTo($(this)); - - }); - - // Mouseenter and Mouseleave event handlers for the list item's within the HTML element calling the plugin - this.element.find("li").on({ - - // Mouseenter event handler - "mouseenter.tocify": function() { - - // Adds a hover CSS class to the current list item - $(this).addClass(self.hoverClass); - - // Makes sure the cursor is set to the pointer icon - $(this).css("cursor", "pointer"); - - }, - - // Mouseleave event handler - "mouseleave.tocify": function() { - - if(self.options.theme !== "bootstrap") { - - // Removes the hover CSS class from the current list item - $(this).removeClass(self.hoverClass); - - } - - } - }); - - // Reset height cache on scroll - - $(window).on('resize', function() { - self.calculateHeights(); - }); - - // Window scroll event handler - $(window).on("scroll.tocify", function() { - - // Once all animations on the page are complete, this callback function will be called - $("html, body").promise().done(function() { - - // Local variables - - // Stores how far the user has scrolled - var winScrollTop = $(window).scrollTop(), - - // Stores the height of the window - winHeight = $(window).height(), - - // Stores the height of the document - docHeight = $(document).height(), - - scrollHeight = $("body")[0].scrollHeight, - - // Instantiates a variable that will be used to hold a selected HTML element - elem, - - lastElem, - - lastElemOffset, - - currentElem; - - if(self.options.extendPage) { - - // If the user has scrolled to the bottom of the page and the last toc item is not focused - if((self.webkit && winScrollTop >= scrollHeight - winHeight - self.options.extendPageOffset) || (!self.webkit && winHeight + winScrollTop > docHeight - self.options.extendPageOffset)) { - - if(!$(extendPageClass).length) { - - lastElem = $('div[data-unique="' + $(itemClass).last().attr("data-unique") + '"]'); - - if(!lastElem.length) return; - - // Gets the top offset of the page header that is linked to the last toc item - lastElemOffset = lastElem.offset().top; - - // Appends a div to the bottom of the page and sets the height to the difference of the window scrollTop and the last element's position top offset - $(self.options.context).append($("
        ", { - - "class": extendPageClassName, - - "height": Math.abs(lastElemOffset - winScrollTop) + "px", - - "data-unique": extendPageClassName - - })); - - if(self.extendPageScroll) { - - currentElem = self.element.find('li.active'); - - self._scrollTo($("div[data-unique=" + currentElem.attr("data-unique") + "]")); - - } - - } - - } - - } - - // The zero timeout ensures the following code is run after the scroll events - setTimeout(function() { - - // _Local variables_ - - // Stores the distance to the closest anchor - var // Stores the index of the closest anchor - closestAnchorIdx = null, - anchorText; - - // if never calculated before, calculate and cache the heights - if (self.cachedHeights.length == 0) { - self.calculateHeights(); - } - - var scrollTop = $(window).scrollTop(); - - // Determines the index of the closest anchor - self.cachedAnchors.each(function(idx) { - if (self.cachedHeights[idx] - scrollTop < 0) { - closestAnchorIdx = idx; - } else { - return false; - } - }); - - anchorText = $(self.cachedAnchors[closestAnchorIdx]).attr("data-unique"); - - // Stores the list item HTML element that corresponds to the currently traversed anchor tag - elem = $('li[data-unique="' + anchorText + '"]'); - - // If the `highlightOnScroll` option is true and a next element is found - if(self.options.highlightOnScroll && elem.length && !elem.hasClass(self.focusClass)) { - - // Removes highlighting from all of the list item's - self.element.find("." + self.focusClass).removeClass(self.focusClass); - - // Highlights the corresponding list item - elem.addClass(self.focusClass); - - // Scroll to highlighted element's header - var tocifyWrapper = self.tocifyWrapper; - var scrollToElem = $(elem).closest('.tocify-header'); - - var elementOffset = scrollToElem.offset().top, - wrapperOffset = tocifyWrapper.offset().top; - var offset = elementOffset - wrapperOffset; - - if (offset >= $(window).height()) { - var scrollPosition = offset + tocifyWrapper.scrollTop(); - tocifyWrapper.scrollTop(scrollPosition); - } else if (offset < 0) { - tocifyWrapper.scrollTop(0); - } - } - - if(self.options.scrollHistory) { - - // IF STATEMENT ADDED BY ROBERT - - if(window.location.hash !== "#" + anchorText && anchorText !== undefined) { - - if(history.replaceState) { - history.replaceState({}, "", "#" + anchorText); - // provide a fallback - } else { - scrollV = document.body.scrollTop; - scrollH = document.body.scrollLeft; - location.hash = "#" + anchorText; - document.body.scrollTop = scrollV; - document.body.scrollLeft = scrollH; - } - - } - - } - - // If the `showAndHideOnScroll` option is true - if(self.options.showAndHideOnScroll && self.options.showAndHide) { - - self._triggerShow(elem, true); - - } - - }, 0); - - }); - - }); - - }, - - // calculateHeights - // ---- - // ADDED BY ROBERT - calculateHeights: function() { - var self = this; - self.cachedHeights = []; - self.cachedAnchors = []; - var anchors = $(self.options.context).find("div[data-unique]"); - anchors.each(function(idx) { - var distance = (($(this).next().length ? $(this).next() : $(this)).offset().top - self.options.highlightOffset); - self.cachedHeights[idx] = distance; - }); - self.cachedAnchors = anchors; - }, - - // Show - // ---- - // Opens the current sub-header - show: function(elem, scroll) { - - // Stores the plugin context in the `self` variable - var self = this, - element = elem; - - // If the sub-header is not already visible - if (!elem.is(":visible")) { - - // If the current element does not have any nested subheaders, is not a header, and its parent is not visible - if(!elem.find(subheaderClass).length && !elem.parent().is(headerClass) && !elem.parent().is(":visible")) { - - // Sets the current element to all of the subheaders within the current header - elem = elem.parents(subheaderClass).add(elem); - - } - - // If the current element does not have any nested subheaders and is not a header - else if(!elem.children(subheaderClass).length && !elem.parent().is(headerClass)) { - - // Sets the current element to the closest subheader - elem = elem.closest(subheaderClass); - - } - - //Determines what jQuery effect to use - switch (self.options.showEffect) { - - //Uses `no effect` - case "none": - - elem.show(); - - break; - - //Uses the jQuery `show` special effect - case "show": - - elem.show(self.options.showEffectSpeed); - - break; - - //Uses the jQuery `slideDown` special effect - case "slideDown": - - elem.slideDown(self.options.showEffectSpeed); - - break; - - //Uses the jQuery `fadeIn` special effect - case "fadeIn": - - elem.fadeIn(self.options.showEffectSpeed); - - break; - - //If none of the above options were passed, then a `jQueryUI show effect` is expected - default: - - elem.show(); - - break; - - } - - } - - // If the current subheader parent element is a header - if(elem.parent().is(headerClass)) { - - // Hides all non-active sub-headers - self.hide($(subheaderClass).not(elem)); - - } - - // If the current subheader parent element is not a header - else { - - // Hides all non-active sub-headers - self.hide($(subheaderClass).not(elem.closest(headerClass).find(subheaderClass).not(elem.siblings()))); - - } - - // Maintains chainability - return self; - - }, - - // Hide - // ---- - // Closes the current sub-header - hide: function(elem) { - - // Stores the plugin context in the `self` variable - var self = this; - - //Determines what jQuery effect to use - switch (self.options.hideEffect) { - - // Uses `no effect` - case "none": - - elem.hide(); - - break; - - // Uses the jQuery `hide` special effect - case "hide": - - elem.hide(self.options.hideEffectSpeed); - - break; - - // Uses the jQuery `slideUp` special effect - case "slideUp": - - elem.slideUp(self.options.hideEffectSpeed); - - break; - - // Uses the jQuery `fadeOut` special effect - case "fadeOut": - - elem.fadeOut(self.options.hideEffectSpeed); - - break; - - // If none of the above options were passed, then a `jqueryUI hide effect` is expected - default: - - elem.hide(); - - break; - - } - - // Maintains chainability - return self; - }, - - // _triggerShow - // ------------ - // Determines what elements get shown on scroll and click - _triggerShow: function(elem, scroll) { - - var self = this; - - // If the current element's parent is a header element or the next element is a nested subheader element - if(elem.parent().is(headerClass) || elem.next().is(subheaderClass)) { - - // Shows the next sub-header element - self.show(elem.next(subheaderClass), scroll); - - } - - // If the current element's parent is a subheader element - else if(elem.parent().is(subheaderClass)) { - - // Shows the parent sub-header element - self.show(elem.parent(), scroll); - - } - - // Maintains chainability - return self; - - }, - - // _addCSSClasses - // -------------- - // Adds CSS classes to the newly generated table of contents HTML - _addCSSClasses: function() { - - // If the user wants a jqueryUI theme - if(this.options.theme === "jqueryui") { - - this.focusClass = "ui-state-default"; - - this.hoverClass = "ui-state-hover"; - - //Adds the default styling to the dropdown list - this.element.addClass("ui-widget").find(".toc-title").addClass("ui-widget-header").end().find("li").addClass("ui-widget-content"); - - } - - // If the user wants a twitterBootstrap theme - else if(this.options.theme === "bootstrap") { - - this.element.find(headerClass + "," + subheaderClass).addClass("nav nav-list"); - - this.focusClass = "active"; - - } - - // If a user does not want a prebuilt theme - else { - - // Adds more neutral classes (instead of jqueryui) - - this.focusClass = tocFocusClassName; - - this.hoverClass = tocHoverClassName; - - } - - //Maintains chainability - return this; - - }, - - // setOption - // --------- - // Sets a single Tocify option after the plugin is invoked - setOption: function() { - - // Calls the jQueryUI Widget Factory setOption method - $.Widget.prototype._setOption.apply(this, arguments); - - }, - - // setOptions - // ---------- - // Sets a single or multiple Tocify options after the plugin is invoked - setOptions: function() { - - // Calls the jQueryUI Widget Factory setOptions method - $.Widget.prototype._setOptions.apply(this, arguments); - - }, - - // _scrollTo - // --------- - // Scrolls to a specific element - _scrollTo: function(elem) { - - var self = this, - duration = self.options.smoothScroll || 0, - scrollTo = self.options.scrollTo; - - // Once all animations on the page are complete, this callback function will be called - $("html, body").promise().done(function() { - - // Animates the html and body element scrolltops - $("html, body").animate({ - - // Sets the jQuery `scrollTop` to the top offset of the HTML div tag that matches the current list item's `data-unique` tag - "scrollTop": $('div[data-unique="' + elem.attr("data-unique") + '"]').next().offset().top - ($.isFunction(scrollTo) ? scrollTo.call() : scrollTo) + "px" - - }, { - - // Sets the smoothScroll animation time duration to the smoothScrollSpeed option - "duration": duration - - }); - - }); - - // Maintains chainability - return self; - - } - - }); - -})); //end of plugin diff --git a/apidocs/cloud-api-source/source/javascripts/lib/_jquery_ui.js b/apidocs/cloud-api-source/source/javascripts/lib/_jquery_ui.js deleted file mode 100644 index 637e9c1425..0000000000 --- a/apidocs/cloud-api-source/source/javascripts/lib/_jquery_ui.js +++ /dev/null @@ -1,566 +0,0 @@ -/*! jQuery UI - v1.11.3 - 2015-02-12 - * http://jqueryui.com - * Includes: widget.js - * Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ - -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ "jquery" ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { - /*! - * jQuery UI Widget 1.11.3 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/jQuery.widget/ - */ - - - var widget_uuid = 0, - widget_slice = Array.prototype.slice; - - $.cleanData = (function( orig ) { - return function( elems ) { - var events, elem, i; - for ( i = 0; (elem = elems[i]) != null; i++ ) { - try { - - // Only trigger remove when necessary to save time - events = $._data( elem, "events" ); - if ( events && events.remove ) { - $( elem ).triggerHandler( "remove" ); - } - - // http://bugs.jquery.com/ticket/8235 - } catch ( e ) {} - } - orig( elems ); - }; - })( $.cleanData ); - - $.widget = function( name, base, prototype ) { - var fullName, existingConstructor, constructor, basePrototype, - // proxiedPrototype allows the provided prototype to remain unmodified - // so that it can be used as a mixin for multiple widgets (#8876) - proxiedPrototype = {}, - namespace = name.split( "." )[ 0 ]; - - name = name.split( "." )[ 1 ]; - fullName = namespace + "-" + name; - - if ( !prototype ) { - prototype = base; - base = $.Widget; - } - - // create selector for plugin - $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) { - return !!$.data( elem, fullName ); - }; - - $[ namespace ] = $[ namespace ] || {}; - existingConstructor = $[ namespace ][ name ]; - constructor = $[ namespace ][ name ] = function( options, element ) { - // allow instantiation without "new" keyword - if ( !this._createWidget ) { - return new constructor( options, element ); - } - - // allow instantiation without initializing for simple inheritance - // must use "new" keyword (the code above always passes args) - if ( arguments.length ) { - this._createWidget( options, element ); - } - }; - // extend with the existing constructor to carry over any static properties - $.extend( constructor, existingConstructor, { - version: prototype.version, - // copy the object used to create the prototype in case we need to - // redefine the widget later - _proto: $.extend( {}, prototype ), - // track widgets that inherit from this widget in case this widget is - // redefined after a widget inherits from it - _childConstructors: [] - }); - - basePrototype = new base(); - // we need to make the options hash a property directly on the new instance - // otherwise we'll modify the options hash on the prototype that we're - // inheriting from - basePrototype.options = $.widget.extend( {}, basePrototype.options ); - $.each( prototype, function( prop, value ) { - if ( !$.isFunction( value ) ) { - proxiedPrototype[ prop ] = value; - return; - } - proxiedPrototype[ prop ] = (function() { - var _super = function() { - return base.prototype[ prop ].apply( this, arguments ); - }, - _superApply = function( args ) { - return base.prototype[ prop ].apply( this, args ); - }; - return function() { - var __super = this._super, - __superApply = this._superApply, - returnValue; - - this._super = _super; - this._superApply = _superApply; - - returnValue = value.apply( this, arguments ); - - this._super = __super; - this._superApply = __superApply; - - return returnValue; - }; - })(); - }); - constructor.prototype = $.widget.extend( basePrototype, { - // TODO: remove support for widgetEventPrefix - // always use the name + a colon as the prefix, e.g., draggable:start - // don't prefix for widgets that aren't DOM-based - widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name - }, proxiedPrototype, { - constructor: constructor, - namespace: namespace, - widgetName: name, - widgetFullName: fullName - }); - - // If this widget is being redefined then we need to find all widgets that - // are inheriting from it and redefine all of them so that they inherit from - // the new version of this widget. We're essentially trying to replace one - // level in the prototype chain. - if ( existingConstructor ) { - $.each( existingConstructor._childConstructors, function( i, child ) { - var childPrototype = child.prototype; - - // redefine the child widget using the same prototype that was - // originally used, but inherit from the new version of the base - $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto ); - }); - // remove the list of existing child constructors from the old constructor - // so the old child constructors can be garbage collected - delete existingConstructor._childConstructors; - } else { - base._childConstructors.push( constructor ); - } - - $.widget.bridge( name, constructor ); - - return constructor; - }; - - $.widget.extend = function( target ) { - var input = widget_slice.call( arguments, 1 ), - inputIndex = 0, - inputLength = input.length, - key, - value; - for ( ; inputIndex < inputLength; inputIndex++ ) { - for ( key in input[ inputIndex ] ) { - value = input[ inputIndex ][ key ]; - if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) { - // Clone objects - if ( $.isPlainObject( value ) ) { - target[ key ] = $.isPlainObject( target[ key ] ) ? - $.widget.extend( {}, target[ key ], value ) : - // Don't extend strings, arrays, etc. with objects - $.widget.extend( {}, value ); - // Copy everything else by reference - } else { - target[ key ] = value; - } - } - } - } - return target; - }; - - $.widget.bridge = function( name, object ) { - var fullName = object.prototype.widgetFullName || name; - $.fn[ name ] = function( options ) { - var isMethodCall = typeof options === "string", - args = widget_slice.call( arguments, 1 ), - returnValue = this; - - if ( isMethodCall ) { - this.each(function() { - var methodValue, - instance = $.data( this, fullName ); - if ( options === "instance" ) { - returnValue = instance; - return false; - } - if ( !instance ) { - return $.error( "cannot call methods on " + name + " prior to initialization; " + - "attempted to call method '" + options + "'" ); - } - if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) { - return $.error( "no such method '" + options + "' for " + name + " widget instance" ); - } - methodValue = instance[ options ].apply( instance, args ); - if ( methodValue !== instance && methodValue !== undefined ) { - returnValue = methodValue && methodValue.jquery ? - returnValue.pushStack( methodValue.get() ) : - methodValue; - return false; - } - }); - } else { - - // Allow multiple hashes to be passed on init - if ( args.length ) { - options = $.widget.extend.apply( null, [ options ].concat(args) ); - } - - this.each(function() { - var instance = $.data( this, fullName ); - if ( instance ) { - instance.option( options || {} ); - if ( instance._init ) { - instance._init(); - } - } else { - $.data( this, fullName, new object( options, this ) ); - } - }); - } - - return returnValue; - }; - }; - - $.Widget = function( /* options, element */ ) {}; - $.Widget._childConstructors = []; - - $.Widget.prototype = { - widgetName: "widget", - widgetEventPrefix: "", - defaultElement: "
        ", - options: { - disabled: false, - - // callbacks - create: null - }, - _createWidget: function( options, element ) { - element = $( element || this.defaultElement || this )[ 0 ]; - this.element = $( element ); - this.uuid = widget_uuid++; - this.eventNamespace = "." + this.widgetName + this.uuid; - - this.bindings = $(); - this.hoverable = $(); - this.focusable = $(); - - if ( element !== this ) { - $.data( element, this.widgetFullName, this ); - this._on( true, this.element, { - remove: function( event ) { - if ( event.target === element ) { - this.destroy(); - } - } - }); - this.document = $( element.style ? - // element within the document - element.ownerDocument : - // element is window or document - element.document || element ); - this.window = $( this.document[0].defaultView || this.document[0].parentWindow ); - } - - this.options = $.widget.extend( {}, - this.options, - this._getCreateOptions(), - options ); - - this._create(); - this._trigger( "create", null, this._getCreateEventData() ); - this._init(); - }, - _getCreateOptions: $.noop, - _getCreateEventData: $.noop, - _create: $.noop, - _init: $.noop, - - destroy: function() { - this._destroy(); - // we can probably remove the unbind calls in 2.0 - // all event bindings should go through this._on() - this.element - .unbind( this.eventNamespace ) - .removeData( this.widgetFullName ) - // support: jquery <1.6.3 - // http://bugs.jquery.com/ticket/9413 - .removeData( $.camelCase( this.widgetFullName ) ); - this.widget() - .unbind( this.eventNamespace ) - .removeAttr( "aria-disabled" ) - .removeClass( - this.widgetFullName + "-disabled " + - "ui-state-disabled" ); - - // clean up events and states - this.bindings.unbind( this.eventNamespace ); - this.hoverable.removeClass( "ui-state-hover" ); - this.focusable.removeClass( "ui-state-focus" ); - }, - _destroy: $.noop, - - widget: function() { - return this.element; - }, - - option: function( key, value ) { - var options = key, - parts, - curOption, - i; - - if ( arguments.length === 0 ) { - // don't return a reference to the internal hash - return $.widget.extend( {}, this.options ); - } - - if ( typeof key === "string" ) { - // handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } } - options = {}; - parts = key.split( "." ); - key = parts.shift(); - if ( parts.length ) { - curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] ); - for ( i = 0; i < parts.length - 1; i++ ) { - curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {}; - curOption = curOption[ parts[ i ] ]; - } - key = parts.pop(); - if ( arguments.length === 1 ) { - return curOption[ key ] === undefined ? null : curOption[ key ]; - } - curOption[ key ] = value; - } else { - if ( arguments.length === 1 ) { - return this.options[ key ] === undefined ? null : this.options[ key ]; - } - options[ key ] = value; - } - } - - this._setOptions( options ); - - return this; - }, - _setOptions: function( options ) { - var key; - - for ( key in options ) { - this._setOption( key, options[ key ] ); - } - - return this; - }, - _setOption: function( key, value ) { - this.options[ key ] = value; - - if ( key === "disabled" ) { - this.widget() - .toggleClass( this.widgetFullName + "-disabled", !!value ); - - // If the widget is becoming disabled, then nothing is interactive - if ( value ) { - this.hoverable.removeClass( "ui-state-hover" ); - this.focusable.removeClass( "ui-state-focus" ); - } - } - - return this; - }, - - enable: function() { - return this._setOptions({ disabled: false }); - }, - disable: function() { - return this._setOptions({ disabled: true }); - }, - - _on: function( suppressDisabledCheck, element, handlers ) { - var delegateElement, - instance = this; - - // no suppressDisabledCheck flag, shuffle arguments - if ( typeof suppressDisabledCheck !== "boolean" ) { - handlers = element; - element = suppressDisabledCheck; - suppressDisabledCheck = false; - } - - // no element argument, shuffle and use this.element - if ( !handlers ) { - handlers = element; - element = this.element; - delegateElement = this.widget(); - } else { - element = delegateElement = $( element ); - this.bindings = this.bindings.add( element ); - } - - $.each( handlers, function( event, handler ) { - function handlerProxy() { - // allow widgets to customize the disabled handling - // - disabled as an array instead of boolean - // - disabled class as method for disabling individual parts - if ( !suppressDisabledCheck && - ( instance.options.disabled === true || - $( this ).hasClass( "ui-state-disabled" ) ) ) { - return; - } - return ( typeof handler === "string" ? instance[ handler ] : handler ) - .apply( instance, arguments ); - } - - // copy the guid so direct unbinding works - if ( typeof handler !== "string" ) { - handlerProxy.guid = handler.guid = - handler.guid || handlerProxy.guid || $.guid++; - } - - var match = event.match( /^([\w:-]*)\s*(.*)$/ ), - eventName = match[1] + instance.eventNamespace, - selector = match[2]; - if ( selector ) { - delegateElement.delegate( selector, eventName, handlerProxy ); - } else { - element.bind( eventName, handlerProxy ); - } - }); - }, - - _off: function( element, eventName ) { - eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + - this.eventNamespace; - element.unbind( eventName ).undelegate( eventName ); - - // Clear the stack to avoid memory leaks (#10056) - this.bindings = $( this.bindings.not( element ).get() ); - this.focusable = $( this.focusable.not( element ).get() ); - this.hoverable = $( this.hoverable.not( element ).get() ); - }, - - _delay: function( handler, delay ) { - function handlerProxy() { - return ( typeof handler === "string" ? instance[ handler ] : handler ) - .apply( instance, arguments ); - } - var instance = this; - return setTimeout( handlerProxy, delay || 0 ); - }, - - _hoverable: function( element ) { - this.hoverable = this.hoverable.add( element ); - this._on( element, { - mouseenter: function( event ) { - $( event.currentTarget ).addClass( "ui-state-hover" ); - }, - mouseleave: function( event ) { - $( event.currentTarget ).removeClass( "ui-state-hover" ); - } - }); - }, - - _focusable: function( element ) { - this.focusable = this.focusable.add( element ); - this._on( element, { - focusin: function( event ) { - $( event.currentTarget ).addClass( "ui-state-focus" ); - }, - focusout: function( event ) { - $( event.currentTarget ).removeClass( "ui-state-focus" ); - } - }); - }, - - _trigger: function( type, event, data ) { - var prop, orig, - callback = this.options[ type ]; - - data = data || {}; - event = $.Event( event ); - event.type = ( type === this.widgetEventPrefix ? - type : - this.widgetEventPrefix + type ).toLowerCase(); - // the original event may come from any element - // so we need to reset the target on the new event - event.target = this.element[ 0 ]; - - // copy original event properties over to the new event - orig = event.originalEvent; - if ( orig ) { - for ( prop in orig ) { - if ( !( prop in event ) ) { - event[ prop ] = orig[ prop ]; - } - } - } - - this.element.trigger( event, data ); - return !( $.isFunction( callback ) && - callback.apply( this.element[0], [ event ].concat( data ) ) === false || - event.isDefaultPrevented() ); - } - }; - - $.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { - $.Widget.prototype[ "_" + method ] = function( element, options, callback ) { - if ( typeof options === "string" ) { - options = { effect: options }; - } - var hasOptions, - effectName = !options ? - method : - options === true || typeof options === "number" ? - defaultEffect : - options.effect || defaultEffect; - options = options || {}; - if ( typeof options === "number" ) { - options = { duration: options }; - } - hasOptions = !$.isEmptyObject( options ); - options.complete = callback; - if ( options.delay ) { - element.delay( options.delay ); - } - if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) { - element[ method ]( options ); - } else if ( effectName !== method && element[ effectName ] ) { - element[ effectName ]( options.duration, options.easing, callback ); - } else { - element.queue(function( next ) { - $( this )[ method ](); - if ( callback ) { - callback.call( element[ 0 ] ); - } - next(); - }); - } - }; - }); - - var widget = $.widget; - - - -})); diff --git a/apidocs/cloud-api-source/source/javascripts/lib/_lunr.js b/apidocs/cloud-api-source/source/javascripts/lib/_lunr.js deleted file mode 100644 index 43d26f52a7..0000000000 --- a/apidocs/cloud-api-source/source/javascripts/lib/_lunr.js +++ /dev/null @@ -1,1910 +0,0 @@ -/** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 0.5.7 - * Copyright (C) 2014 Oliver Nightingale - * MIT Licensed - * @license - */ - -(function(){ - - /** - * Convenience function for instantiating a new lunr index and configuring it - * with the default pipeline functions and the passed config function. - * - * When using this convenience function a new index will be created with the - * following functions already in the pipeline: - * - * lunr.StopWordFilter - filters out any stop words before they enter the - * index - * - * lunr.stemmer - stems the tokens before entering the index. - * - * Example: - * - * var idx = lunr(function () { - * this.field('title', 10) - * this.field('tags', 100) - * this.field('body') - * - * this.ref('cid') - * - * this.pipeline.add(function () { - * // some custom pipeline function - * }) - * - * }) - * - * @param {Function} config A function that will be called with the new instance - * of the lunr.Index as both its context and first parameter. It can be used to - * customize the instance of new lunr.Index. - * @namespace - * @module - * @returns {lunr.Index} - * - */ - var lunr = function (config) { - var idx = new lunr.Index - - idx.pipeline.add( - lunr.trimmer, - lunr.stopWordFilter, - lunr.stemmer - ) - - if (config) config.call(idx, idx) - - return idx - } - - lunr.version = "0.5.7" - /*! - * lunr.utils - * Copyright (C) 2014 Oliver Nightingale - */ - - /** - * A namespace containing utils for the rest of the lunr library - */ - lunr.utils = {} - - /** - * Print a warning message to the console. - * - * @param {String} message The message to be printed. - * @memberOf Utils - */ - lunr.utils.warn = (function (global) { - return function (message) { - if (global.console && console.warn) { - console.warn(message) - } - } - })(this) - - /*! - * lunr.EventEmitter - * Copyright (C) 2014 Oliver Nightingale - */ - - /** - * lunr.EventEmitter is an event emitter for lunr. It manages adding and removing event handlers and triggering events and their handlers. - * - * @constructor - */ - lunr.EventEmitter = function () { - this.events = {} - } - - /** - * Binds a handler function to a specific event(s). - * - * Can bind a single function to many different events in one call. - * - * @param {String} [eventName] The name(s) of events to bind this function to. - * @param {Function} handler The function to call when an event is fired. - * @memberOf EventEmitter - */ - lunr.EventEmitter.prototype.addListener = function () { - var args = Array.prototype.slice.call(arguments), - fn = args.pop(), - names = args - - if (typeof fn !== "function") throw new TypeError ("last argument must be a function") - - names.forEach(function (name) { - if (!this.hasHandler(name)) this.events[name] = [] - this.events[name].push(fn) - }, this) - } - - /** - * Removes a handler function from a specific event. - * - * @param {String} eventName The name of the event to remove this function from. - * @param {Function} handler The function to remove from an event. - * @memberOf EventEmitter - */ - lunr.EventEmitter.prototype.removeListener = function (name, fn) { - if (!this.hasHandler(name)) return - - var fnIndex = this.events[name].indexOf(fn) - this.events[name].splice(fnIndex, 1) - - if (!this.events[name].length) delete this.events[name] - } - - /** - * Calls all functions bound to the given event. - * - * Additional data can be passed to the event handler as arguments to `emit` - * after the event name. - * - * @param {String} eventName The name of the event to emit. - * @memberOf EventEmitter - */ - lunr.EventEmitter.prototype.emit = function (name) { - if (!this.hasHandler(name)) return - - var args = Array.prototype.slice.call(arguments, 1) - - this.events[name].forEach(function (fn) { - fn.apply(undefined, args) - }) - } - - /** - * Checks whether a handler has ever been stored against an event. - * - * @param {String} eventName The name of the event to check. - * @private - * @memberOf EventEmitter - */ - lunr.EventEmitter.prototype.hasHandler = function (name) { - return name in this.events - } - - /*! - * lunr.tokenizer - * Copyright (C) 2014 Oliver Nightingale - */ - - /** - * A function for splitting a string into tokens ready to be inserted into - * the search index. - * - * @module - * @param {String} obj The string to convert into tokens - * @returns {Array} - */ - lunr.tokenizer = function (obj) { - if (!arguments.length || obj == null || obj == undefined) return [] - if (Array.isArray(obj)) return obj.map(function (t) { return t.toLowerCase() }) - - var str = obj.toString().replace(/^\s+/, '') - - for (var i = str.length - 1; i >= 0; i--) { - if (/\S/.test(str.charAt(i))) { - str = str.substring(0, i + 1) - break - } - } - - return str - .split(/(?:\s+|\-)/) - .filter(function (token) { - return !!token - }) - .map(function (token) { - return token.toLowerCase() - }) - } - /*! - * lunr.Pipeline - * Copyright (C) 2014 Oliver Nightingale - */ - - /** - * lunr.Pipelines maintain an ordered list of functions to be applied to all - * tokens in documents entering the search index and queries being ran against - * the index. - * - * An instance of lunr.Index created with the lunr shortcut will contain a - * pipeline with a stop word filter and an English language stemmer. Extra - * functions can be added before or after either of these functions or these - * default functions can be removed. - * - * When run the pipeline will call each function in turn, passing a token, the - * index of that token in the original list of all tokens and finally a list of - * all the original tokens. - * - * The output of functions in the pipeline will be passed to the next function - * in the pipeline. To exclude a token from entering the index the function - * should return undefined, the rest of the pipeline will not be called with - * this token. - * - * For serialisation of pipelines to work, all functions used in an instance of - * a pipeline should be registered with lunr.Pipeline. Registered functions can - * then be loaded. If trying to load a serialised pipeline that uses functions - * that are not registered an error will be thrown. - * - * If not planning on serialising the pipeline then registering pipeline functions - * is not necessary. - * - * @constructor - */ - lunr.Pipeline = function () { - this._stack = [] - } - - lunr.Pipeline.registeredFunctions = {} - - /** - * Register a function with the pipeline. - * - * Functions that are used in the pipeline should be registered if the pipeline - * needs to be serialised, or a serialised pipeline needs to be loaded. - * - * Registering a function does not add it to a pipeline, functions must still be - * added to instances of the pipeline for them to be used when running a pipeline. - * - * @param {Function} fn The function to check for. - * @param {String} label The label to register this function with - * @memberOf Pipeline - */ - lunr.Pipeline.registerFunction = function (fn, label) { - if (label in this.registeredFunctions) { - lunr.utils.warn('Overwriting existing registered function: ' + label) - } - - fn.label = label - lunr.Pipeline.registeredFunctions[fn.label] = fn - } - - /** - * Warns if the function is not registered as a Pipeline function. - * - * @param {Function} fn The function to check for. - * @private - * @memberOf Pipeline - */ - lunr.Pipeline.warnIfFunctionNotRegistered = function (fn) { - var isRegistered = fn.label && (fn.label in this.registeredFunctions) - - if (!isRegistered) { - lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\n', fn) - } - } - - /** - * Loads a previously serialised pipeline. - * - * All functions to be loaded must already be registered with lunr.Pipeline. - * If any function from the serialised data has not been registered then an - * error will be thrown. - * - * @param {Object} serialised The serialised pipeline to load. - * @returns {lunr.Pipeline} - * @memberOf Pipeline - */ - lunr.Pipeline.load = function (serialised) { - var pipeline = new lunr.Pipeline - - serialised.forEach(function (fnName) { - var fn = lunr.Pipeline.registeredFunctions[fnName] - - if (fn) { - pipeline.add(fn) - } else { - throw new Error ('Cannot load un-registered function: ' + fnName) - } - }) - - return pipeline - } - - /** - * Adds new functions to the end of the pipeline. - * - * Logs a warning if the function has not been registered. - * - * @param {Function} functions Any number of functions to add to the pipeline. - * @memberOf Pipeline - */ - lunr.Pipeline.prototype.add = function () { - var fns = Array.prototype.slice.call(arguments) - - fns.forEach(function (fn) { - lunr.Pipeline.warnIfFunctionNotRegistered(fn) - this._stack.push(fn) - }, this) - } - - /** - * Adds a single function after a function that already exists in the - * pipeline. - * - * Logs a warning if the function has not been registered. - * - * @param {Function} existingFn A function that already exists in the pipeline. - * @param {Function} newFn The new function to add to the pipeline. - * @memberOf Pipeline - */ - lunr.Pipeline.prototype.after = function (existingFn, newFn) { - lunr.Pipeline.warnIfFunctionNotRegistered(newFn) - - var pos = this._stack.indexOf(existingFn) + 1 - this._stack.splice(pos, 0, newFn) - } - - /** - * Adds a single function before a function that already exists in the - * pipeline. - * - * Logs a warning if the function has not been registered. - * - * @param {Function} existingFn A function that already exists in the pipeline. - * @param {Function} newFn The new function to add to the pipeline. - * @memberOf Pipeline - */ - lunr.Pipeline.prototype.before = function (existingFn, newFn) { - lunr.Pipeline.warnIfFunctionNotRegistered(newFn) - - var pos = this._stack.indexOf(existingFn) - this._stack.splice(pos, 0, newFn) - } - - /** - * Removes a function from the pipeline. - * - * @param {Function} fn The function to remove from the pipeline. - * @memberOf Pipeline - */ - lunr.Pipeline.prototype.remove = function (fn) { - var pos = this._stack.indexOf(fn) - this._stack.splice(pos, 1) - } - - /** - * Runs the current list of functions that make up the pipeline against the - * passed tokens. - * - * @param {Array} tokens The tokens to run through the pipeline. - * @returns {Array} - * @memberOf Pipeline - */ - lunr.Pipeline.prototype.run = function (tokens) { - var out = [], - tokenLength = tokens.length, - stackLength = this._stack.length - - for (var i = 0; i < tokenLength; i++) { - var token = tokens[i] - - for (var j = 0; j < stackLength; j++) { - token = this._stack[j](token, i, tokens) - if (token === void 0) break - }; - - if (token !== void 0) out.push(token) - }; - - return out - } - - /** - * Resets the pipeline by removing any existing processors. - * - * @memberOf Pipeline - */ - lunr.Pipeline.prototype.reset = function () { - this._stack = [] - } - - /** - * Returns a representation of the pipeline ready for serialisation. - * - * Logs a warning if the function has not been registered. - * - * @returns {Array} - * @memberOf Pipeline - */ - lunr.Pipeline.prototype.toJSON = function () { - return this._stack.map(function (fn) { - lunr.Pipeline.warnIfFunctionNotRegistered(fn) - - return fn.label - }) - } - /*! - * lunr.Vector - * Copyright (C) 2014 Oliver Nightingale - */ - - /** - * lunr.Vectors implement vector related operations for - * a series of elements. - * - * @constructor - */ - lunr.Vector = function () { - this._magnitude = null - this.list = undefined - this.length = 0 - } - - /** - * lunr.Vector.Node is a simple struct for each node - * in a lunr.Vector. - * - * @private - * @param {Number} The index of the node in the vector. - * @param {Object} The data at this node in the vector. - * @param {lunr.Vector.Node} The node directly after this node in the vector. - * @constructor - * @memberOf Vector - */ - lunr.Vector.Node = function (idx, val, next) { - this.idx = idx - this.val = val - this.next = next - } - - /** - * Inserts a new value at a position in a vector. - * - * @param {Number} The index at which to insert a value. - * @param {Object} The object to insert in the vector. - * @memberOf Vector. - */ - lunr.Vector.prototype.insert = function (idx, val) { - var list = this.list - - if (!list) { - this.list = new lunr.Vector.Node (idx, val, list) - return this.length++ - } - - var prev = list, - next = list.next - - while (next != undefined) { - if (idx < next.idx) { - prev.next = new lunr.Vector.Node (idx, val, next) - return this.length++ - } - - prev = next, next = next.next - } - - prev.next = new lunr.Vector.Node (idx, val, next) - return this.length++ - } - - /** - * Calculates the magnitude of this vector. - * - * @returns {Number} - * @memberOf Vector - */ - lunr.Vector.prototype.magnitude = function () { - if (this._magniture) return this._magnitude - var node = this.list, - sumOfSquares = 0, - val - - while (node) { - val = node.val - sumOfSquares += val * val - node = node.next - } - - return this._magnitude = Math.sqrt(sumOfSquares) - } - - /** - * Calculates the dot product of this vector and another vector. - * - * @param {lunr.Vector} otherVector The vector to compute the dot product with. - * @returns {Number} - * @memberOf Vector - */ - lunr.Vector.prototype.dot = function (otherVector) { - var node = this.list, - otherNode = otherVector.list, - dotProduct = 0 - - while (node && otherNode) { - if (node.idx < otherNode.idx) { - node = node.next - } else if (node.idx > otherNode.idx) { - otherNode = otherNode.next - } else { - dotProduct += node.val * otherNode.val - node = node.next - otherNode = otherNode.next - } - } - - return dotProduct - } - - /** - * Calculates the cosine similarity between this vector and another - * vector. - * - * @param {lunr.Vector} otherVector The other vector to calculate the - * similarity with. - * @returns {Number} - * @memberOf Vector - */ - lunr.Vector.prototype.similarity = function (otherVector) { - return this.dot(otherVector) / (this.magnitude() * otherVector.magnitude()) - } - /*! - * lunr.SortedSet - * Copyright (C) 2014 Oliver Nightingale - */ - - /** - * lunr.SortedSets are used to maintain an array of uniq values in a sorted - * order. - * - * @constructor - */ - lunr.SortedSet = function () { - this.length = 0 - this.elements = [] - } - - /** - * Loads a previously serialised sorted set. - * - * @param {Array} serialisedData The serialised set to load. - * @returns {lunr.SortedSet} - * @memberOf SortedSet - */ - lunr.SortedSet.load = function (serialisedData) { - var set = new this - - set.elements = serialisedData - set.length = serialisedData.length - - return set - } - - /** - * Inserts new items into the set in the correct position to maintain the - * order. - * - * @param {Object} The objects to add to this set. - * @memberOf SortedSet - */ - lunr.SortedSet.prototype.add = function () { - Array.prototype.slice.call(arguments).forEach(function (element) { - if (~this.indexOf(element)) return - this.elements.splice(this.locationFor(element), 0, element) - }, this) - - this.length = this.elements.length - } - - /** - * Converts this sorted set into an array. - * - * @returns {Array} - * @memberOf SortedSet - */ - lunr.SortedSet.prototype.toArray = function () { - return this.elements.slice() - } - - /** - * Creates a new array with the results of calling a provided function on every - * element in this sorted set. - * - * Delegates to Array.prototype.map and has the same signature. - * - * @param {Function} fn The function that is called on each element of the - * set. - * @param {Object} ctx An optional object that can be used as the context - * for the function fn. - * @returns {Array} - * @memberOf SortedSet - */ - lunr.SortedSet.prototype.map = function (fn, ctx) { - return this.elements.map(fn, ctx) - } - - /** - * Executes a provided function once per sorted set element. - * - * Delegates to Array.prototype.forEach and has the same signature. - * - * @param {Function} fn The function that is called on each element of the - * set. - * @param {Object} ctx An optional object that can be used as the context - * @memberOf SortedSet - * for the function fn. - */ - lunr.SortedSet.prototype.forEach = function (fn, ctx) { - return this.elements.forEach(fn, ctx) - } - - /** - * Returns the index at which a given element can be found in the - * sorted set, or -1 if it is not present. - * - * @param {Object} elem The object to locate in the sorted set. - * @param {Number} start An optional index at which to start searching from - * within the set. - * @param {Number} end An optional index at which to stop search from within - * the set. - * @returns {Number} - * @memberOf SortedSet - */ - lunr.SortedSet.prototype.indexOf = function (elem, start, end) { - var start = start || 0, - end = end || this.elements.length, - sectionLength = end - start, - pivot = start + Math.floor(sectionLength / 2), - pivotElem = this.elements[pivot] - - if (sectionLength <= 1) { - if (pivotElem === elem) { - return pivot - } else { - return -1 - } - } - - if (pivotElem < elem) return this.indexOf(elem, pivot, end) - if (pivotElem > elem) return this.indexOf(elem, start, pivot) - if (pivotElem === elem) return pivot - } - - /** - * Returns the position within the sorted set that an element should be - * inserted at to maintain the current order of the set. - * - * This function assumes that the element to search for does not already exist - * in the sorted set. - * - * @param {Object} elem The elem to find the position for in the set - * @param {Number} start An optional index at which to start searching from - * within the set. - * @param {Number} end An optional index at which to stop search from within - * the set. - * @returns {Number} - * @memberOf SortedSet - */ - lunr.SortedSet.prototype.locationFor = function (elem, start, end) { - var start = start || 0, - end = end || this.elements.length, - sectionLength = end - start, - pivot = start + Math.floor(sectionLength / 2), - pivotElem = this.elements[pivot] - - if (sectionLength <= 1) { - if (pivotElem > elem) return pivot - if (pivotElem < elem) return pivot + 1 - } - - if (pivotElem < elem) return this.locationFor(elem, pivot, end) - if (pivotElem > elem) return this.locationFor(elem, start, pivot) - } - - /** - * Creates a new lunr.SortedSet that contains the elements in the intersection - * of this set and the passed set. - * - * @param {lunr.SortedSet} otherSet The set to intersect with this set. - * @returns {lunr.SortedSet} - * @memberOf SortedSet - */ - lunr.SortedSet.prototype.intersect = function (otherSet) { - var intersectSet = new lunr.SortedSet, - i = 0, j = 0, - a_len = this.length, b_len = otherSet.length, - a = this.elements, b = otherSet.elements - - while (true) { - if (i > a_len - 1 || j > b_len - 1) break - - if (a[i] === b[j]) { - intersectSet.add(a[i]) - i++, j++ - continue - } - - if (a[i] < b[j]) { - i++ - continue - } - - if (a[i] > b[j]) { - j++ - continue - } - }; - - return intersectSet - } - - /** - * Makes a copy of this set - * - * @returns {lunr.SortedSet} - * @memberOf SortedSet - */ - lunr.SortedSet.prototype.clone = function () { - var clone = new lunr.SortedSet - - clone.elements = this.toArray() - clone.length = clone.elements.length - - return clone - } - - /** - * Creates a new lunr.SortedSet that contains the elements in the union - * of this set and the passed set. - * - * @param {lunr.SortedSet} otherSet The set to union with this set. - * @returns {lunr.SortedSet} - * @memberOf SortedSet - */ - lunr.SortedSet.prototype.union = function (otherSet) { - var longSet, shortSet, unionSet - - if (this.length >= otherSet.length) { - longSet = this, shortSet = otherSet - } else { - longSet = otherSet, shortSet = this - } - - unionSet = longSet.clone() - - unionSet.add.apply(unionSet, shortSet.toArray()) - - return unionSet - } - - /** - * Returns a representation of the sorted set ready for serialisation. - * - * @returns {Array} - * @memberOf SortedSet - */ - lunr.SortedSet.prototype.toJSON = function () { - return this.toArray() - } - /*! - * lunr.Index - * Copyright (C) 2014 Oliver Nightingale - */ - - /** - * lunr.Index is object that manages a search index. It contains the indexes - * and stores all the tokens and document lookups. It also provides the main - * user facing API for the library. - * - * @constructor - */ - lunr.Index = function () { - this._fields = [] - this._ref = 'id' - this.pipeline = new lunr.Pipeline - this.documentStore = new lunr.Store - this.tokenStore = new lunr.TokenStore - this.corpusTokens = new lunr.SortedSet - this.eventEmitter = new lunr.EventEmitter - - this._idfCache = {} - - this.on('add', 'remove', 'update', (function () { - this._idfCache = {} - }).bind(this)) - } - - /** - * Bind a handler to events being emitted by the index. - * - * The handler can be bound to many events at the same time. - * - * @param {String} [eventName] The name(s) of events to bind the function to. - * @param {Function} handler The serialised set to load. - * @memberOf Index - */ - lunr.Index.prototype.on = function () { - var args = Array.prototype.slice.call(arguments) - return this.eventEmitter.addListener.apply(this.eventEmitter, args) - } - - /** - * Removes a handler from an event being emitted by the index. - * - * @param {String} eventName The name of events to remove the function from. - * @param {Function} handler The serialised set to load. - * @memberOf Index - */ - lunr.Index.prototype.off = function (name, fn) { - return this.eventEmitter.removeListener(name, fn) - } - - /** - * Loads a previously serialised index. - * - * Issues a warning if the index being imported was serialised - * by a different version of lunr. - * - * @param {Object} serialisedData The serialised set to load. - * @returns {lunr.Index} - * @memberOf Index - */ - lunr.Index.load = function (serialisedData) { - if (serialisedData.version !== lunr.version) { - lunr.utils.warn('version mismatch: current ' + lunr.version + ' importing ' + serialisedData.version) - } - - var idx = new this - - idx._fields = serialisedData.fields - idx._ref = serialisedData.ref - - idx.documentStore = lunr.Store.load(serialisedData.documentStore) - idx.tokenStore = lunr.TokenStore.load(serialisedData.tokenStore) - idx.corpusTokens = lunr.SortedSet.load(serialisedData.corpusTokens) - idx.pipeline = lunr.Pipeline.load(serialisedData.pipeline) - - return idx - } - - /** - * Adds a field to the list of fields that will be searchable within documents - * in the index. - * - * An optional boost param can be passed to affect how much tokens in this field - * rank in search results, by default the boost value is 1. - * - * Fields should be added before any documents are added to the index, fields - * that are added after documents are added to the index will only apply to new - * documents added to the index. - * - * @param {String} fieldName The name of the field within the document that - * should be indexed - * @param {Number} boost An optional boost that can be applied to terms in this - * field. - * @returns {lunr.Index} - * @memberOf Index - */ - lunr.Index.prototype.field = function (fieldName, opts) { - var opts = opts || {}, - field = { name: fieldName, boost: opts.boost || 1 } - - this._fields.push(field) - return this - } - - /** - * Sets the property used to uniquely identify documents added to the index, - * by default this property is 'id'. - * - * This should only be changed before adding documents to the index, changing - * the ref property without resetting the index can lead to unexpected results. - * - * @param {String} refName The property to use to uniquely identify the - * documents in the index. - * @param {Boolean} emitEvent Whether to emit add events, defaults to true - * @returns {lunr.Index} - * @memberOf Index - */ - lunr.Index.prototype.ref = function (refName) { - this._ref = refName - return this - } - - /** - * Add a document to the index. - * - * This is the way new documents enter the index, this function will run the - * fields from the document through the index's pipeline and then add it to - * the index, it will then show up in search results. - * - * An 'add' event is emitted with the document that has been added and the index - * the document has been added to. This event can be silenced by passing false - * as the second argument to add. - * - * @param {Object} doc The document to add to the index. - * @param {Boolean} emitEvent Whether or not to emit events, default true. - * @memberOf Index - */ - lunr.Index.prototype.add = function (doc, emitEvent) { - var docTokens = {}, - allDocumentTokens = new lunr.SortedSet, - docRef = doc[this._ref], - emitEvent = emitEvent === undefined ? true : emitEvent - - this._fields.forEach(function (field) { - var fieldTokens = this.pipeline.run(lunr.tokenizer(doc[field.name])) - - docTokens[field.name] = fieldTokens - lunr.SortedSet.prototype.add.apply(allDocumentTokens, fieldTokens) - }, this) - - this.documentStore.set(docRef, allDocumentTokens) - lunr.SortedSet.prototype.add.apply(this.corpusTokens, allDocumentTokens.toArray()) - - for (var i = 0; i < allDocumentTokens.length; i++) { - var token = allDocumentTokens.elements[i] - var tf = this._fields.reduce(function (memo, field) { - var fieldLength = docTokens[field.name].length - - if (!fieldLength) return memo - - var tokenCount = docTokens[field.name].filter(function (t) { return t === token }).length - - return memo + (tokenCount / fieldLength * field.boost) - }, 0) - - this.tokenStore.add(token, { ref: docRef, tf: tf }) - }; - - if (emitEvent) this.eventEmitter.emit('add', doc, this) - } - - /** - * Removes a document from the index. - * - * To make sure documents no longer show up in search results they can be - * removed from the index using this method. - * - * The document passed only needs to have the same ref property value as the - * document that was added to the index, they could be completely different - * objects. - * - * A 'remove' event is emitted with the document that has been removed and the index - * the document has been removed from. This event can be silenced by passing false - * as the second argument to remove. - * - * @param {Object} doc The document to remove from the index. - * @param {Boolean} emitEvent Whether to emit remove events, defaults to true - * @memberOf Index - */ - lunr.Index.prototype.remove = function (doc, emitEvent) { - var docRef = doc[this._ref], - emitEvent = emitEvent === undefined ? true : emitEvent - - if (!this.documentStore.has(docRef)) return - - var docTokens = this.documentStore.get(docRef) - - this.documentStore.remove(docRef) - - docTokens.forEach(function (token) { - this.tokenStore.remove(token, docRef) - }, this) - - if (emitEvent) this.eventEmitter.emit('remove', doc, this) - } - - /** - * Updates a document in the index. - * - * When a document contained within the index gets updated, fields changed, - * added or removed, to make sure it correctly matched against search queries, - * it should be updated in the index. - * - * This method is just a wrapper around `remove` and `add` - * - * An 'update' event is emitted with the document that has been updated and the index. - * This event can be silenced by passing false as the second argument to update. Only - * an update event will be fired, the 'add' and 'remove' events of the underlying calls - * are silenced. - * - * @param {Object} doc The document to update in the index. - * @param {Boolean} emitEvent Whether to emit update events, defaults to true - * @see Index.prototype.remove - * @see Index.prototype.add - * @memberOf Index - */ - lunr.Index.prototype.update = function (doc, emitEvent) { - var emitEvent = emitEvent === undefined ? true : emitEvent - - this.remove(doc, false) - this.add(doc, false) - - if (emitEvent) this.eventEmitter.emit('update', doc, this) - } - - /** - * Calculates the inverse document frequency for a token within the index. - * - * @param {String} token The token to calculate the idf of. - * @see Index.prototype.idf - * @private - * @memberOf Index - */ - lunr.Index.prototype.idf = function (term) { - var cacheKey = "@" + term - if (Object.prototype.hasOwnProperty.call(this._idfCache, cacheKey)) return this._idfCache[cacheKey] - - var documentFrequency = this.tokenStore.count(term), - idf = 1 - - if (documentFrequency > 0) { - idf = 1 + Math.log(this.tokenStore.length / documentFrequency) - } - - return this._idfCache[cacheKey] = idf - } - - /** - * Searches the index using the passed query. - * - * Queries should be a string, multiple words are allowed and will lead to an - * AND based query, e.g. `idx.search('foo bar')` will run a search for - * documents containing both 'foo' and 'bar'. - * - * All query tokens are passed through the same pipeline that document tokens - * are passed through, so any language processing involved will be run on every - * query term. - * - * Each query term is expanded, so that the term 'he' might be expanded to - * 'hello' and 'help' if those terms were already included in the index. - * - * Matching documents are returned as an array of objects, each object contains - * the matching document ref, as set for this index, and the similarity score - * for this document against the query. - * - * @param {String} query The query to search the index with. - * @returns {Object} - * @see Index.prototype.idf - * @see Index.prototype.documentVector - * @memberOf Index - */ - lunr.Index.prototype.search = function (query) { - var queryTokens = this.pipeline.run(lunr.tokenizer(query)), - queryVector = new lunr.Vector, - documentSets = [], - fieldBoosts = this._fields.reduce(function (memo, f) { return memo + f.boost }, 0) - - var hasSomeToken = queryTokens.some(function (token) { - return this.tokenStore.has(token) - }, this) - - if (!hasSomeToken) return [] - - queryTokens - .forEach(function (token, i, tokens) { - var tf = 1 / tokens.length * this._fields.length * fieldBoosts, - self = this - - var set = this.tokenStore.expand(token).reduce(function (memo, key) { - var pos = self.corpusTokens.indexOf(key), - idf = self.idf(key), - similarityBoost = 1, - set = new lunr.SortedSet - - // if the expanded key is not an exact match to the token then - // penalise the score for this key by how different the key is - // to the token. - if (key !== token) { - var diff = Math.max(3, key.length - token.length) - similarityBoost = 1 / Math.log(diff) - } - - // calculate the query tf-idf score for this token - // applying an similarityBoost to ensure exact matches - // these rank higher than expanded terms - if (pos > -1) queryVector.insert(pos, tf * idf * similarityBoost) - - // add all the documents that have this key into a set - Object.keys(self.tokenStore.get(key)).forEach(function (ref) { set.add(ref) }) - - return memo.union(set) - }, new lunr.SortedSet) - - documentSets.push(set) - }, this) - - var documentSet = documentSets.reduce(function (memo, set) { - return memo.intersect(set) - }) - - return documentSet - .map(function (ref) { - return { ref: ref, score: queryVector.similarity(this.documentVector(ref)) } - }, this) - .sort(function (a, b) { - return b.score - a.score - }) - } - - /** - * Generates a vector containing all the tokens in the document matching the - * passed documentRef. - * - * The vector contains the tf-idf score for each token contained in the - * document with the passed documentRef. The vector will contain an element - * for every token in the indexes corpus, if the document does not contain that - * token the element will be 0. - * - * @param {Object} documentRef The ref to find the document with. - * @returns {lunr.Vector} - * @private - * @memberOf Index - */ - lunr.Index.prototype.documentVector = function (documentRef) { - var documentTokens = this.documentStore.get(documentRef), - documentTokensLength = documentTokens.length, - documentVector = new lunr.Vector - - for (var i = 0; i < documentTokensLength; i++) { - var token = documentTokens.elements[i], - tf = this.tokenStore.get(token)[documentRef].tf, - idf = this.idf(token) - - documentVector.insert(this.corpusTokens.indexOf(token), tf * idf) - }; - - return documentVector - } - - /** - * Returns a representation of the index ready for serialisation. - * - * @returns {Object} - * @memberOf Index - */ - lunr.Index.prototype.toJSON = function () { - return { - version: lunr.version, - fields: this._fields, - ref: this._ref, - documentStore: this.documentStore.toJSON(), - tokenStore: this.tokenStore.toJSON(), - corpusTokens: this.corpusTokens.toJSON(), - pipeline: this.pipeline.toJSON() - } - } - - /** - * Applies a plugin to the current index. - * - * A plugin is a function that is called with the index as its context. - * Plugins can be used to customise or extend the behaviour the index - * in some way. A plugin is just a function, that encapsulated the custom - * behaviour that should be applied to the index. - * - * The plugin function will be called with the index as its argument, additional - * arguments can also be passed when calling use. The function will be called - * with the index as its context. - * - * Example: - * - * var myPlugin = function (idx, arg1, arg2) { - * // `this` is the index to be extended - * // apply any extensions etc here. - * } - * - * var idx = lunr(function () { - * this.use(myPlugin, 'arg1', 'arg2') - * }) - * - * @param {Function} plugin The plugin to apply. - * @memberOf Index - */ - lunr.Index.prototype.use = function (plugin) { - var args = Array.prototype.slice.call(arguments, 1) - args.unshift(this) - plugin.apply(this, args) - } - /*! - * lunr.Store - * Copyright (C) 2014 Oliver Nightingale - */ - - /** - * lunr.Store is a simple key-value store used for storing sets of tokens for - * documents stored in index. - * - * @constructor - * @module - */ - lunr.Store = function () { - this.store = {} - this.length = 0 - } - - /** - * Loads a previously serialised store - * - * @param {Object} serialisedData The serialised store to load. - * @returns {lunr.Store} - * @memberOf Store - */ - lunr.Store.load = function (serialisedData) { - var store = new this - - store.length = serialisedData.length - store.store = Object.keys(serialisedData.store).reduce(function (memo, key) { - memo[key] = lunr.SortedSet.load(serialisedData.store[key]) - return memo - }, {}) - - return store - } - - /** - * Stores the given tokens in the store against the given id. - * - * @param {Object} id The key used to store the tokens against. - * @param {Object} tokens The tokens to store against the key. - * @memberOf Store - */ - lunr.Store.prototype.set = function (id, tokens) { - if (!this.has(id)) this.length++ - this.store[id] = tokens - } - - /** - * Retrieves the tokens from the store for a given key. - * - * @param {Object} id The key to lookup and retrieve from the store. - * @returns {Object} - * @memberOf Store - */ - lunr.Store.prototype.get = function (id) { - return this.store[id] - } - - /** - * Checks whether the store contains a key. - * - * @param {Object} id The id to look up in the store. - * @returns {Boolean} - * @memberOf Store - */ - lunr.Store.prototype.has = function (id) { - return id in this.store - } - - /** - * Removes the value for a key in the store. - * - * @param {Object} id The id to remove from the store. - * @memberOf Store - */ - lunr.Store.prototype.remove = function (id) { - if (!this.has(id)) return - - delete this.store[id] - this.length-- - } - - /** - * Returns a representation of the store ready for serialisation. - * - * @returns {Object} - * @memberOf Store - */ - lunr.Store.prototype.toJSON = function () { - return { - store: this.store, - length: this.length - } - } - - /*! - * lunr.stemmer - * Copyright (C) 2014 Oliver Nightingale - * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt - */ - - /** - * lunr.stemmer is an english language stemmer, this is a JavaScript - * implementation of the PorterStemmer taken from http://tartaurs.org/~martin - * - * @module - * @param {String} str The string to stem - * @returns {String} - * @see lunr.Pipeline - */ - lunr.stemmer = (function(){ - var step2list = { - "ational" : "ate", - "tional" : "tion", - "enci" : "ence", - "anci" : "ance", - "izer" : "ize", - "bli" : "ble", - "alli" : "al", - "entli" : "ent", - "eli" : "e", - "ousli" : "ous", - "ization" : "ize", - "ation" : "ate", - "ator" : "ate", - "alism" : "al", - "iveness" : "ive", - "fulness" : "ful", - "ousness" : "ous", - "aliti" : "al", - "iviti" : "ive", - "biliti" : "ble", - "logi" : "log" - }, - - step3list = { - "icate" : "ic", - "ative" : "", - "alize" : "al", - "iciti" : "ic", - "ical" : "ic", - "ful" : "", - "ness" : "" - }, - - c = "[^aeiou]", // consonant - v = "[aeiouy]", // vowel - C = c + "[^aeiouy]*", // consonant sequence - V = v + "[aeiou]*", // vowel sequence - - mgr0 = "^(" + C + ")?" + V + C, // [C]VC... is m>0 - meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$", // [C]VC[V] is m=1 - mgr1 = "^(" + C + ")?" + V + C + V + C, // [C]VCVC... is m>1 - s_v = "^(" + C + ")?" + v; // vowel in stem - - var re_mgr0 = new RegExp(mgr0); - var re_mgr1 = new RegExp(mgr1); - var re_meq1 = new RegExp(meq1); - var re_s_v = new RegExp(s_v); - - var re_1a = /^(.+?)(ss|i)es$/; - var re2_1a = /^(.+?)([^s])s$/; - var re_1b = /^(.+?)eed$/; - var re2_1b = /^(.+?)(ed|ing)$/; - var re_1b_2 = /.$/; - var re2_1b_2 = /(at|bl|iz)$/; - var re3_1b_2 = new RegExp("([^aeiouylsz])\\1$"); - var re4_1b_2 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - - var re_1c = /^(.+?[^aeiou])y$/; - var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; - - var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; - - var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; - var re2_4 = /^(.+?)(s|t)(ion)$/; - - var re_5 = /^(.+?)e$/; - var re_5_1 = /ll$/; - var re3_5 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - - var porterStemmer = function porterStemmer(w) { - var stem, - suffix, - firstch, - re, - re2, - re3, - re4; - - if (w.length < 3) { return w; } - - firstch = w.substr(0,1); - if (firstch == "y") { - w = firstch.toUpperCase() + w.substr(1); - } - - // Step 1a - re = re_1a - re2 = re2_1a; - - if (re.test(w)) { w = w.replace(re,"$1$2"); } - else if (re2.test(w)) { w = w.replace(re2,"$1$2"); } - - // Step 1b - re = re_1b; - re2 = re2_1b; - if (re.test(w)) { - var fp = re.exec(w); - re = re_mgr0; - if (re.test(fp[1])) { - re = re_1b_2; - w = w.replace(re,""); - } - } else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1]; - re2 = re_s_v; - if (re2.test(stem)) { - w = stem; - re2 = re2_1b_2; - re3 = re3_1b_2; - re4 = re4_1b_2; - if (re2.test(w)) { w = w + "e"; } - else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,""); } - else if (re4.test(w)) { w = w + "e"; } - } - } - - // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say) - re = re_1c; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - w = stem + "i"; - } - - // Step 2 - re = re_2; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = re_mgr0; - if (re.test(stem)) { - w = stem + step2list[suffix]; - } - } - - // Step 3 - re = re_3; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = re_mgr0; - if (re.test(stem)) { - w = stem + step3list[suffix]; - } - } - - // Step 4 - re = re_4; - re2 = re2_4; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = re_mgr1; - if (re.test(stem)) { - w = stem; - } - } else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1] + fp[2]; - re2 = re_mgr1; - if (re2.test(stem)) { - w = stem; - } - } - - // Step 5 - re = re_5; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = re_mgr1; - re2 = re_meq1; - re3 = re3_5; - if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) { - w = stem; - } - } - - re = re_5_1; - re2 = re_mgr1; - if (re.test(w) && re2.test(w)) { - re = re_1b_2; - w = w.replace(re,""); - } - - // and turn initial Y back to y - - if (firstch == "y") { - w = firstch.toLowerCase() + w.substr(1); - } - - return w; - }; - - return porterStemmer; - })(); - - lunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer') - /*! - * lunr.stopWordFilter - * Copyright (C) 2014 Oliver Nightingale - */ - - /** - * lunr.stopWordFilter is an English language stop word list filter, any words - * contained in the list will not be passed through the filter. - * - * This is intended to be used in the Pipeline. If the token does not pass the - * filter then undefined will be returned. - * - * @module - * @param {String} token The token to pass through the filter - * @returns {String} - * @see lunr.Pipeline - */ - lunr.stopWordFilter = function (token) { - if (lunr.stopWordFilter.stopWords.indexOf(token) === -1) return token - } - - lunr.stopWordFilter.stopWords = new lunr.SortedSet - lunr.stopWordFilter.stopWords.length = 119 - lunr.stopWordFilter.stopWords.elements = [ - "", - "a", - "able", - "about", - "across", - "after", - "all", - "almost", - "also", - "am", - "among", - "an", - "and", - "any", - "are", - "as", - "at", - "be", - "because", - "been", - "but", - "by", - "can", - "cannot", - "could", - "dear", - "did", - "do", - "does", - "either", - "else", - "ever", - "every", - "for", - "from", - "get", - "got", - "had", - "has", - "have", - "he", - "her", - "hers", - "him", - "his", - "how", - "however", - "i", - "if", - "in", - "into", - "is", - "it", - "its", - "just", - "least", - "let", - "like", - "likely", - "may", - "me", - "might", - "most", - "must", - "my", - "neither", - "no", - "nor", - "not", - "of", - "off", - "often", - "on", - "only", - "or", - "other", - "our", - "own", - "rather", - "said", - "say", - "says", - "she", - "should", - "since", - "so", - "some", - "than", - "that", - "the", - "their", - "them", - "then", - "there", - "these", - "they", - "this", - "tis", - "to", - "too", - "twas", - "us", - "wants", - "was", - "we", - "were", - "what", - "when", - "where", - "which", - "while", - "who", - "whom", - "why", - "will", - "with", - "would", - "yet", - "you", - "your" - ] - - lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter') - /*! - * lunr.trimmer - * Copyright (C) 2014 Oliver Nightingale - */ - - /** - * lunr.trimmer is a pipeline function for trimming non word - * characters from the beginning and end of tokens before they - * enter the index. - * - * This implementation may not work correctly for non latin - * characters and should either be removed or adapted for use - * with languages with non-latin characters. - * - * @module - * @param {String} token The token to pass through the filter - * @returns {String} - * @see lunr.Pipeline - */ - lunr.trimmer = function (token) { - return token - .replace(/^\W+/, '') - .replace(/\W+$/, '') - } - - lunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer') - /*! - * lunr.stemmer - * Copyright (C) 2014 Oliver Nightingale - * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt - */ - - /** - * lunr.TokenStore is used for efficient storing and lookup of the reverse - * index of token to document ref. - * - * @constructor - */ - lunr.TokenStore = function () { - this.root = { docs: {} } - this.length = 0 - } - - /** - * Loads a previously serialised token store - * - * @param {Object} serialisedData The serialised token store to load. - * @returns {lunr.TokenStore} - * @memberOf TokenStore - */ - lunr.TokenStore.load = function (serialisedData) { - var store = new this - - store.root = serialisedData.root - store.length = serialisedData.length - - return store - } - - /** - * Adds a new token doc pair to the store. - * - * By default this function starts at the root of the current store, however - * it can start at any node of any token store if required. - * - * @param {String} token The token to store the doc under - * @param {Object} doc The doc to store against the token - * @param {Object} root An optional node at which to start looking for the - * correct place to enter the doc, by default the root of this lunr.TokenStore - * is used. - * @memberOf TokenStore - */ - lunr.TokenStore.prototype.add = function (token, doc, root) { - var root = root || this.root, - key = token[0], - rest = token.slice(1) - - if (!(key in root)) root[key] = {docs: {}} - - if (rest.length === 0) { - root[key].docs[doc.ref] = doc - this.length += 1 - return - } else { - return this.add(rest, doc, root[key]) - } - } - - /** - * Checks whether this key is contained within this lunr.TokenStore. - * - * By default this function starts at the root of the current store, however - * it can start at any node of any token store if required. - * - * @param {String} token The token to check for - * @param {Object} root An optional node at which to start - * @memberOf TokenStore - */ - lunr.TokenStore.prototype.has = function (token) { - if (!token) return false - - var node = this.root - - for (var i = 0; i < token.length; i++) { - if (!node[token[i]]) return false - - node = node[token[i]] - } - - return true - } - - /** - * Retrieve a node from the token store for a given token. - * - * By default this function starts at the root of the current store, however - * it can start at any node of any token store if required. - * - * @param {String} token The token to get the node for. - * @param {Object} root An optional node at which to start. - * @returns {Object} - * @see TokenStore.prototype.get - * @memberOf TokenStore - */ - lunr.TokenStore.prototype.getNode = function (token) { - if (!token) return {} - - var node = this.root - - for (var i = 0; i < token.length; i++) { - if (!node[token[i]]) return {} - - node = node[token[i]] - } - - return node - } - - /** - * Retrieve the documents for a node for the given token. - * - * By default this function starts at the root of the current store, however - * it can start at any node of any token store if required. - * - * @param {String} token The token to get the documents for. - * @param {Object} root An optional node at which to start. - * @returns {Object} - * @memberOf TokenStore - */ - lunr.TokenStore.prototype.get = function (token, root) { - return this.getNode(token, root).docs || {} - } - - lunr.TokenStore.prototype.count = function (token, root) { - return Object.keys(this.get(token, root)).length - } - - /** - * Remove the document identified by ref from the token in the store. - * - * By default this function starts at the root of the current store, however - * it can start at any node of any token store if required. - * - * @param {String} token The token to get the documents for. - * @param {String} ref The ref of the document to remove from this token. - * @param {Object} root An optional node at which to start. - * @returns {Object} - * @memberOf TokenStore - */ - lunr.TokenStore.prototype.remove = function (token, ref) { - if (!token) return - var node = this.root - - for (var i = 0; i < token.length; i++) { - if (!(token[i] in node)) return - node = node[token[i]] - } - - delete node.docs[ref] - } - - /** - * Find all the possible suffixes of the passed token using tokens - * currently in the store. - * - * @param {String} token The token to expand. - * @returns {Array} - * @memberOf TokenStore - */ - lunr.TokenStore.prototype.expand = function (token, memo) { - var root = this.getNode(token), - docs = root.docs || {}, - memo = memo || [] - - if (Object.keys(docs).length) memo.push(token) - - Object.keys(root) - .forEach(function (key) { - if (key === 'docs') return - - memo.concat(this.expand(token + key, memo)) - }, this) - - return memo - } - - /** - * Returns a representation of the token store ready for serialisation. - * - * @returns {Object} - * @memberOf TokenStore - */ - lunr.TokenStore.prototype.toJSON = function () { - return { - root: this.root, - length: this.length - } - } - - - /** - * export the module via AMD, CommonJS or as a browser global - * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js - */ - ;(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory) - } else if (typeof exports === 'object') { - /** - * Node. Does not work with strict CommonJS, but - * only CommonJS-like environments that support module.exports, - * like Node. - */ - module.exports = factory() - } else { - // Browser globals (root is window) - root.lunr = factory() - } - }(this, function () { - /** - * Just return a value to define the module export. - * This example returns an object, but the module - * can return a function as the exported value. - */ - return lunr - })) -})() diff --git a/apidocs/cloud-api-source/source/layouts/layout.erb b/apidocs/cloud-api-source/source/layouts/layout.erb deleted file mode 100644 index 9f8cc27c76..0000000000 --- a/apidocs/cloud-api-source/source/layouts/layout.erb +++ /dev/null @@ -1,108 +0,0 @@ -<%# -Copyright 2008-2013 Concur Technologies, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); you may -not use this file except in compliance with the License. You may obtain -a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations -under the License. -%> -<% language_tabs = current_page.data.language_tabs %> - - - - - - - <%= current_page.data.title || "API Documentation" %> - - <%= stylesheet_link_tag :screen, media: :screen %> - <%= stylesheet_link_tag :print, media: :print %> - - - <% if current_page.data.search %> - <%= javascript_include_tag "all" %> - <% else %> - <%= javascript_include_tag "all_nosearch" %> - <% end %> - - <% if language_tabs %> - - <% end %> - - - - - - NAV - <%= image_tag('navbar.png') %> - - -
        - <%= image_tag "logo.png" %> - <% if language_tabs %> -
        - <% language_tabs.each do |lang| %> - <% if lang.is_a? Hash %> - <%= lang.values.first %> - <% else %> - <%= lang %> - <% end %> - <% end %> -
        - <% end %> - <% if current_page.data.search %> - -
          - <% end %> -
          -
          - <% if current_page.data.toc_footers %> - - <% end %> -
          -
          -
          -
          - <%= yield %> - <% current_page.data.includes && current_page.data.includes.each do |include| %> - <%= partial "includes/#{include}" %> - <% end %> -
          -
          - <% if language_tabs %> -
          - <% language_tabs.each do |lang| %> - <% if lang.is_a? Hash %> - <%= lang.values.first %> - <% else %> - <%= lang %> - <% end %> - <% end %> -
          - <% end %> -
          -
          - - diff --git a/apidocs/cloud-api-source/source/stylesheets/_icon-font.scss b/apidocs/cloud-api-source/source/stylesheets/_icon-font.scss deleted file mode 100644 index b599483988..0000000000 --- a/apidocs/cloud-api-source/source/stylesheets/_icon-font.scss +++ /dev/null @@ -1,38 +0,0 @@ -@font-face { - font-family: 'slate'; - src:font-url('slate.eot?-syv14m'); - src:font-url('slate.eot?#iefix-syv14m') format('embedded-opentype'), - font-url('slate.woff2?-syv14m') format('woff2'), - font-url('slate.woff?-syv14m') format('woff'), - font-url('slate.ttf?-syv14m') format('truetype'), - font-url('slate.svg?-syv14m#slate') format('svg'); - font-weight: normal; - font-style: normal; -} - -%icon { - font-family: 'slate'; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; -} - -%icon-exclamation-sign { - @extend %icon; - content: "\e600"; -} -%icon-info-sign { - @extend %icon; - content: "\e602"; -} -%icon-ok-sign { - @extend %icon; - content: "\e606"; -} -%icon-search { - @extend %icon; - content: "\e607"; -} diff --git a/apidocs/cloud-api-source/source/stylesheets/_normalize.css b/apidocs/cloud-api-source/source/stylesheets/_normalize.css deleted file mode 100644 index 46f646a5c0..0000000000 --- a/apidocs/cloud-api-source/source/stylesheets/_normalize.css +++ /dev/null @@ -1,427 +0,0 @@ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ - -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ - -html { - font-family: sans-serif; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/** - * Remove default margin. - */ - -body { - margin: 0; -} - -/* HTML5 display definitions - ========================================================================== */ - -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} - -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ - -audio, -canvas, -progress, -video { - display: inline-block; /* 1 */ - vertical-align: baseline; /* 2 */ -} - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. - */ - -[hidden], -template { - display: none; -} - -/* Links - ========================================================================== */ - -/** - * Remove the gray background color from active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * Improve readability when focused and also mouse hovered in all browsers. - */ - -a:active, -a:hover { - outline: 0; -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ - -abbr[title] { - border-bottom: 1px dotted; -} - -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ - -b, -strong { - font-weight: bold; -} - -/** - * Address styling not present in Safari and Chrome. - */ - -dfn { - font-style: italic; -} - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/** - * Address styling not present in IE 8/9. - */ - -mark { - background: #ff0; - color: #000; -} - -/** - * Address inconsistent and variable font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove border when inside `a` element in IE 8/9/10. - */ - -img { - border: 0; -} - -/** - * Correct overflow not hidden in IE 9/10/11. - */ - -svg:not(:root) { - overflow: hidden; -} - -/* Grouping content - ========================================================================== */ - -/** - * Address margin not present in IE 8/9 and Safari. - */ - -figure { - margin: 1em 40px; -} - -/** - * Address differences between Firefox and other browsers. - */ - -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; -} - -/** - * Contain overflow in all browsers. - */ - -pre { - overflow: auto; -} - -/** - * Address odd `em`-unit font size rendering in all browsers. - */ - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -/* Forms - ========================================================================== */ - -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ - -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ - -button, -input, -optgroup, -select, -textarea { - color: inherit; /* 1 */ - font: inherit; /* 2 */ - margin: 0; /* 3 */ -} - -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ - -button { - overflow: visible; -} - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ - -button, -select { - text-transform: none; -} - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ - -button, -html input[type="button"], /* 1 */ -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ -} - -/** - * Re-set default cursor for disabled elements. - */ - -button[disabled], -html input[disabled] { - cursor: default; -} - -/** - * Remove inner padding and border in Firefox 4+. - */ - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ - -input { - line-height: normal; -} - -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome - * (include `-moz` to future-proof). - */ - -input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; /* 2 */ - box-sizing: content-box; -} - -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * Define consistent border, margin, and padding. - */ - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ - -legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ - -textarea { - overflow: auto; -} - -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ - -optgroup { - font-weight: bold; -} - -/* Tables - ========================================================================== */ - -/** - * Remove most spacing between table cells. - */ - -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} diff --git a/apidocs/cloud-api-source/source/stylesheets/_syntax.scss.erb b/apidocs/cloud-api-source/source/stylesheets/_syntax.scss.erb deleted file mode 100644 index dfeb0c1524..0000000000 --- a/apidocs/cloud-api-source/source/stylesheets/_syntax.scss.erb +++ /dev/null @@ -1,27 +0,0 @@ -/* -Copyright 2008-2013 Concur Technologies, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); you may -not use this file except in compliance with the License. You may obtain -a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations -under the License. -*/ - -@import 'variables'; - -<%= Rouge::Themes::Base16::Monokai.render(:scope => '.highlight') %> - -.highlight .c, .highlight .cm, .highlight .c1, .highlight .cs { - color: #909090; -} - -.highlight, .highlight .w { - background-color: $code-bg; -} \ No newline at end of file diff --git a/apidocs/cloud-api-source/source/stylesheets/_variables.scss b/apidocs/cloud-api-source/source/stylesheets/_variables.scss deleted file mode 100644 index 5fe64b1f30..0000000000 --- a/apidocs/cloud-api-source/source/stylesheets/_variables.scss +++ /dev/null @@ -1,109 +0,0 @@ -/* -Copyright 2008-2013 Concur Technologies, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); you may -not use this file except in compliance with the License. You may obtain -a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations -under the License. -*/ - - -//////////////////////////////////////////////////////////////////////////////// -// CUSTOMIZE SLATE -//////////////////////////////////////////////////////////////////////////////// -// Use these settings to help adjust the appearance of Slate - - -// BACKGROUND COLORS -//////////////////// -$nav-bg: #393939; -$examples-bg: #393939; -$code-bg: #292929; -$code-annotation-bg: #1c1c1c; -$nav-subitem-bg: #262626; -$nav-active-bg: #2467af; -$lang-select-border: #000; -$lang-select-bg: #222; -$lang-select-active-bg: $examples-bg; // feel free to change this to blue or something -$lang-select-pressed-bg: #111; // color of language tab bg when mouse is pressed -$main-bg: #eaf2f6; -$aside-notice-bg: #8fbcd4; -$aside-warning-bg: #c97a7e; -$aside-success-bg: #6ac174; -$search-notice-bg: #c97a7e; - - -// TEXT COLORS -//////////////////// -$main-text: #333; // main content text color -$nav-text: #fff; -$nav-active-text: #fff; -$lang-select-text: #fff; // color of unselected language tab text -$lang-select-active-text: #fff; // color of selected language tab text -$lang-select-pressed-text: #fff; // color of language tab text when mouse is pressed - - -// SIZES -//////////////////// -$nav-width: 230px; // width of the navbar -$examples-width: 50%; // portion of the screen taken up by code examples -$logo-margin: 20px; // margin between nav items and logo, ignored if search is active -$main-padding: 28px; // padding to left and right of content & examples -$nav-padding: 15px; // padding to left and right of navbar -$nav-v-padding: 10px; // padding used vertically around search boxes and results -$nav-indent: 10px; // extra padding for ToC subitems -$code-annotation-padding: 13px; // padding inside code annotations -$h1-margin-bottom: 21px; // padding under the largest header tags -$tablet-width: 930px; // min width before reverting to tablet size -$phone-width: $tablet-width - $nav-width; // min width before reverting to mobile size - - -// FONTS -//////////////////// -%default-font { - font-family: "Helvetica Neue", Helvetica, Arial, "Microsoft Yahei","微软雅黑", STXihei, "华文细黑", sans-serif; - font-size: 13px; -} - -%header-font { - @extend %default-font; - font-weight: bold; -} - -%code-font { - font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, serif; - font-size: 12px; - line-height: 1.5; -} - - -// OTHER -//////////////////// -$nav-active-shadow: #000; -$nav-footer-border-color: #666; -$nav-embossed-border-top: #000; -$nav-embossed-border-bottom: #939393; -$main-embossed-text-shadow: 0px 1px 0px #fff; -$search-box-border-color: #666; - - -//////////////////////////////////////////////////////////////////////////////// -// INTERNAL -//////////////////////////////////////////////////////////////////////////////// -// These settings are probably best left alone. - -%break-words { - word-break: break-all; - - /* Non standard for webkit */ - word-break: break-word; - - hyphens: auto; -} diff --git a/apidocs/cloud-api-source/source/stylesheets/print.css.scss b/apidocs/cloud-api-source/source/stylesheets/print.css.scss deleted file mode 100644 index 4bda057f01..0000000000 --- a/apidocs/cloud-api-source/source/stylesheets/print.css.scss +++ /dev/null @@ -1,142 +0,0 @@ -@charset "utf-8"; -@import 'normalize'; -@import 'compass'; -@import 'variables'; -@import 'icon-font'; - -/* -Copyright 2008-2013 Concur Technologies, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); you may -not use this file except in compliance with the License. You may obtain -a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations -under the License. -*/ - -$print-color: #999; -$print-color-light: #ccc; -$print-font-size: 12px; - -body { - @extend %default-font; -} - -.tocify, .toc-footer, .lang-selector, .search, #nav-button { - display: none; -} - -.tocify-wrapper>img { - margin: 0 auto; - display: block; -} - -.content { - font-size: 12px; - - pre, code { - @extend %code-font; - @extend %break-words; - border: 1px solid $print-color; - border-radius: 5px; - font-size: 0.8em; - } - - pre { - padding: 1.3em; - } - - code { - padding: 0.2em; - } - - table { - border: 1px solid $print-color; - tr { - border-bottom: 1px solid $print-color; - } - td,th { - padding: 0.7em; - } - } - - p { - line-height: 1.5; - } - - a { - text-decoration: none; - color: #000; - } - - h1 { - @extend %header-font; - font-size: 2.5em; - padding-top: 0.5em; - padding-bottom: 0.5em; - margin-top: 1em; - margin-bottom: $h1-margin-bottom; - border: 2px solid $print-color-light; - border-width: 2px 0; - text-align: center; - } - - h2 { - @extend %header-font; - font-size: 1.8em; - margin-top: 2em; - border-top: 2px solid $print-color-light; - padding-top: 0.8em; - } - - h1+h2, h1+div+h2 { - border-top: none; - padding-top: 0; - margin-top: 0; - } - - h3, h4 { - @extend %header-font; - font-size: 0.8em; - margin-top: 1.5em; - margin-bottom: 0.8em; - text-transform: uppercase; - } - - h5, h6 { - text-transform: uppercase; - } - - aside { - padding: 1em; - border: 1px solid $print-color-light; - border-radius: 5px; - margin-top: 1.5em; - margin-bottom: 1.5em; - line-height: 1.6; - } - - aside:before { - vertical-align: middle; - padding-right: 0.5em; - font-size: 14px; - } - - aside.notice:before { - @extend %icon-info-sign; - } - - aside.warning:before { - @extend %icon-exclamation-sign; - } - - aside.success:before { - @extend %icon-ok-sign; - } -} \ No newline at end of file diff --git a/apidocs/cloud-api-source/source/stylesheets/screen.css.scss b/apidocs/cloud-api-source/source/stylesheets/screen.css.scss deleted file mode 100644 index e4b3ef82b2..0000000000 --- a/apidocs/cloud-api-source/source/stylesheets/screen.css.scss +++ /dev/null @@ -1,620 +0,0 @@ -@charset "utf-8"; -@import 'normalize'; -@import 'compass'; -@import 'variables'; -@import 'syntax'; -@import 'icon-font'; - -/* -Copyright 2008-2013 Concur Technologies, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); you may -not use this file except in compliance with the License. You may obtain -a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations -under the License. -*/ - -//////////////////////////////////////////////////////////////////////////////// -// GENERAL STUFF -//////////////////////////////////////////////////////////////////////////////// - -html, body { - color: $main-text; - padding: 0; - margin: 0; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - @extend %default-font; - background-color: $main-bg; - height: 100%; - -webkit-text-size-adjust: none; /* Never autoresize text */ -} - -//////////////////////////////////////////////////////////////////////////////// -// TABLE OF CONTENTS -//////////////////////////////////////////////////////////////////////////////// - -#toc > ul > li > a > span { - float: right; - background-color: #2484FF; - border-radius: 40px; - width: 20px; -} - -@mixin embossed-bg { - background: - linear-gradient(to bottom, rgba(#000, 0.2), rgba(#000, 0) 8px), - linear-gradient(to top, rgba(#000, 0.2), rgba(#000, 0) 8px), - linear-gradient(to bottom, rgba($nav-embossed-border-top, 1), rgba($nav-embossed-border-top, 0) 1.5px), - linear-gradient(to top, rgba($nav-embossed-border-bottom, 1), rgba($nav-embossed-border-bottom, 0) 1.5px), - $nav-subitem-bg; -} - -.tocify-wrapper { - transition: left 0.3s ease-in-out; - - overflow-y: auto; - overflow-x: hidden; - position: fixed; - z-index: 30; - top: 0; - left: 0; - bottom: 0; - width: $nav-width; - background-color: $nav-bg; - font-size: 13px; - font-weight: bold; - - // language selector for mobile devices - .lang-selector { - display: none; - a { - padding-top: 0.5em; - padding-bottom: 0.5em; - } - } - - // This is the logo at the top of the ToC - &>img { - display: block; - } - - &>.search { - position: relative; - - input { - background: $nav-bg; - border-width: 0 0 1px 0; - border-color: $search-box-border-color; - padding: 6px 0 6px 20px; - box-sizing: border-box; - margin: $nav-v-padding $nav-padding; - width: $nav-width - 30; - outline: none; - color: $nav-text; - border-radius: 0; /* ios has a default border radius */ - } - - &:before { - position: absolute; - top: 17px; - left: $nav-padding; - color: $nav-text; - @extend %icon-search; - } - } - - img+.tocify { - margin-top: $logo-margin; - } - - .search-results { - margin-top: 0; - box-sizing: border-box; - height: 0; - overflow-y: auto; - overflow-x: hidden; - transition-property: height, margin; - transition-duration: 180ms; - transition-timing-function: ease-in-out; - &.visible { - height: 30%; - margin-bottom: 1em; - } - - @include embossed-bg; - - li { - margin: 1em $nav-padding; - line-height: 1; - } - - a { - color: $nav-text; - text-decoration: none; - - &:hover { - text-decoration: underline; - } - } - } - - - .tocify-item>a, .toc-footer li { - padding: 0 $nav-padding 0 $nav-padding; - display: block; - overflow-x: hidden; - white-space: nowrap; - text-overflow: ellipsis; - } - - // The Table of Contents is composed of multiple nested - // unordered lists. These styles remove the default - // styling of an unordered list because it is ugly. - ul, li { - list-style: none; - margin: 0; - padding: 0; - line-height: 28px; - } - - li { - color: $nav-text; - transition-property: background; - transition-timing-function: linear; - transition-duration: 230ms; - } - - // This is the currently selected ToC entry - .tocify-focus { - box-shadow: 0px 1px 0px $nav-active-shadow; - background-color: $nav-active-bg; - color: $nav-active-text; - } - - // Subheaders are the submenus that slide open - // in the table of contents. - .tocify-subheader { - display: none; // tocify will override this when needed - background-color: $nav-subitem-bg; - font-weight: 500; - .tocify-item>a { - padding-left: $nav-padding + $nav-indent; - font-size: 12px; - } - - // for embossed look: - @include embossed-bg; - &>li:last-child { - box-shadow: none; // otherwise it'll overflow out of the subheader - } - } - - .toc-footer { - padding: 1em 0; - margin-top: 1em; - border-top: 1px dashed $nav-footer-border-color; - - li,a { - color: $nav-text; - text-decoration: none; - } - - a:hover { - text-decoration: underline; - } - - li { - font-size: 0.8em; - line-height: 1.7; - text-decoration: none; - } - } - -} - -// button to show navigation on mobile devices -#nav-button { - span { - display: block; - $side-pad: $main-padding / 2 - 8px; - padding: $side-pad $side-pad $side-pad; - background-color: rgba($main-bg, 0.7); - transform-origin: 0 0; - transform: rotate(-90deg) translate(-100%, 0); - border-radius: 0 0 0 5px; - } - padding: 0 1.5em 5em 0; // increase touch size area - display: none; - position: fixed; - top: 0; - left: 0; - z-index: 100; - color: #000; - text-decoration: none; - font-weight: bold; - opacity: 0.7; - line-height: 16px; - img { - height: 16px; - vertical-align: bottom; - } - - transition: left 0.3s ease-in-out; - - &:hover { opacity: 1; } - &.open {left: $nav-width} -} - - -//////////////////////////////////////////////////////////////////////////////// -// PAGE LAYOUT AND CODE SAMPLE BACKGROUND -//////////////////////////////////////////////////////////////////////////////// - -.page-wrapper { - margin-left: $nav-width; - position: relative; - z-index: 10; - background-color: $main-bg; - min-height: 100%; - - padding-bottom: 1px; // prevent margin overflow - - // The dark box is what gives the code samples their dark background. - // It sits essentially under the actual content block, which has a - // transparent background. - // I know, it's hackish, but it's the simplist way to make the left - // half of the content always this background color. - .dark-box { - width: $examples-width; - background-color: $examples-bg; - position: absolute; - right: 0; - top: 0; - bottom: 0; - } - - .lang-selector { - position: fixed; - z-index: 50; - border-bottom: 5px solid $lang-select-active-bg; - } -} - -.lang-selector { - background-color: $lang-select-bg; - width: 100%; - font-weight: bold; - a { - display: block; - float:left; - color: $lang-select-text; - text-decoration: none; - padding: 0 10px; - line-height: 30px; - outline: 0; - - &:active, &:focus { - background-color: $lang-select-pressed-bg; - color: $lang-select-pressed-text; - } - - &.active { - background-color: $lang-select-active-bg; - color: $lang-select-active-text; - } - } - - &:after { - content: ''; - clear: both; - display: block; - } -} - -//////////////////////////////////////////////////////////////////////////////// -// CONTENT STYLES -//////////////////////////////////////////////////////////////////////////////// -// This is all the stuff with the light background in the left half of the page - -.content { - // to place content above the dark box - position: relative; - z-index: 30; - - &:after { - content: ''; - display: block; - clear: both; - } - - &>h1, &>h2, &>h3, &>h4, &>h5, &>h6, &>p, &>table, &>ul, &>ol, &>aside, &>dl { - margin-right: $examples-width; - padding: 0 $main-padding; - box-sizing: border-box; - display: block; - @include text-shadow($main-embossed-text-shadow); - - @extend %left-col; - } - - &>ul, &>ol { - padding-left: $main-padding + 15px; - } - - // the div is the tocify hidden div for placeholding stuff - &>h1, &>h2, &>div { - clear:both; - } - - h1 { - @extend %header-font; - font-size: 30px; - padding-top: 0.5em; - padding-bottom: 0.5em; - border-bottom: 1px solid #ccc; - margin-bottom: $h1-margin-bottom; - margin-top: 2em; - border-top: 1px solid #ddd; - background-image: linear-gradient(to bottom, #fff, #f9f9f9); - } - - h1:first-child, div:first-child + h1 { - border-top-width: 0; - margin-top: 0; - } - - h2 { - @extend %header-font; - font-size: 20px; - margin-top: 4em; - margin-bottom: 0; - border-top: 1px solid #ccc; - padding-top: 1.2em; - padding-bottom: 1.2em; - background-image: linear-gradient(to bottom, rgba(#fff, 0.4), rgba(#fff, 0)); - } - - // h2s right after h1s should bump right up - // against the h1s. - h1 + h2, h1 + div + h2 { - margin-top: $h1-margin-bottom * -1; - border-top: none; - } - - h3, h4, h5, h6 { - @extend %header-font; - font-size: 15px; - margin-top: 2.5em; - margin-bottom: 0.8em; - } - - h4, h5, h6 { - font-size: 10px; - } - - hr { - margin: 2em 0; - border-top: 2px solid $examples-bg; - border-bottom: 2px solid $main-bg; - } - - table { - margin-bottom: 1em; - overflow: auto; - th,td { - text-align: left; - vertical-align: top; - line-height: 1.6; - } - - th { - padding: 5px 10px; - border-bottom: 1px solid #ccc; - vertical-align: bottom; - } - - td { - padding: 10px; - } - - tr:last-child { - border-bottom: 1px solid #ccc; - } - - tr:nth-child(odd)>td { - background-color: lighten($main-bg,4.2%); - } - - tr:nth-child(even)>td { - background-color: lighten($main-bg,2.4%); - } - } - - dt { - font-weight: bold; - } - - dd { - margin-left: 15px; - } - - p, li, dt, dd { - line-height: 1.6; - margin-top: 0; - } - - img { - max-width: 100%; - } - - code { - background-color: rgba(0,0,0,0.05); - padding: 3px; - border-radius: 3px; - @extend %break-words; - @extend %code-font; - } - - pre>code { - background-color: transparent; - padding: 0; - } - - aside { - padding-top: 1em; - padding-bottom: 1em; - @include text-shadow(0 1px 0 lighten($aside-notice-bg, 15%)); - margin-top: 1.5em; - margin-bottom: 1.5em; - background: $aside-notice-bg; - line-height: 1.6; - - &.warning { - background-color: $aside-warning-bg; - @include text-shadow(0 1px 0 lighten($aside-warning-bg, 15%)); - } - - &.success { - background-color: $aside-success-bg; - @include text-shadow(0 1px 0 lighten($aside-success-bg, 15%)); - } - } - - aside:before { - vertical-align: middle; - padding-right: 0.5em; - font-size: 14px; - } - - aside.notice:before { - @extend %icon-info-sign; - } - - aside.warning:before { - @extend %icon-exclamation-sign; - } - - aside.success:before { - @extend %icon-ok-sign; - } - - .search-highlight { - padding: 2px; - margin: -2px; - border-radius: 4px; - border: 1px solid #F7E633; - @include text-shadow(1px 1px 0 #666); - background: linear-gradient(to top left, #F7E633 0%, #F1D32F 100%); - } -} - -//////////////////////////////////////////////////////////////////////////////// -// CODE SAMPLE STYLES -//////////////////////////////////////////////////////////////////////////////// -// This is all the stuff that appears in the right half of the page - -.content { - pre, blockquote { - background-color: $code-bg; - color: #fff; - - padding: 2em $main-padding; - margin: 0; - width: $examples-width; - - float:right; - clear:right; - - box-sizing: border-box; - @include text-shadow(0px 1px 2px rgba(0,0,0,0.4)); - - @extend %right-col; - - &>p { margin: 0; } - - a { - color: #fff; - text-decoration: none; - border-bottom: dashed 1px #ccc; - } - } - - pre { - @extend %code-font; - } - - blockquote { - &>p { - background-color: $code-annotation-bg; - border-radius: 5px; - padding: $code-annotation-padding; - color: #ccc; - border-top: 1px solid #000; - border-bottom: 1px solid #404040; - } - } -} - -//////////////////////////////////////////////////////////////////////////////// -// RESPONSIVE DESIGN -//////////////////////////////////////////////////////////////////////////////// -// These are the styles for phones and tablets -// There are also a couple styles disperesed - -@media (max-width: $tablet-width) { - .tocify-wrapper { - left: -$nav-width; - - &.open { - left: 0; - } - } - - .page-wrapper { - margin-left: 0; - } - - #nav-button { - display: block; - } - - .tocify-wrapper .tocify-item > a { - padding-top: 0.3em; - padding-bottom: 0.3em; - } -} - -@media (max-width: $phone-width) { - .dark-box { - display: none; - } - - %left-col { - margin-right: 0; - } - - .tocify-wrapper .lang-selector { - display: block; - } - - .page-wrapper .lang-selector { - display: none; - } - - %right-col { - width: auto; - float: none; - } - - %right-col + %left-col { - margin-top: $main-padding; - } -} diff --git a/apidocs/docker-cloud/fonts/slate.eot b/apidocs/docker-cloud/fonts/slate.eot deleted file mode 100644 index 13c4839a19..0000000000 Binary files a/apidocs/docker-cloud/fonts/slate.eot and /dev/null differ diff --git a/apidocs/docker-cloud/fonts/slate.svg b/apidocs/docker-cloud/fonts/slate.svg deleted file mode 100644 index 5f34982306..0000000000 --- a/apidocs/docker-cloud/fonts/slate.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - -Generated by IcoMoon - - - - - - - - - - diff --git a/apidocs/docker-cloud/fonts/slate.ttf b/apidocs/docker-cloud/fonts/slate.ttf deleted file mode 100644 index ace9a46a7e..0000000000 Binary files a/apidocs/docker-cloud/fonts/slate.ttf and /dev/null differ diff --git a/apidocs/docker-cloud/fonts/slate.woff b/apidocs/docker-cloud/fonts/slate.woff deleted file mode 100644 index 1e72e0ee00..0000000000 Binary files a/apidocs/docker-cloud/fonts/slate.woff and /dev/null differ diff --git a/apidocs/docker-cloud/fonts/slate.woff2 b/apidocs/docker-cloud/fonts/slate.woff2 deleted file mode 100644 index 7c585a7273..0000000000 Binary files a/apidocs/docker-cloud/fonts/slate.woff2 and /dev/null differ diff --git a/apidocs/docker-cloud/images/docker-cloud.svg b/apidocs/docker-cloud/images/docker-cloud.svg deleted file mode 100644 index 49f2570958..0000000000 --- a/apidocs/docker-cloud/images/docker-cloud.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - Cloud - Created with Sketch. - - - - - - - - - \ No newline at end of file diff --git a/apidocs/docker-cloud/images/logo.png b/apidocs/docker-cloud/images/logo.png deleted file mode 100644 index 407d4cc3bf..0000000000 Binary files a/apidocs/docker-cloud/images/logo.png and /dev/null differ diff --git a/apidocs/docker-cloud/images/navbar.png b/apidocs/docker-cloud/images/navbar.png deleted file mode 100644 index df38e90d87..0000000000 Binary files a/apidocs/docker-cloud/images/navbar.png and /dev/null differ diff --git a/apidocs/docker-cloud/includes/action.html b/apidocs/docker-cloud/includes/action.html deleted file mode 100644 index d3476b9135..0000000000 --- a/apidocs/docker-cloud/includes/action.html +++ /dev/null @@ -1,513 +0,0 @@ - - - - - - - API Documentation - - - - - - - - - - - - - NAV - - - -
          - -
          -
          -
          -
          -
          -
          -

          Actions

          - -

          Action

          - -
          -

          Example

          -
          -
          {
          -    "action": "Cluster Create",
          -    "end_date": "Wed, 17 Sep 2014 08:26:22 +0000",
          -    "ip": "56.78.90.12",
          -    "is_user_action": true,
          -    "can_be_canceled": false,
          -    "location": "New York, USA",
          -    "method": "POST",
          -    "object": "/api/infra/v1/user_namespace/cluster/eea638f4-b77a-4183-b241-22dbd7866f22/",
          -    "path": "/api/infra/v1/user_namespace/cluster/",
          -    "resource_uri": "/api/audit/v1/action/6246c558-976c-4df6-ba60-eb1a344a17af/",
          -    "start_date": "Wed, 17 Sep 2014 08:26:22 +0000",
          -    "state": "Success",
          -    "user": "user_namespace",
          -    "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.78.2 (KHTML, like Gecko) Version/7.0.6 Safari/537.78.2",
          -    "uuid": "6246c558-976c-4df6-ba60-eb1a344a17af"
          -}
          -
          - -

          An action represents an API call by a user. Details of the API call such as timestamp, origin IP address, and user agent are logged in the action object.

          - -

          Simple API calls that do not require asynchronous execution will return immediately with the appropriate HTTP error code and an action object will be created either in Success or Failed states. API calls that do require asynchronous execution will return HTTP code 202 Accepted immediately and create an action object in In progress state, which will change to Success or Failed state depending on the outcome of the operation being performed. In both cases the response will include a X-DockerCloud-Action-URI header with the resource URI of the created action.

          - -

          Attributes

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          resource_uriA unique API endpoint that represents the action
          uuidA unique identifier for the action generated automatically on creation
          objectThe API object (resource URI) to which the action applies to
          actionName of the operation performed/being performed
          methodHTTP method used to access the API
          pathHTTP path of the API accessed
          userThe user authenticated in the request that created the action
          user_agentThe user agent provided by the client when accessing the API endpoint
          start_dateDate and time when the API call was performed and the operation started processing
          end_dateDate and time when the API call finished processing
          stateState of the operation (see table below)
          ipIP address of the user that performed the API call
          locationGeographic location of the IP address of the user that performed the API call
          is_user_actionIf the action has been triggered by the user
          can_be_canceledIf the action can be canceled by the user in the middle of its execution
          can_be_retriedIf the action can be retried by the user
          - -

          Action states

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          StateDescription
          PendingThe action needed asynchronous execution and it is waiting for an in progress action
          In progressThe action needed asynchronous execution and is being performed
          CancelingThe action is being canceled by user request
          CanceledThe action has been canceled
          SuccessThe action was executed successfully
          FailedThere was an issue when the action was being performed. Check the logs for more information.
          - -

          List all actions

          -
          import dockercloud
          -
          -actions = dockercloud.Action.list()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -actionList, err := dockercloud.ListActions()
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(actionList)
          -
          -
          GET /api/audit/v1/action/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud action ls
          -
          - -

          Lists all actions in chronological order. Returns a list of Action objects.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/audit/v1/action/

          - -

          Query Parameters

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          ParameterDescription
          uuidFilter by UUID.
          stateFilter by state. Possible values: In progress, Success, Failed
          start_dateFilter by start date. Valid filtering values are start_date__gte (after or on the date supplied) and start_date__lte (before or on the date supplied)
          end_dateFilter by end date. Valid filtering values are end_date__gte (after or on the date supplied) and end_date__lte (before or on the date supplied)
          objectFilter by resource URI of the related object. This filter can only be combined with ‘include_related’ filter
          include_relatedThere is a parent-child relationship between Docker Cloud objects, described in table Relationships between Docker Cloud objects. If set to 'true’, will include the actions of the related objects to the object specified in “object” filter parameter. Possible values: 'true’ or 'false’
          - -

          Relationships between Docker Cloud objects

          - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          ObjectRelationships
          ContainerContainer, service, stack (if any)
          ServiceAll containers in the service, service, stack (if any)
          StackAll services in the stack, all containers in every service in the stack, stack
          NodeNode, node cluster (if any)
          Node clusterAll nodes in the cluster, node cluster
          - -

          Get an action by UUID

          -
          import dockercloud
          -
          -action = dockercloud.Action.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -action, err := dockercloud.GetAction("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(action)
          -
          -
          GET /api/audit/v1/action/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud action inspect 7eaf7fff
          -
          - -

          Get all the details of an specific action

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/audit/v1/action/(uuid)/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the action to retrieve
          - -

          Get the logs of an action

          - -
          -

          Example log line

          -
          -
          {
          -    "type": "log",
          -    "log": "Log line from the action",
          -    "timestamp": 1433779324
          -}
          -
          -
          import dockercloud
          -
          -def log_handler(message):
          -    print message
          -
          -action = dockercloud.Action.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -action.logs(tail=300, follow=True, log_handler=log_handler)
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -c := make(chan dockercloud.Logs)
          -action, err := dockercloud.GetAction("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -    log.Println(err)
          -}
          -
          -go action.GetLogs(c)
          -
          -for {
          -    log.Println(<-c)
          -}
          -
          -
          GET /api/audit/v1/action/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/logs/ HTTP/1.1
          -Host: ws.cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Connection: Upgrade
          -Upgrade: websocket
          -
          -
          docker-cloud action logs 7eaf7fff-882c-4f3d-9a8f-a22317ac00ce
          -
          - -

          Get the logs of the specified action.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s STREAM API

          - -

          HTTP Request

          - -

          GET /api/audit/v1/action/(uuid)/logs/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the action to retrieve logs
          - -

          Query Parameters

          - - - - - - - - - - - - - - - -
          ParameterDescription
          tailNumber of lines to show from the end of the logs (default: 300)
          followWhether to stream logs or close the connection immediately (default: true)
          - -

          Cancel an action

          -
          POST /api/audit/v1/action/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/cancel/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -action, err := dockercloud.GetAction("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -action, err = action.Cancel()
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(action)
          -
          - -

          Cancels an action in Pending or In progress state.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/audit/v1/action/(uuid)/cancel/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the action to cancel
          - -

          Retry an action

          -
          import dockercloud
          -
          -def log_handler(message):
          -  print message
          -
          -action = dockercloud.Action.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -action.logs(tail=300, follow=True, log_handler=log_handler)
          -
          -
          POST /api/audit/v1/action/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/retry/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -action, err := dockercloud.GetAction("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -action, err = action.Retry()
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(action)
          -
          -
          docker-cloud action logs 7eaf7fff-882c-4f3d-9a8f-a22317ac00ce
          -
          - -

          Retries an action in Success, Failed or Canceled state.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/audit/v1/action/(uuid)/retry/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the action to retry
          - -
          -
          -
          -
          - - diff --git a/apidocs/docker-cloud/includes/availabilityzone.html b/apidocs/docker-cloud/includes/availabilityzone.html deleted file mode 100644 index 6de0c68fb4..0000000000 --- a/apidocs/docker-cloud/includes/availabilityzone.html +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - API Documentation - - - - - - - - - - - - - NAV - - - -
          - -
          -
          -
          -
          -
          -
          -

          Availability Zones

          - -

          Availability Zone

          - -
          -

          Example

          -
          -
          {
          -    "available": true,
          -    "name": "ap-northeast-1a",
          -    "region": "/api/infra/v1/region/az/ap-northeast-1/",
          -    "resource_uri": "/api/infra/v1/az/aws/ap-northeast-1/ap-northeast-1a/"
          -}
          -
          - -

          An Availability Zone is an isolated location inside a region. Providers that support availability zones: AWS

          - -

          Attributes

          - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          availableWhether the availability zone is currently available for new node deployments
          nameAn identifier for the availability zone
          regionThe resource URI of the region where the availability zone is allocated
          resource_uriA unique API endpoint that represents the zone
          - -

          List all availability zones

          -
          import dockercloud
          -
          -az = dockercloud.AZ.list()
          -
          -
          GET /api/infra/v1/az/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -az, err := dockercloud.ListAZ()
          -if err != nil {
          -    log.Println(err)
          -}
          -
          -log.Println(az)
          -
          -
          docker-cloud nodecluster az
          -
          - -

          Lists all availability zones from all regions of all supported cloud providers. Returns a list of Availability Zone objects.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/infra/v1/az/

          - -

          Query Parameters

          - - - - - - - - - - - - - - - -
          ParameterDescription
          nameFilter by availability zone name
          regionFilter by resource URI of the target region
          - -

          Get an individual availability zone

          -
          import dockercloud
          -
          -az = dockercloud.AZ.fetch("aws/sa-east-1/sa-east-1a")
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -az, err := dockercloud.GetAZ("aws/sa-east-1/sa-east-1a")
          -if err != nil {
          -    log.Println(err)
          -}
          -
          -log.Println(az)
          -
          -
          GET /api/infra/v1/az/aws/sa-east-1/sa-east-1a/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          - -

          Get all the details of a specific availability zone

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/infra/v1/az/(provider.name)/(region.name)/(name)/

          - -

          Path Parameters

          - - - - - - - - - - - - - - - - - - - -
          ParameterDescription
          nameThe name of the availability zone to retrieve
          providerThe name of the provider
          regionThe name of the region
          - -
          -
          -
          -
          - - diff --git a/apidocs/docker-cloud/includes/container.html b/apidocs/docker-cloud/includes/container.html deleted file mode 100644 index ce7a583627..0000000000 --- a/apidocs/docker-cloud/includes/container.html +++ /dev/null @@ -1,1154 +0,0 @@ - - - - - - - API Documentation - - - - - - - - - - - - - NAV - - - -
          - -
          -
          -
          -
          -
          -
          -

          Containers

          - -

          Container

          - -
          -

          Example

          -
          -
          {
          -    "autodestroy": "OFF",
          -    "autorestart": "OFF",
          -    "bindings": [
          -        {
          -            "volume": "/api/infra/v1/user_namespace/volume/1863e34d-6a7d-4945-aefc-8f27a4ab1a9e/",
          -            "host_path": null,
          -            "container_path": "/data",
          -            "rewritable": true
          -        },
          -        {
          -            "volume": null,
          -            "host_path": "/etc",
          -            "container_path": "/etc",
          -            "rewritable": true
          -        }
          -    ],
          -    "cap_add": [
          -        "ALL"
          -    ],
          -    "cap_drop": [
          -        "NET_ADMIN",
          -        "SYS_ADMIN"
          -    ],
          -    "container_envvars": [
          -        {
          -            "key": "DB_1_ENV_DEBIAN_FRONTEND",
          -            "value": "noninteractive"
          -        },
          -        {
          -            "key": "DB_1_ENV_MYSQL_PASS",
          -            "value": "**Random**"
          -        },
          -        {
          -            "key": "DB_1_ENV_MYSQL_USER",
          -            "value": "admin"
          -        },
          -        {
          -            "key": "DB_1_ENV_PATH",
          -            "value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
          -        },
          -        {
          -            "key": "DB_1_ENV_REPLICATION_MASTER",
          -            "value": "**False**"
          -        },
          -        {
          -            "key": "DB_1_ENV_REPLICATION_PASS",
          -            "value": "replica"
          -        },
          -        {
          -            "key": "DB_1_ENV_REPLICATION_SLAVE",
          -            "value": "**False**"
          -        },
          -        {
          -            "key": "DB_1_ENV_REPLICATION_USER",
          -            "value": "replica"
          -        },
          -        {
          -            "key": "DB_1_PORT",
          -            "value": "tcp://172.16.0.3:3306"
          -        },
          -        {
          -            "key": "DB_1_PORT_3306_TCP",
          -            "value": "tcp://172.16.0.3:3306"
          -        },
          -        {
          -            "key": "DB_1_PORT_3306_TCP_ADDR",
          -            "value": "172.16.0.3"
          -        },
          -        {
          -            "key": "DB_1_PORT_3306_TCP_PORT",
          -            "value": "3306"
          -        },
          -        {
          -            "key": "DB_1_PORT_3306_TCP_PROTO",
          -            "value": "tcp"
          -        },
          -        {
          -            "key": "DB_ENV_DEBIAN_FRONTEND",
          -            "value": "noninteractive"
          -        },
          -        {
          -            "key": "DB_ENV_MYSQL_PASS",
          -            "value": "**Random**"
          -        },
          -        {
          -            "key": "DB_ENV_MYSQL_USER",
          -            "value": "admin"
          -        },
          -        {
          -            "key": "DB_ENV_PATH",
          -            "value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
          -        },
          -        {
          -            "key": "DB_ENV_REPLICATION_MASTER",
          -            "value": "**False**"
          -        },
          -        {
          -            "key": "DB_ENV_REPLICATION_PASS",
          -            "value": "replica"
          -        },
          -        {
          -            "key": "DB_ENV_REPLICATION_SLAVE",
          -            "value": "**False**"
          -        },
          -        {
          -            "key": "DB_ENV_REPLICATION_USER",
          -            "value": "replica"
          -        },
          -        {
          -            "key": "DB_PASS",
          -            "value": "szVaPz925B7I"
          -        },
          -        {
          -            "key": "DB_PORT",
          -            "value": "tcp://172.16.0.3:3306"
          -        },
          -        {
          -            "key": "DB_PORT_3306_TCP",
          -            "value": "tcp://172.16.0.3:3306"
          -        },
          -        {
          -            "key": "DB_PORT_3306_TCP_ADDR",
          -            "value": "172.16.0.3"
          -        },
          -        {
          -            "key": "DB_PORT_3306_TCP_PORT",
          -            "value": "3306"
          -        },
          -        {
          -            "key": "DB_PORT_3306_TCP_PROTO",
          -            "value": "tcp"
          -        },
          -        {
          -            "key": "DB_DOCKERCLOUD_API_URL",
          -            "value": "https://cloud.docker.com/api/app/v1/user_namespace/service/c0fed1dc-c528-40c9-aa4c-dc00672ebcbf/"
          -        }
          -    ],
          -    "container_ports": [
          -        {
          -            "endpoint_uri": "http://wordpress-stackable-1.admin.cont.dockerapp.io:49153/",
          -            "inner_port": 80,
          -            "outer_port": 49153,
          -            "port_name": "http",
          -            "protocol": "tcp",
          -            "published": true,
          -            "uri_protocol": "http"
          -        }
          -    ],
          -    "cpu_shares": 100,
          -    "cpuset": "0,1",
          -    "cgroup_parent": "m-executor-abcd",
          -    "deployed_datetime": "Thu, 16 Oct 2014 12:04:08 +0000",
          -    "destroyed_datetime": null,
          -    "devices": [
          -        "/dev/ttyUSB0:/dev/ttyUSB0"
          -    ],
          -    "dns": [
          -        "8.8.8.8"
          -    ],
          -    "dns_search": [
          -        "example.com",
          -        "c1dd4e1e-1356-411c-8613-e15146633640.local.dockerapp.io"
          -    ],
          -    "domainname": "domainname",
          -    "entrypoint": "",
          -    "exit_code": null,
          -    "exit_code_msg": null,
          -    "extra_hosts": [
          -        "onehost:50.31.209.229"
          -    ],
          -    "hostname": "hostname",
          -    "image_name": "tutum/wordpress-stackable:latest",
          -    "labels": {
          -        "com.example.description": "Accounting webapp",
          -        "com.example.department": "Finance",
          -        "com.example.label-with-empty-value": ""
          -    },
          -    "linked_to_container": [
          -        {
          -            "endpoints": {
          -                "3306/tcp": "tcp://172.16.0.3:3306"
          -            },
          -            "from_container": "/api/app/v1/user_namespace/container/c1dd4e1e-1356-411c-8613-e15146633640/",
          -            "name": "DB_1",
          -            "to_container": "/api/app/v1/user_namespace/container/ba434e1e-1234-411c-8613-e15146633640/"
          -        }
          -    ],
          -    "link_variables": {
          -        "WORDPRESS_STACKABLE_1_ENV_DB_HOST": "**LinkMe**",
          -        "WORDPRESS_STACKABLE_1_ENV_DB_NAME": "wordpress",
          -        "WORDPRESS_STACKABLE_1_ENV_DB_PASS": "szVaPz925B7I",
          -        "WORDPRESS_STACKABLE_1_ENV_DB_PORT": "**LinkMe**",
          -        "WORDPRESS_STACKABLE_1_ENV_DB_USER": "admin",
          -        "WORDPRESS_STACKABLE_1_ENV_DEBIAN_FRONTEND": "noninteractive",
          -        "WORDPRESS_STACKABLE_1_ENV_HOME": "/",
          -        "WORDPRESS_STACKABLE_1_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
          -        "WORDPRESS_STACKABLE_1_PORT": "tcp://172.16.0.2:80",
          -        "WORDPRESS_STACKABLE_1_PORT_80_TCP": "tcp://172.16.0.2:80",
          -        "WORDPRESS_STACKABLE_1_PORT_80_TCP_ADDR": "172.16.0.2",
          -        "WORDPRESS_STACKABLE_1_PORT_80_TCP_PORT": "80",
          -        "WORDPRESS_STACKABLE_1_PORT_80_TCP_PROTO": "tcp",
          -        "WORDPRESS_STACKABLE_ENV_DB_HOST": "**LinkMe**",
          -        "WORDPRESS_STACKABLE_ENV_DB_NAME": "wordpress",
          -        "WORDPRESS_STACKABLE_ENV_DB_PASS": "szVaPz925B7I",
          -        "WORDPRESS_STACKABLE_ENV_DB_PORT": "**LinkMe**",
          -        "WORDPRESS_STACKABLE_ENV_DB_USER": "admin",
          -        "WORDPRESS_STACKABLE_ENV_DEBIAN_FRONTEND": "noninteractive",
          -        "WORDPRESS_STACKABLE_ENV_HOME": "/",
          -        "WORDPRESS_STACKABLE_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
          -        "WORDPRESS_STACKABLE_PORT": "tcp://172.16.0.2:80",
          -        "WORDPRESS_STACKABLE_PORT_80_TCP": "tcp://172.16.0.2:80",
          -        "WORDPRESS_STACKABLE_PORT_80_TCP_ADDR": "172.16.0.2",
          -        "WORDPRESS_STACKABLE_PORT_80_TCP_PORT": "80",
          -        "WORDPRESS_STACKABLE_PORT_80_TCP_PROTO": "tcp"
          -    },
          -    "mac_address": "02:42:ac:11:65:43",
          -    "memory": 1024,
          -    "memory_swap": 4096,
          -    "name": "wordpress-stackable",
          -    "net": "bridge",
          -    "node": "/api/infra/v1/user_namespace/node/9691c44e-3155-4ca2-958d-c9571aac0a14/",
          -    "pid": "none",
          -    "private_ip": "10.7.0.1",
          -    "privileged": false,
          -    "public_dns": "wordpress-stackable-1.admin.cont.dockerapp.io",
          -    "read_only": true,
          -    "resource_uri": "/api/app/v1/user_namespace/container/c1dd4e1e-1356-411c-8613-e15146633640/",
          -    "roles": ["global"],
          -    "run_command": "/run-wordpress.sh",
          -    "security_opt": [
          -        "label:user:USER",
          -        "label:role:ROLE"
          -    ],
          -    "service": "/api/app/v1/user_namespace/service/adeebc1b-1b81-4af0-b8f2-cefffc69d7fb/",
          -    "started_datetime": "Thu, 16 Oct 2014 12:04:08 +0000",
          -    "state": "Running",
          -    "stdin_open": false,
          -    "stopped_datetime": null,
          -    "synchronized": true,
          -    "tty": false,
          -    "user": "root",
          -    "uuid": "c1dd4e1e-1356-411c-8613-e15146633640",
          -    "working_dir": "/app"
          -}
          -
          - -

          A container is a representation of a Docker container in a node.

          - -

          This is a namespaced endpoint.

          - -

          Attributes

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          uuidA unique identifier for the container generated automatically on creation
          resource_uriA unique API endpoint that represents the container
          image_nameThe Docker image name and tag of the container
          bindingsA list of volume bindings that the container has mounted (see table Container Binding attributes below)
          nameA user provided name for the container (inherited from the service)
          nodeThe resource URI of the node where this container is running
          serviceThe resource URI of the service which this container is part of
          public_dnsThe external FQDN of the container
          stateThe state of the container (see table Container states below)
          synchronizedFlag indicating if the container is synchronized with the current service definition.
          exit_codeThe numeric exit code of the container (if applicable, null otherwise)
          exit_code_msgA string representation of the exit code of the container (if applicable, null otherwise)
          deployed_datetimeThe date and time of the last deployment of the container (if applicable, null otherwise)
          started_datetimeThe date and time of the last start operation on the container (if applicable, null otherwise)
          stopped_datetimeThe date and time of the last stop operation on the container (if applicable, null otherwise)
          destroyed_datetimeThe date and time of the terminate operation on the container (if applicable, null otherwise)
          container_portsList of published ports of this container (see table Container Port attributes below)
          container_envvarsList of user-defined environment variables set on the containers of the service, which will override the container environment variables (see table Container Environment Variable attributes below)
          labelsContainer metadata in form of dictionary
          working_dirWorking directory for running binaries within a container
          userUser used on the container on launch
          hostnameHostname used on the container on launch
          domainnameDomainname used on the container on launch
          mac_addressEthernet device’s MAC address used on the container on launch
          cgroup_nameOptional parent cgroup for the container.
          ttyIf the container has the tty enable
          stdin_openIf the container has stdin opened
          dnsContainer custom DNS servers
          dns_searchContainer custom DNS search domain
          cap_addContainer added capabilities
          cap_dropContainer dropped capabilities
          devicesList of container device mappings
          extra_hostsList of container hostname mappings
          secuirty_optLabeling scheme of this container
          entrypointEntrypoint used on the container on launch
          run_commandRun command used on the container on launch
          cpu_sharesThe relative CPU priority of the container (see Runtime Constraints on CPU and Memory for more information)
          cpusetCPUs in which execution is allowed
          memoryThe memory limit of the container in MB (see Runtime Constraints on CPU and Memory for more information)
          memory_swapTotal memory limit (memory + swap) of the container in MB
          autorestartWhether to restart the container automatically if it stops (see Crash recovery for more information)
          autodestroyWhether to terminate the container automatically if it stops (see Autodestroy for more information)
          rolesList of Docker Cloud roles assigned to this container (see API roles for more information))
          linked_to_containerList of IP addresses of the linked containers (see table Container Link attributes below and Service links for more information)
          link_variablesList of environment variables that would be exposed in any container that is linked to this one
          privilegedWhether the container has Docker’s privileged flag set or not (see Runtime privilege for more information)
          read_onlyWhether the container filesystem is read-only or not
          private_ipIP address of the container on the overlay network. This IP will be reachable from any other container.
          netNetwork mode set on the container (see table Network Modes below, more information)
          pidPID (Process) Namespace mode for the container (more information)
          - -

          Container Binding attributes

          - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          host_pathThe host path of the volume
          container_pathThe container path where the volume is mounted
          rewritabletrue is the volume has writable permissions
          volumeThe resource URI of the volume
          - -

          Container Port attributes

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          protocolThe protocol of the port, either tcp or udp
          inner_portThe published port number inside the container
          outer_portThe published port number in the node public network interface
          port_nameName of the service associated to this port
          uri_protocolThe protocol to be used in the endpoint for this port (i.e. http)
          endpoint_uriThe URI of the endpoint for this port
          publishedWhether the port has been published in the host public network interface or not. Non-published ports can only be accessed via links.
          - -

          Container Environment Variable attributes

          - - - - - - - - - - - - - - - -
          AttributeDescription
          keyThe name of the environment variable
          valueThe value of the environment variable
          - -

          Container States

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          StateDescription
          StartingThe container is being deployed or started (from Stopped). No actions allowed in this state.
          RunningThe container is deployed and running. Possible actions in this state: stop, terminate.
          StoppingThe container is being stopped. No actions allowed in this state.
          StoppedThe container is stopped. Possible actions in this state: start, terminate.
          TerminatingThe container is being deleted. No actions allowed in this state.
          TerminatedThe container has been deleted. No actions allowed in this state.
          - -

          Network Modes

          - - - - - - - - - - - - - - - -
          StrategyDescription
          bridgeCreates a new network stack for the container on the docker bridge.
          hostUses the host network stack inside the container.
          - - - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          nameThe name given to the link
          from_containerThe resource URI of the “client” container
          to_containerThe resource URI of the “server” container being linked
          endpointsA dictionary with the endpoints (protocol, IP and port) to be used to reach each of the “server” container exposed ports
          - -

          List all containers

          -
          import dockercloud
          -
          -containers = dockercloud.Container.list()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -containerList, err := dockercloud.ListContainers()
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(containerList)
          -
          -
          GET /api/app/v1/container/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud container ps
          -
          - -

          Lists all current and recently terminated containers. Returns a list of Container objects.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/app/v1/[optional_namespace/]container/

          - -

          Query Parameters

          - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          ParameterDescription
          uuidFilter by UUID
          stateFilter by state. Possible values: Starting, Running, Stopping, Stopped, Terminating, Terminated
          nameFilter by container name
          serviceFilter by resource URI of the target service.
          nodeFilter by resource URI of the target node.
          - -

          Get an existing container

          -
          import dockercloud
          -
          -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -container, err := dockerckoud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(container)
          -
          -
          GET /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud container inspect 7eaf7fff
          -
          - -

          Get all the details of an specific container

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/app/v1/[optional_namespace/]container/(uuid)/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the container to retrieve
          - -

          Get the logs of a container

          - -
          -

          Example log line

          -
          -
          {
          -    "type": "log",
          -    "log": "Log line from the container",
          -    "streamType": "stdout",
          -    "timestamp": 1433779324
          -}
          -
          -
          import dockercloud
          -
          -def log_handler(message):
          -    print message
          -
          -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -container.logs(tail=300, follow=True, log_handler=log_handler)
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -container, err := dockercloud.GetContainer("447ecddc-2890-4ea2-849b-99392e0dd7a6")
          -
          -if err != nil {
          -    log.Fatal(err)
          -}
          -c := make(chan dockercloud.Logs)
          -
          -go container.Logs(c)
          -    for {
          -        s := <-c
          -        log.Println(s)
          -    }
          -
          -
          GET /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/logs/ HTTP/1.1
          -Host: ws.cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Connection: Upgrade
          -Upgrade: websocket
          -
          -
          docker-cloud container logs 7eaf7fff
          -
          - -

          Get the logs of the specified container.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s STREAM API

          - -

          HTTP Request

          - -

          GET /api/app/v1/[optional_namespace/]container/(uuid)/logs/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the container to retrieve logs
          - -

          Query Parameters

          - - - - - - - - - - - - - - - - - - - -
          ParameterDescription
          tailNumber of lines to show from the end of the logs (default: 300)
          followWhether to stream logs or close the connection immediately (default: true)
          serviceFilter by service (resource URI)
          - -

          Start a container

          -
          import dockercloud
          -
          -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -container.start()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -    log.Println(err)
          -}
          -
          -if err = container.Start(); err != nil {
          -  log.Println(err)
          -}
          -
          -
          POST /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/start/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud container start 7eaf7fff
          -
          - -

          Starts a stopped container.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/app/v1/[optional_namespace/]container/(uuid)/start/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the container to start
          - -

          Stop a container

          -
          import dockercloud
          -
          -container = dockerlcoud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -container.stop()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -    log.Println(err)
          -}
          -
          -if err = container.Stop(); err != nil {
          -       log.Println(err)
          -   }
          -
          -
          POST /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/stop/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud container stop 7eaf7fff
          -
          - -

          Stops a running container.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/app/v1/[optional_namespace/]container/(uuid)/stop/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the container to stop
          - -

          Redeploy a container

          -
          import dockercloud
          -
          -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -container.redeploy()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -    log.Println(err)
          -}
          -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: true) to reuse the existing volumes
          -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}) to not reuse the existing volumes
          -if err = container.Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}); err != nil {
          -  log.Println(err)
          -}
          -
          -
          POST /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/start/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud container redeploy 7eaf7fff
          -
          - -

          Redeploys a container.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/app/v1/[optional_namespace/]container/(uuid)/redeploy/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the container to redeploy
          - -

          Query Parameters

          - - - - - - - - - - - -
          ParameterDescription
          reuse_volumesWheather to reuse container volumes for this redeploy operation or not (default: true).
          - -

          Terminate a container

          -
          import dockercloud
          -
          -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -container.delete()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -    log.Println(err)
          -}
          -
          -if err = container.Terminate(); err != nil {
          -       log.Println(err)
          -   }
          -
          -
          DELETE /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud container terminate 7eaf7fff
          -
          - -

          Terminates the specified container. This is not reversible. All data stored in the container will be permanently deleted.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          DELETE /api/app/v1/[optional_namespace/]container/(uuid)/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the container to terminate
          - -

          Execute command inside a container

          -
          import dockercloud
          -
          -def msg_handler(message):
          -    print message
          -
          -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -container.execute("ls", handler=msg_handler)
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -c := make(chan dockercloud.Exec)
          -
          -container.Exec("ls", c)
          -
          -
          -
          GET /api/app/v1/container/(uuid)/exec/ HTTP/1.1
          -Host: ws.cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Connection: Upgrade
          -Upgrade: websocket
          -
          -
          docker-cloud exec 7eaf7fff ls
          -
          - -

          Executes a command inside the specified running container, creating a bi-directional stream for the process’ standard input and output. This endpoint can be connected to using a bi-directional Secure Web Socket wss://ws.cloud.docker.com/api/app/v1/container/(uuid)/exec/

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s STREAM API

          - -

          HTTP Request

          - -

          GET /api/app/v1/[optional_namespace/]container/(uuid)/exec/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the container where the command will be executed
          - -

          Query Parameters

          - - - - - - - - - - - -
          ParameterDescription
          commandCommand to be executed (default: sh)
          - -
          -
          -
          -
          - - diff --git a/apidocs/docker-cloud/includes/dockercloud-events.html b/apidocs/docker-cloud/includes/dockercloud-events.html deleted file mode 100644 index a93d950059..0000000000 --- a/apidocs/docker-cloud/includes/dockercloud-events.html +++ /dev/null @@ -1,258 +0,0 @@ - - - - - - - API Documentation - - - - - - - - - - - - - NAV - - - -
          - -
          -
          -
          -
          -
          -
          -

          Docker Cloud Events

          - -

          Docker Cloud Event

          - -
          -

          Example

          -
          -
          {
          -    "type": "action",
          -    "action": "update",
          -    "parents": [
          -        "/api/app/v1/user_namespace/container/0b0e3538-88df-4f07-9aed-3a3cc4175076/"
          -    ],
          -    "resource_uri": "/api/app/v1/user_namespace/action/49f0efe8-a704-4a10-b02f-f96344fabadd/",
          -    "state": "Success",
          -    "uuid": "093ba3bb-08dd-48f0-8f12-4d3b85ef85b3",
          -    "datetime": "2016-02-01T16:47:28Z"
          -}
          -
          - -

          Docker Cloud events are generated every time any of the following objects is created or changes state:

          - -
            -
          • Stack
          • -
          • Service
          • -
          • Container
          • -
          • Node Cluster
          • -
          • Node
          • -
          • Action
          • -
          - -

          This is a namespaced endpoint.

          - -

          Attributes

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          typeType of object that was created or updated. For possible values, check the events types table below.
          actionType of action that was executed on the object. Possible values: create, update or delete
          parentsList of resource URIs (REST API) of the parents of the object, according to the “Parent-child hierarchy” table below
          resource_uriResource URI (REST API) of the object that was created or updated. You can do a GET operation on this URL to fetch its details
          stateThe current state of the object
          uuidUnique identifier for the event
          datetimeDate and time of the event in ISO 8601 format
          - -

          Event types

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          TypeDescription
          stackWhenever a Stack is created or updated
          serviceWhenever a Service is created or updated
          containerWhenever a Container is created or updated
          nodeclusterWhenever a Node Cluster is created or updated
          nodeWhenever a Node is created or updated
          actionWhenever a Action is created or updated
          errorSent when an error occurs on the websocket connection or as part of the authentication process
          - -

          Parent-child hierarchy

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Object typeParent types
          Stack(None)
          ServiceStack
          ContainerService, Stack, Node, Node Cluster
          Node Cluster(None)
          NodeNode Cluster
          Action(object to which the action applies to)
          - -

          Listen to new Docker Cloud Events

          -
          import dockercloud
          -
          -def process_event(event):
          -    print event
          -
          -events = dockercloud.Events()
          -events.on_message(process_event)
          -events.run_forever()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -// Listens for container events only
          -myFilter := dockercloud.NewStreamFilter(&dockercloud.EventFilter{Type: "container"})
          -
          -stream := dockercloud.NewStream(myFilter)
          -
          -if err := stream.Connect(); err == nil {
          -    go stream.RunForever()
          -} else {
          -    log.Print("Connect err: " + err.Error())
          -}
          -
          -for {
          -    select {
          -    case event := <-stream.MessageChan:
          -        log.Println(event)
          -    case err := <-stream.ErrorChan:
          -        log.Println(err)
          -    }
          -}
          -
          -
          GET /api/audit/v1/events/ HTTP/1.1
          -Host: ws.cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Connection: Upgrade
          -Upgrade: websocket
          -
          -
          docker-cloud event
          -
          - -

          Listens for new Docker Cloud Events

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s STREAM API

          - -

          HTTP Request

          - -

          GET /api/audit/v1/[optional_namespace/]events/

          - -

          Query Parameters

          - - - - - - - - - - - - - - - - - - - -
          ParameterDescription
          typeFilter by type
          objectFilter by object resource URI
          parentFilter by object parents
          - -
          -
          -
          -
          - - diff --git a/apidocs/docker-cloud/includes/node.html b/apidocs/docker-cloud/includes/node.html deleted file mode 100644 index 6fa50cf135..0000000000 --- a/apidocs/docker-cloud/includes/node.html +++ /dev/null @@ -1,531 +0,0 @@ - - - - - - - API Documentation - - - - - - - - - - - - - NAV - - - -
          - -
          -
          -
          -
          -
          -
          -

          Nodes

          - -

          Node

          - -
          -

          Example

          -
          -
          {
          -    "availability_zone": "/api/infra/v1/az/testing-provider/testing-region/testing-az/",
          -    "cpu": 1,
          -    "current_num_containers": 4,
          -    "deployed_datetime": "Tue, 16 Sep 2014 17:01:15 +0000",
          -    "destroyed_datetime": null,
          -    "disk": 60,
          -    "docker_execdriver": "native-0.2",
          -    "docker_graphdriver": "aufs",
          -    "docker_version": "1.5.0",
          -    "external_fqdn": "fc1a5bb9-user.node.dockerapp.io",
          -    "last_seen": "Thu, 25 Sep 2014 13:14:44 +0000",
          -    "memory": 1792,
          -    "nickname": "fc1a5bb9-user.node.dockerapp.io",
          -    "node_cluster": "/api/infra/v1/user_namespace/nodecluster/d787a4b7-d525-4061-97a0-f423e8f1d229/",
          -    "node_type": "/api/infra/v1/user_namespace/nodetype/testing-provider/testing-type/",
          -    "public_ip": "10.45.2.11",
          -    "region": "/api/infra/v1/region/testing-provider/testing-region/",
          -    "resource_uri": "/api/infra/v1/user_namespace/node/fc1a5bb9-17f5-4819-b667-8c7cd819e949/",
          -    "state": "Deployed",
          -    "tags": [
          -        {"name": "tag_one"},
          -        {"name": "tag-two"}
          -    ],
          -    "tunnel": "https://tunnel01.cloud.docker.com:12345",
          -    "uuid": "fc1a5bb9-17f5-4819-b667-8c7cd819e949"
          -}
          -
          - -

          A node is a virtual machine provided by a cloud provider where containers can be deployed.

          - -

          This is a namespaced endpoint.

          - -

          Attributes

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          availability_zoneThe resource URI of the availability zone where the node is deployed, if any
          uuidA unique identifier for the node generated automatically on creation
          resource_uriA unique API endpoint that represents the node
          external_fqdnAn automatically generated FQDN for the node. Containers deployed on this node will inherit this FQDN.
          stateThe state of the node. See the below table for a list of possible states.
          node_clusterThe resource URI of the node cluster to which this node belongs to (if applicable)
          node_typeThe resource URI of the node type used for the node
          regionThe resource URI of the region where the node is deployed
          docker_execdriverDocker’s execution driver used in the node
          docker_graphdriverDocker’s storage driver used in the node
          docker_versionDocker’s version used in the node
          cpuNode number of CPUs
          diskNode storage size in GB
          memoryNode memory in MB
          current_num_containersThe actual number of containers deployed in this node
          last_seenDate and time of the last time the node was contacted by Docker Cloud
          public_ipThe public IP allocated to the node
          tunnelIf the node does not accept incoming connections to port 2375, the address of the reverse tunnel to access the docker daemon, or null otherwise
          deployed_datetimeThe date and time when this node cluster was deployed
          destroyed_datetimeThe date and time when this node cluster was terminated (if applicable)
          tagsList of tags to identify the node when deploying services (see Tags for more information)
          nicknameA user-friendly name for the node (external_fqdn by default)
          - -

          Node states

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          StateDescription
          DeployingThe node is being deployed in the cloud provider. No actions allowed in this state.
          DeployedThe node is deployed and provisioned and is ready to deploy containers. Possible actions in this state: terminate, docker-upgrade.
          UnreachableThe node is deployed but Docker Cloud cannot connect to the docker daemon. Possible actions in this state: health-check and terminate.
          UpgradingThe node docker daemon is being upgraded. No actions allowed in this state.
          TerminatingThe node is being terminated in the cloud provider. No actions allowed in this state.
          TerminatedThe node has been terminated and is no longer present in the cloud provider. No actions allowed in this state.
          - -

          List all nodes

          -
          import dockercloud
          -
          -nodes = dockercloud.Node.list()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -nodeList, err := dockercloud.ListNodes()
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(nodeList)
          -
          -
          GET /api/infra/v1/node/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud node ls
          -
          - -

          Lists all current and recently terminated nodes. Returns a list of Node objects.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/infra/v1/[optional_namespace/]node/

          - -

          Query Parameters

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          ParameterDescription
          uuidFilter by UUID
          stateFilter by state. Possible values: Deploying, Deployed, Unreachable, Upgrading, Terminating, Terminated
          node_clusterFilter by resource URI of the target node cluster
          node_typeFilter by resource URI of the target node type
          regionFilter by resource URI of the target region
          docker_versionFilter by Docker engine version running in the nodes
          - -

          Get an existing node

          -
          import dockercloud
          -
          -node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(node)
          -
          -
          GET /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud node inspect 7eaf7fff
          -
          - -

          Get all the details of an specific node

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/infra/v1/[optional_namespace/]node/(uuid)/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the node to retrieve
          - -

          Update a node

          -
          import dockercloud
          -
          -node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -node.tags.add(["tag-1"])
          -node.save()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -    log.Println(err)
          -}
          -
          -if err = node.Update(dockercloud.Node{Tags: []string{{Name: "tag-1"}}}); err != nil {
          -            log.Println(err)
          -}
          -
          -
          PATCH /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -{"tags": [{"name": "tag-1"}], "nickname": "dev node"}
          -
          -
          docker-cloud tag add -t tag-1 7eaf7fff
          -docker-cloud tag set -t tag-2 7eaf7fff
          -
          - -

          Names the node with a user-friendly name and/or replaces the old tags for the new list provided.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          PATCH /api/infra/v1/[optional_namespace/]node/(uuid)/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the node to retrieve
          - -

          JSON Parameters

          - - - - - - - - - - - - - - - -
          ParameterDescription
          nickname(optional) A user-friendly name for the node (external_fqdn by default)
          tags(optional) List of tags the node will have. This operation replaces the user tag list.
          - -

          Upgrade Docker Daemon

          -
          import dockercloud
          -
          -node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -node.upgrade_docker()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -if err = node.Upgrade(); err != nil {
          -       log.Println(err)
          -   }
          -
          -
          POST /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/docker-upgrade/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud node upgrade 7eaf7fff
          -
          - -

          Upgrades the docker daemon of the node. This will restart your containers on that node. See Docker upgrade for more information.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/infra/v1/[optional_namespace/]node/(uuid)/docker-upgrade/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the node to upgrade
          - -

          Perform a health check of a node

          -
          POST /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/health-check/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          - -

          Tests connectivity between Docker Cloud and the node. Updates the node status to Deployed if the check was successful, or to Unreachable otherwise.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/infra/v1/[optional_namespace/]node/(uuid)/health-check/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the node to perform the health check to
          - -

          Terminate a node

          -
          import dockercloud
          -
          -node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -node.delete()
          -
          -
          DELETE /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -if err = node.Terminate(); err != nil {
          -   log.Println(err)
          -}
          -
          -
          docker-cloud node rm 7eaf7fff
          -
          - -

          Terminates the specified node.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          DELETE /api/infra/v1/[optional_namespace/]node/(uuid)/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the node to terminate
          - -
          -
          -
          -
          - - diff --git a/apidocs/docker-cloud/includes/nodecluster.html b/apidocs/docker-cloud/includes/nodecluster.html deleted file mode 100644 index cc908bc719..0000000000 --- a/apidocs/docker-cloud/includes/nodecluster.html +++ /dev/null @@ -1,582 +0,0 @@ - - - - - - - API Documentation - - - - - - - - - - - - - NAV - - - -
          - -
          -
          -
          -
          -
          -
          -

          Node Clusters

          - -

          Node Cluster

          - -
          -

          Example

          -
          -
          {
          -    "current_num_nodes": 1,
          -    "deployed_datetime": "Tue, 16 Sep 2014 17:01:15 +0000",
          -    "destroyed_datetime": null,
          -    "disk": 60,
          -    "nickname": "my test cluster",
          -    "name": "TestCluster",
          -    "node_type": "/api/infra/v1/nodetype/aws/t2.micro/",
          -    "nodes": [
          -        "/api/infra/v1/user_namespace/node/75d20367-0948-4f10-8ba4-ffb4d16ed3c6/"
          -    ],
          -    "region": "/api/infra/v1/region/aws/us-east-1/",
          -    "resource_uri": "/api/infra/v1/user_namespace/nodecluster/5516df0b-721e-4470-b350-741ff22e63a0/",
          -    "state": "Deployed",
          -    "tags": [
          -        {"name": "tag_one"},
          -        {"name": "tag-two"},
          -        {"name": "tagthree3"}
          -    ],
          -    "target_num_nodes": 2,
          -    "uuid": "5516df0b-721e-4470-b350-741ff22e63a0",
          -    "provider_options": {
          -        "vpc": {
          -            "id": "vpc-aa1c70d4",
          -            "subnets": ["subnet-aaa7d94f", "subnet-aa15fa64"],
          -            "security_groups": ["sg-aa1c70d4"]
          -        },
          -        "iam": {
          -            "instance_profile_name": "my_instance_profile"
          -        }
          -    }
          -}
          -
          - -

          A node cluster is a group of nodes that share the same provider, region and/or availability zone, and node type. They are on the same private network.

          - -

          This is a namespaced endpoint.

          - -

          Attributes

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          uuidA unique identifier for the node cluster generated automatically on creation
          resource_uriA unique API endpoint that represents the node cluster
          nameA user provided name for the node cluster
          stateThe state of the node cluster. See the below table for a list of possible states.
          node_typeThe resource URI of the node type used for the node cluster
          diskThe size of the disk where images and containers are stored (in GB)
          nodesA list of resource URIs of the Node objects on the node cluster
          regionThe resource URI of the Region object where the node cluster is deployed
          target_num_nodesThe desired number of nodes for the node cluster
          current_num_nodesThe actual number of nodes in the node cluster. This may differ from target_num_nodes if the node cluster is being deployed or scaled
          deployed_datetimeThe date and time when this node cluster was deployed
          destroyed_datetimeThe date and time when this node cluster was terminated (if applicable)
          tagsList of tags to identify the node cluster nodes when deploying services (see Tags for more information)
          provider_optionsProvider-specific extra options for the deployment of the node (see Provider options table below for more information)
          nicknameA user-friendly name for the node cluster (name by default)
          - -

          Node Cluster states

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          StateDescription
          InitThe node cluster has been created and has no deployed containers yet. Possible actions in this state: deploy, terminate.
          DeployingAll nodes in the cluster are either deployed or being deployed. No actions allowed in this state.
          DeployedAll nodes in the cluster are deployed and provisioned. Possible actions in this state: terminate.
          Partly deployedOne or more nodes of the cluster are deployed and running. Possible actions in this state: terminate.
          ScalingThe cluster is either deploying new nodes or terminating existing ones responding to a scaling request. No actions allowed in this state.
          TerminatingAll nodes in the cluster are either being terminated or already terminated. No actions allowed in this state.
          TerminatedThe node cluster and all its nodes have been terminated. No actions allowed in this state.
          Empty clusterThere are no nodes deployed in this cluster. Possible actions in this state: terminate.
          - -

          Provider options

          - -

          You can specify the following options when using the Amazon Web Services provider:

          - -
            -
          • vpc: VPC-related options (optional) - -
              -
            • id: AWS VPC identifier of the target VPC where the nodes of the cluster will be deployed (required)
            • -
            • subnets: a list of target subnet identifiers inside selected VPC. If you specify more than one subnet, Docker Cloud will balance among all of them following a high-availability schema (optional)
            • -
            • security_groups: the security group that will be applied to every node of the cluster (optional)
            • -
          • -
          • iam: IAM-related options (optional) - -
              -
            • instance_profile_name: name of the instance profile (container for instance an IAM role) to attach to every node of the cluster (required)
            • -
          • -
          - -

          List all node clusters

          -
          import dockercloud
          -
          -nodeclusters = dockercloud.NodeCluster.list()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -nodeclusters, err := dockercloud.ListNodeClusters()
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(nodeclusters)
          -
          -
          GET /api/infra/v1/nodecluster/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud nodecluster ls
          -
          - -

          Lists all current and recently terminated node clusters. Returns a list of NodeCluster objects.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/infra/v1/[optional_namespace/]nodecluster/

          - -

          Query Parameters

          - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          ParameterDescription
          uuidFilter by UUID
          stateFilter by state. Possible values: Init, Deploying, Deployed, Partly deployed, Scaling, Terminating, Terminated, Empty cluster
          nameFilter by node cluster name
          regionFilter by resource URI of the target region
          node_typeFilter by resource URI of the target node type
          - -

          Create a new node cluster

          -
          import dockercloud
          -
          -region = dockercloud.Region.fetch("digitalocean/lon1")
          -node_type = dockercloud.NodeType.fetch("digitalocean/1gb")
          -nodecluster = dockercloud.NodeCluster.create(name="my_cluster", node_type=node_type, region=region, disk=60)
          -nodecluster.save()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -nodecluster, err := dockercloud.CreateNodeCluster(dockercloud.NodeCreateRequest{Name: "my_cluster", Region: "/api/infra/v1/region/digitalocean/lon1/", NodeType: "/api/infra/v1/nodetype/digitalocean/1gb/", Target_num_nodes: 2})
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(nodecluster)
          -
          -
          POST /api/infra/v1/nodecluster/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -Content-Type: application/json
          -
          -{"name": "my_cluster", "region": "/api/infra/v1/region/digitalocean/lon1/", "node_type": "/api/infra/v1/nodetype/digitalocean/1gb/", "disk": 60}
          -
          -
          docker-cloud nodecluster create my_cluster digitalocean lon1 1gb
          -
          - -

          Creates a new node cluster without deploying it.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/infra/v1/[optional_namespace/]nodecluster/

          - -

          JSON Parameters

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          ParameterDescription
          name(required) A user provided name for the node cluster
          node_type(required) The resource URI of the node type to be used for the node cluster
          region(required) The resource URI of the region where the node cluster is to be deployed
          disk(optional) The size of the volume to create where images and containers will be stored, in GB (default: 60). Not available for Digital Ocean. To create Softlayer nodes you must select one of the following sizes (in GBs): 10, 20, 25, 30, 40, 50, 75, 100, 125, 150, 175, 200, 250, 300, 350, 400, 500, 750, 1000, 1500 or 2000
          nickname(optional) A user-friendly name for the node cluster (name by default)
          target_num_nodes(optional) The desired number of nodes for the node cluster (default: 1)
          tags(optional) List of tags of the node cluster to be used when deploying services see Tags for more information) (default: [])
          provider_optionsProvider-specific extra options for the deployment of the node (see table Provider options above for more information)
          - -

          Get an existing node cluster

          -
          import dockercloud
          -
          -service = dockercloud.NodeCluster.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -nodecluster, err := dockercloud.GetNodeCluster("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(nodecluster)
          -
          -
          GET /api/infra/v1/nodecluster/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud nodecluster inspect 7eaf7fff
          -
          - -

          Get all the details of an specific node cluster

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/infra/v1/[optional_namespace/]nodecluster/(uuid)/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the node cluster to retrieve
          - -

          Deploy a node cluster

          -
          import dockercloud
          -
          -nodecluster = dockercloud.NodeCluster.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -nodecluster.deploy()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -nodecluster, err := dockercloud.GetNodeCluster("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -if err = nodecluster.Deploy(); err != nil {
          -   log.Println(err)
          -}
          -
          -
          POST /api/infra/v1/nodecluster/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/deploy/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          - -

          Deploys and provisions a recently created node cluster in the specified region and cloud provider.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/infra/v1/[optional_namespace/]nodecluster/(uuid)/deploy/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the node cluster to deploy
          - -

          Update an existing node cluster

          -
          import dockercloud
          -
          -nodecluster = dockercloud.NodeCluster.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -nodecluster.target_num_nodes = 3
          -nodecluster.tags.add("tag-1")
          -nodecluster.save()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -nodecluster, err := dockercloud.GetNodeCluster("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -if err = nodecluster.Update(dockercloud.NodeCreateRequest{Target_num_nodes: 4}); err != nil {
          -   log.Println(err)
          -}
          -
          -
          PATCH /api/infra/v1/nodecluster/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -Content-Type: application/json
          -
          -{"target_num_nodes": 3, "tags": [{"name": "tag-1"}]}
          -
          -
          docker-cloud nodecluster scale 7eaf7fff 3
          -docker-cloud tag add -t tag-1 7eaf7fff
          -docker-cloud tag set -t tag-2 7eaf7fff
          -
          - -

          Updates the node cluster details and applies the changes automatically.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          PATCH /api/infra/v1/[optional_namespace/]nodecluster/(uuid)/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the node cluster to update
          - -

          JSON Parameters

          - - - - - - - - - - - - - - - -
          ParameterDescription
          target_num_nodes(optional) The number of nodes to scale this node cluster to
          tags(optional) List of tags the node cluster (and nodes within the node cluster) will have. This operation replaces the user tag list.
          - -

          Terminate a node cluster

          -
          import dockercloud
          -
          -nodecluster = dockercloud.NodeCluster.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -nodecluster.delete()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -nodecluster, err := dockercloud.GetNodeCluster("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -if err = nodecluster.Terminate(); err != nil {
          -   log.Println(err)
          -}
          -
          -
          DELETE /api/infra/v1/nodecluster/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          dockercloud nodecluster rm 7eaf7fff
          -
          - -

          Terminates all the nodes in a node cluster and the node cluster itself. This is not reversible.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          DELETE /api/infra/v1/[optional_namespace/]nodecluster/(uuid)/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the node cluster to terminate
          - -
          -
          -
          -
          - - diff --git a/apidocs/docker-cloud/includes/nodetype.html b/apidocs/docker-cloud/includes/nodetype.html deleted file mode 100644 index cf4262944a..0000000000 --- a/apidocs/docker-cloud/includes/nodetype.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - API Documentation - - - - - - - - - - - - - NAV - - - -
          - -
          -
          -
          -
          -
          -
          -

          Node Types

          - -

          Node Type

          - -
          -

          Example

          -
          -
          {
          -    "availability_zones": [],
          -    "available": true,
          -    "label": "1GB",
          -    "name": "1gb",
          -    "provider": "/api/infra/v1/provider/digitalocean/",
          -    "regions": [
          -        "/api/infra/v1/region/digitalocean/ams1/",
          -        "/api/infra/v1/region/digitalocean/sfo1/",
          -        "/api/infra/v1/region/digitalocean/nyc2/",
          -        "/api/infra/v1/region/digitalocean/ams2/",
          -        "/api/infra/v1/region/digitalocean/sgp1/",
          -        "/api/infra/v1/region/digitalocean/lon1/",
          -        "/api/infra/v1/region/digitalocean/nyc3/",
          -        "/api/infra/v1/region/digitalocean/nyc1/"
          -    ],
          -    "resource_uri": "/api/infra/v1/nodetype/digitalocean/1gb/"
          -}
          -
          - -

          A node type is a representation of an instance size supported by a certain cloud provider in a certain region and/or availability zone.

          - -

          Attributes

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          resource_uriA unique API endpoint that represents the node type
          nameAn identifier for the node type
          labelA user-friendly name for the node type
          regionsA list of resource URIs of the regions to which this node type can be deployed to
          availability_zonesA list of resource URIs of the availability zones to which this node type can be deployed to
          providerThe resource URI of the provider of the node type
          availableWhether the node type is currently available for new node deployments
          - -

          List all node types

          -
          import dockercloud
          -
          -nodetypes = dockercloud.NodeType.list()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -nodetypeList, err := dockercloud.ListNodeTypes()
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(nodetypeList)
          -
          -
          GET /api/infra/v1/nodetype/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud nodecluster nodetype
          -
          - -

          Lists all node types of all supported cloud providers. Returns a list of NodeType objects.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/infra/v1/nodetype/

          - -

          Query Parameters

          - - - - - - - - - - - - - - - - - - - -
          ParameterDescription
          nameFilter by node type name
          regionsFilter by resource URI of the target regions
          availability_zonesFilter by resource URI of the target availability zones
          - -

          Get an individual node type

          -
          import dockercloud
          -
          -nodetype = dockercloud.NodeType.fetch("digitalocean/1gb")
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -nodetype, err := dockercloud.GetNodeType("digitalocean","1gb")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(nodetype)
          -
          -
          GET /api/infra/v1/nodetype/digitalocean/1gb/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          - -

          Get all the details of a specific node type

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/infra/v1/nodetype/(provider.name)/(name)/

          - -

          Path Parameters

          - - - - - - - - - - - - - - - -
          ParameterDescription
          nameThe name of the node type to retrieve
          provider.nameThe name of the provider of the node type
          - -
          -
          -
          -
          - - diff --git a/apidocs/docker-cloud/includes/provider.html b/apidocs/docker-cloud/includes/provider.html deleted file mode 100644 index 7b4368095e..0000000000 --- a/apidocs/docker-cloud/includes/provider.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - API Documentation - - - - - - - - - - - - - NAV - - - -
          - -
          -
          -
          -
          -
          -
          -

          Providers

          - -

          Provider

          - -
          -

          Example

          -
          -
          {
          -    "available": true,
          -    "label": "Digital Ocean",
          -    "name": "digitalocean",
          -    "regions": [
          -        "/api/infra/v1/region/digitalocean/ams1/",
          -        "/api/infra/v1/region/digitalocean/ams2/",
          -        "/api/infra/v1/region/digitalocean/ams3/",
          -        "/api/infra/v1/region/digitalocean/lon1/",
          -        "/api/infra/v1/region/digitalocean/nyc1/",
          -        "/api/infra/v1/region/digitalocean/nyc2/",
          -        "/api/infra/v1/region/digitalocean/nyc3/",
          -        "/api/infra/v1/region/digitalocean/sfo1/",
          -        "/api/infra/v1/region/digitalocean/sgp1/"
          -    ],
          -    "resource_uri": "/api/infra/v1/provider/digitalocean/"
          -}
          -
          - -

          A provider is a representation of a cloud provider supported by Docker Cloud. Providers have one or more regions where nodes are deployed.

          - -

          Attributes

          - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          resource_uriA unique API endpoint that represents the provider
          nameA unique identifier for the provider
          labelA user-friendly name for the provider
          regionsA list of resource URIs of the regions available in this provider
          availableWhether the provider is currently available for new node deployments
          - -

          List all providers

          -
          import dockercloud
          -
          -providers = dockercloud.Provider.list()
          -
          -
          GET /api/infra/v1/provider/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -providerList, err := dockercloud.ListProviders()
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(providerList)
          -
          -
          docker-cloud nodecluster provider
          -
          - -

          Lists all supported cloud providers. Returns a list of Provider objects.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/infra/v1/provider/

          - -

          Query Parameters

          - - - - - - - - - - - -
          ParameterDescription
          nameFilter by provider name
          - -

          Get an individual provider

          -
          import dockercloud
          -
          -provider = dockercloud.Provider.fetch("digitalocean")
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -provider, err := dockercloud.GetProvider("digitalocean")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(provider)
          -
          -
          GET /api/infra/v1/provider/digitalocean/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          - -

          Get all the details of a specific provider

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/infra/v1/provider/(name)/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          nameThe name of the provider to retrieve
          - -
          -
          -
          -
          - - diff --git a/apidocs/docker-cloud/includes/region.html b/apidocs/docker-cloud/includes/region.html deleted file mode 100644 index b44659201d..0000000000 --- a/apidocs/docker-cloud/includes/region.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - API Documentation - - - - - - - - - - - - - NAV - - - -
          - -
          -
          -
          -
          -
          -
          -

          Regions

          - -

          Region

          - -
          -

          Example

          -
          -
          {
          -    "availability_zones": [],
          -    "available": true,
          -    "label": "Amsterdam 2",
          -    "name": "ams2",
          -    "node_types": [
          -        "/api/infra/v1/nodetype/digitalocean/1gb/",
          -        "/api/infra/v1/nodetype/digitalocean/2gb/",
          -        "/api/infra/v1/nodetype/digitalocean/4gb/",
          -        "/api/infra/v1/nodetype/digitalocean/8gb/",
          -        "/api/infra/v1/nodetype/digitalocean/16gb/",
          -        "/api/infra/v1/nodetype/digitalocean/32gb/",
          -        "/api/infra/v1/nodetype/digitalocean/48gb/",
          -        "/api/infra/v1/nodetype/digitalocean/64gb/"
          -    ],
          -    "provider": "/api/infra/v1/provider/digitalocean/",
          -    "resource_uri": "/api/infra/v1/region/digitalocean/ams2/"
          -}
          -
          - -

          A region is a representation of an entire or a subset of a data center of a cloud provider. It can contain availability zones (depending on the provider) and one or more node types.

          - -

          Attributes

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          resource_uriA unique API endpoint that represents the region
          nameAn identifier for the region
          labelA user-friendly name for the region
          node_typesA list of resource URIs of the node types available in the region
          availability_zonesA list of resource URIs of the availability zones available in the region
          providerThe resource URI of the provider of the region
          availableWhether the region is currently available for new node deployments
          - -

          List all regions

          -
          import dockercloud
          -
          -regions = dockercloud.Region.list()
          -
          -
          GET /api/infra/v1/region/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -regionList, err := dockercloud.ListRegions()
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(regionList)
          -
          -
          docker-cloud nodecluster region
          -
          - -

          Lists all regions of all supported cloud providers. Returns a list of Region objects.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/infra/v1/region/

          - -

          Query Parameters

          - - - - - - - - - - - - - - - -
          ParameterDescription
          nameFilter by region name
          providerFilter by resource URI of the target provider
          - -

          Get an individual region

          -
          import dockercloud
          -
          -region = dockercloud.Region.fetch("digitalocean/lon1")
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -region, err := dockercloud.GetRegion("digitalocean","lon1")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(region)
          -
          -
          GET /api/infra/v1/region/digitalocean/lon1/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          - -

          Get all the details of a specific region

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/infra/v1/region/(provider.name)/(name)/

          - -

          Path Parameters

          - - - - - - - - - - - - - - - -
          ParameterDescription
          nameThe name of the region to retrieve
          provider.nameThe name of the provider of the region
          - -
          -
          -
          -
          - - diff --git a/apidocs/docker-cloud/includes/registry.html b/apidocs/docker-cloud/includes/registry.html deleted file mode 100644 index 034f780021..0000000000 --- a/apidocs/docker-cloud/includes/registry.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - API Documentation - - - - - - - - - - - - - NAV - - - -
          - -
          -
          -
          -
          -
          -
          -

          Registries

          - -

          Registry

          - -
          -

          Example

          -
          -
          {
          -  "host": "registry-1.docker.io",
          -  "is_docker_registry": true,
          -  "is_ssl": true,
          -  "name": "Docker Hub",
          -  "port": 443,
          -  "resource_uri": "/api/repo/v1/user_namespace/registry/registry-1.docker.io/"
          -}
          -
          - -

          Represents a registry where repositories are hosted.

          - -

          This is a namespaced endpoint.

          - -

          Attributes

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          resource_uriA unique API endpoint that represents the registry
          nameHuman-readable name of the registry
          hostFQDN of the registry, i.e. registry-1.docker.io
          is_docker_registryWhether this registry is run by Docker
          is_sslWhether this registry has SSL activated or not
          portThe port number where the registry is listening to
          - -

          List all registries

          -
          GET /api/repo/v1/registry/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          - -

          Lists all current registries. Returns a list of Registry objects.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/repo/v1/[optional_namespace/]registry/

          - -

          Query Parameters

          - - - - - - - - - - - - - - - - - - - - - - - -
          ParameterDescription
          uuidFilter by UUID
          nameFilter by registry name
          hostFilter by registry host
          is_docker_registryFilter by whether the registry is run by Docker or not. Possible values: ‘true’ or 'false’
          - -

          Get an existing registry

          -
          GET /api/repo/v1/registry/registry-1.docker.io/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          - -

          Gets all the details of an specific registry

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/v1/[optional_namespace/]registry/(host)/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          hostThe host of the registry to retrieve
          - -
          -
          -
          -
          - - diff --git a/apidocs/docker-cloud/includes/repository.html b/apidocs/docker-cloud/includes/repository.html deleted file mode 100644 index d4af17c206..0000000000 --- a/apidocs/docker-cloud/includes/repository.html +++ /dev/null @@ -1,351 +0,0 @@ - - - - - - - API Documentation - - - - - - - - - - - - - NAV - - - -
          - -
          -
          -
          -
          -
          -
          -

          External Repositories

          - -

          External Repository

          - -
          -

          Example

          -
          -
          {
          -  "in_use": false,
          -  "name": "my.registry.com/myrepo",
          -  "registry": "/api/repo/v1/user_namespace/registry/my.registry.com/",
          -  "resource_uri": "/api/repo/v1/user_namespace/repository/my.registry.com/myrepo/",
          -}
          -
          - -

          The repository endpoint is used to add and remove existing repositories on third party registries to be used in deployments and builds.

          - -

          This is a namespaced endpoint.

          - -

          Attributes

          - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          resource_uriA unique API endpoint that represents the repository
          nameName of the repository, i.e. my.registry.com/myrepo
          in_useIf the image is being used by any of your services
          registryResource URI of the registry where this image is hosted
          - -

          List all external repositories

          -
          import dockercloud
          -
          -repositories = dockercloud.Repository.list()
          -
          -
          GET /api/repo/v1/repository/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -repositoriesList, err := dockercloud.ListRepositories()
          -
          -if err != nil {
          -    log.Println(err)
          -}
          -
          -log.Pringln(repositoriesList)
          -
          -
          docker-cloud repository ls
          -
          - -

          Lists all added repositories from third party registries. Returns a list of Repository objects.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/repo/v1/[optional_namespace/]repository/

          - -

          Query Parameters

          - - - - - - - - - - - - - - - -
          ParameterDescription
          nameFilter by image name
          registryFilter by resource URI of the target repository registry
          - -

          Add a new external repository

          -
          import dockercloud
          -
          -repository = dockercloud.Repository.create(name="registry.local/user1/image1", username=username, password=password)
          -repository.save()
          -
          -
          POST /api/repo/v1/repository/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -Content-Type: application/json
          -
          -{"name": "registry.local/user1/image1", "username": "username", "password": "password"}
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -image, err := dockercloud.CreateImage(dockercloud.ImageCreateRequest{
          -  Name: "registry.local/user1/image1",
          -  Username: "username",
          -  Password: "password"
          -})
          -
          -
          docker-cloud repository register -u username -p password registry.local/user1/image1
          -
          - -

          Adds an existing repository on a third party registry.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/repo/v1/[optional_namespace/]repository/

          - -

          JSON Parameters

          - - - - - - - - - - - - - - - - - - - -
          ParameterDescription
          nameName of the repository, i.e. ‘my.registry.com/myrepo’
          usernameUsername to authenticate with the third party registry
          passwordPassword to authenticate with the third party registry
          - -

          Get an external repository details

          -
          import dockercloud
          -
          -repository = dockercloud.Repository.fetch("registry.local/user1/image1")
          -
          -
          GET /api/repo/v1/repository/registry.local/user1/image1/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -repository, err = dockercloud.GetRepository("registry.local/user1/image1")
          -
          -if err != nil {
          -    log.Println(err)
          -}
          -
          -log.Println(repository)
          -
          -
          docker-cloud repository inspect registry.local/user1/image1
          -
          - -

          Gets all the details of an specific repository

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/repo/v1/[optional_namespace/]repository/(name)/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          nameThe name of the repository to retrieve
          - -

          Update credentials of an external repository

          -
          import dockercloud
          -
          -repository = dockercloud.Repository.fetch("registry.local/user1/image1")
          -repository.username = "new username"
          -repository.password = "new password"
          -repository.save()
          -
          -
          PATCH /api/repo/v1/repository/registry.local/user1/image1/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -Content-Type: application/json
          -
          -{"username": "username", "password": "password"}
          -
          -
          docker-cloud repository update -n "new username" -p "new password" registry.local/user1/image1
          -
          - -

          Updates the external repository credentials.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          PATCH /api/repo/v1/[optional_namespace/]repository/(name)/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          nameThe name of the repository to update
          - -

          JSON Parameters

          - - - - - - - - - - - - - - - -
          ParameterDescription
          usernameUsername to authenticate with the private registry
          passwordPassword to authenticate with the private registry
          - -

          Remove an external repository

          -
          import dockercloud
          -
          -repository = dockercloud.Repository.fetch("registry.local/user1/image1")
          -repository.delete()
          -
          -
          DELETE /api/repo/v1/repository/registry.local/user1/image1/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -repository, err = dockercloud.GetRepository("registry.local/user1/image1")
          -
          -if err != nil {
          -    log.Println(err)
          -}
          -
          -repository.Remove()
          -
          -
          docker-cloud repository rm registry.local/user1/image1
          -
          - -

          Removes the external repository from Docker Cloud. It won’t remove the repository from the third party registry where it’s stored.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          DELETE /api/repo/v1/[optional_namespace/]repository/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          nameThe name of the external repository to remove
          - -
          -
          -
          -
          - - diff --git a/apidocs/docker-cloud/includes/service.html b/apidocs/docker-cloud/includes/service.html deleted file mode 100644 index e6c0007ce7..0000000000 --- a/apidocs/docker-cloud/includes/service.html +++ /dev/null @@ -1,1472 +0,0 @@ - - - - - - - API Documentation - - - - - - - - - - - - - NAV - - - -
          - -
          -
          -
          -
          -
          -
          -

          Services

          - -

          Service

          - -
          -

          Example

          -
          -
          {
          -  "autodestroy": "OFF",
          -  "autoredeploy": false,
          -  "autorestart": "ON_FAILURE",
          -  "bindings": [
          -    {
          -        "host_path": null,
          -        "container_path": "/tmp",
          -        "rewritable": true,
          -        "volumes_from": null
          -    },
          -    {
          -        "host_path": "/etc",
          -        "container_path": "/etc",
          -        "rewritable": true,
          -        "volumes_from": null
          -    },
          -    {
          -        "host_path": null,
          -        "container_path": null,
          -        "rewritable": true,
          -        "volumes_from": "/api/app/v1/user_namespace/service/2f4f54e5-9d3b-4ac1-85ad-a2d4ff25a179/"
          -    }
          -  ],
          -  "cap_add": [
          -    "ALL"
          -  ],
          -  "cap_drop": [
          -    "NET_ADMIN",
          -    "SYS_ADMIN"
          -  ],
          -  "container_envvars": [
          -    {
          -      "key": "DB_PASS",
          -      "value": "test"
          -    }
          -  ],
          -  "container_ports": [
          -    {
          -      "endpoint_uri": "http://wordpress-stackable.admin.srv.dockerapp.io:80/",
          -      "inner_port": 80,
          -      "outer_port": 80,
          -      "port_name": "http",
          -      "protocol": "tcp",
          -      "published": true
          -    }
          -  ],
          -  "containers": [
          -    "/api/app/v1/user_namespace/container/6f8ee454-9dc3-4387-80c3-57aac1be3cc6/",
          -    "/api/app/v1/user_namespace/container/fdf9c116-7c08-4a60-b0ce-c54ca72c2f25/"
          -  ],
          -  "cpu_shares": 100,
          -  "cpuset": "0,1",
          -  "cgroup_parent": "m-executor-abcd",
          -  "current_num_containers": 2,
          -  "deployed_datetime": "Mon, 13 Oct 2014 11:01:43 +0000",
          -  "deployment_strategy": "EMPTIEST_NODE",
          -  "destroyed_datetime": null,
          -  "devices": [
          -    "/dev/ttyUSB0:/dev/ttyUSB0"
          -  ],
          -  "dns": [
          -    "8.8.8.8"
          -  ],
          -  "dns_search": [
          -    "example.com"
          -  ],
          -  "domainname": "domainname",
          -  "entrypoint": "",
          -  "extra_hosts": [
          -    "onehost:50.31.209.229"
          -  ],
          -  "hostname": "hostname",
          -  "image_name": "tutum/wordpress-stackable:latest",
          -  "nickname": "wordpress-stackable",
          -  "labels": {
          -    "com.example.description": "Accounting webapp",
          -    "com.example.department": "Finance",
          -    "com.example.label-with-empty-value": ""
          -  },
          -  "link_variables": {
          -    "WORDPRESS_STACKABLE_1_ENV_DB_HOST": "**LinkMe**",
          -    "WORDPRESS_STACKABLE_1_ENV_DB_NAME": "wordpress",
          -    "WORDPRESS_STACKABLE_1_ENV_DB_PASS": "szVaPz925B7I",
          -    "WORDPRESS_STACKABLE_1_ENV_DB_PORT": "**LinkMe**",
          -    "WORDPRESS_STACKABLE_1_ENV_DB_USER": "admin",
          -    "WORDPRESS_STACKABLE_1_ENV_DEBIAN_FRONTEND": "noninteractive",
          -    "WORDPRESS_STACKABLE_1_ENV_HOME": "/",
          -    "WORDPRESS_STACKABLE_1_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
          -    "WORDPRESS_STACKABLE_1_PORT": "tcp://wordpress-stackable-1.admin.cont.dockerapp.io:49153",
          -    "WORDPRESS_STACKABLE_1_PORT_80_TCP": "tcp://wordpress-stackable-1.admin.cont.dockerapp.io:49153",
          -    "WORDPRESS_STACKABLE_1_PORT_80_TCP_ADDR": "wordpress-stackable-1.admin.cont.dockerapp.io",
          -    "WORDPRESS_STACKABLE_1_PORT_80_TCP_PORT": "49153",
          -    "WORDPRESS_STACKABLE_1_PORT_80_TCP_PROTO": "tcp",
          -    "WORDPRESS_STACKABLE_2_ENV_DB_HOST": "**LinkMe**",
          -    "WORDPRESS_STACKABLE_2_ENV_DB_NAME": "wordpress",
          -    "WORDPRESS_STACKABLE_2_ENV_DB_PASS": "szVaPz925B7I",
          -    "WORDPRESS_STACKABLE_2_ENV_DB_PORT": "**LinkMe**",
          -    "WORDPRESS_STACKABLE_2_ENV_DB_USER": "admin",
          -    "WORDPRESS_STACKABLE_2_ENV_DEBIAN_FRONTEND": "noninteractive",
          -    "WORDPRESS_STACKABLE_2_ENV_HOME": "/",
          -    "WORDPRESS_STACKABLE_2_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
          -    "WORDPRESS_STACKABLE_2_PORT": "tcp://wordpress-stackable-2.admin.cont.dockerapp.io:49154",
          -    "WORDPRESS_STACKABLE_2_PORT_80_TCP": "tcp://wordpress-stackable-2.admin.cont.dockerapp.io:49154",
          -    "WORDPRESS_STACKABLE_2_PORT_80_TCP_ADDR": "wordpress-stackable-2.admin.cont.dockerapp.io",
          -    "WORDPRESS_STACKABLE_2_PORT_80_TCP_PORT": "49154",
          -    "WORDPRESS_STACKABLE_2_PORT_80_TCP_PROTO": "tcp",
          -    "WORDPRESS_STACKABLE_ENV_DB_HOST": "**LinkMe**",
          -    "WORDPRESS_STACKABLE_ENV_DB_NAME": "wordpress",
          -    "WORDPRESS_STACKABLE_ENV_DB_PASS": "szVaPz925B7I",
          -    "WORDPRESS_STACKABLE_ENV_DB_PORT": "**LinkMe**",
          -    "WORDPRESS_STACKABLE_ENV_DB_USER": "admin",
          -    "WORDPRESS_STACKABLE_ENV_DEBIAN_FRONTEND": "noninteractive",
          -    "WORDPRESS_STACKABLE_ENV_HOME": "/",
          -    "WORDPRESS_STACKABLE_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
          -    "WORDPRESS_STACKABLE_PORT": "tcp://wordpress-stackable-1.admin.cont.dockerapp.io:49153",
          -    "WORDPRESS_STACKABLE_PORT_80_TCP": "tcp://wordpress-stackable-1.admin.cont.dockerapp.io:49153",
          -    "WORDPRESS_STACKABLE_PORT_80_TCP_ADDR": "wordpress-stackable-1.admin.cont.dockerapp.io",
          -    "WORDPRESS_STACKABLE_PORT_80_TCP_PORT": "49153",
          -    "WORDPRESS_STACKABLE_PORT_80_TCP_PROTO": "tcp",
          -    "WORDPRESS_STACKABLE_DOCKERCLOUD_API_URL": "https://cloud.docker.com/api/app/v1/user_namespace/service/adeebc1b-1b81-4af0-b8f2-cefffc69d7fb/"
          -  },
          -  "linked_from_service": [],
          -  "linked_to_service": [
          -    {
          -      "from_service": "/api/app/v1/user_namespace/service/09cbcf8d-a727-40d9-b420-c8e18b7fa55b/",
          -      "name": "DB",
          -      "to_service": "/api/app/v1/user_namespace/service/72f175bd-390b-46e3-9463-830aca32ce3e/"
          -    }
          -  ],
          -  "mac_address": "02:42:ac:11:65:43",
          -  "memory": 2048,
          -  "memory_swap": 8192,
          -  "name": "wordpress-stackable",
          -  "net": "bridge",
          -  "privileged": false,
          -  "public_dns": "wordpress-stackable.admin.svc.dockerapp.io",
          -  "read_only": true,
          -  "resource_uri": "/api/app/v1/user_namespace/service/09cbcf8d-a727-40d9-b420-c8e18b7fa55b/",
          -  "roles": ["global"],
          -  "run_command": "/run-wordpress.sh",
          -  "running_num_containers": 1,
          -  "security_opt": [
          -  ],
          -  "sequential_deployment": false,
          -  "started_datetime": "Mon, 13 Oct 2014 11:01:43 +0000",
          -  "state": "Partly running",
          -  "stack": "/api/app/v1/user_namespace/stack/46aca402-2109-4a70-a378-760cfed43816/",
          -  "stdin_open": false,
          -  "stopped_datetime": null,
          -  "stopped_num_containers": 0,
          -  "synchronized": true,
          -  "tags": [
          -        {"name": "tag_one"},
          -        {"name": "tag-two"},
          -        {"name": "tagthree3"}
          -  ],
          -  "target_num_containers": 2,
          -  "tty": false,
          -  "user": "root",
          -  "uuid": "09cbcf8d-a727-40d9-b420-c8e18b7fa55b",
          -  "working_dir": "/app"
          -}
          -
          - -

          A service is a template used to deploy one or more containers.

          - -

          This is a namespaced endpoint.

          - -

          Attributes

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          uuidA unique identifier for the service generated automatically on creation
          resource_uriA unique API endpoint that represents the service
          image_nameThe Docker image name and tag used for the service containers
          nameA user provided name for the service. This name will be inherited by the service containers and will be used in endpoint URLs, environment variable names, etc.
          public_dnsAn external FQDN that resolves to all IPs of the nodes where the service containers are running on (as an A record with multiple IP entries which will be used by clients in a round-robin fashion). If the service is not publishing any ports, this FQDN will fail to resolve.
          stateThe state of the service (see table Service states below)
          netNetwork mode to set on the containers (see table Network Modes below, more information /docker-cloud/apps/service-links/)
          pidSet the PID (Process) Namespace mode for the containers (more information)
          synchronizedFlag indicating if the current service definition is synchronized with the current containers.
          deployed_datetimeThe date and time of the last deployment of the service (if applicable, null otherwise)
          started_datetimeThe date and time of the last start operation on the service (if applicable, null otherwise)
          stopped_datetimeThe date and time of the last stop operation on the service (if applicable, null otherwise)
          destroyed_datetimeThe date and time of the terminate operation on the service (if applicable, null otherwise)
          target_num_containersThe requested number of containers to deploy for the service
          current_num_containersThe actual number of containers deployed for the service
          running_num_containersThe actual number of containers deployed for the service in Running state
          stopped_num_containersThe actual number of containers deployed for the service in Stopped state
          stackResource URIs of the stack that the service belongs to
          containersList of resource URIs of the containers launched as part of the service
          container_portsList of ports to be published on the containers of this service (see table Service Port attributes below)
          container_envvarsList of user-defined environment variables to set on the containers of the service, which will override the image environment variables (see table Service Environment Variable attributes below)
          labelsMetadata in form of dictionary used for every container of this service
          working_dirWorking directory for running binaries within a container of this service
          userSet the user used on containers of this service (root by default)
          hostnameSet the hostname used on containers of this service
          domainnameSet the domainname used on containers of this service
          mac_addressEthernet device’s MAC address used on containers of this service
          cgroup_nameOptional parent cgroup used on containers of this service.
          ttyIf the containers of this service have the tty enable (false by default)
          stdin_openIf the containers of this service have stdin opened (false by default)
          dnsCustom DNS servers for containers of this service
          dns_searchCustom DNS search domain for containers of this service
          cap_addAdded capabilities for containers of this service
          cap_dropDropped capabilities for containers of this service
          devicesList of device mappings for containers of this service
          extra_hostsList of hostname mappings for containers of this service
          secuirty_optLabeling scheme for containers of this service
          entrypointEntrypoint to be set on the containers launched as part of the service, which will override the image entrypoint
          run_commandRun command to be set on the containers launched as part of the service, which will override the image run command
          sequential_deploymentWhether the containers for this service should be deployed in sequence, linking each of them to the previous containers (see Service scaling for more information)
          cpu_sharesThe relative CPU priority of the containers of the service (see Runtime Constraints on CPU and Memory for more information)
          cpusetCPUs in which to allow execution
          memoryThe memory limit of the containers of the service in MB (see Runtime Constraints on CPU and Memory for more information)
          memory_swapTotal memory limit (memory + swap) of the containers of the service in MB
          linked_from_serviceA list of services that are linked to this one (see table Related services attributes below)
          linked_to_serviceA list of services that the service is linked to (see table Related services attributes below)
          bindingsA list of volume bindings that the service has mounted (see table Service binding attributes below)
          autorestartWhether to restart the containers of the service automatically if they stop (see Crash recovery for more information)
          autodestroyWhether to terminate the containers of the service automatically if they stop (see Autodestroy for more information)
          rolesList of Docker Cloud roles assigned to this service (see Service links for more information)
          link_variablesList of environment variables that would be exposed in the containers if they are linked to this service
          privilegedWhether to start the containers with Docker’s privileged flag set or not, which allows containers to access all devices on the host among other things (see Runtime privilege for more information)
          read_onlyWhether the filesystem of every service container is read-only or not (false by default)
          deployment_strategyContainer distribution among nodes (see table Deployment strategies below and Deployment strategies for more information)
          tagsList of tags to be used to deploy the service (see Tags for more information)
          autoredeployWhether to redeploy the containers of the service when its image is updated in Docker Cloud registry (see Docker Cloud’s private registry for more information)
          nicknameA user-friendly name for the service (name by default)
          - -

          Service binding attributes

          - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          host_pathThe host path of the volume
          container_pathThe container path where the volume is mounted
          rewritabletrue is the volume has writable permissions
          volumes_fromThe resource URI of the service
          - -

          Service Port attributes

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          protocolThe protocol of the port, either tcp or udp
          inner_portThe published port number inside the container
          outer_portThe published port number in the node public network interface
          port_nameName of the service associated to this port
          endpoint_uriThe URI of the service endpoint for this port
          publishedWhether the port has been published in the host public network interface or not. Non-published ports can only be accessed via links.
          - -

          Service Environment Variable attributes

          - - - - - - - - - - - - - - - -
          AttributeDescription
          keyThe name of the environment variable
          valueThe value of the environment variable
          - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          nameThe link name
          from_serviceThe resource URI of the origin of the link
          to_serviceThe resource URI of the target of the link
          - -

          Service states

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          StateDescription
          Not runningThe service has been created and has no deployed containers yet. Possible actions in this state: start, terminate.
          StartingAll containers for the service are either starting or already running. No actions allowed in this state.
          RunningAll containers for the service are deployed and running. Possible actions in this state: stop, redeploy, terminate.
          Partly runningOne or more containers of the service are deployed and running. Possible actions in this state: stop, redeploy, terminate.
          ScalingThe service is either deploying new containers or destroying existing ones responding to a scaling request. No actions allowed in this state.
          RedeployingThe service is redeploying all its containers with the updated configuration. No actions allowed in this state.
          StoppingAll containers for the service are either stopping or already stopped. No actions allowed in this state.
          StoppedAll containers for the service are stopped. Possible actions in this state: start, redeploy, terminate.
          TerminatingAll containers for the service are either being terminated or already terminated. No actions allowed in this state.
          TerminatedThe service and all its containers have been terminated. No actions allowed in this state.
          - -

          Deployment strategies

          - - - - - - - - - - - - - - - - - - - -
          StrategyDescription
          EMPTIEST_NODEIt will deploy containers to the node with the lower total amount of running containers (default).
          HIGH_AVAILABILITYIt will deploy containers to the node with the lower amount of running containers of the same service.
          EVERY_NODEIt will deploy one container on every node. The service won’t be able to scale manually. New containers will be deployed to new nodes automatically.
          - -

          Network Modes

          - - - - - - - - - - - - - - - -
          StrategyDescription
          bridgeCreates a new network stack for the container on the docker bridge.
          hostUses the host network stack inside the container.
          - -

          List all services

          -
          import dockercloud
          -
          -services = dockercloud.Service.list()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -serviceList, err := dockercloud.ListServices()
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(serviceList)
          -
          -
          GET /api/app/v1/service/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud service ps
          -
          - -

          Lists all current and recently terminated services. Returns a list of Service objects.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/app/v1/[optional_namespace/]service/

          - -

          Query Parameters

          - - - - - - - - - - - - - - - - - - - - - - - -
          ParameterDescription
          uuidFilter by UUID
          stateFilter by state. Possible values: Not running, Starting, Running, Partly running, Scaling, Redeploying, Stopping, Stopped, Terminating, Terminated
          nameFilter by service name
          stackFilter by resource URI of the target stack.
          - -

          Create a new service

          -
          import dockercloud
          -
          -service = dockercloud.Service.create(image="tutum/hello-world", name="my-new-app", target_num_containers=2)
          -service.save()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -service, err := dockercloud.CreateService(dockercloud.ServiceCreateRequest{Image: "tutum/hello-world",  Name: "my-new-app", Target_num_containers: 2})
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(service)
          -
          -
          POST /api/app/v1/service/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -Content-Type: application/json
          -
          -{"image": "tutum/hello-world", "name": "my-new-app", "target_num_containers": 2}
          -
          -
          docker-cloud service create -t 2 --name my-new-app tutum/hello-world
          -
          - -

          Creates a new service without starting it.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/app/v1/[optional_namespace/]service/

          - -

          JSON Parameters

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          ParameterDescription
          image(required) The image used to deploy this service in docker format, i.e. tutum/hello-world
          name(optional) A human-readable name for the service, i.e. my-hello-world-app (default: image without namespace)
          target_num_containers(optional) The number of containers to run for this service initially (default: 1)
          run_command(optional) The command used to start the containers of this service, overriding the value specified in the image, i.e. /run.sh (default: null)
          entrypoint(optional) The command prefix used to start the containers of this service, overriding the value specified in the image, i.e. /usr/sbin/sshd (default: null)
          container_ports(optional) An array of objects with port information to be published in the containers for this service, which will be added to the image port information, i.e. [{"protocol": "tcp", "inner_port": 80, "outer_port": 80}] (default: []) (See table Service Port attributes below)
          container_envvars(optional) An array of objects with environment variables to be added in the service containers on launch (overriding any image-defined environment variables), i.e. [{"key": "DB_PASSWORD", "value": "mypass"}] (default: []) (See table Service Environment Variable attributes below)
          linked_to_service(optional) An array of service resource URIs to link this service to, including the link name, i.e. [{"to_service": "/api/app/v1/service/80ff1635-2d56-478d-a97f-9b59c720e513/", "name": "db"}] (default: []) (See table Related services attributes below)
          bindings(optional) An array of bindings this service has to mount, i.e. [{"volumes_from": "/api/app/v1/service/80ff1635-2d56-478d-a97f-9b59c720e513/", "rewritable": true}] (default: []) (See table Related bindings attributes below)
          autorestart(optional) Whether the containers for this service should be restarted if they stop, i.e. ALWAYS (default: OFF, possible values: OFF, ON_FAILURE, ALWAYS) (see Crash recovery for more information)
          autodestroy(optional) Whether the containers should be terminated if they stop, i.e. OFF (default: OFF, possible values: OFF, ON_SUCCESS, ALWAYS) (see Autodestroy for more information)
          sequential_deployment(optional) Whether the containers should be launched and scaled in sequence, i.e. true (default: false) (see Service scaling for more information)
          roles(optional) A list of Docker Cloud API roles to grant the service, i.e. ["global"] (default: [], possible values: global) (see Service links for more information)
          privileged(optional) Whether to start the containers with Docker’s privileged flag set or not, i.e. false (default: false) (see Runtime privilege for more information)
          deployment_strategy(optional) Container distribution among nodes (default: EMPTIEST_NODE, see table Deployment strategies above and Deployment strategies for more information)
          tags(optional) A list of tags to be used to deploy the service (see Tags for more information) (default: [])
          autoredeploy(optional) Whether to redeploy the containers of the service when its image is updated in Docker Cloud registry (default: false) (see Docker Cloud’s private registry for more information)
          net(optional) Set the network mode to the containers (default: bridge, possible values: bridge, host)
          pid(optional) Set the PID (Process) Namespace mode for the containers (default: none value, possible values: none, host)
          working_dir(optional) Working directory for running binaries within a container of this service (default: /)
          nickname(optional) A user-friendly name for the service (name by default)
          - - - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          host_path(optional) The host path of the volume
          container_path(required if volumes_from is omitted) The container path where the volume is mounted
          rewritable(optional) true is the volume has writable permissions (default: true)
          volumes_from(required if container_path is omitted) The resource URI of the service
          - -

          Service Port attributes

          - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          protocol(required) The protocol of the port, either tcp or udp
          inner_port(required) The port number inside the container to be published
          outer_port(optional) The port number in the node public network interface to be published (default: dynamic allocation if published is true)
          published(optional) Whether to publish the port in the host public network interface or not. Non-published ports can only be accessed via links. (default: false)
          - -

          Service Environment Variable attributes

          - - - - - - - - - - - - - - - -
          AttributeDescription
          key(required) The name of the environment variable
          value(required) The value of the environment variable
          - - - - - - - - - - - - - - - - - -
          AttributeDescription
          to_service(required) The resource URI of the target of the link
          name(optional) The link name
          - -

          Get an existing service

          -
          import dockercloud
          -
          -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(service)
          -
          -
          GET /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud service inspect 7eaf7fff
          -
          - -

          Get all the details of an specific service

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/app/v1/[optional_namespace/]service/(uuid)/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the service to retrieve
          - -

          Get the logs of a service

          - -
          -

          Example log line

          -
          -
          {
          -    "type": "log",
          -    "source": "wordpress-stackable-1",
          -    "log": "Log line from the container indicated by 'source'",
          -    "streamType": "stdout",
          -    "timestamp": 1433779324
          -}
          -
          -
          import dockercloud
          -
          -def log_handler(message):
          -    print message
          -
          -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -service.logs(tail=300, follow=True, log_handler=log_handler)
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -c := make(chan Logs)
          -
          -go service.Logs(c)
          -    for {
          -        s := <-c
          -        log.Println(s)
          -    }
          -
          -
          GET /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/logs/ HTTP/1.1
          -Host: ws.cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Connection: Upgrade
          -Upgrade: websocket
          -
          -
          docker-cloud service logs 7eaf7fff
          -
          - -

          Get the aggregated logs of all the containers of the service.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s STREAM API

          - -

          HTTP Request

          - -

          GET /api/app/v1/[optional_namespace/]service/(uuid)/logs/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the service to retrieve logs
          - -

          Query Parameters

          - - - - - - - - - - - - - - - -
          ParameterDescription
          tailNumber of lines to show from the end of the logs (default: 300)
          followWhether to stream logs or close the connection immediately (default: true)
          - -

          Update an existing service

          -
          import dockercloud
          -
          -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -service.target_num_containers = 3
          -service.tags.append({"name":"tag-1"})
          -service.save()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -if err = service.Update(dockercloud.ServiceCreateRequest{Target_num_containers: 3}); err != nil {
          -   log.Println(err)
          -}
          -
          -
          PATCH /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -Content-Type: application/json
          -
          -{"autorestart": "ON_FAILURE", "autodestroy": "OFF", "container_envvars": [{"key": "DB_PASSWORD", "value": "mypass"}],
          -"container_ports": [{"protocol": "tcp", "inner_port": 80, "outer_port": 80}], "cpu_shares": 512,
          -"entrypoint": "/usr/sbin/sshd", "image": "tutum/hello-world",
          -"linked_to_service": [{"to_service": "/api/app/v1/service/80ff1635-2d56-478d-a97f-9b59c720e513/", "name": "db"}],
          -"memory": 2048, "privileged": True, "roles": ["global"], "run_command": "/run.sh", "sequential_deployment": False,
          -"tags": [{"name": "tag-1"}], "target_num_containers": 3, "autoredeploy": False}
          -
          -
          -
          docker-cloud service scale 7eaf7fff 3
          -docker-cloud tag add -t tag-1 7eaf7fff
          -docker-cloud tag set -t tag-2 7eaf7fff
          -
          - -

          Updates the service details.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          PATCH /api/app/v1/[optional_namespace/]service/(uuid)/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the service to update
          - -

          JSON Parameters

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          ParameterDescription
          autorestart(optional) Whether the containers for this service should be restarted if they stop, i.e. ALWAYS (possible values: OFF, ON_FAILURE, ALWAYS) (see Crash recovery for more information)
          autodestroy(optional) Whether the containers should be terminated if they stop, i.e. OFF (possible values: OFF, ON_SUCCESS, ALWAYS) (see Autodestroy for more information)
          container_envvars(optional) An array of objects with environment variables to be added in the service containers on launch (overriding any image-defined environment variables), i.e. [{"key": "DB_PASSWORD", "value": "mypass"}] (See table Service Environment Variable attributes)
          container_ports(optional) An array of objects with port information to be published in the containers for this service, which will be added to the image port information, i.e. [{"protocol": "tcp", "inner_port": 80, "outer_port": 80}] (See table Service Port attributes)
          cpu_shares(optional) The relative CPU priority of the containers the service describes (see Runtime Constraints on CPU and Memory for more information)
          entrypoint(optional) The command prefix used to start the containers of this service, overriding the value specified in the image, i.e. /usr/sbin/sshd
          image(optional) The image used to deploy this service in docker format, i.e. tutum/hello-world, tutum/ubuntu:5.6. If no tag is indicated, it will be set to latest by default
          linked_to_service(optional) An array of service resource URIs to link this service to, including the link name, i.e. [{"to_service": "/api/app/v1/service/80ff1635-2d56-478d-a97f-9b59c720e513/", "name": "db"}] (See table Related services attributes below)
          memory(optional) The memory limit of the containers of the service in MB (see Runtime Constraints on CPU and Memory for more information)
          privileged(optional) Whether to start the containers with Docker’s privileged flag set or not, i.e. false (see Runtime privilege for more information)
          roles(optional) A list of Docker Cloud API roles to grant the service, i.e. ["global"] (possible values: global) (see Service links for more information)
          run_command(optional) The command used to start the containers of this service, overriding the value specified in the image, i.e. /run.sh
          sequential_deployment(optional) Whether the containers should be launched and scaled in sequence, i.e. true (see Service scaling for more information)
          tags(optional) List of new tags the service will have. This operation replaces the tag list
          target_num_containers(optional) The number of containers to scale this service to
          deployment_strategy(optional) Container distribution among nodes. A service cannot be updated to or from a deployment strategy of EVERY_NODE. (See table Deployment strategies above and Deployment strategies for more information)
          autoredeployWhether to redeploy the containers of the service when its image is updated in Docker Cloud registry (see Docker Cloud’s private registry for more information)
          net(optional) Set the network mode to the containers (default: bridge, possible values: bridge, host)
          pid(optional) Set the PID (Process) Namespace mode for the containers (default: none value, possible values: none, host)
          working_dir(optional) Working directory for running binaries within a container of this service (default: /)
          nickname(optional) A user-friendly name for the service (name by default)
          - -

          Start a service

          -
          import dockercloud
          -
          -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -service.start()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -if err = service.Start(); err != nil {
          -   log.Println(err)
          -}
          -
          -
          POST /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/start/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud service start 7eaf7fff
          -
          - -

          Starts all containers in a stopped or partly running service.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/app/v1/[optional_namespace/]service/(uuid)/start/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the service to start
          - -

          Stop a service

          -
          import dockercloud
          -
          -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -service.stop()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -if err = service.Stop(); err != nil {
          -   log.Println(err)
          -}
          -
          -
          POST /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/stop/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud service stop 7eaf7fff
          -
          - -

          Stops all containers in a running or partly running service.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/app/v1/[optional_namespace/]service/(uuid)/stop/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the service to stop
          - -

          Scale a service

          -
          import dockercloud
          -
          -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -service.target_num_containers = 3
          -service.save()
          -service.scale()
          -
          -
          POST /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/scale/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud service scale 7eaf7fff-882c-4f3d-9a8f-a22317ac00ce 3
          -
          - -

          Scales the service to its current target_num_containers field.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/app/v1/[optional_namespace/]service/(uuid)/scale/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the service to scale
          - -

          Redeploy a service

          -
          import dockercloud
          -
          -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -service.redeploy()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: true}) to reuse the existing volumes
          -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}) to not reuse the existing volumes
          -if err = service.Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}); err != nil {
          -   log.Println(err)
          -}
          -
          -
          POST /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/redeploy/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud service redeploy 7eaf7fff
          -
          - -

          Redeploys all containers in the service with the current service configuration.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/app/v1/[optional_namespace/]service/(uuid)/redeploy/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the service to redeploy
          - -

          Query Parameters

          - - - - - - - - - - - -
          ParameterDescription
          reuse_volumesWheather to reuse container volumes for this redeploy operation or not (default: true).
          - -

          Terminate a service

          -
          import dockercloud
          -
          -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -service.delete()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -if err = service.Terminate(); err != nil {
          -   log.Println(err)
          -}
          -
          -
          DELETE /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud service terminate 7eaf7fff
          -
          - -

          Terminate all the containers in a service and the service itself. This is not reversible. All the data stored in all containers of the service will be permanently deleted.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          DELETE /api/app/v1/[optional_namespace/]service/(uuid)/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the service to terminate
          - -
          -
          -
          -
          - - diff --git a/apidocs/docker-cloud/includes/stack.html b/apidocs/docker-cloud/includes/stack.html deleted file mode 100644 index a7e4b3b3ac..0000000000 --- a/apidocs/docker-cloud/includes/stack.html +++ /dev/null @@ -1,688 +0,0 @@ - - - - - - - API Documentation - - - - - - - - - - - - - NAV - - - -
          - -
          -
          -
          -
          -
          -
          -

          Stacks

          - -

          Stack

          - -
          -

          Example

          -
          -
          {
          -  "deployed_datetime": "Mon, 13 Oct 2014 11:01:43 +0000",
          -  "destroyed_datetime": null,
          -  "nickname": "deployment stack",
          -  "name": "dockercloud-app",
          -  "resource_uri": "/api/app/v1/user_namespace/stack/7fe7ec85-58be-4904-81da-de2219098d7c/",
          -  "services": [
          -    "/api/app/v1/user_namespace/service/09cbcf8d-a727-40d9-b420-c8e18b7fa55b/"
          -  ],
          -  "state": "Running",
          -  "synchronized": true,
          -  "uuid": "09cbcf8d-a727-40d9-b420-c8e18b7fa55b"
          -}
          -
          - -

          A stack is a logical grouping of closely related services, that may be linked with one another.

          - -

          This is a namespaced endpoint.

          - -

          Attributes

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          uuidA unique identifier for the stack generated automatically on creation
          resource_uriA unique API endpoint that represents the stack
          nameA user provided name for the stack.
          stateThe state of the stack (see table Stack states below)
          synchronizedFlag indicating if the current stack definition is synchronized with their services.
          servicesList of service resource URIs belonging to the stack
          deployed_datetimeThe date and time of the last deployment of the stack (if applicable, null otherwise)
          destroyed_datetimeThe date and time of the terminate operation on the stack (if applicable, null otherwise)
          nicknameA user-friendly name for the stack (name by default)
          - -

          Stack states

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          StateDescription
          Not RunningThe stack has been created and has no deployed services yet. Possible actions in this state: start, terminate.
          StartingAll services for the stack are either starting or already running. No actions allowed in this state.
          RunningAll services for the service are deployed and running. Possible actions in this state: redeploy, terminate.
          Partly runningOne or more services of the stack are deployed and running. Possible actions in this state: redeploy, terminate.
          StoppingAll services for the stack are either stopping or already stopped. No actions allowed in this state.
          StoppedAll services for the service are stopped. Possible actions in this state: start, redeploy, terminate.
          RedeployingThe stack is redeploying all its services with the updated configuration. No actions allowed in this state.
          TerminatingAll services for the stack are either being terminated or already terminated. No actions allowed in this state.
          TerminatedThe stack and all its services have been terminated. No actions allowed in this state.
          - -

          List all stacks

          -
          import dockercloud
          -
          -stacks = dockercloud.Stack.list()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -stackList, err := dockercloud.ListStacks()
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(stackList)
          -
          -
          GET /api/app/v1/stack/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud stack ls
          -
          - -

          Lists all current and recently terminated stacks. Returns a list of Stack objects.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/app/v1/[optional_namespace/]stack/

          - -

          Query Parameters

          - - - - - - - - - - - - - - - -
          ParameterDescription
          uuidFilter by UUID
          nameFilter by stack name
          - -

          Create a new stack

          -
          import dockercloud
          -
          -stack = dockercloud.Stack.create(name="my-new-stack", services=[{"name": "hello-word", "image": "tutum/hello-world", "target_num_containers": 2}])
          -stack.save()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -stack, err := dockercloud.CreateStack(dockercloud.StackCreateRequest{Name: "my-new-stack", Services: []dockercloud.ServiceCreateRequest{{Image: "tutum/hello-world", Name: "test", Target_num_containers: 2}}})
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(stack)
          -
          -
          POST /api/app/v1/stack/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -Content-Type: application/json
          -
          -{
          -    "name": "my-new-stack",
          -    "services": [
          -        {
          -            "name": "hello-word",
          -            "image": "tutum/hello-world",
          -            "target_num_containers": 2,
          -            "linked_to_service": [
          -                {
          -                    "to_service": "database",
          -                    "name": "DB"
          -                }
          -            ]
          -        },
          -        {
          -            "name": "database",
          -            "image": "tutum/mysql"
          -        }
          -    ]
          -}
          -
          -
          docker-cloud stack create --name hello-world -f docker-compose.yml
          -
          - -

          Creates a new stack without starting it. Note that the JSON syntax is abstracted by both, the Docker Cloud CLI and our UI, in order to use Stack YAML files.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/app/v1/[optional_namespace/]stack/

          - -

          JSON Parameters

          - - - - - - - - - - - - - - - - - - - -
          ParameterDescription
          name(required) A human-readable name for the stack, i.e. my-hello-world-stack
          nickname(optional) A user-friendly name for the stack (name by default)
          services(optional) List of services belonging to the stack. Each service accepts the same parameters as a Create new service operation (default: []) plus the ability to refer “links” and “volumes-from” by the name of another service in the stack (see example).
          - -

          Export an existing stack

          -
          import dockercloud
          -
          -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816")
          -stack.export()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -if err = stack.Export(); err != nil {
          -   log.Println(err)
          -}
          -
          -
          GET /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/export/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud stack export 46aca402
          -
          - -

          Get a JSON representation of the stack following the Stack YAML representation.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/app/v1/[optional_namespace/]stack/(uuid)/export/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the stack to retrieve
          - -

          Get an existing stack

          -
          import dockercloud
          -
          -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816")
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(stack)
          -
          -
          GET /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud stack inspect 46aca402-2109-4a70-a378-760cfed43816
          -
          - -

          Get all the details of an specific stack

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/app/v1/[optional_namespace/]stack/(uuid)/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the stack to retrieve
          - -

          Update an existing stack

          -
          import dockercloud
          -
          -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816")
          -stack.services = {"services": [{"name": "hello-word", "image": "tutum/hello-world", "target_num_containers": 2}]}
          -stack.save()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -if err = stack.Update(dockercloud.StackCreateRequest{Services: []dockercloud.ServiceCreateRequest{{Name: "hello-world", Image: "tutum/hello-world", Target_num_containers: 2}}}); err != nil {
          -   log.Println(err)
          -}
          -
          -
          PATCH /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -Content-Type: application/json
          -
          -{
          -    "services": [
          -        {
          -            "name": "hello-word",
          -            "image": "tutum/hello-world",
          -            "target_num_containers": 3,
          -            "linked_to_service": [
          -                {
          -                    "to_service": "database",
          -                    "name": "DB"
          -                }
          -            ]
          -        },
          -        {
          -            "name": "database",
          -            "image": "tutum/mysql"
          -        }
          -    ]
          -}
          -
          -
          docker-cloud stack update -f docker-compose.yml 46aca402
          -
          - -

          Updates the details of every service in the stack.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          PATCH /api/app/v1/[optional_namespace/]stack/(uuid)/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the stack to update
          - -

          JSON Parameters

          - - - - - - - - - - - -
          ParameterDescription
          services(optional) List of services belonging to the stack. Each service accepts the same parameters as a Update an existing service operation (default: []) plus the ability to refer “links” and “volumes-from” by the name of another service in the stack (see example).
          - -

          Stop a stack

          -
          import dockercloud
          -
          -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816")
          -stack.stop()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -if err = stack.Stop(); err != nil {
          -   log.Println(err)
          -}
          -
          -
          POST /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/stop/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud stack stop 46aca402-2109-4a70-a378-760cfed43816
          -
          - -

          Stops the services in the stack.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/app/v1/[optional_namespace/]stack/(uuid)/stop/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the stack to stop
          - -

          Start a stack

          -
          import dockercloud
          -
          -stack = dockercloud.Stack.fetch()
          -stack.start()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -if err = stack.Start(); err != nil {
          -   log.Println(err)
          -}
          -
          -
          POST /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/start/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud stack start 46aca402
          -
          - -

          Starts the services in the stack.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/app/v1/[optional_namespace/]stack/(uuid)/start/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the stack to start
          - -

          Redeploy a stack

          -
          import dockercloud
          -
          -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816")
          -stack.redeploy()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: true}) to reuse the existing volumes
          -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}) to not reuse the existing volumes
          -if err = stack.Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}); err != nil {
          -   log.Println(err)
          -}
          -
          -
          POST /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/redeploy/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud stack redeploy 46aca402
          -
          - -

          Redeploys all the services in the stack.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/app/v1/[optional_namespace/]stack/(uuid)/redeploy/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the stack to redeploy
          - -

          Query Parameters

          - - - - - - - - - - - -
          ParameterDescription
          reuse_volumesWheather to reuse container volumes for this redeploy operation or not (default: true).
          - -

          Terminate a stack

          -
          import dockercloud
          -
          -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816")
          -stack.delete()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -if err = stack.Terminate(); err != nil {
          -   log.Println(err)
          -}
          -
          -
          DELETE /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud stack terminate 46aca402
          -
          - -

          Terminate all the services in a the stack and the stack itself.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          DELETE /api/app/v1/[optional_namespace/]stack/(uuid)/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the stack to terminate
          - -
          -
          -
          -
          - - diff --git a/apidocs/docker-cloud/includes/tag.html b/apidocs/docker-cloud/includes/tag.html deleted file mode 100644 index fd457a5d81..0000000000 --- a/apidocs/docker-cloud/includes/tag.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - API Documentation - - - - - - - - - - - - - NAV - - - -
          - -
          -
          -
          -
          -
          -
          -

          Tags

          - -

          Tag

          - -
          -

          Example

          -
          -
          {
          -    "name": "byon=false",
          -    "origin": "tutum"
          -}
          -
          - -

          Tags are used to target the deployment of services to a specific set of nodes. Learn more

          - -

          Attributes

          - - - - - - - - - - - - - - - -
          AttributeDescription
          nameName of the tag
          originPossible values: user, tutum
          - -

          List all node tags

          -
          GET /api/infra/v1/tag/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud tag ls 7eaf7fff-882c
          -
          - -

          Lists all tags used by all nodes. Returns a list of Tag objects.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/infra/v1/tag/

          - -

          Query Parameters

          - - - - - - - - - - - - - - - -
          ParameterDescription
          nameFilter by name
          originFilter by origin. Possible values: user, tutum
          - -
          -
          -
          -
          - - diff --git a/apidocs/docker-cloud/includes/triggers.html b/apidocs/docker-cloud/includes/triggers.html deleted file mode 100644 index 1cc7e50086..0000000000 --- a/apidocs/docker-cloud/includes/triggers.html +++ /dev/null @@ -1,382 +0,0 @@ - - - - - - - API Documentation - - - - - - - - - - - - - NAV - - - -
          - -
          -
          -
          -
          -
          -
          -

          Triggers

          - -

          Service triggers

          - -
          -

          Example

          -
          -
          {
          -  "url": "/api/app/v1/user_namespace/service/82d4a246-52d8-468d-903d-9da9ef05ff28/trigger/0224815a-c156-44e4-92d7-997c69354438/call/",
          -  "operation": "REDEPLOY",
          -  "name": "docker_trigger",
          -  "resource_uri": "/api/app/v1/user_namespace/service/82d4a246-52d8-468d-903d-9da9ef05ff28/trigger/0224815a-c156-44e4-92d7-997c69354438/"
          -}
          -
          - -

          Triggers are URLs that will start a redeploy of the service whenever a POST request is sent to them. They require no authorization headers, so they should be treated as access tokens. Triggers can be revoked if they are leaked or no longer used for security purposes. See Triggers for more information.

          - -

          This is a namespaced endpoint.

          - -

          Attributes

          - - - - - - - - - - - - - - - - - - - - - - - -
          AttributeDescription
          urlAddress to be used to call the trigger with a POST request
          nameA user provided name for the trigger
          operationThe operation that the trigger call performs (see table Operations below)
          resource_uriA unique API endpoint that represents the trigger
          - -

          Operations

          - - - - - - - - - - - - - - - -
          OperationDescription
          REDEPLOYPerforms a redeploy service operation.
          SCALEUPPerforms a scale up service operation.
          - -

          List all triggers

          -
          import dockercloud
          -
          -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826')
          -trigger = dockercloud.Trigger.fetch(service)
          -trigger.list()
          -
          -
          GET /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826")
          -
          -    if err != nil {
          -        log.Println(err)
          -    }
          -
          -trigger, err := service.ListTriggers()
          -
          -  if err != nil {
          -    log.Println(err)
          -  }
          -
          -    log.Println(trigger)
          -
          -
          docker-cloud trigger list 61a29874-9134-48f9-b460-f37d4bec4826
          -
          - -

          Lists all current triggers the service has associated to. Returns a list of Service Trigger objects.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/app/v1/[optional_namespace/]service/(uuid)/trigger/

          - -

          Path Parameters

          - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the service the triggers are associated to
          - -

          Create a new trigger

          -
          import dockercloud
          -
          -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826')
          -trigger = dockercloud.Trigger.fetch(service)
          -trigger.add(name="mytrigger_name", operation="REDEPLOY")
          -trigger.save()
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -trigger, err := service.CreateTrigger(dockercloud.TriggerCreateRequest{Name: "test-trigger", Operation: "REDEPLOY"})
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(trigger)
          -
          -
          POST /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -Content-Type: application/json
          -
          -{"name": "mytrigger_name", "operation": "REDEPLOY"}
          -
          -
          docker-cloud trigger create --name mytrigger_name --operation REDEPLOY 61a29874-9134-48f9-b460-f37d4bec4826
          -
          - -

          Creates a new service trigger.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/app/v1/[optional_namespace/]service/(uuid)/trigger/

          - -

          JSON Parameters

          - - - - - - - - - - - - - - - -
          ParameterDescription
          name(optional) A user provided name for the trigger
          operation(optional) The operation to be performed by the trigger (default: “REDEPLOY”)
          - -

          Get an existing trigger

          -
          import dockercloud
          -
          -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826')
          -trigger = dockercloud.Trigger.fetch(service)
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -trigger, err := service.GetTrigger("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -log.Println(trigger)
          -
          -
          GET /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          - -

          Get all the details of an specific trigger

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          GET /api/app/v1/[optional_namespace/]service/(uuid)/trigger/(trigger_uuid)/

          - -

          Path Parameters

          - - - - - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the service the triggers are associated to
          trigger_uuidThe UUID of the trigger to retrieve
          - -

          Delete a trigger

          -
          import dockercloud
          -
          -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826')
          -trigger = dockercloud.Trigger.fetch(service)
          -trigger.delete("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -service.DeleteTrigger("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -
          DELETE /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
          -Host: cloud.docker.com
          -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
          -Accept: application/json
          -
          -
          docker-cloud trigger rm 61a29874-9134-48f9-b460-f37d4bec4826 7eaf7fff-882c-4f3d-9a8f-a22317ac00ce
          -
          - -

          Deletes specific trigger. It will be no longer available to be called.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          DELETE /api/app/v1/[optional_namespace/]service/(uuid)/trigger/(trigger_uuid)/

          - -

          Path Parameters

          - - - - - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the associated service
          trigger_uuidThe UUID of the trigger to delete
          - -

          Call a trigger

          -
          import dockercloud
          -
          -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826')
          -trigger = dockercloud.Trigger.fetch(service)
          -trigger.call("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -
          import "github.com/docker/go-dockercloud/dockercloud"
          -
          -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826")
          -
          -if err != nil {
          -  log.Println(err)
          -}
          -
          -service.CallTrigger("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
          -
          -
          POST /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/call/ HTTP/1.1
          -Host: cloud.docker.com
          -Accept: application/json
          -
          - -

          Executes the trigger. For SCALEUP triggers, the number of containers to scale up can be passed at the end of the trigger call url, for example /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/call/3/.

          - -

          Endpoint Type

          - -

          Available in Docker Cloud’s REST API

          - -

          HTTP Request

          - -

          POST /api/app/v1/[optional_namespace/]service/(uuid)/trigger/(trigger_uuid)/call/

          - -

          Path Parameters

          - - - - - - - - - - - - - - - -
          ParameterDescription
          uuidThe UUID of the associated service
          trigger_uuidThe UUID of the trigger to call
          - -
          -
          -
          -
          - - diff --git a/apidocs/docker-cloud/index.html b/apidocs/docker-cloud/index.html deleted file mode 100644 index e3369babcf..0000000000 --- a/apidocs/docker-cloud/index.html +++ /dev/null @@ -1,6579 +0,0 @@ - - - - - - - Docker Cloud API reference - - - - - - - - - - - - - - NAV - - - -
          - -
          - http - go - python - CLI -
          - -
            -
            -
            -
            -
            -
            -
            -

            Introduction

            - -

            Docker Cloud currently offers a HTTP REST API and a Websocket Stream API which are used by both the Web UI and the CLI. This API documentation contains all API operations currently supported in the platform and provides examples of how to execute them using our Command Line Interface (CLI), Python SDK and Go SDK.

            - -

            Authentication

            - -

            In order to be able to make requests to the Docker Cloud API, you should first obtain an ApiKey for your account. For this, log into Docker Cloud, click on the menu on the upper right corner of the screen, select Account info and then select API keys.

            - -

            REST API

            -
            import dockercloud
            -dockercloud.user = "username"
            -dockercloud.apikey = "apikey"
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -dockercloud.User = "username"
            -dockercloud.ApiKey = "apikey"
            -
            -
            GET /api/app/v1/service/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            export DOCKERCLOUD_USER=username
            -export DOCKERCLOUD_APIKEY=apikey
            -
            - -
            -

            Make sure to replace username with your username and apikey with your API key.

            -
            - -

            The Docker Cloud REST API is reachable through the following hostname:

            - -

            https://cloud.docker.com/

            - -

            All requests should be sent to this endpoint using Basic authentication using your API key as password:

            - -

            Authorization: Basic dXNlcm5hbWU6YXBpa2V5

            - -

            HTTP responses are given in JSON format, so the following Accept header is required for every API call:

            - -

            Accept: application/json

            - -

            Namespaced endpoints

            - -

            Endpoints that are labeled as “namespaced” allow the users to operate over -different namespaces, for example over an individual user namespace, or the -namespace of an organization the user is a member of. A namespace identifies the -owner of the resource.

            - -

            The namespace is optional. If left blank, it defaults to the authenticated user -in the request. The namespace is set before the resource in the URL schema: -https://cloud.docker.com/api/<subsystem>/<version>/(optional_namespace/)<resource>/

            - -

            Examples:

            - -
              -
            • The user exampleuser wants to operate on the node cluster list endpoint in their own namespace. They can use either of the following urls: - -
                -
              • https://cloud.docker.com/api/infra/v1/nodecluster/ (namespace omitted, so will use the user authenticated in the request)
              • -
              • https://cloud.docker.com/api/infra/v1/exampleuser/nodecluster/
              • -
            • -
            • The user wants to operate on the node cluster list endpoint in an organization called exampleorg (which they have permission to see): - -
                -
              • https://cloud.docker.com/api/infra/v1/exampleorg/nodecluster/
              • -
            • -
            - -

            Namespaced endpoints in the docker-cloud CLI

            - -

            If you are using namespaces with the docker-cloud CLI, set them by changing -the value of the DOCKERCLOUD_NAMESPACE environment variable. You can either -set this globally, or specify it before each CLI command. To learn more, see the -Docker Cloud CLI README.

            - -

            Stream API

            -
            import websocket
            -import base64
            -
            -header = "Authorization: Basic %s" % base64.b64encode("%s:%s" % (username, password))
            -ws = websocket.WebSocketApp('wss://ws.cloud.docker.com/v1/events', header=[header])
            -
            -
            import "github.com/gorilla/websocket"
            -import "encoding/base64"
            -
            -var StreamUrl = "wss://ws.cloud.docker.com:443/v1/events"
            -
            -sEnc := base64.StdEncoding.EncodeToString([]byte(User + ":" + ApiKey))
            -header := http.Header{}
            -header.Add("Authorization", fmt.Sprintf("Basic %s", sEnc))
            -
            -var Dialer websocket.Dialer
            -ws, _, err := Dialer.Dial(url, header)
            -if err != nil {
            -    log.Println(err)
            -}
            -
            -
            GET /api/audit/v1/events HTTP/1.1
            -Host: ws.cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Connection: Upgrade
            -Upgrade: websocket
            -
            -
            export DOCKERCLOUD_USER=username
            -export DOCKERCLOUD_APIKEY=apikey
            -
            - -
            -

            Make sure to replace username with your username and apikey with your API key.

            -
            - -

            The Docker Cloud Stream API is reachable through the following hostname:

            - -

            wss://ws.cloud.docker.com/

            - -

            The Stream API requires the same authentication mechanism as the REST API:

            - -

            Authorization: Basic dXNlcm5hbWU6YXBpa2V5

            - -

            API roles

            - -
            -

            The CLI and the SDKs will detect this environment variable and automatically use it

            -
            - -

            If you give an API role to a container, the environment variable DOCKERCLOUD_AUTH inside the container will have the contents of the Authorization header that you can use to authenticate against the REST or Stream APIs:

            - -

            curl -H "Authorization: $DOCKERCLOUD_AUTH" https://cloud.docker.com/api/app/v1/service/

            - -

            Actions

            - -

            Action

            - -
            -

            Example

            -
            -
            {
            -    "action": "Cluster Create",
            -    "end_date": "Wed, 17 Sep 2014 08:26:22 +0000",
            -    "ip": "56.78.90.12",
            -    "is_user_action": true,
            -    "can_be_canceled": false,
            -    "location": "New York, USA",
            -    "method": "POST",
            -    "object": "/api/infra/v1/user_namespace/cluster/eea638f4-b77a-4183-b241-22dbd7866f22/",
            -    "path": "/api/infra/v1/user_namespace/cluster/",
            -    "resource_uri": "/api/audit/v1/action/6246c558-976c-4df6-ba60-eb1a344a17af/",
            -    "start_date": "Wed, 17 Sep 2014 08:26:22 +0000",
            -    "state": "Success",
            -    "user": "user_namespace",
            -    "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.78.2 (KHTML, like Gecko) Version/7.0.6 Safari/537.78.2",
            -    "uuid": "6246c558-976c-4df6-ba60-eb1a344a17af"
            -}
            -
            - -

            An action represents an API call by a user. Details of the API call such as timestamp, origin IP address, and user agent are logged in the action object.

            - -

            Simple API calls that do not require asynchronous execution will return immediately with the appropriate HTTP error code and an action object will be created either in Success or Failed states. API calls that do require asynchronous execution will return HTTP code 202 Accepted immediately and create an action object in In progress state, which will change to Success or Failed state depending on the outcome of the operation being performed. In both cases the response will include a X-DockerCloud-Action-URI header with the resource URI of the created action.

            - -

            Attributes

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            resource_uriA unique API endpoint that represents the action
            uuidA unique identifier for the action generated automatically on creation
            objectThe API object (resource URI) to which the action applies to
            actionName of the operation performed/being performed
            methodHTTP method used to access the API
            pathHTTP path of the API accessed
            userThe user authenticated in the request that created the action
            user_agentThe user agent provided by the client when accessing the API endpoint
            start_dateDate and time when the API call was performed and the operation started processing
            end_dateDate and time when the API call finished processing
            stateState of the operation (see table below)
            ipIP address of the user that performed the API call
            locationGeographic location of the IP address of the user that performed the API call
            is_user_actionIf the action has been triggered by the user
            can_be_canceledIf the action can be canceled by the user in the middle of its execution
            can_be_retriedIf the action can be retried by the user
            - -

            Action states

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            StateDescription
            PendingThe action needed asynchronous execution and it is waiting for an in progress action
            In progressThe action needed asynchronous execution and is being performed
            CancelingThe action is being canceled by user request
            CanceledThe action has been canceled
            SuccessThe action was executed successfully
            FailedThere was an issue when the action was being performed. Check the logs for more information.
            - -

            List all actions

            -
            import dockercloud
            -
            -actions = dockercloud.Action.list()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -actionList, err := dockercloud.ListActions()
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(actionList)
            -
            -
            GET /api/audit/v1/action/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud action ls
            -
            - -

            Lists all actions in chronological order. Returns a list of Action objects.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/audit/v1/action/

            - -

            Query Parameters

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            ParameterDescription
            uuidFilter by UUID.
            stateFilter by state. Possible values: In progress, Success, Failed
            start_dateFilter by start date. Valid filtering values are start_date__gte (after or on the date supplied) and start_date__lte (before or on the date supplied)
            end_dateFilter by end date. Valid filtering values are end_date__gte (after or on the date supplied) and end_date__lte (before or on the date supplied)
            objectFilter by resource URI of the related object. This filter can only be combined with ‘include_related’ filter
            include_relatedThere is a parent-child relationship between Docker Cloud objects, described in table Relationships between Docker Cloud objects. If set to 'true’, will include the actions of the related objects to the object specified in “object” filter parameter. Possible values: 'true’ or 'false’
            - -

            Relationships between Docker Cloud objects

            - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            ObjectRelationships
            ContainerContainer, service, stack (if any)
            ServiceAll containers in the service, service, stack (if any)
            StackAll services in the stack, all containers in every service in the stack, stack
            NodeNode, node cluster (if any)
            Node clusterAll nodes in the cluster, node cluster
            - -

            Get an action by UUID

            -
            import dockercloud
            -
            -action = dockercloud.Action.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -action, err := dockercloud.GetAction("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(action)
            -
            -
            GET /api/audit/v1/action/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud action inspect 7eaf7fff
            -
            - -

            Get all the details of an specific action

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/audit/v1/action/(uuid)/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the action to retrieve
            - -

            Get the logs of an action

            - -
            -

            Example log line

            -
            -
            {
            -    "type": "log",
            -    "log": "Log line from the action",
            -    "timestamp": 1433779324
            -}
            -
            -
            import dockercloud
            -
            -def log_handler(message):
            -    print message
            -
            -action = dockercloud.Action.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -action.logs(tail=300, follow=True, log_handler=log_handler)
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -c := make(chan dockercloud.Logs)
            -action, err := dockercloud.GetAction("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -    log.Println(err)
            -}
            -
            -go action.GetLogs(c)
            -
            -for {
            -    log.Println(<-c)
            -}
            -
            -
            GET /api/audit/v1/action/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/logs/ HTTP/1.1
            -Host: ws.cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Connection: Upgrade
            -Upgrade: websocket
            -
            -
            docker-cloud action logs 7eaf7fff-882c-4f3d-9a8f-a22317ac00ce
            -
            - -

            Get the logs of the specified action.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s STREAM API

            - -

            HTTP Request

            - -

            GET /api/audit/v1/action/(uuid)/logs/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the action to retrieve logs
            - -

            Query Parameters

            - - - - - - - - - - - - - - - -
            ParameterDescription
            tailNumber of lines to show from the end of the logs (default: 300)
            followWhether to stream logs or close the connection immediately (default: true)
            - -

            Cancel an action

            -
            POST /api/audit/v1/action/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/cancel/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -action, err := dockercloud.GetAction("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -action, err = action.Cancel()
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(action)
            -
            - -

            Cancels an action in Pending or In progress state.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/audit/v1/action/(uuid)/cancel/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the action to cancel
            - -

            Retry an action

            -
            import dockercloud
            -
            -def log_handler(message):
            -  print message
            -
            -action = dockercloud.Action.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -action.logs(tail=300, follow=True, log_handler=log_handler)
            -
            -
            POST /api/audit/v1/action/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/retry/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -action, err := dockercloud.GetAction("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -action, err = action.Retry()
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(action)
            -
            -
            docker-cloud action logs 7eaf7fff-882c-4f3d-9a8f-a22317ac00ce
            -
            - -

            Retries an action in Success, Failed or Canceled state.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/audit/v1/action/(uuid)/retry/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the action to retry
            - -

            Providers

            - -

            Provider

            - -
            -

            Example

            -
            -
            {
            -    "available": true,
            -    "label": "Digital Ocean",
            -    "name": "digitalocean",
            -    "regions": [
            -        "/api/infra/v1/region/digitalocean/ams1/",
            -        "/api/infra/v1/region/digitalocean/ams2/",
            -        "/api/infra/v1/region/digitalocean/ams3/",
            -        "/api/infra/v1/region/digitalocean/lon1/",
            -        "/api/infra/v1/region/digitalocean/nyc1/",
            -        "/api/infra/v1/region/digitalocean/nyc2/",
            -        "/api/infra/v1/region/digitalocean/nyc3/",
            -        "/api/infra/v1/region/digitalocean/sfo1/",
            -        "/api/infra/v1/region/digitalocean/sgp1/"
            -    ],
            -    "resource_uri": "/api/infra/v1/provider/digitalocean/"
            -}
            -
            - -

            A provider is a representation of a cloud provider supported by Docker Cloud. Providers have one or more regions where nodes are deployed.

            - -

            Attributes

            - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            resource_uriA unique API endpoint that represents the provider
            nameA unique identifier for the provider
            labelA user-friendly name for the provider
            regionsA list of resource URIs of the regions available in this provider
            availableWhether the provider is currently available for new node deployments
            - -

            List all providers

            -
            import dockercloud
            -
            -providers = dockercloud.Provider.list()
            -
            -
            GET /api/infra/v1/provider/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -providerList, err := dockercloud.ListProviders()
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(providerList)
            -
            -
            docker-cloud nodecluster provider
            -
            - -

            Lists all supported cloud providers. Returns a list of Provider objects.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/infra/v1/provider/

            - -

            Query Parameters

            - - - - - - - - - - - -
            ParameterDescription
            nameFilter by provider name
            - -

            Get an individual provider

            -
            import dockercloud
            -
            -provider = dockercloud.Provider.fetch("digitalocean")
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -provider, err := dockercloud.GetProvider("digitalocean")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(provider)
            -
            -
            GET /api/infra/v1/provider/digitalocean/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            - -

            Get all the details of a specific provider

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/infra/v1/provider/(name)/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            nameThe name of the provider to retrieve
            - -

            Regions

            - -

            Region

            - -
            -

            Example

            -
            -
            {
            -    "availability_zones": [],
            -    "available": true,
            -    "label": "Amsterdam 2",
            -    "name": "ams2",
            -    "node_types": [
            -        "/api/infra/v1/nodetype/digitalocean/1gb/",
            -        "/api/infra/v1/nodetype/digitalocean/2gb/",
            -        "/api/infra/v1/nodetype/digitalocean/4gb/",
            -        "/api/infra/v1/nodetype/digitalocean/8gb/",
            -        "/api/infra/v1/nodetype/digitalocean/16gb/",
            -        "/api/infra/v1/nodetype/digitalocean/32gb/",
            -        "/api/infra/v1/nodetype/digitalocean/48gb/",
            -        "/api/infra/v1/nodetype/digitalocean/64gb/"
            -    ],
            -    "provider": "/api/infra/v1/provider/digitalocean/",
            -    "resource_uri": "/api/infra/v1/region/digitalocean/ams2/"
            -}
            -
            - -

            A region is a representation of an entire or a subset of a data center of a cloud provider. It can contain availability zones (depending on the provider) and one or more node types.

            - -

            Attributes

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            resource_uriA unique API endpoint that represents the region
            nameAn identifier for the region
            labelA user-friendly name for the region
            node_typesA list of resource URIs of the node types available in the region
            availability_zonesA list of resource URIs of the availability zones available in the region
            providerThe resource URI of the provider of the region
            availableWhether the region is currently available for new node deployments
            - -

            List all regions

            -
            import dockercloud
            -
            -regions = dockercloud.Region.list()
            -
            -
            GET /api/infra/v1/region/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -regionList, err := dockercloud.ListRegions()
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(regionList)
            -
            -
            docker-cloud nodecluster region
            -
            - -

            Lists all regions of all supported cloud providers. Returns a list of Region objects.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/infra/v1/region/

            - -

            Query Parameters

            - - - - - - - - - - - - - - - -
            ParameterDescription
            nameFilter by region name
            providerFilter by resource URI of the target provider
            - -

            Get an individual region

            -
            import dockercloud
            -
            -region = dockercloud.Region.fetch("digitalocean/lon1")
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -region, err := dockercloud.GetRegion("digitalocean","lon1")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(region)
            -
            -
            GET /api/infra/v1/region/digitalocean/lon1/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            - -

            Get all the details of a specific region

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/infra/v1/region/(provider.name)/(name)/

            - -

            Path Parameters

            - - - - - - - - - - - - - - - -
            ParameterDescription
            nameThe name of the region to retrieve
            provider.nameThe name of the provider of the region
            - -

            Availability Zones

            - -

            Availability Zone

            - -
            -

            Example

            -
            -
            {
            -    "available": true,
            -    "name": "ap-northeast-1a",
            -    "region": "/api/infra/v1/region/az/ap-northeast-1/",
            -    "resource_uri": "/api/infra/v1/az/aws/ap-northeast-1/ap-northeast-1a/"
            -}
            -
            - -

            An Availability Zone is an isolated location inside a region. Providers that support availability zones: AWS

            - -

            Attributes

            - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            availableWhether the availability zone is currently available for new node deployments
            nameAn identifier for the availability zone
            regionThe resource URI of the region where the availability zone is allocated
            resource_uriA unique API endpoint that represents the zone
            - -

            List all availability zones

            -
            import dockercloud
            -
            -az = dockercloud.AZ.list()
            -
            -
            GET /api/infra/v1/az/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -az, err := dockercloud.ListAZ()
            -if err != nil {
            -    log.Println(err)
            -}
            -
            -log.Println(az)
            -
            -
            docker-cloud nodecluster az
            -
            - -

            Lists all availability zones from all regions of all supported cloud providers. Returns a list of Availability Zone objects.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/infra/v1/az/

            - -

            Query Parameters

            - - - - - - - - - - - - - - - -
            ParameterDescription
            nameFilter by availability zone name
            regionFilter by resource URI of the target region
            - -

            Get an individual availability zone

            -
            import dockercloud
            -
            -az = dockercloud.AZ.fetch("aws/sa-east-1/sa-east-1a")
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -az, err := dockercloud.GetAZ("aws/sa-east-1/sa-east-1a")
            -if err != nil {
            -    log.Println(err)
            -}
            -
            -log.Println(az)
            -
            -
            GET /api/infra/v1/az/aws/sa-east-1/sa-east-1a/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            - -

            Get all the details of a specific availability zone

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/infra/v1/az/(provider.name)/(region.name)/(name)/

            - -

            Path Parameters

            - - - - - - - - - - - - - - - - - - - -
            ParameterDescription
            nameThe name of the availability zone to retrieve
            providerThe name of the provider
            regionThe name of the region
            - -

            Node Types

            - -

            Node Type

            - -
            -

            Example

            -
            -
            {
            -    "availability_zones": [],
            -    "available": true,
            -    "label": "1GB",
            -    "name": "1gb",
            -    "provider": "/api/infra/v1/provider/digitalocean/",
            -    "regions": [
            -        "/api/infra/v1/region/digitalocean/ams1/",
            -        "/api/infra/v1/region/digitalocean/sfo1/",
            -        "/api/infra/v1/region/digitalocean/nyc2/",
            -        "/api/infra/v1/region/digitalocean/ams2/",
            -        "/api/infra/v1/region/digitalocean/sgp1/",
            -        "/api/infra/v1/region/digitalocean/lon1/",
            -        "/api/infra/v1/region/digitalocean/nyc3/",
            -        "/api/infra/v1/region/digitalocean/nyc1/"
            -    ],
            -    "resource_uri": "/api/infra/v1/nodetype/digitalocean/1gb/"
            -}
            -
            - -

            A node type is a representation of an instance size supported by a certain cloud provider in a certain region and/or availability zone.

            - -

            Attributes

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            resource_uriA unique API endpoint that represents the node type
            nameAn identifier for the node type
            labelA user-friendly name for the node type
            regionsA list of resource URIs of the regions to which this node type can be deployed to
            availability_zonesA list of resource URIs of the availability zones to which this node type can be deployed to
            providerThe resource URI of the provider of the node type
            availableWhether the node type is currently available for new node deployments
            - -

            List all node types

            -
            import dockercloud
            -
            -nodetypes = dockercloud.NodeType.list()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -nodetypeList, err := dockercloud.ListNodeTypes()
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(nodetypeList)
            -
            -
            GET /api/infra/v1/nodetype/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud nodecluster nodetype
            -
            - -

            Lists all node types of all supported cloud providers. Returns a list of NodeType objects.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/infra/v1/nodetype/

            - -

            Query Parameters

            - - - - - - - - - - - - - - - - - - - -
            ParameterDescription
            nameFilter by node type name
            regionsFilter by resource URI of the target regions
            availability_zonesFilter by resource URI of the target availability zones
            - -

            Get an individual node type

            -
            import dockercloud
            -
            -nodetype = dockercloud.NodeType.fetch("digitalocean/1gb")
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -nodetype, err := dockercloud.GetNodeType("digitalocean","1gb")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(nodetype)
            -
            -
            GET /api/infra/v1/nodetype/digitalocean/1gb/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            - -

            Get all the details of a specific node type

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/infra/v1/nodetype/(provider.name)/(name)/

            - -

            Path Parameters

            - - - - - - - - - - - - - - - -
            ParameterDescription
            nameThe name of the node type to retrieve
            provider.nameThe name of the provider of the node type
            - -

            Node Clusters

            - -

            Node Cluster

            - -
            -

            Example

            -
            -
            {
            -    "current_num_nodes": 1,
            -    "deployed_datetime": "Tue, 16 Sep 2014 17:01:15 +0000",
            -    "destroyed_datetime": null,
            -    "disk": 60,
            -    "nickname": "my test cluster",
            -    "name": "TestCluster",
            -    "node_type": "/api/infra/v1/nodetype/aws/t2.micro/",
            -    "nodes": [
            -        "/api/infra/v1/user_namespace/node/75d20367-0948-4f10-8ba4-ffb4d16ed3c6/"
            -    ],
            -    "region": "/api/infra/v1/region/aws/us-east-1/",
            -    "resource_uri": "/api/infra/v1/user_namespace/nodecluster/5516df0b-721e-4470-b350-741ff22e63a0/",
            -    "state": "Deployed",
            -    "tags": [
            -        {"name": "tag_one"},
            -        {"name": "tag-two"},
            -        {"name": "tagthree3"}
            -    ],
            -    "target_num_nodes": 2,
            -    "uuid": "5516df0b-721e-4470-b350-741ff22e63a0",
            -    "provider_options": {
            -        "vpc": {
            -            "id": "vpc-aa1c70d4",
            -            "subnets": ["subnet-aaa7d94f", "subnet-aa15fa64"],
            -            "security_groups": ["sg-aa1c70d4"]
            -        },
            -        "iam": {
            -            "instance_profile_name": "my_instance_profile"
            -        }
            -    }
            -}
            -
            - -

            A node cluster is a group of nodes that share the same provider, region and/or availability zone, and node type. They are on the same private network.

            - -

            This is a namespaced endpoint.

            - -

            Attributes

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            uuidA unique identifier for the node cluster generated automatically on creation
            resource_uriA unique API endpoint that represents the node cluster
            nameA user provided name for the node cluster
            stateThe state of the node cluster. See the below table for a list of possible states.
            node_typeThe resource URI of the node type used for the node cluster
            diskThe size of the disk where images and containers are stored (in GB)
            nodesA list of resource URIs of the Node objects on the node cluster
            regionThe resource URI of the Region object where the node cluster is deployed
            target_num_nodesThe desired number of nodes for the node cluster
            current_num_nodesThe actual number of nodes in the node cluster. This may differ from target_num_nodes if the node cluster is being deployed or scaled
            deployed_datetimeThe date and time when this node cluster was deployed
            destroyed_datetimeThe date and time when this node cluster was terminated (if applicable)
            tagsList of tags to identify the node cluster nodes when deploying services (see Tags for more information)
            provider_optionsProvider-specific extra options for the deployment of the node (see Provider options table below for more information)
            nicknameA user-friendly name for the node cluster (name by default)
            - -

            Node Cluster states

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            StateDescription
            InitThe node cluster has been created and has no deployed containers yet. Possible actions in this state: deploy, terminate.
            DeployingAll nodes in the cluster are either deployed or being deployed. No actions allowed in this state.
            DeployedAll nodes in the cluster are deployed and provisioned. Possible actions in this state: terminate.
            Partly deployedOne or more nodes of the cluster are deployed and running. Possible actions in this state: terminate.
            ScalingThe cluster is either deploying new nodes or terminating existing ones responding to a scaling request. No actions allowed in this state.
            TerminatingAll nodes in the cluster are either being terminated or already terminated. No actions allowed in this state.
            TerminatedThe node cluster and all its nodes have been terminated. No actions allowed in this state.
            Empty clusterThere are no nodes deployed in this cluster. Possible actions in this state: terminate.
            - -

            Provider options

            - -

            You can specify the following options when using the Amazon Web Services provider:

            - -
              -
            • vpc: VPC-related options (optional) - -
                -
              • id: AWS VPC identifier of the target VPC where the nodes of the cluster will be deployed (required)
              • -
              • subnets: a list of target subnet identifiers inside selected VPC. If you specify more than one subnet, Docker Cloud will balance among all of them following a high-availability schema (optional)
              • -
              • security_groups: the security group that will be applied to every node of the cluster (optional)
              • -
            • -
            • iam: IAM-related options (optional) - -
                -
              • instance_profile_name: name of the instance profile (container for instance an IAM role) to attach to every node of the cluster (required)
              • -
            • -
            - -

            List all node clusters

            -
            import dockercloud
            -
            -nodeclusters = dockercloud.NodeCluster.list()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -nodeclusters, err := dockercloud.ListNodeClusters()
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(nodeclusters)
            -
            -
            GET /api/infra/v1/nodecluster/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud nodecluster ls
            -
            - -

            Lists all current and recently terminated node clusters. Returns a list of NodeCluster objects.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/infra/v1/[optional_namespace/]nodecluster/

            - -

            Query Parameters

            - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            ParameterDescription
            uuidFilter by UUID
            stateFilter by state. Possible values: Init, Deploying, Deployed, Partly deployed, Scaling, Terminating, Terminated, Empty cluster
            nameFilter by node cluster name
            regionFilter by resource URI of the target region
            node_typeFilter by resource URI of the target node type
            - -

            Create a new node cluster

            -
            import dockercloud
            -
            -region = dockercloud.Region.fetch("digitalocean/lon1")
            -node_type = dockercloud.NodeType.fetch("digitalocean/1gb")
            -nodecluster = dockercloud.NodeCluster.create(name="my_cluster", node_type=node_type, region=region, disk=60)
            -nodecluster.save()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -nodecluster, err := dockercloud.CreateNodeCluster(dockercloud.NodeCreateRequest{Name: "my_cluster", Region: "/api/infra/v1/region/digitalocean/lon1/", NodeType: "/api/infra/v1/nodetype/digitalocean/1gb/", Target_num_nodes: 2})
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(nodecluster)
            -
            -
            POST /api/infra/v1/nodecluster/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -Content-Type: application/json
            -
            -{"name": "my_cluster", "region": "/api/infra/v1/region/digitalocean/lon1/", "node_type": "/api/infra/v1/nodetype/digitalocean/1gb/", "disk": 60}
            -
            -
            docker-cloud nodecluster create my_cluster digitalocean lon1 1gb
            -
            - -

            Creates a new node cluster without deploying it.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/infra/v1/[optional_namespace/]nodecluster/

            - -

            JSON Parameters

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            ParameterDescription
            name(required) A user provided name for the node cluster
            node_type(required) The resource URI of the node type to be used for the node cluster
            region(required) The resource URI of the region where the node cluster is to be deployed
            disk(optional) The size of the volume to create where images and containers will be stored, in GB (default: 60). Not available for Digital Ocean. To create Softlayer nodes you must select one of the following sizes (in GBs): 10, 20, 25, 30, 40, 50, 75, 100, 125, 150, 175, 200, 250, 300, 350, 400, 500, 750, 1000, 1500 or 2000
            nickname(optional) A user-friendly name for the node cluster (name by default)
            target_num_nodes(optional) The desired number of nodes for the node cluster (default: 1)
            tags(optional) List of tags of the node cluster to be used when deploying services see Tags for more information) (default: [])
            provider_optionsProvider-specific extra options for the deployment of the node (see table Provider options above for more information)
            - -

            Get an existing node cluster

            -
            import dockercloud
            -
            -service = dockercloud.NodeCluster.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -nodecluster, err := dockercloud.GetNodeCluster("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(nodecluster)
            -
            -
            GET /api/infra/v1/nodecluster/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud nodecluster inspect 7eaf7fff
            -
            - -

            Get all the details of an specific node cluster

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/infra/v1/[optional_namespace/]nodecluster/(uuid)/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the node cluster to retrieve
            - -

            Deploy a node cluster

            -
            import dockercloud
            -
            -nodecluster = dockercloud.NodeCluster.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -nodecluster.deploy()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -nodecluster, err := dockercloud.GetNodeCluster("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -if err = nodecluster.Deploy(); err != nil {
            -   log.Println(err)
            -}
            -
            -
            POST /api/infra/v1/nodecluster/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/deploy/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            - -

            Deploys and provisions a recently created node cluster in the specified region and cloud provider.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/infra/v1/[optional_namespace/]nodecluster/(uuid)/deploy/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the node cluster to deploy
            - -

            Update an existing node cluster

            -
            import dockercloud
            -
            -nodecluster = dockercloud.NodeCluster.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -nodecluster.target_num_nodes = 3
            -nodecluster.tags.add("tag-1")
            -nodecluster.save()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -nodecluster, err := dockercloud.GetNodeCluster("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -if err = nodecluster.Update(dockercloud.NodeCreateRequest{Target_num_nodes: 4}); err != nil {
            -   log.Println(err)
            -}
            -
            -
            PATCH /api/infra/v1/nodecluster/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -Content-Type: application/json
            -
            -{"target_num_nodes": 3, "tags": [{"name": "tag-1"}]}
            -
            -
            docker-cloud nodecluster scale 7eaf7fff 3
            -docker-cloud tag add -t tag-1 7eaf7fff
            -docker-cloud tag set -t tag-2 7eaf7fff
            -
            - -

            Updates the node cluster details and applies the changes automatically.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            PATCH /api/infra/v1/[optional_namespace/]nodecluster/(uuid)/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the node cluster to update
            - -

            JSON Parameters

            - - - - - - - - - - - - - - - -
            ParameterDescription
            target_num_nodes(optional) The number of nodes to scale this node cluster to
            tags(optional) List of tags the node cluster (and nodes within the node cluster) will have. This operation replaces the user tag list.
            - -

            Terminate a node cluster

            -
            import dockercloud
            -
            -nodecluster = dockercloud.NodeCluster.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -nodecluster.delete()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -nodecluster, err := dockercloud.GetNodeCluster("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -if err = nodecluster.Terminate(); err != nil {
            -   log.Println(err)
            -}
            -
            -
            DELETE /api/infra/v1/nodecluster/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            dockercloud nodecluster rm 7eaf7fff
            -
            - -

            Terminates all the nodes in a node cluster and the node cluster itself. This is not reversible.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            DELETE /api/infra/v1/[optional_namespace/]nodecluster/(uuid)/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the node cluster to terminate
            - -

            Nodes

            - -

            Node

            - -
            -

            Example

            -
            -
            {
            -    "availability_zone": "/api/infra/v1/az/testing-provider/testing-region/testing-az/",
            -    "cpu": 1,
            -    "current_num_containers": 4,
            -    "deployed_datetime": "Tue, 16 Sep 2014 17:01:15 +0000",
            -    "destroyed_datetime": null,
            -    "disk": 60,
            -    "docker_execdriver": "native-0.2",
            -    "docker_graphdriver": "aufs",
            -    "docker_version": "1.5.0",
            -    "external_fqdn": "fc1a5bb9-user.node.dockerapp.io",
            -    "last_seen": "Thu, 25 Sep 2014 13:14:44 +0000",
            -    "memory": 1792,
            -    "nickname": "fc1a5bb9-user.node.dockerapp.io",
            -    "node_cluster": "/api/infra/v1/user_namespace/nodecluster/d787a4b7-d525-4061-97a0-f423e8f1d229/",
            -    "node_type": "/api/infra/v1/user_namespace/nodetype/testing-provider/testing-type/",
            -    "public_ip": "10.45.2.11",
            -    "region": "/api/infra/v1/region/testing-provider/testing-region/",
            -    "resource_uri": "/api/infra/v1/user_namespace/node/fc1a5bb9-17f5-4819-b667-8c7cd819e949/",
            -    "state": "Deployed",
            -    "tags": [
            -        {"name": "tag_one"},
            -        {"name": "tag-two"}
            -    ],
            -    "tunnel": "https://tunnel01.cloud.docker.com:12345",
            -    "uuid": "fc1a5bb9-17f5-4819-b667-8c7cd819e949"
            -}
            -
            - -

            A node is a virtual machine provided by a cloud provider where containers can be deployed.

            - -

            This is a namespaced endpoint.

            - -

            Attributes

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            availability_zoneThe resource URI of the availability zone where the node is deployed, if any
            uuidA unique identifier for the node generated automatically on creation
            resource_uriA unique API endpoint that represents the node
            external_fqdnAn automatically generated FQDN for the node. Containers deployed on this node will inherit this FQDN.
            stateThe state of the node. See the below table for a list of possible states.
            node_clusterThe resource URI of the node cluster to which this node belongs to (if applicable)
            node_typeThe resource URI of the node type used for the node
            regionThe resource URI of the region where the node is deployed
            docker_execdriverDocker’s execution driver used in the node
            docker_graphdriverDocker’s storage driver used in the node
            docker_versionDocker’s version used in the node
            cpuNode number of CPUs
            diskNode storage size in GB
            memoryNode memory in MB
            current_num_containersThe actual number of containers deployed in this node
            last_seenDate and time of the last time the node was contacted by Docker Cloud
            public_ipThe public IP allocated to the node
            tunnelIf the node does not accept incoming connections to port 2375, the address of the reverse tunnel to access the docker daemon, or null otherwise
            deployed_datetimeThe date and time when this node cluster was deployed
            destroyed_datetimeThe date and time when this node cluster was terminated (if applicable)
            tagsList of tags to identify the node when deploying services (see Tags for more information)
            nicknameA user-friendly name for the node (external_fqdn by default)
            - -

            Node states

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            StateDescription
            DeployingThe node is being deployed in the cloud provider. No actions allowed in this state.
            DeployedThe node is deployed and provisioned and is ready to deploy containers. Possible actions in this state: terminate, docker-upgrade.
            UnreachableThe node is deployed but Docker Cloud cannot connect to the docker daemon. Possible actions in this state: health-check and terminate.
            UpgradingThe node docker daemon is being upgraded. No actions allowed in this state.
            TerminatingThe node is being terminated in the cloud provider. No actions allowed in this state.
            TerminatedThe node has been terminated and is no longer present in the cloud provider. No actions allowed in this state.
            - -

            List all nodes

            -
            import dockercloud
            -
            -nodes = dockercloud.Node.list()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -nodeList, err := dockercloud.ListNodes()
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(nodeList)
            -
            -
            GET /api/infra/v1/node/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud node ls
            -
            - -

            Lists all current and recently terminated nodes. Returns a list of Node objects.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/infra/v1/[optional_namespace/]node/

            - -

            Query Parameters

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            ParameterDescription
            uuidFilter by UUID
            stateFilter by state. Possible values: Deploying, Deployed, Unreachable, Upgrading, Terminating, Terminated
            node_clusterFilter by resource URI of the target node cluster
            node_typeFilter by resource URI of the target node type
            regionFilter by resource URI of the target region
            docker_versionFilter by Docker engine version running in the nodes
            - -

            Get an existing node

            -
            import dockercloud
            -
            -node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(node)
            -
            -
            GET /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud node inspect 7eaf7fff
            -
            - -

            Get all the details of an specific node

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/infra/v1/[optional_namespace/]node/(uuid)/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the node to retrieve
            - -

            Update a node

            -
            import dockercloud
            -
            -node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -node.tags.add(["tag-1"])
            -node.save()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -    log.Println(err)
            -}
            -
            -if err = node.Update(dockercloud.Node{Tags: []string{{Name: "tag-1"}}}); err != nil {
            -            log.Println(err)
            -}
            -
            -
            PATCH /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -{"tags": [{"name": "tag-1"}], "nickname": "dev node"}
            -
            -
            docker-cloud tag add -t tag-1 7eaf7fff
            -docker-cloud tag set -t tag-2 7eaf7fff
            -
            - -

            Names the node with a user-friendly name and/or replaces the old tags for the new list provided.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            PATCH /api/infra/v1/[optional_namespace/]node/(uuid)/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the node to retrieve
            - -

            JSON Parameters

            - - - - - - - - - - - - - - - -
            ParameterDescription
            nickname(optional) A user-friendly name for the node (external_fqdn by default)
            tags(optional) List of tags the node will have. This operation replaces the user tag list.
            - -

            Upgrade Docker Daemon

            -
            import dockercloud
            -
            -node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -node.upgrade_docker()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -if err = node.Upgrade(); err != nil {
            -       log.Println(err)
            -   }
            -
            -
            POST /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/docker-upgrade/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud node upgrade 7eaf7fff
            -
            - -

            Upgrades the docker daemon of the node. This will restart your containers on that node. See Docker upgrade for more information.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/infra/v1/[optional_namespace/]node/(uuid)/docker-upgrade/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the node to upgrade
            - -

            Perform a health check of a node

            -
            POST /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/health-check/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            - -

            Tests connectivity between Docker Cloud and the node. Updates the node status to Deployed if the check was successful, or to Unreachable otherwise.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/infra/v1/[optional_namespace/]node/(uuid)/health-check/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the node to perform the health check to
            - -

            Terminate a node

            -
            import dockercloud
            -
            -node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -node.delete()
            -
            -
            DELETE /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -if err = node.Terminate(); err != nil {
            -   log.Println(err)
            -}
            -
            -
            docker-cloud node rm 7eaf7fff
            -
            - -

            Terminates the specified node.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            DELETE /api/infra/v1/[optional_namespace/]node/(uuid)/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the node to terminate
            - -

            Registries

            - -

            Registry

            - -
            -

            Example

            -
            -
            {
            -  "host": "registry-1.docker.io",
            -  "is_docker_registry": true,
            -  "is_ssl": true,
            -  "name": "Docker Hub",
            -  "port": 443,
            -  "resource_uri": "/api/repo/v1/user_namespace/registry/registry-1.docker.io/"
            -}
            -
            - -

            Represents a registry where repositories are hosted.

            - -

            This is a namespaced endpoint.

            - -

            Attributes

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            resource_uriA unique API endpoint that represents the registry
            nameHuman-readable name of the registry
            hostFQDN of the registry, i.e. registry-1.docker.io
            is_docker_registryWhether this registry is run by Docker
            is_sslWhether this registry has SSL activated or not
            portThe port number where the registry is listening to
            - -

            List all registries

            -
            GET /api/repo/v1/registry/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            - -

            Lists all current registries. Returns a list of Registry objects.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/repo/v1/[optional_namespace/]registry/

            - -

            Query Parameters

            - - - - - - - - - - - - - - - - - - - - - - - -
            ParameterDescription
            uuidFilter by UUID
            nameFilter by registry name
            hostFilter by registry host
            is_docker_registryFilter by whether the registry is run by Docker or not. Possible values: ‘true’ or 'false’
            - -

            Get an existing registry

            -
            GET /api/repo/v1/registry/registry-1.docker.io/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            - -

            Gets all the details of an specific registry

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/v1/[optional_namespace/]registry/(host)/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            hostThe host of the registry to retrieve
            - -

            External Repositories

            - -

            External Repository

            - -
            -

            Example

            -
            -
            {
            -  "in_use": false,
            -  "name": "my.registry.com/myrepo",
            -  "registry": "/api/repo/v1/user_namespace/registry/my.registry.com/",
            -  "resource_uri": "/api/repo/v1/user_namespace/repository/my.registry.com/myrepo/",
            -}
            -
            - -

            The repository endpoint is used to add and remove existing repositories on third party registries to be used in deployments and builds.

            - -

            This is a namespaced endpoint.

            - -

            Attributes

            - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            resource_uriA unique API endpoint that represents the repository
            nameName of the repository, i.e. my.registry.com/myrepo
            in_useIf the image is being used by any of your services
            registryResource URI of the registry where this image is hosted
            - -

            List all external repositories

            -
            import dockercloud
            -
            -repositories = dockercloud.Repository.list()
            -
            -
            GET /api/repo/v1/repository/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -repositoriesList, err := dockercloud.ListRepositories()
            -
            -if err != nil {
            -    log.Println(err)
            -}
            -
            -log.Pringln(repositoriesList)
            -
            -
            docker-cloud repository ls
            -
            - -

            Lists all added repositories from third party registries. Returns a list of Repository objects.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/repo/v1/[optional_namespace/]repository/

            - -

            Query Parameters

            - - - - - - - - - - - - - - - -
            ParameterDescription
            nameFilter by image name
            registryFilter by resource URI of the target repository registry
            - -

            Add a new external repository

            -
            import dockercloud
            -
            -repository = dockercloud.Repository.create(name="registry.local/user1/image1", username=username, password=password)
            -repository.save()
            -
            -
            POST /api/repo/v1/repository/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -Content-Type: application/json
            -
            -{"name": "registry.local/user1/image1", "username": "username", "password": "password"}
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -image, err := dockercloud.CreateImage(dockercloud.ImageCreateRequest{
            -  Name: "registry.local/user1/image1",
            -  Username: "username",
            -  Password: "password"
            -})
            -
            -
            docker-cloud repository register -u username -p password registry.local/user1/image1
            -
            - -

            Adds an existing repository on a third party registry.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/repo/v1/[optional_namespace/]repository/

            - -

            JSON Parameters

            - - - - - - - - - - - - - - - - - - - -
            ParameterDescription
            nameName of the repository, i.e. ‘my.registry.com/myrepo’
            usernameUsername to authenticate with the third party registry
            passwordPassword to authenticate with the third party registry
            - -

            Get an external repository details

            -
            import dockercloud
            -
            -repository = dockercloud.Repository.fetch("registry.local/user1/image1")
            -
            -
            GET /api/repo/v1/repository/registry.local/user1/image1/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -repository, err = dockercloud.GetRepository("registry.local/user1/image1")
            -
            -if err != nil {
            -    log.Println(err)
            -}
            -
            -log.Println(repository)
            -
            -
            docker-cloud repository inspect registry.local/user1/image1
            -
            - -

            Gets all the details of an specific repository

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/repo/v1/[optional_namespace/]repository/(name)/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            nameThe name of the repository to retrieve
            - -

            Update credentials of an external repository

            -
            import dockercloud
            -
            -repository = dockercloud.Repository.fetch("registry.local/user1/image1")
            -repository.username = "new username"
            -repository.password = "new password"
            -repository.save()
            -
            -
            PATCH /api/repo/v1/repository/registry.local/user1/image1/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -Content-Type: application/json
            -
            -{"username": "username", "password": "password"}
            -
            -
            docker-cloud repository update -n "new username" -p "new password" registry.local/user1/image1
            -
            - -

            Updates the external repository credentials.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            PATCH /api/repo/v1/[optional_namespace/]repository/(name)/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            nameThe name of the repository to update
            - -

            JSON Parameters

            - - - - - - - - - - - - - - - -
            ParameterDescription
            usernameUsername to authenticate with the private registry
            passwordPassword to authenticate with the private registry
            - -

            Remove an external repository

            -
            import dockercloud
            -
            -repository = dockercloud.Repository.fetch("registry.local/user1/image1")
            -repository.delete()
            -
            -
            DELETE /api/repo/v1/repository/registry.local/user1/image1/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -repository, err = dockercloud.GetRepository("registry.local/user1/image1")
            -
            -if err != nil {
            -    log.Println(err)
            -}
            -
            -repository.Remove()
            -
            -
            docker-cloud repository rm registry.local/user1/image1
            -
            - -

            Removes the external repository from Docker Cloud. It won’t remove the repository from the third party registry where it’s stored.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            DELETE /api/repo/v1/[optional_namespace/]repository/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            nameThe name of the external repository to remove
            - -

            Stacks

            - -

            Stack

            - -
            -

            Example

            -
            -
            {
            -  "deployed_datetime": "Mon, 13 Oct 2014 11:01:43 +0000",
            -  "destroyed_datetime": null,
            -  "nickname": "deployment stack",
            -  "name": "dockercloud-app",
            -  "resource_uri": "/api/app/v1/user_namespace/stack/7fe7ec85-58be-4904-81da-de2219098d7c/",
            -  "services": [
            -    "/api/app/v1/user_namespace/service/09cbcf8d-a727-40d9-b420-c8e18b7fa55b/"
            -  ],
            -  "state": "Running",
            -  "synchronized": true,
            -  "uuid": "09cbcf8d-a727-40d9-b420-c8e18b7fa55b"
            -}
            -
            - -

            A stack is a logical grouping of closely related services, that may be linked with one another.

            - -

            This is a namespaced endpoint.

            - -

            Attributes

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            uuidA unique identifier for the stack generated automatically on creation
            resource_uriA unique API endpoint that represents the stack
            nameA user provided name for the stack.
            stateThe state of the stack (see table Stack states below)
            synchronizedFlag indicating if the current stack definition is synchronized with their services.
            servicesList of service resource URIs belonging to the stack
            deployed_datetimeThe date and time of the last deployment of the stack (if applicable, null otherwise)
            destroyed_datetimeThe date and time of the terminate operation on the stack (if applicable, null otherwise)
            nicknameA user-friendly name for the stack (name by default)
            - -

            Stack states

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            StateDescription
            Not RunningThe stack has been created and has no deployed services yet. Possible actions in this state: start, terminate.
            StartingAll services for the stack are either starting or already running. No actions allowed in this state.
            RunningAll services for the service are deployed and running. Possible actions in this state: redeploy, terminate.
            Partly runningOne or more services of the stack are deployed and running. Possible actions in this state: redeploy, terminate.
            StoppingAll services for the stack are either stopping or already stopped. No actions allowed in this state.
            StoppedAll services for the service are stopped. Possible actions in this state: start, redeploy, terminate.
            RedeployingThe stack is redeploying all its services with the updated configuration. No actions allowed in this state.
            TerminatingAll services for the stack are either being terminated or already terminated. No actions allowed in this state.
            TerminatedThe stack and all its services have been terminated. No actions allowed in this state.
            - -

            List all stacks

            -
            import dockercloud
            -
            -stacks = dockercloud.Stack.list()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -stackList, err := dockercloud.ListStacks()
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(stackList)
            -
            -
            GET /api/app/v1/stack/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud stack ls
            -
            - -

            Lists all current and recently terminated stacks. Returns a list of Stack objects.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/app/v1/[optional_namespace/]stack/

            - -

            Query Parameters

            - - - - - - - - - - - - - - - -
            ParameterDescription
            uuidFilter by UUID
            nameFilter by stack name
            - -

            Create a new stack

            -
            import dockercloud
            -
            -stack = dockercloud.Stack.create(name="my-new-stack", services=[{"name": "hello-word", "image": "tutum/hello-world", "target_num_containers": 2}])
            -stack.save()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -stack, err := dockercloud.CreateStack(dockercloud.StackCreateRequest{Name: "my-new-stack", Services: []dockercloud.ServiceCreateRequest{{Image: "tutum/hello-world", Name: "test", Target_num_containers: 2}}})
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(stack)
            -
            -
            POST /api/app/v1/stack/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -Content-Type: application/json
            -
            -{
            -    "name": "my-new-stack",
            -    "services": [
            -        {
            -            "name": "hello-word",
            -            "image": "tutum/hello-world",
            -            "target_num_containers": 2,
            -            "linked_to_service": [
            -                {
            -                    "to_service": "database",
            -                    "name": "DB"
            -                }
            -            ]
            -        },
            -        {
            -            "name": "database",
            -            "image": "tutum/mysql"
            -        }
            -    ]
            -}
            -
            -
            docker-cloud stack create --name hello-world -f docker-compose.yml
            -
            - -

            Creates a new stack without starting it. Note that the JSON syntax is abstracted by both, the Docker Cloud CLI and our UI, in order to use Stack YAML files.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/app/v1/[optional_namespace/]stack/

            - -

            JSON Parameters

            - - - - - - - - - - - - - - - - - - - -
            ParameterDescription
            name(required) A human-readable name for the stack, i.e. my-hello-world-stack
            nickname(optional) A user-friendly name for the stack (name by default)
            services(optional) List of services belonging to the stack. Each service accepts the same parameters as a Create new service operation (default: []) plus the ability to refer “links” and “volumes-from” by the name of another service in the stack (see example).
            - -

            Export an existing stack

            -
            import dockercloud
            -
            -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816")
            -stack.export()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -if err = stack.Export(); err != nil {
            -   log.Println(err)
            -}
            -
            -
            GET /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/export/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud stack export 46aca402
            -
            - -

            Get a JSON representation of the stack following the Stack YAML representation.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/app/v1/[optional_namespace/]stack/(uuid)/export/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the stack to retrieve
            - -

            Get an existing stack

            -
            import dockercloud
            -
            -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816")
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(stack)
            -
            -
            GET /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud stack inspect 46aca402-2109-4a70-a378-760cfed43816
            -
            - -

            Get all the details of an specific stack

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/app/v1/[optional_namespace/]stack/(uuid)/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the stack to retrieve
            - -

            Update an existing stack

            -
            import dockercloud
            -
            -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816")
            -stack.services = {"services": [{"name": "hello-word", "image": "tutum/hello-world", "target_num_containers": 2}]}
            -stack.save()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -if err = stack.Update(dockercloud.StackCreateRequest{Services: []dockercloud.ServiceCreateRequest{{Name: "hello-world", Image: "tutum/hello-world", Target_num_containers: 2}}}); err != nil {
            -   log.Println(err)
            -}
            -
            -
            PATCH /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -Content-Type: application/json
            -
            -{
            -    "services": [
            -        {
            -            "name": "hello-word",
            -            "image": "tutum/hello-world",
            -            "target_num_containers": 3,
            -            "linked_to_service": [
            -                {
            -                    "to_service": "database",
            -                    "name": "DB"
            -                }
            -            ]
            -        },
            -        {
            -            "name": "database",
            -            "image": "tutum/mysql"
            -        }
            -    ]
            -}
            -
            -
            docker-cloud stack update -f docker-compose.yml 46aca402
            -
            - -

            Updates the details of every service in the stack.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            PATCH /api/app/v1/[optional_namespace/]stack/(uuid)/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the stack to update
            - -

            JSON Parameters

            - - - - - - - - - - - -
            ParameterDescription
            services(optional) List of services belonging to the stack. Each service accepts the same parameters as a Update an existing service operation (default: []) plus the ability to refer “links” and “volumes-from” by the name of another service in the stack (see example).
            - -

            Stop a stack

            -
            import dockercloud
            -
            -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816")
            -stack.stop()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -if err = stack.Stop(); err != nil {
            -   log.Println(err)
            -}
            -
            -
            POST /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/stop/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud stack stop 46aca402-2109-4a70-a378-760cfed43816
            -
            - -

            Stops the services in the stack.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/app/v1/[optional_namespace/]stack/(uuid)/stop/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the stack to stop
            - -

            Start a stack

            -
            import dockercloud
            -
            -stack = dockercloud.Stack.fetch()
            -stack.start()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -if err = stack.Start(); err != nil {
            -   log.Println(err)
            -}
            -
            -
            POST /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/start/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud stack start 46aca402
            -
            - -

            Starts the services in the stack.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/app/v1/[optional_namespace/]stack/(uuid)/start/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the stack to start
            - -

            Redeploy a stack

            -
            import dockercloud
            -
            -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816")
            -stack.redeploy()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: true}) to reuse the existing volumes
            -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}) to not reuse the existing volumes
            -if err = stack.Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}); err != nil {
            -   log.Println(err)
            -}
            -
            -
            POST /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/redeploy/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud stack redeploy 46aca402
            -
            - -

            Redeploys all the services in the stack.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/app/v1/[optional_namespace/]stack/(uuid)/redeploy/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the stack to redeploy
            - -

            Query Parameters

            - - - - - - - - - - - -
            ParameterDescription
            reuse_volumesWheather to reuse container volumes for this redeploy operation or not (default: true).
            - -

            Terminate a stack

            -
            import dockercloud
            -
            -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816")
            -stack.delete()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -if err = stack.Terminate(); err != nil {
            -   log.Println(err)
            -}
            -
            -
            DELETE /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud stack terminate 46aca402
            -
            - -

            Terminate all the services in a the stack and the stack itself.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            DELETE /api/app/v1/[optional_namespace/]stack/(uuid)/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the stack to terminate
            - -

            Services

            - -

            Service

            - -
            -

            Example

            -
            -
            {
            -  "autodestroy": "OFF",
            -  "autoredeploy": false,
            -  "autorestart": "ON_FAILURE",
            -  "bindings": [
            -    {
            -        "host_path": null,
            -        "container_path": "/tmp",
            -        "rewritable": true,
            -        "volumes_from": null
            -    },
            -    {
            -        "host_path": "/etc",
            -        "container_path": "/etc",
            -        "rewritable": true,
            -        "volumes_from": null
            -    },
            -    {
            -        "host_path": null,
            -        "container_path": null,
            -        "rewritable": true,
            -        "volumes_from": "/api/app/v1/user_namespace/service/2f4f54e5-9d3b-4ac1-85ad-a2d4ff25a179/"
            -    }
            -  ],
            -  "cap_add": [
            -    "ALL"
            -  ],
            -  "cap_drop": [
            -    "NET_ADMIN",
            -    "SYS_ADMIN"
            -  ],
            -  "container_envvars": [
            -    {
            -      "key": "DB_PASS",
            -      "value": "test"
            -    }
            -  ],
            -  "container_ports": [
            -    {
            -      "endpoint_uri": "http://wordpress-stackable.admin.srv.dockerapp.io:80/",
            -      "inner_port": 80,
            -      "outer_port": 80,
            -      "port_name": "http",
            -      "protocol": "tcp",
            -      "published": true
            -    }
            -  ],
            -  "containers": [
            -    "/api/app/v1/user_namespace/container/6f8ee454-9dc3-4387-80c3-57aac1be3cc6/",
            -    "/api/app/v1/user_namespace/container/fdf9c116-7c08-4a60-b0ce-c54ca72c2f25/"
            -  ],
            -  "cpu_shares": 100,
            -  "cpuset": "0,1",
            -  "cgroup_parent": "m-executor-abcd",
            -  "current_num_containers": 2,
            -  "deployed_datetime": "Mon, 13 Oct 2014 11:01:43 +0000",
            -  "deployment_strategy": "EMPTIEST_NODE",
            -  "destroyed_datetime": null,
            -  "devices": [
            -    "/dev/ttyUSB0:/dev/ttyUSB0"
            -  ],
            -  "dns": [
            -    "8.8.8.8"
            -  ],
            -  "dns_search": [
            -    "example.com"
            -  ],
            -  "domainname": "domainname",
            -  "entrypoint": "",
            -  "extra_hosts": [
            -    "onehost:50.31.209.229"
            -  ],
            -  "hostname": "hostname",
            -  "image_name": "tutum/wordpress-stackable:latest",
            -  "nickname": "wordpress-stackable",
            -  "labels": {
            -    "com.example.description": "Accounting webapp",
            -    "com.example.department": "Finance",
            -    "com.example.label-with-empty-value": ""
            -  },
            -  "link_variables": {
            -    "WORDPRESS_STACKABLE_1_ENV_DB_HOST": "**LinkMe**",
            -    "WORDPRESS_STACKABLE_1_ENV_DB_NAME": "wordpress",
            -    "WORDPRESS_STACKABLE_1_ENV_DB_PASS": "szVaPz925B7I",
            -    "WORDPRESS_STACKABLE_1_ENV_DB_PORT": "**LinkMe**",
            -    "WORDPRESS_STACKABLE_1_ENV_DB_USER": "admin",
            -    "WORDPRESS_STACKABLE_1_ENV_DEBIAN_FRONTEND": "noninteractive",
            -    "WORDPRESS_STACKABLE_1_ENV_HOME": "/",
            -    "WORDPRESS_STACKABLE_1_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            -    "WORDPRESS_STACKABLE_1_PORT": "tcp://wordpress-stackable-1.admin.cont.dockerapp.io:49153",
            -    "WORDPRESS_STACKABLE_1_PORT_80_TCP": "tcp://wordpress-stackable-1.admin.cont.dockerapp.io:49153",
            -    "WORDPRESS_STACKABLE_1_PORT_80_TCP_ADDR": "wordpress-stackable-1.admin.cont.dockerapp.io",
            -    "WORDPRESS_STACKABLE_1_PORT_80_TCP_PORT": "49153",
            -    "WORDPRESS_STACKABLE_1_PORT_80_TCP_PROTO": "tcp",
            -    "WORDPRESS_STACKABLE_2_ENV_DB_HOST": "**LinkMe**",
            -    "WORDPRESS_STACKABLE_2_ENV_DB_NAME": "wordpress",
            -    "WORDPRESS_STACKABLE_2_ENV_DB_PASS": "szVaPz925B7I",
            -    "WORDPRESS_STACKABLE_2_ENV_DB_PORT": "**LinkMe**",
            -    "WORDPRESS_STACKABLE_2_ENV_DB_USER": "admin",
            -    "WORDPRESS_STACKABLE_2_ENV_DEBIAN_FRONTEND": "noninteractive",
            -    "WORDPRESS_STACKABLE_2_ENV_HOME": "/",
            -    "WORDPRESS_STACKABLE_2_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            -    "WORDPRESS_STACKABLE_2_PORT": "tcp://wordpress-stackable-2.admin.cont.dockerapp.io:49154",
            -    "WORDPRESS_STACKABLE_2_PORT_80_TCP": "tcp://wordpress-stackable-2.admin.cont.dockerapp.io:49154",
            -    "WORDPRESS_STACKABLE_2_PORT_80_TCP_ADDR": "wordpress-stackable-2.admin.cont.dockerapp.io",
            -    "WORDPRESS_STACKABLE_2_PORT_80_TCP_PORT": "49154",
            -    "WORDPRESS_STACKABLE_2_PORT_80_TCP_PROTO": "tcp",
            -    "WORDPRESS_STACKABLE_ENV_DB_HOST": "**LinkMe**",
            -    "WORDPRESS_STACKABLE_ENV_DB_NAME": "wordpress",
            -    "WORDPRESS_STACKABLE_ENV_DB_PASS": "szVaPz925B7I",
            -    "WORDPRESS_STACKABLE_ENV_DB_PORT": "**LinkMe**",
            -    "WORDPRESS_STACKABLE_ENV_DB_USER": "admin",
            -    "WORDPRESS_STACKABLE_ENV_DEBIAN_FRONTEND": "noninteractive",
            -    "WORDPRESS_STACKABLE_ENV_HOME": "/",
            -    "WORDPRESS_STACKABLE_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            -    "WORDPRESS_STACKABLE_PORT": "tcp://wordpress-stackable-1.admin.cont.dockerapp.io:49153",
            -    "WORDPRESS_STACKABLE_PORT_80_TCP": "tcp://wordpress-stackable-1.admin.cont.dockerapp.io:49153",
            -    "WORDPRESS_STACKABLE_PORT_80_TCP_ADDR": "wordpress-stackable-1.admin.cont.dockerapp.io",
            -    "WORDPRESS_STACKABLE_PORT_80_TCP_PORT": "49153",
            -    "WORDPRESS_STACKABLE_PORT_80_TCP_PROTO": "tcp",
            -    "WORDPRESS_STACKABLE_DOCKERCLOUD_API_URL": "https://cloud.docker.com/api/app/v1/user_namespace/service/adeebc1b-1b81-4af0-b8f2-cefffc69d7fb/"
            -  },
            -  "linked_from_service": [],
            -  "linked_to_service": [
            -    {
            -      "from_service": "/api/app/v1/user_namespace/service/09cbcf8d-a727-40d9-b420-c8e18b7fa55b/",
            -      "name": "DB",
            -      "to_service": "/api/app/v1/user_namespace/service/72f175bd-390b-46e3-9463-830aca32ce3e/"
            -    }
            -  ],
            -  "mac_address": "02:42:ac:11:65:43",
            -  "memory": 2048,
            -  "memory_swap": 8192,
            -  "name": "wordpress-stackable",
            -  "net": "bridge",
            -  "privileged": false,
            -  "public_dns": "wordpress-stackable.admin.svc.dockerapp.io",
            -  "read_only": true,
            -  "resource_uri": "/api/app/v1/user_namespace/service/09cbcf8d-a727-40d9-b420-c8e18b7fa55b/",
            -  "roles": ["global"],
            -  "run_command": "/run-wordpress.sh",
            -  "running_num_containers": 1,
            -  "security_opt": [
            -  ],
            -  "sequential_deployment": false,
            -  "started_datetime": "Mon, 13 Oct 2014 11:01:43 +0000",
            -  "state": "Partly running",
            -  "stack": "/api/app/v1/user_namespace/stack/46aca402-2109-4a70-a378-760cfed43816/",
            -  "stdin_open": false,
            -  "stopped_datetime": null,
            -  "stopped_num_containers": 0,
            -  "synchronized": true,
            -  "tags": [
            -        {"name": "tag_one"},
            -        {"name": "tag-two"},
            -        {"name": "tagthree3"}
            -  ],
            -  "target_num_containers": 2,
            -  "tty": false,
            -  "user": "root",
            -  "uuid": "09cbcf8d-a727-40d9-b420-c8e18b7fa55b",
            -  "working_dir": "/app"
            -}
            -
            - -

            A service is a template used to deploy one or more containers.

            - -

            This is a namespaced endpoint.

            - -

            Attributes

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            uuidA unique identifier for the service generated automatically on creation
            resource_uriA unique API endpoint that represents the service
            image_nameThe Docker image name and tag used for the service containers
            nameA user provided name for the service. This name will be inherited by the service containers and will be used in endpoint URLs, environment variable names, etc.
            public_dnsAn external FQDN that resolves to all IPs of the nodes where the service containers are running on (as an A record with multiple IP entries which will be used by clients in a round-robin fashion). If the service is not publishing any ports, this FQDN will fail to resolve.
            stateThe state of the service (see table Service states below)
            netNetwork mode to set on the containers (see table Network Modes below, more information /docker-cloud/apps/service-links/)
            pidSet the PID (Process) Namespace mode for the containers (more information)
            synchronizedFlag indicating if the current service definition is synchronized with the current containers.
            deployed_datetimeThe date and time of the last deployment of the service (if applicable, null otherwise)
            started_datetimeThe date and time of the last start operation on the service (if applicable, null otherwise)
            stopped_datetimeThe date and time of the last stop operation on the service (if applicable, null otherwise)
            destroyed_datetimeThe date and time of the terminate operation on the service (if applicable, null otherwise)
            target_num_containersThe requested number of containers to deploy for the service
            current_num_containersThe actual number of containers deployed for the service
            running_num_containersThe actual number of containers deployed for the service in Running state
            stopped_num_containersThe actual number of containers deployed for the service in Stopped state
            stackResource URIs of the stack that the service belongs to
            containersList of resource URIs of the containers launched as part of the service
            container_portsList of ports to be published on the containers of this service (see table Service Port attributes below)
            container_envvarsList of user-defined environment variables to set on the containers of the service, which will override the image environment variables (see table Service Environment Variable attributes below)
            labelsMetadata in form of dictionary used for every container of this service
            working_dirWorking directory for running binaries within a container of this service
            userSet the user used on containers of this service (root by default)
            hostnameSet the hostname used on containers of this service
            domainnameSet the domainname used on containers of this service
            mac_addressEthernet device’s MAC address used on containers of this service
            cgroup_nameOptional parent cgroup used on containers of this service.
            ttyIf the containers of this service have the tty enable (false by default)
            stdin_openIf the containers of this service have stdin opened (false by default)
            dnsCustom DNS servers for containers of this service
            dns_searchCustom DNS search domain for containers of this service
            cap_addAdded capabilities for containers of this service
            cap_dropDropped capabilities for containers of this service
            devicesList of device mappings for containers of this service
            extra_hostsList of hostname mappings for containers of this service
            secuirty_optLabeling scheme for containers of this service
            entrypointEntrypoint to be set on the containers launched as part of the service, which will override the image entrypoint
            run_commandRun command to be set on the containers launched as part of the service, which will override the image run command
            sequential_deploymentWhether the containers for this service should be deployed in sequence, linking each of them to the previous containers (see Service scaling for more information)
            cpu_sharesThe relative CPU priority of the containers of the service (see Runtime Constraints on CPU and Memory for more information)
            cpusetCPUs in which to allow execution
            memoryThe memory limit of the containers of the service in MB (see Runtime Constraints on CPU and Memory for more information)
            memory_swapTotal memory limit (memory + swap) of the containers of the service in MB
            linked_from_serviceA list of services that are linked to this one (see table Related services attributes below)
            linked_to_serviceA list of services that the service is linked to (see table Related services attributes below)
            bindingsA list of volume bindings that the service has mounted (see table Service binding attributes below)
            autorestartWhether to restart the containers of the service automatically if they stop (see Crash recovery for more information)
            autodestroyWhether to terminate the containers of the service automatically if they stop (see Autodestroy for more information)
            rolesList of Docker Cloud roles assigned to this service (see Service links for more information)
            link_variablesList of environment variables that would be exposed in the containers if they are linked to this service
            privilegedWhether to start the containers with Docker’s privileged flag set or not, which allows containers to access all devices on the host among other things (see Runtime privilege for more information)
            read_onlyWhether the filesystem of every service container is read-only or not (false by default)
            deployment_strategyContainer distribution among nodes (see table Deployment strategies below and Deployment strategies for more information)
            tagsList of tags to be used to deploy the service (see Tags for more information)
            autoredeployWhether to redeploy the containers of the service when its image is updated in Docker Cloud registry (see Docker Cloud’s private registry for more information)
            nicknameA user-friendly name for the service (name by default)
            - -

            Service binding attributes

            - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            host_pathThe host path of the volume
            container_pathThe container path where the volume is mounted
            rewritabletrue is the volume has writable permissions
            volumes_fromThe resource URI of the service
            - -

            Service Port attributes

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            protocolThe protocol of the port, either tcp or udp
            inner_portThe published port number inside the container
            outer_portThe published port number in the node public network interface
            port_nameName of the service associated to this port
            endpoint_uriThe URI of the service endpoint for this port
            publishedWhether the port has been published in the host public network interface or not. Non-published ports can only be accessed via links.
            - -

            Service Environment Variable attributes

            - - - - - - - - - - - - - - - -
            AttributeDescription
            keyThe name of the environment variable
            valueThe value of the environment variable
            - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            nameThe link name
            from_serviceThe resource URI of the origin of the link
            to_serviceThe resource URI of the target of the link
            - -

            Service states

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            StateDescription
            Not runningThe service has been created and has no deployed containers yet. Possible actions in this state: start, terminate.
            StartingAll containers for the service are either starting or already running. No actions allowed in this state.
            RunningAll containers for the service are deployed and running. Possible actions in this state: stop, redeploy, terminate.
            Partly runningOne or more containers of the service are deployed and running. Possible actions in this state: stop, redeploy, terminate.
            ScalingThe service is either deploying new containers or destroying existing ones responding to a scaling request. No actions allowed in this state.
            RedeployingThe service is redeploying all its containers with the updated configuration. No actions allowed in this state.
            StoppingAll containers for the service are either stopping or already stopped. No actions allowed in this state.
            StoppedAll containers for the service are stopped. Possible actions in this state: start, redeploy, terminate.
            TerminatingAll containers for the service are either being terminated or already terminated. No actions allowed in this state.
            TerminatedThe service and all its containers have been terminated. No actions allowed in this state.
            - -

            Deployment strategies

            - - - - - - - - - - - - - - - - - - - -
            StrategyDescription
            EMPTIEST_NODEIt will deploy containers to the node with the lower total amount of running containers (default).
            HIGH_AVAILABILITYIt will deploy containers to the node with the lower amount of running containers of the same service.
            EVERY_NODEIt will deploy one container on every node. The service won’t be able to scale manually. New containers will be deployed to new nodes automatically.
            - -

            Network Modes

            - - - - - - - - - - - - - - - -
            StrategyDescription
            bridgeCreates a new network stack for the container on the docker bridge.
            hostUses the host network stack inside the container.
            - -

            List all services

            -
            import dockercloud
            -
            -services = dockercloud.Service.list()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -serviceList, err := dockercloud.ListServices()
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(serviceList)
            -
            -
            GET /api/app/v1/service/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud service ps
            -
            - -

            Lists all current and recently terminated services. Returns a list of Service objects.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/app/v1/[optional_namespace/]service/

            - -

            Query Parameters

            - - - - - - - - - - - - - - - - - - - - - - - -
            ParameterDescription
            uuidFilter by UUID
            stateFilter by state. Possible values: Not running, Starting, Running, Partly running, Scaling, Redeploying, Stopping, Stopped, Terminating, Terminated
            nameFilter by service name
            stackFilter by resource URI of the target stack.
            - -

            Create a new service

            -
            import dockercloud
            -
            -service = dockercloud.Service.create(image="tutum/hello-world", name="my-new-app", target_num_containers=2)
            -service.save()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -service, err := dockercloud.CreateService(dockercloud.ServiceCreateRequest{Image: "tutum/hello-world",  Name: "my-new-app", Target_num_containers: 2})
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(service)
            -
            -
            POST /api/app/v1/service/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -Content-Type: application/json
            -
            -{"image": "tutum/hello-world", "name": "my-new-app", "target_num_containers": 2}
            -
            -
            docker-cloud service create -t 2 --name my-new-app tutum/hello-world
            -
            - -

            Creates a new service without starting it.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/app/v1/[optional_namespace/]service/

            - -

            JSON Parameters

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            ParameterDescription
            image(required) The image used to deploy this service in docker format, i.e. tutum/hello-world
            name(optional) A human-readable name for the service, i.e. my-hello-world-app (default: image without namespace)
            target_num_containers(optional) The number of containers to run for this service initially (default: 1)
            run_command(optional) The command used to start the containers of this service, overriding the value specified in the image, i.e. /run.sh (default: null)
            entrypoint(optional) The command prefix used to start the containers of this service, overriding the value specified in the image, i.e. /usr/sbin/sshd (default: null)
            container_ports(optional) An array of objects with port information to be published in the containers for this service, which will be added to the image port information, i.e. [{"protocol": "tcp", "inner_port": 80, "outer_port": 80}] (default: []) (See table Service Port attributes below)
            container_envvars(optional) An array of objects with environment variables to be added in the service containers on launch (overriding any image-defined environment variables), i.e. [{"key": "DB_PASSWORD", "value": "mypass"}] (default: []) (See table Service Environment Variable attributes below)
            linked_to_service(optional) An array of service resource URIs to link this service to, including the link name, i.e. [{"to_service": "/api/app/v1/service/80ff1635-2d56-478d-a97f-9b59c720e513/", "name": "db"}] (default: []) (See table Related services attributes below)
            bindings(optional) An array of bindings this service has to mount, i.e. [{"volumes_from": "/api/app/v1/service/80ff1635-2d56-478d-a97f-9b59c720e513/", "rewritable": true}] (default: []) (See table Related bindings attributes below)
            autorestart(optional) Whether the containers for this service should be restarted if they stop, i.e. ALWAYS (default: OFF, possible values: OFF, ON_FAILURE, ALWAYS) (see Crash recovery for more information)
            autodestroy(optional) Whether the containers should be terminated if they stop, i.e. OFF (default: OFF, possible values: OFF, ON_SUCCESS, ALWAYS) (see Autodestroy for more information)
            sequential_deployment(optional) Whether the containers should be launched and scaled in sequence, i.e. true (default: false) (see Service scaling for more information)
            roles(optional) A list of Docker Cloud API roles to grant the service, i.e. ["global"] (default: [], possible values: global) (see Service links for more information)
            privileged(optional) Whether to start the containers with Docker’s privileged flag set or not, i.e. false (default: false) (see Runtime privilege for more information)
            deployment_strategy(optional) Container distribution among nodes (default: EMPTIEST_NODE, see table Deployment strategies above and Deployment strategies for more information)
            tags(optional) A list of tags to be used to deploy the service (see Tags for more information) (default: [])
            autoredeploy(optional) Whether to redeploy the containers of the service when its image is updated in Docker Cloud registry (default: false) (see Docker Cloud’s private registry for more information)
            net(optional) Set the network mode to the containers (default: bridge, possible values: bridge, host)
            pid(optional) Set the PID (Process) Namespace mode for the containers (default: none value, possible values: none, host)
            working_dir(optional) Working directory for running binaries within a container of this service (default: /)
            nickname(optional) A user-friendly name for the service (name by default)
            - - - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            host_path(optional) The host path of the volume
            container_path(required if volumes_from is omitted) The container path where the volume is mounted
            rewritable(optional) true is the volume has writable permissions (default: true)
            volumes_from(required if container_path is omitted) The resource URI of the service
            - -

            Service Port attributes

            - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            protocol(required) The protocol of the port, either tcp or udp
            inner_port(required) The port number inside the container to be published
            outer_port(optional) The port number in the node public network interface to be published (default: dynamic allocation if published is true)
            published(optional) Whether to publish the port in the host public network interface or not. Non-published ports can only be accessed via links. (default: false)
            - -

            Service Environment Variable attributes

            - - - - - - - - - - - - - - - -
            AttributeDescription
            key(required) The name of the environment variable
            value(required) The value of the environment variable
            - - - - - - - - - - - - - - - - - -
            AttributeDescription
            to_service(required) The resource URI of the target of the link
            name(optional) The link name
            - -

            Get an existing service

            -
            import dockercloud
            -
            -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(service)
            -
            -
            GET /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud service inspect 7eaf7fff
            -
            - -

            Get all the details of an specific service

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/app/v1/[optional_namespace/]service/(uuid)/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the service to retrieve
            - -

            Get the logs of a service

            - -
            -

            Example log line

            -
            -
            {
            -    "type": "log",
            -    "source": "wordpress-stackable-1",
            -    "log": "Log line from the container indicated by 'source'",
            -    "streamType": "stdout",
            -    "timestamp": 1433779324
            -}
            -
            -
            import dockercloud
            -
            -def log_handler(message):
            -    print message
            -
            -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -service.logs(tail=300, follow=True, log_handler=log_handler)
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -c := make(chan Logs)
            -
            -go service.Logs(c)
            -    for {
            -        s := <-c
            -        log.Println(s)
            -    }
            -
            -
            GET /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/logs/ HTTP/1.1
            -Host: ws.cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Connection: Upgrade
            -Upgrade: websocket
            -
            -
            docker-cloud service logs 7eaf7fff
            -
            - -

            Get the aggregated logs of all the containers of the service.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s STREAM API

            - -

            HTTP Request

            - -

            GET /api/app/v1/[optional_namespace/]service/(uuid)/logs/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the service to retrieve logs
            - -

            Query Parameters

            - - - - - - - - - - - - - - - -
            ParameterDescription
            tailNumber of lines to show from the end of the logs (default: 300)
            followWhether to stream logs or close the connection immediately (default: true)
            - -

            Update an existing service

            -
            import dockercloud
            -
            -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -service.target_num_containers = 3
            -service.tags.append({"name":"tag-1"})
            -service.save()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -if err = service.Update(dockercloud.ServiceCreateRequest{Target_num_containers: 3}); err != nil {
            -   log.Println(err)
            -}
            -
            -
            PATCH /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -Content-Type: application/json
            -
            -{"autorestart": "ON_FAILURE", "autodestroy": "OFF", "container_envvars": [{"key": "DB_PASSWORD", "value": "mypass"}],
            -"container_ports": [{"protocol": "tcp", "inner_port": 80, "outer_port": 80}], "cpu_shares": 512,
            -"entrypoint": "/usr/sbin/sshd", "image": "tutum/hello-world",
            -"linked_to_service": [{"to_service": "/api/app/v1/service/80ff1635-2d56-478d-a97f-9b59c720e513/", "name": "db"}],
            -"memory": 2048, "privileged": True, "roles": ["global"], "run_command": "/run.sh", "sequential_deployment": False,
            -"tags": [{"name": "tag-1"}], "target_num_containers": 3, "autoredeploy": False}
            -
            -
            -
            docker-cloud service scale 7eaf7fff 3
            -docker-cloud tag add -t tag-1 7eaf7fff
            -docker-cloud tag set -t tag-2 7eaf7fff
            -
            - -

            Updates the service details.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            PATCH /api/app/v1/[optional_namespace/]service/(uuid)/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the service to update
            - -

            JSON Parameters

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            ParameterDescription
            autorestart(optional) Whether the containers for this service should be restarted if they stop, i.e. ALWAYS (possible values: OFF, ON_FAILURE, ALWAYS) (see Crash recovery for more information)
            autodestroy(optional) Whether the containers should be terminated if they stop, i.e. OFF (possible values: OFF, ON_SUCCESS, ALWAYS) (see Autodestroy for more information)
            container_envvars(optional) An array of objects with environment variables to be added in the service containers on launch (overriding any image-defined environment variables), i.e. [{"key": "DB_PASSWORD", "value": "mypass"}] (See table Service Environment Variable attributes)
            container_ports(optional) An array of objects with port information to be published in the containers for this service, which will be added to the image port information, i.e. [{"protocol": "tcp", "inner_port": 80, "outer_port": 80}] (See table Service Port attributes)
            cpu_shares(optional) The relative CPU priority of the containers the service describes (see Runtime Constraints on CPU and Memory for more information)
            entrypoint(optional) The command prefix used to start the containers of this service, overriding the value specified in the image, i.e. /usr/sbin/sshd
            image(optional) The image used to deploy this service in docker format, i.e. tutum/hello-world, tutum/ubuntu:5.6. If no tag is indicated, it will be set to latest by default
            linked_to_service(optional) An array of service resource URIs to link this service to, including the link name, i.e. [{"to_service": "/api/app/v1/service/80ff1635-2d56-478d-a97f-9b59c720e513/", "name": "db"}] (See table Related services attributes below)
            memory(optional) The memory limit of the containers of the service in MB (see Runtime Constraints on CPU and Memory for more information)
            privileged(optional) Whether to start the containers with Docker’s privileged flag set or not, i.e. false (see Runtime privilege for more information)
            roles(optional) A list of Docker Cloud API roles to grant the service, i.e. ["global"] (possible values: global) (see Service links for more information)
            run_command(optional) The command used to start the containers of this service, overriding the value specified in the image, i.e. /run.sh
            sequential_deployment(optional) Whether the containers should be launched and scaled in sequence, i.e. true (see Service scaling for more information)
            tags(optional) List of new tags the service will have. This operation replaces the tag list
            target_num_containers(optional) The number of containers to scale this service to
            deployment_strategy(optional) Container distribution among nodes. A service cannot be updated to or from a deployment strategy of EVERY_NODE. (See table Deployment strategies above and Deployment strategies for more information)
            autoredeployWhether to redeploy the containers of the service when its image is updated in Docker Cloud registry (see Docker Cloud’s private registry for more information)
            net(optional) Set the network mode to the containers (default: bridge, possible values: bridge, host)
            pid(optional) Set the PID (Process) Namespace mode for the containers (default: none value, possible values: none, host)
            working_dir(optional) Working directory for running binaries within a container of this service (default: /)
            nickname(optional) A user-friendly name for the service (name by default)
            - -

            Start a service

            -
            import dockercloud
            -
            -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -service.start()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -if err = service.Start(); err != nil {
            -   log.Println(err)
            -}
            -
            -
            POST /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/start/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud service start 7eaf7fff
            -
            - -

            Starts all containers in a stopped or partly running service.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/app/v1/[optional_namespace/]service/(uuid)/start/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the service to start
            - -

            Stop a service

            -
            import dockercloud
            -
            -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -service.stop()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -if err = service.Stop(); err != nil {
            -   log.Println(err)
            -}
            -
            -
            POST /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/stop/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud service stop 7eaf7fff
            -
            - -

            Stops all containers in a running or partly running service.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/app/v1/[optional_namespace/]service/(uuid)/stop/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the service to stop
            - -

            Scale a service

            -
            import dockercloud
            -
            -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -service.target_num_containers = 3
            -service.save()
            -service.scale()
            -
            -
            POST /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/scale/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud service scale 7eaf7fff-882c-4f3d-9a8f-a22317ac00ce 3
            -
            - -

            Scales the service to its current target_num_containers field.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/app/v1/[optional_namespace/]service/(uuid)/scale/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the service to scale
            - -

            Redeploy a service

            -
            import dockercloud
            -
            -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -service.redeploy()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: true}) to reuse the existing volumes
            -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}) to not reuse the existing volumes
            -if err = service.Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}); err != nil {
            -   log.Println(err)
            -}
            -
            -
            POST /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/redeploy/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud service redeploy 7eaf7fff
            -
            - -

            Redeploys all containers in the service with the current service configuration.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/app/v1/[optional_namespace/]service/(uuid)/redeploy/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the service to redeploy
            - -

            Query Parameters

            - - - - - - - - - - - -
            ParameterDescription
            reuse_volumesWheather to reuse container volumes for this redeploy operation or not (default: true).
            - -

            Terminate a service

            -
            import dockercloud
            -
            -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -service.delete()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -if err = service.Terminate(); err != nil {
            -   log.Println(err)
            -}
            -
            -
            DELETE /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud service terminate 7eaf7fff
            -
            - -

            Terminate all the containers in a service and the service itself. This is not reversible. All the data stored in all containers of the service will be permanently deleted.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            DELETE /api/app/v1/[optional_namespace/]service/(uuid)/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the service to terminate
            - -

            Containers

            - -

            Container

            - -
            -

            Example

            -
            -
            {
            -    "autodestroy": "OFF",
            -    "autorestart": "OFF",
            -    "bindings": [
            -        {
            -            "volume": "/api/infra/v1/user_namespace/volume/1863e34d-6a7d-4945-aefc-8f27a4ab1a9e/",
            -            "host_path": null,
            -            "container_path": "/data",
            -            "rewritable": true
            -        },
            -        {
            -            "volume": null,
            -            "host_path": "/etc",
            -            "container_path": "/etc",
            -            "rewritable": true
            -        }
            -    ],
            -    "cap_add": [
            -        "ALL"
            -    ],
            -    "cap_drop": [
            -        "NET_ADMIN",
            -        "SYS_ADMIN"
            -    ],
            -    "container_envvars": [
            -        {
            -            "key": "DB_1_ENV_DEBIAN_FRONTEND",
            -            "value": "noninteractive"
            -        },
            -        {
            -            "key": "DB_1_ENV_MYSQL_PASS",
            -            "value": "**Random**"
            -        },
            -        {
            -            "key": "DB_1_ENV_MYSQL_USER",
            -            "value": "admin"
            -        },
            -        {
            -            "key": "DB_1_ENV_PATH",
            -            "value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            -        },
            -        {
            -            "key": "DB_1_ENV_REPLICATION_MASTER",
            -            "value": "**False**"
            -        },
            -        {
            -            "key": "DB_1_ENV_REPLICATION_PASS",
            -            "value": "replica"
            -        },
            -        {
            -            "key": "DB_1_ENV_REPLICATION_SLAVE",
            -            "value": "**False**"
            -        },
            -        {
            -            "key": "DB_1_ENV_REPLICATION_USER",
            -            "value": "replica"
            -        },
            -        {
            -            "key": "DB_1_PORT",
            -            "value": "tcp://172.16.0.3:3306"
            -        },
            -        {
            -            "key": "DB_1_PORT_3306_TCP",
            -            "value": "tcp://172.16.0.3:3306"
            -        },
            -        {
            -            "key": "DB_1_PORT_3306_TCP_ADDR",
            -            "value": "172.16.0.3"
            -        },
            -        {
            -            "key": "DB_1_PORT_3306_TCP_PORT",
            -            "value": "3306"
            -        },
            -        {
            -            "key": "DB_1_PORT_3306_TCP_PROTO",
            -            "value": "tcp"
            -        },
            -        {
            -            "key": "DB_ENV_DEBIAN_FRONTEND",
            -            "value": "noninteractive"
            -        },
            -        {
            -            "key": "DB_ENV_MYSQL_PASS",
            -            "value": "**Random**"
            -        },
            -        {
            -            "key": "DB_ENV_MYSQL_USER",
            -            "value": "admin"
            -        },
            -        {
            -            "key": "DB_ENV_PATH",
            -            "value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            -        },
            -        {
            -            "key": "DB_ENV_REPLICATION_MASTER",
            -            "value": "**False**"
            -        },
            -        {
            -            "key": "DB_ENV_REPLICATION_PASS",
            -            "value": "replica"
            -        },
            -        {
            -            "key": "DB_ENV_REPLICATION_SLAVE",
            -            "value": "**False**"
            -        },
            -        {
            -            "key": "DB_ENV_REPLICATION_USER",
            -            "value": "replica"
            -        },
            -        {
            -            "key": "DB_PASS",
            -            "value": "szVaPz925B7I"
            -        },
            -        {
            -            "key": "DB_PORT",
            -            "value": "tcp://172.16.0.3:3306"
            -        },
            -        {
            -            "key": "DB_PORT_3306_TCP",
            -            "value": "tcp://172.16.0.3:3306"
            -        },
            -        {
            -            "key": "DB_PORT_3306_TCP_ADDR",
            -            "value": "172.16.0.3"
            -        },
            -        {
            -            "key": "DB_PORT_3306_TCP_PORT",
            -            "value": "3306"
            -        },
            -        {
            -            "key": "DB_PORT_3306_TCP_PROTO",
            -            "value": "tcp"
            -        },
            -        {
            -            "key": "DB_DOCKERCLOUD_API_URL",
            -            "value": "https://cloud.docker.com/api/app/v1/user_namespace/service/c0fed1dc-c528-40c9-aa4c-dc00672ebcbf/"
            -        }
            -    ],
            -    "container_ports": [
            -        {
            -            "endpoint_uri": "http://wordpress-stackable-1.admin.cont.dockerapp.io:49153/",
            -            "inner_port": 80,
            -            "outer_port": 49153,
            -            "port_name": "http",
            -            "protocol": "tcp",
            -            "published": true,
            -            "uri_protocol": "http"
            -        }
            -    ],
            -    "cpu_shares": 100,
            -    "cpuset": "0,1",
            -    "cgroup_parent": "m-executor-abcd",
            -    "deployed_datetime": "Thu, 16 Oct 2014 12:04:08 +0000",
            -    "destroyed_datetime": null,
            -    "devices": [
            -        "/dev/ttyUSB0:/dev/ttyUSB0"
            -    ],
            -    "dns": [
            -        "8.8.8.8"
            -    ],
            -    "dns_search": [
            -        "example.com",
            -        "c1dd4e1e-1356-411c-8613-e15146633640.local.dockerapp.io"
            -    ],
            -    "domainname": "domainname",
            -    "entrypoint": "",
            -    "exit_code": null,
            -    "exit_code_msg": null,
            -    "extra_hosts": [
            -        "onehost:50.31.209.229"
            -    ],
            -    "hostname": "hostname",
            -    "image_name": "tutum/wordpress-stackable:latest",
            -    "labels": {
            -        "com.example.description": "Accounting webapp",
            -        "com.example.department": "Finance",
            -        "com.example.label-with-empty-value": ""
            -    },
            -    "linked_to_container": [
            -        {
            -            "endpoints": {
            -                "3306/tcp": "tcp://172.16.0.3:3306"
            -            },
            -            "from_container": "/api/app/v1/user_namespace/container/c1dd4e1e-1356-411c-8613-e15146633640/",
            -            "name": "DB_1",
            -            "to_container": "/api/app/v1/user_namespace/container/ba434e1e-1234-411c-8613-e15146633640/"
            -        }
            -    ],
            -    "link_variables": {
            -        "WORDPRESS_STACKABLE_1_ENV_DB_HOST": "**LinkMe**",
            -        "WORDPRESS_STACKABLE_1_ENV_DB_NAME": "wordpress",
            -        "WORDPRESS_STACKABLE_1_ENV_DB_PASS": "szVaPz925B7I",
            -        "WORDPRESS_STACKABLE_1_ENV_DB_PORT": "**LinkMe**",
            -        "WORDPRESS_STACKABLE_1_ENV_DB_USER": "admin",
            -        "WORDPRESS_STACKABLE_1_ENV_DEBIAN_FRONTEND": "noninteractive",
            -        "WORDPRESS_STACKABLE_1_ENV_HOME": "/",
            -        "WORDPRESS_STACKABLE_1_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            -        "WORDPRESS_STACKABLE_1_PORT": "tcp://172.16.0.2:80",
            -        "WORDPRESS_STACKABLE_1_PORT_80_TCP": "tcp://172.16.0.2:80",
            -        "WORDPRESS_STACKABLE_1_PORT_80_TCP_ADDR": "172.16.0.2",
            -        "WORDPRESS_STACKABLE_1_PORT_80_TCP_PORT": "80",
            -        "WORDPRESS_STACKABLE_1_PORT_80_TCP_PROTO": "tcp",
            -        "WORDPRESS_STACKABLE_ENV_DB_HOST": "**LinkMe**",
            -        "WORDPRESS_STACKABLE_ENV_DB_NAME": "wordpress",
            -        "WORDPRESS_STACKABLE_ENV_DB_PASS": "szVaPz925B7I",
            -        "WORDPRESS_STACKABLE_ENV_DB_PORT": "**LinkMe**",
            -        "WORDPRESS_STACKABLE_ENV_DB_USER": "admin",
            -        "WORDPRESS_STACKABLE_ENV_DEBIAN_FRONTEND": "noninteractive",
            -        "WORDPRESS_STACKABLE_ENV_HOME": "/",
            -        "WORDPRESS_STACKABLE_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            -        "WORDPRESS_STACKABLE_PORT": "tcp://172.16.0.2:80",
            -        "WORDPRESS_STACKABLE_PORT_80_TCP": "tcp://172.16.0.2:80",
            -        "WORDPRESS_STACKABLE_PORT_80_TCP_ADDR": "172.16.0.2",
            -        "WORDPRESS_STACKABLE_PORT_80_TCP_PORT": "80",
            -        "WORDPRESS_STACKABLE_PORT_80_TCP_PROTO": "tcp"
            -    },
            -    "mac_address": "02:42:ac:11:65:43",
            -    "memory": 1024,
            -    "memory_swap": 4096,
            -    "name": "wordpress-stackable",
            -    "net": "bridge",
            -    "node": "/api/infra/v1/user_namespace/node/9691c44e-3155-4ca2-958d-c9571aac0a14/",
            -    "pid": "none",
            -    "private_ip": "10.7.0.1",
            -    "privileged": false,
            -    "public_dns": "wordpress-stackable-1.admin.cont.dockerapp.io",
            -    "read_only": true,
            -    "resource_uri": "/api/app/v1/user_namespace/container/c1dd4e1e-1356-411c-8613-e15146633640/",
            -    "roles": ["global"],
            -    "run_command": "/run-wordpress.sh",
            -    "security_opt": [
            -        "label:user:USER",
            -        "label:role:ROLE"
            -    ],
            -    "service": "/api/app/v1/user_namespace/service/adeebc1b-1b81-4af0-b8f2-cefffc69d7fb/",
            -    "started_datetime": "Thu, 16 Oct 2014 12:04:08 +0000",
            -    "state": "Running",
            -    "stdin_open": false,
            -    "stopped_datetime": null,
            -    "synchronized": true,
            -    "tty": false,
            -    "user": "root",
            -    "uuid": "c1dd4e1e-1356-411c-8613-e15146633640",
            -    "working_dir": "/app"
            -}
            -
            - -

            A container is a representation of a Docker container in a node.

            - -

            This is a namespaced endpoint.

            - -

            Attributes

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            uuidA unique identifier for the container generated automatically on creation
            resource_uriA unique API endpoint that represents the container
            image_nameThe Docker image name and tag of the container
            bindingsA list of volume bindings that the container has mounted (see table Container Binding attributes below)
            nameA user provided name for the container (inherited from the service)
            nodeThe resource URI of the node where this container is running
            serviceThe resource URI of the service which this container is part of
            public_dnsThe external FQDN of the container
            stateThe state of the container (see table Container states below)
            synchronizedFlag indicating if the container is synchronized with the current service definition.
            exit_codeThe numeric exit code of the container (if applicable, null otherwise)
            exit_code_msgA string representation of the exit code of the container (if applicable, null otherwise)
            deployed_datetimeThe date and time of the last deployment of the container (if applicable, null otherwise)
            started_datetimeThe date and time of the last start operation on the container (if applicable, null otherwise)
            stopped_datetimeThe date and time of the last stop operation on the container (if applicable, null otherwise)
            destroyed_datetimeThe date and time of the terminate operation on the container (if applicable, null otherwise)
            container_portsList of published ports of this container (see table Container Port attributes below)
            container_envvarsList of user-defined environment variables set on the containers of the service, which will override the container environment variables (see table Container Environment Variable attributes below)
            labelsContainer metadata in form of dictionary
            working_dirWorking directory for running binaries within a container
            userUser used on the container on launch
            hostnameHostname used on the container on launch
            domainnameDomainname used on the container on launch
            mac_addressEthernet device’s MAC address used on the container on launch
            cgroup_nameOptional parent cgroup for the container.
            ttyIf the container has the tty enable
            stdin_openIf the container has stdin opened
            dnsContainer custom DNS servers
            dns_searchContainer custom DNS search domain
            cap_addContainer added capabilities
            cap_dropContainer dropped capabilities
            devicesList of container device mappings
            extra_hostsList of container hostname mappings
            secuirty_optLabeling scheme of this container
            entrypointEntrypoint used on the container on launch
            run_commandRun command used on the container on launch
            cpu_sharesThe relative CPU priority of the container (see Runtime Constraints on CPU and Memory for more information)
            cpusetCPUs in which execution is allowed
            memoryThe memory limit of the container in MB (see Runtime Constraints on CPU and Memory for more information)
            memory_swapTotal memory limit (memory + swap) of the container in MB
            autorestartWhether to restart the container automatically if it stops (see Crash recovery for more information)
            autodestroyWhether to terminate the container automatically if it stops (see Autodestroy for more information)
            rolesList of Docker Cloud roles assigned to this container (see API roles for more information))
            linked_to_containerList of IP addresses of the linked containers (see table Container Link attributes below and Service links for more information)
            link_variablesList of environment variables that would be exposed in any container that is linked to this one
            privilegedWhether the container has Docker’s privileged flag set or not (see Runtime privilege for more information)
            read_onlyWhether the container filesystem is read-only or not
            private_ipIP address of the container on the overlay network. This IP will be reachable from any other container.
            netNetwork mode set on the container (see table Network Modes below, more information)
            pidPID (Process) Namespace mode for the container (more information)
            - -

            Container Binding attributes

            - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            host_pathThe host path of the volume
            container_pathThe container path where the volume is mounted
            rewritabletrue is the volume has writable permissions
            volumeThe resource URI of the volume
            - -

            Container Port attributes

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            protocolThe protocol of the port, either tcp or udp
            inner_portThe published port number inside the container
            outer_portThe published port number in the node public network interface
            port_nameName of the service associated to this port
            uri_protocolThe protocol to be used in the endpoint for this port (i.e. http)
            endpoint_uriThe URI of the endpoint for this port
            publishedWhether the port has been published in the host public network interface or not. Non-published ports can only be accessed via links.
            - -

            Container Environment Variable attributes

            - - - - - - - - - - - - - - - -
            AttributeDescription
            keyThe name of the environment variable
            valueThe value of the environment variable
            - -

            Container States

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            StateDescription
            StartingThe container is being deployed or started (from Stopped). No actions allowed in this state.
            RunningThe container is deployed and running. Possible actions in this state: stop, terminate.
            StoppingThe container is being stopped. No actions allowed in this state.
            StoppedThe container is stopped. Possible actions in this state: start, terminate.
            TerminatingThe container is being deleted. No actions allowed in this state.
            TerminatedThe container has been deleted. No actions allowed in this state.
            - -

            Network Modes

            - - - - - - - - - - - - - - - -
            StrategyDescription
            bridgeCreates a new network stack for the container on the docker bridge.
            hostUses the host network stack inside the container.
            - - - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            nameThe name given to the link
            from_containerThe resource URI of the “client” container
            to_containerThe resource URI of the “server” container being linked
            endpointsA dictionary with the endpoints (protocol, IP and port) to be used to reach each of the “server” container exposed ports
            - -

            List all containers

            -
            import dockercloud
            -
            -containers = dockercloud.Container.list()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -containerList, err := dockercloud.ListContainers()
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(containerList)
            -
            -
            GET /api/app/v1/container/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud container ps
            -
            - -

            Lists all current and recently terminated containers. Returns a list of Container objects.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/app/v1/[optional_namespace/]container/

            - -

            Query Parameters

            - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            ParameterDescription
            uuidFilter by UUID
            stateFilter by state. Possible values: Starting, Running, Stopping, Stopped, Terminating, Terminated
            nameFilter by container name
            serviceFilter by resource URI of the target service.
            nodeFilter by resource URI of the target node.
            - -

            Get an existing container

            -
            import dockercloud
            -
            -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -container, err := dockerckoud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(container)
            -
            -
            GET /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud container inspect 7eaf7fff
            -
            - -

            Get all the details of an specific container

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/app/v1/[optional_namespace/]container/(uuid)/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the container to retrieve
            - -

            Get the logs of a container

            - -
            -

            Example log line

            -
            -
            {
            -    "type": "log",
            -    "log": "Log line from the container",
            -    "streamType": "stdout",
            -    "timestamp": 1433779324
            -}
            -
            -
            import dockercloud
            -
            -def log_handler(message):
            -    print message
            -
            -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -container.logs(tail=300, follow=True, log_handler=log_handler)
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -container, err := dockercloud.GetContainer("447ecddc-2890-4ea2-849b-99392e0dd7a6")
            -
            -if err != nil {
            -    log.Fatal(err)
            -}
            -c := make(chan dockercloud.Logs)
            -
            -go container.Logs(c)
            -    for {
            -        s := <-c
            -        log.Println(s)
            -    }
            -
            -
            GET /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/logs/ HTTP/1.1
            -Host: ws.cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Connection: Upgrade
            -Upgrade: websocket
            -
            -
            docker-cloud container logs 7eaf7fff
            -
            - -

            Get the logs of the specified container.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s STREAM API

            - -

            HTTP Request

            - -

            GET /api/app/v1/[optional_namespace/]container/(uuid)/logs/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the container to retrieve logs
            - -

            Query Parameters

            - - - - - - - - - - - - - - - - - - - -
            ParameterDescription
            tailNumber of lines to show from the end of the logs (default: 300)
            followWhether to stream logs or close the connection immediately (default: true)
            serviceFilter by service (resource URI)
            - -

            Start a container

            -
            import dockercloud
            -
            -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -container.start()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -    log.Println(err)
            -}
            -
            -if err = container.Start(); err != nil {
            -  log.Println(err)
            -}
            -
            -
            POST /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/start/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud container start 7eaf7fff
            -
            - -

            Starts a stopped container.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/app/v1/[optional_namespace/]container/(uuid)/start/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the container to start
            - -

            Stop a container

            -
            import dockercloud
            -
            -container = dockerlcoud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -container.stop()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -    log.Println(err)
            -}
            -
            -if err = container.Stop(); err != nil {
            -       log.Println(err)
            -   }
            -
            -
            POST /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/stop/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud container stop 7eaf7fff
            -
            - -

            Stops a running container.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/app/v1/[optional_namespace/]container/(uuid)/stop/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the container to stop
            - -

            Redeploy a container

            -
            import dockercloud
            -
            -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -container.redeploy()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -    log.Println(err)
            -}
            -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: true) to reuse the existing volumes
            -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}) to not reuse the existing volumes
            -if err = container.Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}); err != nil {
            -  log.Println(err)
            -}
            -
            -
            POST /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/start/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud container redeploy 7eaf7fff
            -
            - -

            Redeploys a container.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/app/v1/[optional_namespace/]container/(uuid)/redeploy/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the container to redeploy
            - -

            Query Parameters

            - - - - - - - - - - - -
            ParameterDescription
            reuse_volumesWheather to reuse container volumes for this redeploy operation or not (default: true).
            - -

            Terminate a container

            -
            import dockercloud
            -
            -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -container.delete()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -    log.Println(err)
            -}
            -
            -if err = container.Terminate(); err != nil {
            -       log.Println(err)
            -   }
            -
            -
            DELETE /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud container terminate 7eaf7fff
            -
            - -

            Terminates the specified container. This is not reversible. All data stored in the container will be permanently deleted.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            DELETE /api/app/v1/[optional_namespace/]container/(uuid)/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the container to terminate
            - -

            Execute command inside a container

            -
            import dockercloud
            -
            -def msg_handler(message):
            -    print message
            -
            -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -container.execute("ls", handler=msg_handler)
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -c := make(chan dockercloud.Exec)
            -
            -container.Exec("ls", c)
            -
            -
            -
            GET /api/app/v1/container/(uuid)/exec/ HTTP/1.1
            -Host: ws.cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Connection: Upgrade
            -Upgrade: websocket
            -
            -
            docker-cloud exec 7eaf7fff ls
            -
            - -

            Executes a command inside the specified running container, creating a bi-directional stream for the process’ standard input and output. This endpoint can be connected to using a bi-directional Secure Web Socket wss://ws.cloud.docker.com/api/app/v1/container/(uuid)/exec/

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s STREAM API

            - -

            HTTP Request

            - -

            GET /api/app/v1/[optional_namespace/]container/(uuid)/exec/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the container where the command will be executed
            - -

            Query Parameters

            - - - - - - - - - - - -
            ParameterDescription
            commandCommand to be executed (default: sh)
            - -

            Triggers

            - -

            Service triggers

            - -
            -

            Example

            -
            -
            {
            -  "url": "/api/app/v1/user_namespace/service/82d4a246-52d8-468d-903d-9da9ef05ff28/trigger/0224815a-c156-44e4-92d7-997c69354438/call/",
            -  "operation": "REDEPLOY",
            -  "name": "docker_trigger",
            -  "resource_uri": "/api/app/v1/user_namespace/service/82d4a246-52d8-468d-903d-9da9ef05ff28/trigger/0224815a-c156-44e4-92d7-997c69354438/"
            -}
            -
            - -

            Triggers are URLs that will start a redeploy of the service whenever a POST request is sent to them. They require no authorization headers, so they should be treated as access tokens. Triggers can be revoked if they are leaked or no longer used for security purposes. See Triggers for more information.

            - -

            This is a namespaced endpoint.

            - -

            Attributes

            - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            urlAddress to be used to call the trigger with a POST request
            nameA user provided name for the trigger
            operationThe operation that the trigger call performs (see table Operations below)
            resource_uriA unique API endpoint that represents the trigger
            - -

            Operations

            - - - - - - - - - - - - - - - -
            OperationDescription
            REDEPLOYPerforms a redeploy service operation.
            SCALEUPPerforms a scale up service operation.
            - -

            List all triggers

            -
            import dockercloud
            -
            -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826')
            -trigger = dockercloud.Trigger.fetch(service)
            -trigger.list()
            -
            -
            GET /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826")
            -
            -    if err != nil {
            -        log.Println(err)
            -    }
            -
            -trigger, err := service.ListTriggers()
            -
            -  if err != nil {
            -    log.Println(err)
            -  }
            -
            -    log.Println(trigger)
            -
            -
            docker-cloud trigger list 61a29874-9134-48f9-b460-f37d4bec4826
            -
            - -

            Lists all current triggers the service has associated to. Returns a list of Service Trigger objects.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/app/v1/[optional_namespace/]service/(uuid)/trigger/

            - -

            Path Parameters

            - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the service the triggers are associated to
            - -

            Create a new trigger

            -
            import dockercloud
            -
            -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826')
            -trigger = dockercloud.Trigger.fetch(service)
            -trigger.add(name="mytrigger_name", operation="REDEPLOY")
            -trigger.save()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -trigger, err := service.CreateTrigger(dockercloud.TriggerCreateRequest{Name: "test-trigger", Operation: "REDEPLOY"})
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(trigger)
            -
            -
            POST /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -Content-Type: application/json
            -
            -{"name": "mytrigger_name", "operation": "REDEPLOY"}
            -
            -
            docker-cloud trigger create --name mytrigger_name --operation REDEPLOY 61a29874-9134-48f9-b460-f37d4bec4826
            -
            - -

            Creates a new service trigger.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/app/v1/[optional_namespace/]service/(uuid)/trigger/

            - -

            JSON Parameters

            - - - - - - - - - - - - - - - -
            ParameterDescription
            name(optional) A user provided name for the trigger
            operation(optional) The operation to be performed by the trigger (default: “REDEPLOY”)
            - -

            Get an existing trigger

            -
            import dockercloud
            -
            -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826')
            -trigger = dockercloud.Trigger.fetch(service)
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -trigger, err := service.GetTrigger("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -log.Println(trigger)
            -
            -
            GET /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            - -

            Get all the details of an specific trigger

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            GET /api/app/v1/[optional_namespace/]service/(uuid)/trigger/(trigger_uuid)/

            - -

            Path Parameters

            - - - - - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the service the triggers are associated to
            trigger_uuidThe UUID of the trigger to retrieve
            - -

            Delete a trigger

            -
            import dockercloud
            -
            -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826')
            -trigger = dockercloud.Trigger.fetch(service)
            -trigger.delete("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -service.DeleteTrigger("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -
            DELETE /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
            -Host: cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Accept: application/json
            -
            -
            docker-cloud trigger rm 61a29874-9134-48f9-b460-f37d4bec4826 7eaf7fff-882c-4f3d-9a8f-a22317ac00ce
            -
            - -

            Deletes specific trigger. It will be no longer available to be called.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            DELETE /api/app/v1/[optional_namespace/]service/(uuid)/trigger/(trigger_uuid)/

            - -

            Path Parameters

            - - - - - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the associated service
            trigger_uuidThe UUID of the trigger to delete
            - -

            Call a trigger

            -
            import dockercloud
            -
            -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826')
            -trigger = dockercloud.Trigger.fetch(service)
            -trigger.call("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826")
            -
            -if err != nil {
            -  log.Println(err)
            -}
            -
            -service.CallTrigger("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
            -
            -
            POST /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/call/ HTTP/1.1
            -Host: cloud.docker.com
            -Accept: application/json
            -
            - -

            Executes the trigger. For SCALEUP triggers, the number of containers to scale up can be passed at the end of the trigger call url, for example /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/call/3/.

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s REST API

            - -

            HTTP Request

            - -

            POST /api/app/v1/[optional_namespace/]service/(uuid)/trigger/(trigger_uuid)/call/

            - -

            Path Parameters

            - - - - - - - - - - - - - - - -
            ParameterDescription
            uuidThe UUID of the associated service
            trigger_uuidThe UUID of the trigger to call
            - -

            Docker Cloud Events

            - -

            Docker Cloud Event

            - -
            -

            Example

            -
            -
            {
            -    "type": "action",
            -    "action": "update",
            -    "parents": [
            -        "/api/app/v1/user_namespace/container/0b0e3538-88df-4f07-9aed-3a3cc4175076/"
            -    ],
            -    "resource_uri": "/api/app/v1/user_namespace/action/49f0efe8-a704-4a10-b02f-f96344fabadd/",
            -    "state": "Success",
            -    "uuid": "093ba3bb-08dd-48f0-8f12-4d3b85ef85b3",
            -    "datetime": "2016-02-01T16:47:28Z"
            -}
            -
            - -

            Docker Cloud events are generated every time any of the following objects is created or changes state:

            - -
              -
            • Stack
            • -
            • Service
            • -
            • Container
            • -
            • Node Cluster
            • -
            • Node
            • -
            • Action
            • -
            - -

            This is a namespaced endpoint.

            - -

            Attributes

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            AttributeDescription
            typeType of object that was created or updated. For possible values, check the events types table below.
            actionType of action that was executed on the object. Possible values: create, update or delete
            parentsList of resource URIs (REST API) of the parents of the object, according to the “Parent-child hierarchy” table below
            resource_uriResource URI (REST API) of the object that was created or updated. You can do a GET operation on this URL to fetch its details
            stateThe current state of the object
            uuidUnique identifier for the event
            datetimeDate and time of the event in ISO 8601 format
            - -

            Event types

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            TypeDescription
            stackWhenever a Stack is created or updated
            serviceWhenever a Service is created or updated
            containerWhenever a Container is created or updated
            nodeclusterWhenever a Node Cluster is created or updated
            nodeWhenever a Node is created or updated
            actionWhenever a Action is created or updated
            errorSent when an error occurs on the websocket connection or as part of the authentication process
            - -

            Parent-child hierarchy

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            Object typeParent types
            Stack(None)
            ServiceStack
            ContainerService, Stack, Node, Node Cluster
            Node Cluster(None)
            NodeNode Cluster
            Action(object to which the action applies to)
            - -

            Listen to new Docker Cloud Events

            -
            import dockercloud
            -
            -def process_event(event):
            -    print event
            -
            -events = dockercloud.Events()
            -events.on_message(process_event)
            -events.run_forever()
            -
            -
            import "github.com/docker/go-dockercloud/dockercloud"
            -
            -// Listens for container events only
            -myFilter := dockercloud.NewStreamFilter(&dockercloud.EventFilter{Type: "container"})
            -
            -stream := dockercloud.NewStream(myFilter)
            -
            -if err := stream.Connect(); err == nil {
            -    go stream.RunForever()
            -} else {
            -    log.Print("Connect err: " + err.Error())
            -}
            -
            -for {
            -    select {
            -    case event := <-stream.MessageChan:
            -        log.Println(event)
            -    case err := <-stream.ErrorChan:
            -        log.Println(err)
            -    }
            -}
            -
            -
            GET /api/audit/v1/events/ HTTP/1.1
            -Host: ws.cloud.docker.com
            -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
            -Connection: Upgrade
            -Upgrade: websocket
            -
            -
            docker-cloud event
            -
            - -

            Listens for new Docker Cloud Events

            - -

            Endpoint Type

            - -

            Available in Docker Cloud’s STREAM API

            - -

            HTTP Request

            - -

            GET /api/audit/v1/[optional_namespace/]events/

            - -

            Query Parameters

            - - - - - - - - - - - - - - - - - - - -
            ParameterDescription
            typeFilter by type
            objectFilter by object resource URI
            parentFilter by object parents
            - -

            Errors

            - -
            -

            API response structure

            -
            -
            {
            -    "error": "Descriptive error message"
            -}
            -
            - -

            The Docker Cloud API uses the following error codes:

            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            Error CodeMeaning
            400Bad Request – There’s a problem in the content of your request. Retrying the same request will fail.
            401Unauthorized – Your API key is wrong or your account has been deactivated.
            402Payment Required – You need to provide billing information to perform this request.
            403Forbidden – Quota limit exceeded. Please contact support to request a quota increase.
            404Not Found – The requested object cannot be found.
            405Method Not Allowed – The endpoint requested does not implement the method sent.
            409Conflict – The object cannot be created or updated because another object exists with the same unique fields
            415Unsupported Media Type – Make sure you are using Accept and Content-Type headers as application/json and that the data your are POST-ing or PATCH-ing is in valid JSON format.
            429Too Many Requests – You are being throttled because of too many requests in a short period of time.
            500Internal Server Error – There was a server error while processing your request. Try again later, or contact support.
            503Service Unavailable – We’re temporarily offline for maintenance. Please try again later.
            504Gateway Timeout – Our API servers are at full capacity. Please try again later.
            - -
            -
            -
            - http - go - python - CLI -
            -
            -
            - - diff --git a/apidocs/docker-cloud/javascripts/all.js b/apidocs/docker-cloud/javascripts/all.js deleted file mode 100644 index 10e6f3d483..0000000000 --- a/apidocs/docker-cloud/javascripts/all.js +++ /dev/null @@ -1,143 +0,0 @@ -!function(){if("ontouchstart"in window){var e,t,n,i,o,s,r={};e=function(e,t){return Math.abs(e[0]-t[0])>5||Math.abs(e[1]-t[1])>5},t=function(e){this.startXY=[e.touches[0].clientX,e.touches[0].clientY],this.threshold=!1},n=function(t){return this.threshold?!1:void(this.threshold=e(this.startXY,[t.touches[0].clientX,t.touches[0].clientY]))},i=function(t){if(!this.threshold&&!e(this.startXY,[t.changedTouches[0].clientX,t.changedTouches[0].clientY])){var n=t.changedTouches[0],i=document.createEvent("MouseEvents");i.initMouseEvent("click",!0,!0,window,0,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),i.simulated=!0,t.target.dispatchEvent(i)}},o=function(e){var t=Date.now(),n=t-r.time,i=e.clientX,o=e.clientY,a=[Math.abs(r.x-i),Math.abs(r.y-o)],c=s(e.target,"A")||e.target,h=c.nodeName,l="A"===h,u=window.navigator.standalone&&l&&e.target.getAttribute("href");return r.time=t,r.x=i,r.y=o,(!e.simulated&&(500>n||1500>n&&a[0]<50&&a[1]<50)||u)&&(e.preventDefault(),e.stopPropagation(),!u)?!1:(u&&(window.location=c.getAttribute("href")),void(c&&c.classList&&(c.classList.add("energize-focus"),window.setTimeout(function(){c.classList.remove("energize-focus")},150))))},s=function(e,t){for(var n=e;n!==document.body;){if(!n||n.nodeName===t)return n;n=n.parentNode}return null},document.addEventListener("touchstart",t,!1),document.addEventListener("touchmove",n,!1),document.addEventListener("touchend",i,!1),document.addEventListener("click",o,!0)}}(),/* -Copyright 2008-2013 Concur Technologies, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); you may -not use this file except in compliance with the License. You may obtain -a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations -under the License. -*/ -function(e){"use strict";function t(t){if(t&&""!==t){$(".lang-selector a").removeClass("active"),$(".lang-selector a[data-language-name='"+t+"']").addClass("active");for(var n=0;n=1){var e=n(location.search).language;if(e)return e;if(-1!=jQuery.inArray(location.search.substr(1),c))return location.search.substr(1)}return!1}function s(e){var t=n(location.search);return t.language?(t.language=e,i(t)):e}function r(e){if(history){var t=window.location.hash;t&&(t=t.replace(/^#+/,"")),history.pushState({},"","?"+s(e)+"#"+t),localStorage.setItem("language",e)}}function a(e){var n=localStorage.getItem("language");c=e;var i=o();i?(t(i),localStorage.setItem("language",i)):t(null!==n&&-1!=jQuery.inArray(n,c)?n:c[0])}var c=[];e.setupLanguages=a,e.activateLanguage=t,$(function(){$(".lang-selector a").on("click",function(){var e=$(this).data("language-name");return r(e),t(e),!1}),window.onpopstate=function(){t(o())}})}(window),/** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 0.5.7 - * Copyright (C) 2014 Oliver Nightingale - * MIT Licensed - * @license - */ -function(){var e=function(t){var n=new e.Index;return n.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),t&&t.call(n,n),n};e.version="0.5.7",/*! - * lunr.utils - * Copyright (C) 2014 Oliver Nightingale - */ -e.utils={},e.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),/*! - * lunr.EventEmitter - * Copyright (C) 2014 Oliver Nightingale - */ -e.EventEmitter=function(){this.events={}},e.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},e.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);this.events[e].splice(n,1),this.events[e].length||delete this.events[e]}},e.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)})}},e.EventEmitter.prototype.hasHandler=function(e){return e in this.events},/*! - * lunr.tokenizer - * Copyright (C) 2014 Oliver Nightingale - */ -e.tokenizer=function(e){if(!arguments.length||null==e||void 0==e)return[];if(Array.isArray(e))return e.map(function(e){return e.toLowerCase()});for(var t=e.toString().replace(/^\s+/,""),n=t.length-1;n>=0;n--)if(/\S/.test(t.charAt(n))){t=t.substring(0,n+1);break}return t.split(/(?:\s+|\-)/).filter(function(e){return!!e}).map(function(e){return e.toLowerCase()})},/*! - * lunr.Pipeline - * Copyright (C) 2014 Oliver Nightingale - */ -e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions={},e.Pipeline.registerFunction=function(t,n){n in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+n),t.label=n,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var n=t.label&&t.label in this.registeredFunctions;n||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var n=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load un-registered function: "+t);n.add(i)}),n},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,n){e.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(t)+1;this._stack.splice(i,0,n)},e.Pipeline.prototype.before=function(t,n){e.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(t);this._stack.splice(i,0,n)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._stack.length,o=0;n>o;o++){for(var s=e[o],r=0;i>r&&(s=this._stack[r](s,o,e),void 0!==s);r++);void 0!==s&&t.push(s)}return t},e.Pipeline.prototype.reset=function(){this._stack=[]},e.Pipeline.prototype.toJSON=function(){return this._stack.map(function(t){return e.Pipeline.warnIfFunctionNotRegistered(t),t.label})},/*! - * lunr.Vector - * Copyright (C) 2014 Oliver Nightingale - */ -e.Vector=function(){this._magnitude=null,this.list=void 0,this.length=0},e.Vector.Node=function(e,t,n){this.idx=e,this.val=t,this.next=n},e.Vector.prototype.insert=function(t,n){var i=this.list;if(!i)return this.list=new e.Vector.Node(t,n,i),this.length++;for(var o=i,s=i.next;void 0!=s;){if(tn.idx?n=n.next:(i+=t.val*n.val,t=t.next,n=n.next);return i},e.Vector.prototype.similarity=function(e){return this.dot(e)/(this.magnitude()*e.magnitude())},/*! - * lunr.SortedSet - * Copyright (C) 2014 Oliver Nightingale - */ -e.SortedSet=function(){this.length=0,this.elements=[]},e.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},e.SortedSet.prototype.add=function(){Array.prototype.slice.call(arguments).forEach(function(e){~this.indexOf(e)||this.elements.splice(this.locationFor(e),0,e)},this),this.length=this.elements.length},e.SortedSet.prototype.toArray=function(){return this.elements.slice()},e.SortedSet.prototype.map=function(e,t){return this.elements.map(e,t)},e.SortedSet.prototype.forEach=function(e,t){return this.elements.forEach(e,t)},e.SortedSet.prototype.indexOf=function(e,t,n){var t=t||0,n=n||this.elements.length,i=n-t,o=t+Math.floor(i/2),s=this.elements[o];return 1>=i?s===e?o:-1:e>s?this.indexOf(e,o,n):s>e?this.indexOf(e,t,o):s===e?o:void 0},e.SortedSet.prototype.locationFor=function(e,t,n){var t=t||0,n=n||this.elements.length,i=n-t,o=t+Math.floor(i/2),s=this.elements[o];if(1>=i){if(s>e)return o;if(e>s)return o+1}return e>s?this.locationFor(e,o,n):s>e?this.locationFor(e,t,o):void 0},e.SortedSet.prototype.intersect=function(t){for(var n=new e.SortedSet,i=0,o=0,s=this.length,r=t.length,a=this.elements,c=t.elements;;){if(i>s-1||o>r-1)break;a[i]!==c[o]?a[i]c[o]&&o++:(n.add(a[i]),i++,o++)}return n},e.SortedSet.prototype.clone=function(){var t=new e.SortedSet;return t.elements=this.toArray(),t.length=t.elements.length,t},e.SortedSet.prototype.union=function(e){var t,n,i;return this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone(),i.add.apply(i,n.toArray()),i},e.SortedSet.prototype.toJSON=function(){return this.toArray()},/*! - * lunr.Index - * Copyright (C) 2014 Oliver Nightingale - */ -e.Index=function(){this._fields=[],this._ref="id",this.pipeline=new e.Pipeline,this.documentStore=new e.Store,this.tokenStore=new e.TokenStore,this.corpusTokens=new e.SortedSet,this.eventEmitter=new e.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},e.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},e.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},e.Index.load=function(t){t.version!==e.version&&e.utils.warn("version mismatch: current "+e.version+" importing "+t.version);var n=new this;return n._fields=t.fields,n._ref=t.ref,n.documentStore=e.Store.load(t.documentStore),n.tokenStore=e.TokenStore.load(t.tokenStore),n.corpusTokens=e.SortedSet.load(t.corpusTokens),n.pipeline=e.Pipeline.load(t.pipeline),n},e.Index.prototype.field=function(e,t){var t=t||{},n={name:e,boost:t.boost||1};return this._fields.push(n),this},e.Index.prototype.ref=function(e){return this._ref=e,this},e.Index.prototype.add=function(t,n){var i={},o=new e.SortedSet,s=t[this._ref],n=void 0===n?!0:n;this._fields.forEach(function(n){var s=this.pipeline.run(e.tokenizer(t[n.name]));i[n.name]=s,e.SortedSet.prototype.add.apply(o,s)},this),this.documentStore.set(s,o),e.SortedSet.prototype.add.apply(this.corpusTokens,o.toArray());for(var r=0;r0&&(i=1+Math.log(this.tokenStore.length/n)),this._idfCache[t]=i},e.Index.prototype.search=function(t){var n=this.pipeline.run(e.tokenizer(t)),i=new e.Vector,o=[],s=this._fields.reduce(function(e,t){return e+t.boost},0),r=n.some(function(e){return this.tokenStore.has(e)},this);if(!r)return[];n.forEach(function(t,n,r){var a=1/r.length*this._fields.length*s,c=this,h=this.tokenStore.expand(t).reduce(function(n,o){var s=c.corpusTokens.indexOf(o),r=c.idf(o),h=1,l=new e.SortedSet;if(o!==t){var u=Math.max(3,o.length-t.length);h=1/Math.log(u)}return s>-1&&i.insert(s,a*r*h),Object.keys(c.tokenStore.get(o)).forEach(function(e){l.add(e)}),n.union(l)},new e.SortedSet);o.push(h)},this);var a=o.reduce(function(e,t){return e.intersect(t)});return a.map(function(e){return{ref:e,score:i.similarity(this.documentVector(e))}},this).sort(function(e,t){return t.score-e.score})},e.Index.prototype.documentVector=function(t){for(var n=this.documentStore.get(t),i=n.length,o=new e.Vector,s=0;i>s;s++){var r=n.elements[s],a=this.tokenStore.get(r)[t].tf,c=this.idf(r);o.insert(this.corpusTokens.indexOf(r),a*c)}return o},e.Index.prototype.toJSON=function(){return{version:e.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},e.Index.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},/*! - * lunr.Store - * Copyright (C) 2014 Oliver Nightingale - */ -e.Store=function(){this.store={},this.length=0},e.Store.load=function(t){var n=new this;return n.length=t.length,n.store=Object.keys(t.store).reduce(function(n,i){return n[i]=e.SortedSet.load(t.store[i]),n},{}),n},e.Store.prototype.set=function(e,t){this.has(e)||this.length++,this.store[e]=t},e.Store.prototype.get=function(e){return this.store[e]},e.Store.prototype.has=function(e){return e in this.store},e.Store.prototype.remove=function(e){this.has(e)&&(delete this.store[e],this.length--)},e.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},/*! - * lunr.stemmer - * Copyright (C) 2014 Oliver Nightingale - * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt - */ -e.stemmer=function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},t={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",o=n+"[^aeiouy]*",s=i+"[aeiou]*",r="^("+o+")?"+s+o,a="^("+o+")?"+s+o+"("+s+")?$",c="^("+o+")?"+s+o+s+o,h="^("+o+")?"+i,l=new RegExp(r),u=new RegExp(c),d=new RegExp(a),f=new RegExp(h),p=/^(.+?)(ss|i)es$/,g=/^(.+?)([^s])s$/,v=/^(.+?)eed$/,m=/^(.+?)(ed|ing)$/,y=/.$/,w=/(at|bl|iz)$/,b=new RegExp("([^aeiouylsz])\\1$"),E=new RegExp("^"+o+i+"[^aeiouwxy]$"),x=/^(.+?[^aeiou])y$/,_=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,S=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,C=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,O=/^(.+?)(s|t)(ion)$/,k=/^(.+?)e$/,L=/ll$/,A=new RegExp("^"+o+i+"[^aeiouwxy]$"),T=function(n){var i,o,s,r,a,c,h;if(n.length<3)return n;if(s=n.substr(0,1),"y"==s&&(n=s.toUpperCase()+n.substr(1)),r=p,a=g,r.test(n)?n=n.replace(r,"$1$2"):a.test(n)&&(n=n.replace(a,"$1$2")),r=v,a=m,r.test(n)){var T=r.exec(n);r=l,r.test(T[1])&&(r=y,n=n.replace(r,""))}else if(a.test(n)){var T=a.exec(n);i=T[1],a=f,a.test(i)&&(n=i,a=w,c=b,h=E,a.test(n)?n+="e":c.test(n)?(r=y,n=n.replace(r,"")):h.test(n)&&(n+="e"))}if(r=x,r.test(n)){var T=r.exec(n);i=T[1],n=i+"i"}if(r=_,r.test(n)){var T=r.exec(n);i=T[1],o=T[2],r=l,r.test(i)&&(n=i+e[o])}if(r=S,r.test(n)){var T=r.exec(n);i=T[1],o=T[2],r=l,r.test(i)&&(n=i+t[o])}if(r=C,a=O,r.test(n)){var T=r.exec(n);i=T[1],r=u,r.test(i)&&(n=i)}else if(a.test(n)){var T=a.exec(n);i=T[1]+T[2],a=u,a.test(i)&&(n=i)}if(r=k,r.test(n)){var T=r.exec(n);i=T[1],r=u,a=d,c=A,(r.test(i)||a.test(i)&&!c.test(i))&&(n=i)}return r=L,a=u,r.test(n)&&a.test(n)&&(r=y,n=n.replace(r,"")),"y"==s&&(n=s.toLowerCase()+n.substr(1)),n};return T}(),e.Pipeline.registerFunction(e.stemmer,"stemmer"),/*! - * lunr.stopWordFilter - * Copyright (C) 2014 Oliver Nightingale - */ -e.stopWordFilter=function(t){return-1===e.stopWordFilter.stopWords.indexOf(t)?t:void 0},e.stopWordFilter.stopWords=new e.SortedSet,e.stopWordFilter.stopWords.length=119,e.stopWordFilter.stopWords.elements=["","a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"],e.Pipeline.registerFunction(e.stopWordFilter,"stopWordFilter"),/*! - * lunr.trimmer - * Copyright (C) 2014 Oliver Nightingale - */ -e.trimmer=function(e){return e.replace(/^\W+/,"").replace(/\W+$/,"")},e.Pipeline.registerFunction(e.trimmer,"trimmer"),/*! - * lunr.stemmer - * Copyright (C) 2014 Oliver Nightingale - * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt - */ -e.TokenStore=function(){this.root={docs:{}},this.length=0},e.TokenStore.load=function(e){var t=new this;return t.root=e.root,t.length=e.length,t},e.TokenStore.prototype.add=function(e,t,n){var n=n||this.root,i=e[0],o=e.slice(1);return i in n||(n[i]={docs:{}}),0===o.length?(n[i].docs[t.ref]=t,void(this.length+=1)):this.add(o,t,n[i])},e.TokenStore.prototype.has=function(e){if(!e)return!1;for(var t=this.root,n=0;n (default options) - * $('#content').highlight('lorem'); - * - * // search for and highlight more terms at once - * // so you can save some time on traversing DOM - * $('#content').highlight(['lorem', 'ipsum']); - * $('#content').highlight('lorem ipsum'); - * - * // search only for entire word 'lorem' - * $('#content').highlight('lorem', { wordsOnly: true }); - * - * // don't ignore case during search of term 'lorem' - * $('#content').highlight('lorem', { caseSensitive: true }); - * - * // wrap every occurrence of term 'ipsum' in content - * // with - * $('#content').highlight('ipsum', { element: 'em', className: 'important' }); - * - * // remove default highlight - * $('#content').unhighlight(); - * - * // remove custom highlight - * $('#content').unhighlight({ element: 'em', className: 'important' }); - * - * - * Copyright (c) 2009 Bartek Szopka - * - * Licensed under MIT license. - * - */ -jQuery.extend({highlight:function(e,t,n,i){if(3===e.nodeType){var o=e.data.match(t);if(o){var s=document.createElement(n||"span");s.className=i||"highlight";var r=e.splitText(o.index);r.splitText(o[0].length);var a=r.cloneNode(!0);return s.appendChild(a),r.parentNode.replaceChild(s,r),1}}else if(1===e.nodeType&&e.childNodes&&!/(script|style)/i.test(e.tagName)&&(e.tagName!==n.toUpperCase()||e.className!==i))for(var c=0;c1e-4});t.length?(r.empty(),$.each(t,function(e,t){var n=document.getElementById(t.ref);r.append("
          • "+$(n).text()+"
          • ")}),i.call(this)):(r.html("
          • "),$(".search-results li").text('No Results Found for "'+this.value+'"'))}else o(),r.removeClass("visible")}function i(){this.value&&s.highlight(this.value,a)}function o(){s.unhighlight(a)}var s,r,a={element:"span",className:"search-highlight"},c=new lunr.Index;c.ref("id"),c.field("title",{boost:10}),c.field("body"),c.pipeline.add(lunr.trimmer,lunr.stopWordFilter),$(e),$(t)}(),/*! jQuery UI - v1.11.3 - 2015-02-12 - * http://jqueryui.com - * Includes: widget.js - * Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ -function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function(e){/*! - * jQuery UI Widget 1.11.3 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/jQuery.widget/ - */ -var t=0,n=Array.prototype.slice;e.cleanData=function(t){return function(n){var i,o,s;for(s=0;null!=(o=n[s]);s++)try{i=e._data(o,"events"),i&&i.remove&&e(o).triggerHandler("remove")}catch(r){}t(n)}}(e.cleanData),e.widget=function(t,n,i){var o,s,r,a,c={},h=t.split(".")[0];return t=t.split(".")[1],o=h+"-"+t,i||(i=n,n=e.Widget),e.expr[":"][o.toLowerCase()]=function(t){return!!e.data(t,o)},e[h]=e[h]||{},s=e[h][t],r=e[h][t]=function(e,t){return this._createWidget?void(arguments.length&&this._createWidget(e,t)):new r(e,t)},e.extend(r,s,{version:i.version,_proto:e.extend({},i),_childConstructors:[]}),a=new n,a.options=e.widget.extend({},a.options),e.each(i,function(t,i){return e.isFunction(i)?void(c[t]=function(){var e=function(){return n.prototype[t].apply(this,arguments)},o=function(e){return n.prototype[t].apply(this,e)};return function(){var t,n=this._super,s=this._superApply;return this._super=e,this._superApply=o,t=i.apply(this,arguments),this._super=n,this._superApply=s,t}}()):void(c[t]=i)}),r.prototype=e.widget.extend(a,{widgetEventPrefix:s?a.widgetEventPrefix||t:t},c,{constructor:r,namespace:h,widgetName:t,widgetFullName:o}),s?(e.each(s._childConstructors,function(t,n){var i=n.prototype;e.widget(i.namespace+"."+i.widgetName,r,n._proto)}),delete s._childConstructors):n._childConstructors.push(r),e.widget.bridge(t,r),r},e.widget.extend=function(t){for(var i,o,s=n.call(arguments,1),r=0,a=s.length;a>r;r++)for(i in s[r])o=s[r][i],s[r].hasOwnProperty(i)&&void 0!==o&&(t[i]=e.isPlainObject(o)?e.isPlainObject(t[i])?e.widget.extend({},t[i],o):e.widget.extend({},o):o);return t},e.widget.bridge=function(t,i){var o=i.prototype.widgetFullName||t;e.fn[t]=function(s){var r="string"==typeof s,a=n.call(arguments,1),c=this;return r?this.each(function(){var n,i=e.data(this,o);return"instance"===s?(c=i,!1):i?e.isFunction(i[s])&&"_"!==s.charAt(0)?(n=i[s].apply(i,a),n!==i&&void 0!==n?(c=n&&n.jquery?c.pushStack(n.get()):n,!1):void 0):e.error("no such method '"+s+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; attempted to call method '"+s+"'")}):(a.length&&(s=e.widget.extend.apply(null,[s].concat(a))),this.each(function(){var t=e.data(this,o);t?(t.option(s||{}),t._init&&t._init()):e.data(this,o,new i(s,this))})),c}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
            ",options:{disabled:!1,create:null},_createWidget:function(n,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=t++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),n),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,n){var i,o,s,r=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(r={},i=t.split("."),t=i.shift(),i.length){for(o=r[t]=e.widget.extend({},this.options[t]),s=0;s",{id:c+t,"class":c}).append(i._nestElements(e(this),t)),i.element.append(n),e(this).nextUntil(this.nodeName.toLowerCase()).each(function(){0===e(this).find(i.options.selectors).length?e(this).filter(i.options.selectors).each(function(){e(this).is(s)||i._appendSubheaders.call(this,i,n)}):e(this).find(i.options.selectors).each(function(){e(this).is(s)||i._appendSubheaders.call(this,i,n)})}))})):void i.element.addClass(a)},_setActiveElement:function(e){var n=this,i=t.location.hash.substring(1),o=n.element.find("li[data-unique='"+i+"']");return i.length?(n.element.find("."+n.focusClass).removeClass(n.focusClass),o.addClass(n.focusClass),n.options.showAndHide&&o.click()):(n.element.find("."+n.focusClass).removeClass(n.focusClass),!i.length&&e&&n.options.highlightDefault&&n.element.find(f).first().addClass(n.focusClass)),n},_nestElements:function(t,n){var i,o,s;return i=e.grep(this.items,function(e){return e===t.text()}),this.items.push(i.length?t.text()+n:t.text()),s=this._generateHashValue(i,t,n),o=e("
          • ",{"class":d,"data-unique":s}).append(e("",{text:t.text()})),t.before(e("
            ",{name:s,"data-unique":s})),o},_generateHashValue:function(e,t,n){var i="",o=this.options.hashGenerator;if("pretty"===o){for(i=t.text().toLowerCase().replace(/\s/g,"-"),i=i.replace(/[^\x00-\x7F]/g,"");i.indexOf("--")>-1;)i=i.replace(/--/g,"-");for(;i.indexOf(":-")>-1;)i=i.replace(/:-/g,"-")}else i="function"==typeof o?o(t.text(),t):t.text().replace(/\s/g,"");return e.length&&(i+=""+n),i},_appendSubheaders:function(t,n){var i=e(this).index(t.options.selectors),o=e(t.options.selectors).eq(i-1),s=+e(this).prop("tagName").charAt(1),r=+o.prop("tagName").charAt(1);r>s?t.element.find(u+"[data-tag="+s+"]").last().append(t._nestElements(e(this),i)):s===r?n.find(f).last().after(t._nestElements(e(this),i)):n.find(f).last().after(e("
              ",{"class":l,"data-tag":s})).next(u).append(t._nestElements(e(this),i))},_setEventHandlers:function(){var o=this;this.element.on("click.tocify","li",function(){if(o.options.history&&(t.location.hash=e(this).attr("data-unique")),o.element.find("."+o.focusClass).removeClass(o.focusClass),e(this).addClass(o.focusClass),o.options.showAndHide){var n=e('li[data-unique="'+e(this).attr("data-unique")+'"]');o._triggerShow(n)}o._scrollTo(e(this))}),this.element.find("li").on({"mouseenter.tocify":function(){e(this).addClass(o.hoverClass),e(this).css("cursor","pointer")},"mouseleave.tocify":function(){"bootstrap"!==o.options.theme&&e(this).removeClass(o.hoverClass)}}),e(t).on("resize",function(){o.calculateHeights()}),e(t).on("scroll.tocify",function(){e("html, body").promise().done(function(){var s,r,a,c,h=e(t).scrollTop(),l=e(t).height(),u=e(n).height(),d=e("body")[0].scrollHeight;if(o.options.extendPage&&(o.webkit&&h>=d-l-o.options.extendPageOffset||!o.webkit&&l+h>u-o.options.extendPageOffset)&&!e(g).length){if(r=e('div[data-unique="'+e(f).last().attr("data-unique")+'"]'),!r.length)return;a=r.offset().top,e(o.options.context).append(e("
              ",{"class":p,height:Math.abs(a-h)+"px","data-unique":p})),o.extendPageScroll&&(c=o.element.find("li.active"),o._scrollTo(e("div[data-unique="+c.attr("data-unique")+"]")))}setTimeout(function(){var r,a=null;0==o.cachedHeights.length&&o.calculateHeights();var c=e(t).scrollTop();if(o.cachedAnchors.each(function(e){return o.cachedHeights[e]-c<0?void(a=e):!1}),r=e(o.cachedAnchors[a]).attr("data-unique"),s=e('li[data-unique="'+r+'"]'),o.options.highlightOnScroll&&s.length&&!s.hasClass(o.focusClass)){o.element.find("."+o.focusClass).removeClass(o.focusClass),s.addClass(o.focusClass);var h=o.tocifyWrapper,l=e(s).closest(".tocify-header"),u=l.offset().top,d=h.offset().top,f=u-d;if(f>=e(t).height()){var p=f+h.scrollTop();h.scrollTop(p)}else 0>f&&h.scrollTop(0)}o.options.scrollHistory&&t.location.hash!=="#"+r&&r!==i&&(history.replaceState?history.replaceState({},"","#"+r):(scrollV=n.body.scrollTop,scrollH=n.body.scrollLeft,location.hash="#"+r,n.body.scrollTop=scrollV,n.body.scrollLeft=scrollH)),o.options.showAndHideOnScroll&&o.options.showAndHide&&o._triggerShow(s,!0)},0)})})},calculateHeights:function(){var t=this;t.cachedHeights=[],t.cachedAnchors=[];var n=e(t.options.context).find("div[data-unique]");n.each(function(n){var i=(e(this).next().length?e(this).next():e(this)).offset().top-t.options.highlightOffset;t.cachedHeights[n]=i}),t.cachedAnchors=n},show:function(t){var n=this;if(!t.is(":visible"))switch(t.find(u).length||t.parent().is(h)||t.parent().is(":visible")?t.children(u).length||t.parent().is(h)||(t=t.closest(u)):t=t.parents(u).add(t),n.options.showEffect){case"none":t.show();break;case"show":t.show(n.options.showEffectSpeed);break;case"slideDown":t.slideDown(n.options.showEffectSpeed);break;case"fadeIn":t.fadeIn(n.options.showEffectSpeed);break;default:t.show()}return n.hide(e(u).not(t.parent().is(h)?t:t.closest(h).find(u).not(t.siblings()))),n},hide:function(e){var t=this;switch(t.options.hideEffect){case"none":e.hide();break;case"hide":e.hide(t.options.hideEffectSpeed);break;case"slideUp":e.slideUp(t.options.hideEffectSpeed);break;case"fadeOut":e.fadeOut(t.options.hideEffectSpeed);break;default:e.hide()}return t},_triggerShow:function(e,t){var n=this;return e.parent().is(h)||e.next().is(u)?n.show(e.next(u),t):e.parent().is(u)&&n.show(e.parent(),t),n},_addCSSClasses:function(){return"jqueryui"===this.options.theme?(this.focusClass="ui-state-default",this.hoverClass="ui-state-hover",this.element.addClass("ui-widget").find(".toc-title").addClass("ui-widget-header").end().find("li").addClass("ui-widget-content")):"bootstrap"===this.options.theme?(this.element.find(h+","+u).addClass("nav nav-list"),this.focusClass="active"):(this.focusClass=s,this.hoverClass=r),this},setOption:function(){e.Widget.prototype._setOption.apply(this,arguments)},setOptions:function(){e.Widget.prototype._setOptions.apply(this,arguments)},_scrollTo:function(t){var n=this,i=n.options.smoothScroll||0,o=n.options.scrollTo;return e("html, body").promise().done(function(){e("html, body").animate({scrollTop:e('div[data-unique="'+t.attr("data-unique")+'"]').next().offset().top-(e.isFunction(o)?o.call():o)+"px"},{duration:i})}),n}})}),/*! - * imagesLoaded PACKAGED v3.1.8 - * JavaScript is all like "You images are done yet or what?" - * MIT License - */ -function(){function e(){}function t(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function n(e){return function(){return this[e].apply(this,arguments)}}var i=e.prototype,o=this,s=o.EventEmitter;i.getListeners=function(e){var t,n,i=this._getEvents();if("object"==typeof e){t={};for(n in i)i.hasOwnProperty(n)&&e.test(n)&&(t[n]=i[n])}else t=i[e]||(i[e]=[]);return t},i.flattenListeners=function(e){var t,n=[];for(t=0;e.length>t;t+=1)n.push(e[t].listener);return n},i.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},i.addListener=function(e,n){var i,o=this.getListenersAsObject(e),s="object"==typeof n;for(i in o)o.hasOwnProperty(i)&&-1===t(o[i],n)&&o[i].push(s?n:{listener:n,once:!1});return this},i.on=n("addListener"),i.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},i.once=n("addOnceListener"),i.defineEvent=function(e){return this.getListeners(e),this},i.defineEvents=function(e){for(var t=0;e.length>t;t+=1)this.defineEvent(e[t]);return this},i.removeListener=function(e,n){var i,o,s=this.getListenersAsObject(e);for(o in s)s.hasOwnProperty(o)&&(i=t(s[o],n),-1!==i&&s[o].splice(i,1));return this},i.off=n("removeListener"),i.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},i.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},i.manipulateListeners=function(e,t,n){var i,o,s=e?this.removeListener:this.addListener,r=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(i=n.length;i--;)s.call(this,t,n[i]);else for(i in t)t.hasOwnProperty(i)&&(o=t[i])&&("function"==typeof o?s.call(this,i,o):r.call(this,i,o));return this},i.removeEvent=function(e){var t,n=typeof e,i=this._getEvents();if("string"===n)delete i[e];else if("object"===n)for(t in i)i.hasOwnProperty(t)&&e.test(t)&&delete i[t];else delete this._events;return this},i.removeAllListeners=n("removeEvent"),i.emitEvent=function(e,t){var n,i,o,s,r=this.getListenersAsObject(e);for(o in r)if(r.hasOwnProperty(o))for(i=r[o].length;i--;)n=r[o][i],n.once===!0&&this.removeListener(e,n.listener),s=n.listener.apply(this,t||[]),s===this._getOnceReturnValue()&&this.removeListener(e,n.listener);return this},i.trigger=n("emitEvent"),i.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},i.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},i._getOnceReturnValue=function(){return this.hasOwnProperty("_onceReturnValue")?this._onceReturnValue:!0},i._getEvents=function(){return this._events||(this._events={})},e.noConflict=function(){return o.EventEmitter=s,e},"function"==typeof define&&define.amd?define("eventEmitter/EventEmitter",[],function(){return e}):"object"==typeof module&&module.exports?module.exports=e:this.EventEmitter=e}.call(this),function(e){function t(t){var n=e.event;return n.target=n.target||n.srcElement||t,n}var n=document.documentElement,i=function(){};n.addEventListener?i=function(e,t,n){e.addEventListener(t,n,!1)}:n.attachEvent&&(i=function(e,n,i){e[n+i]=i.handleEvent?function(){var n=t(e);i.handleEvent.call(i,n)}:function(){var n=t(e);i.call(e,n)},e.attachEvent("on"+n,e[n+i])});var o=function(){};n.removeEventListener?o=function(e,t,n){e.removeEventListener(t,n,!1)}:n.detachEvent&&(o=function(e,t,n){e.detachEvent("on"+t,e[t+n]);try{delete e[t+n]}catch(i){e[t+n]=void 0}});var s={bind:i,unbind:o};"function"==typeof define&&define.amd?define("eventie/eventie",s):e.eventie=s}(this),function(e,t){"function"==typeof define&&define.amd?define(["eventEmitter/EventEmitter","eventie/eventie"],function(n,i){return t(e,n,i)}):"object"==typeof exports?module.exports=t(e,require("wolfy87-eventemitter"),require("eventie")):e.imagesLoaded=t(e,e.EventEmitter,e.eventie)}(window,function(e,t,n){function i(e,t){for(var n in t)e[n]=t[n];return e}function o(e){return"[object Array]"===d.call(e)}function s(e){var t=[];if(o(e))t=e;else if("number"==typeof e.length)for(var n=0,i=e.length;i>n;n++)t.push(e[n]);else t.push(e);return t}function r(e,t,n){if(!(this instanceof r))return new r(e,t);"string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=s(e),this.options=i({},this.options),"function"==typeof t?n=t:i(this.options,t),n&&this.on("always",n),this.getImages(),h&&(this.jqDeferred=new h.Deferred);var o=this;setTimeout(function(){o.check()})}function a(e){this.img=e}function c(e){this.src=e,f[e]=this}var h=e.jQuery,l=e.console,u=void 0!==l,d=Object.prototype.toString;r.prototype=new t,r.prototype.options={},r.prototype.getImages=function(){this.images=[];for(var e=0,t=this.elements.length;t>e;e++){var n=this.elements[e];"IMG"===n.nodeName&&this.addImage(n);var i=n.nodeType;if(i&&(1===i||9===i||11===i))for(var o=n.querySelectorAll("img"),s=0,r=o.length;r>s;s++){var a=o[s];this.addImage(a)}}},r.prototype.addImage=function(e){var t=new a(e);this.images.push(t)},r.prototype.check=function(){function e(e,o){return t.options.debug&&u&&l.log("confirm",e,o),t.progress(e),n++,n===i&&t.complete(),!0}var t=this,n=0,i=this.images.length;if(this.hasAnyBroken=!1,!i)return void this.complete();for(var o=0;i>o;o++){var s=this.images[o];s.on("confirm",e),s.check()}},r.prototype.progress=function(e){this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded;var t=this;setTimeout(function(){t.emit("progress",t,e),t.jqDeferred&&t.jqDeferred.notify&&t.jqDeferred.notify(t,e)})},r.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";this.isComplete=!0;var t=this;setTimeout(function(){if(t.emit(e,t),t.emit("always",t),t.jqDeferred){var n=t.hasAnyBroken?"reject":"resolve";t.jqDeferred[n](t)}})},h&&(h.fn.imagesLoaded=function(e,t){var n=new r(this,e,t);return n.jqDeferred.promise(h(this))}),a.prototype=new t,a.prototype.check=function(){var e=f[this.img.src]||new c(this.img.src);if(e.isConfirmed)return void this.confirm(e.isLoaded,"cached was confirmed");if(this.img.complete&&void 0!==this.img.naturalWidth)return void this.confirm(0!==this.img.naturalWidth,"naturalWidth");var t=this;e.on("confirm",function(e,n){return t.confirm(e.isLoaded,n),!0}),e.check()},a.prototype.confirm=function(e,t){this.isLoaded=e,this.emit("confirm",this,t)};var f={};return c.prototype=new t,c.prototype.check=function(){if(!this.isChecked){var e=new Image;n.bind(e,"load",this),n.bind(e,"error",this),e.src=this.src,this.isChecked=!0}},c.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},c.prototype.onload=function(e){this.confirm(!0,"onload"),this.unbindProxyEvents(e)},c.prototype.onerror=function(e){this.confirm(!1,"onerror"),this.unbindProxyEvents(e)},c.prototype.confirm=function(e,t){this.isConfirmed=!0,this.isLoaded=e,this.emit("confirm",this,t)},c.prototype.unbindProxyEvents=function(e){n.unbind(e.target,"load",this),n.unbind(e.target,"error",this)},r}),function(e){"use strict";function t(){setTimeout(function(){toc.setOption("showEffectSpeed",180)},50)}var n=function(){$(".tocify-wrapper").removeClass("open"),$("#nav-button").removeClass("open")},i=function(){e.toc=$("#toc").tocify({selectors:"h1, h2",extendPage:!1,theme:"none",smoothScroll:!1,showEffectSpeed:0,hideEffectSpeed:180,ignoreSelector:".toc-ignore",highlightOffset:60,scrollTo:-1,scrollHistory:!0,hashGenerator:function(e,t){return t.prop("id")}}).data("toc-tocify"),$("#nav-button").click(function(){return $(".tocify-wrapper").toggleClass("open"),$("#nav-button").toggleClass("open"),!1}),$(".page-wrapper").click(n),$(".tocify-item").click(n)};$(function(){i(),t(),$(".content").imagesLoaded(function(){e.toc.calculateHeights()})})}(window); \ No newline at end of file diff --git a/apidocs/docker-cloud/javascripts/all_nosearch.js b/apidocs/docker-cloud/javascripts/all_nosearch.js deleted file mode 100644 index 816537543f..0000000000 --- a/apidocs/docker-cloud/javascripts/all_nosearch.js +++ /dev/null @@ -1,43 +0,0 @@ -!function(){if("ontouchstart"in window){var e,t,n,i,o,s,r={};e=function(e,t){return Math.abs(e[0]-t[0])>5||Math.abs(e[1]-t[1])>5},t=function(e){this.startXY=[e.touches[0].clientX,e.touches[0].clientY],this.threshold=!1},n=function(t){return this.threshold?!1:void(this.threshold=e(this.startXY,[t.touches[0].clientX,t.touches[0].clientY]))},i=function(t){if(!this.threshold&&!e(this.startXY,[t.changedTouches[0].clientX,t.changedTouches[0].clientY])){var n=t.changedTouches[0],i=document.createEvent("MouseEvents");i.initMouseEvent("click",!0,!0,window,0,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),i.simulated=!0,t.target.dispatchEvent(i)}},o=function(e){var t=Date.now(),n=t-r.time,i=e.clientX,o=e.clientY,a=[Math.abs(r.x-i),Math.abs(r.y-o)],c=s(e.target,"A")||e.target,h=c.nodeName,u="A"===h,l=window.navigator.standalone&&u&&e.target.getAttribute("href");return r.time=t,r.x=i,r.y=o,(!e.simulated&&(500>n||1500>n&&a[0]<50&&a[1]<50)||l)&&(e.preventDefault(),e.stopPropagation(),!l)?!1:(l&&(window.location=c.getAttribute("href")),void(c&&c.classList&&(c.classList.add("energize-focus"),window.setTimeout(function(){c.classList.remove("energize-focus")},150))))},s=function(e,t){for(var n=e;n!==document.body;){if(!n||n.nodeName===t)return n;n=n.parentNode}return null},document.addEventListener("touchstart",t,!1),document.addEventListener("touchmove",n,!1),document.addEventListener("touchend",i,!1),document.addEventListener("click",o,!0)}}(),/* -Copyright 2008-2013 Concur Technologies, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); you may -not use this file except in compliance with the License. You may obtain -a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations -under the License. -*/ -function(e){"use strict";function t(t){if(t&&""!==t){$(".lang-selector a").removeClass("active"),$(".lang-selector a[data-language-name='"+t+"']").addClass("active");for(var n=0;n=1){var e=n(location.search).language;if(e)return e;if(-1!=jQuery.inArray(location.search.substr(1),c))return location.search.substr(1)}return!1}function s(e){var t=n(location.search);return t.language?(t.language=e,i(t)):e}function r(e){if(history){var t=window.location.hash;t&&(t=t.replace(/^#+/,"")),history.pushState({},"","?"+s(e)+"#"+t),localStorage.setItem("language",e)}}function a(e){var n=localStorage.getItem("language");c=e;var i=o();i?(t(i),localStorage.setItem("language",i)):t(null!==n&&-1!=jQuery.inArray(n,c)?n:c[0])}var c=[];e.setupLanguages=a,e.activateLanguage=t,$(function(){$(".lang-selector a").on("click",function(){var e=$(this).data("language-name");return r(e),t(e),!1}),window.onpopstate=function(){t(o())}})}(window),/*! jQuery UI - v1.11.3 - 2015-02-12 - * http://jqueryui.com - * Includes: widget.js - * Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ -function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function(e){/*! - * jQuery UI Widget 1.11.3 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/jQuery.widget/ - */ -var t=0,n=Array.prototype.slice;e.cleanData=function(t){return function(n){var i,o,s;for(s=0;null!=(o=n[s]);s++)try{i=e._data(o,"events"),i&&i.remove&&e(o).triggerHandler("remove")}catch(r){}t(n)}}(e.cleanData),e.widget=function(t,n,i){var o,s,r,a,c={},h=t.split(".")[0];return t=t.split(".")[1],o=h+"-"+t,i||(i=n,n=e.Widget),e.expr[":"][o.toLowerCase()]=function(t){return!!e.data(t,o)},e[h]=e[h]||{},s=e[h][t],r=e[h][t]=function(e,t){return this._createWidget?void(arguments.length&&this._createWidget(e,t)):new r(e,t)},e.extend(r,s,{version:i.version,_proto:e.extend({},i),_childConstructors:[]}),a=new n,a.options=e.widget.extend({},a.options),e.each(i,function(t,i){return e.isFunction(i)?void(c[t]=function(){var e=function(){return n.prototype[t].apply(this,arguments)},o=function(e){return n.prototype[t].apply(this,e)};return function(){var t,n=this._super,s=this._superApply;return this._super=e,this._superApply=o,t=i.apply(this,arguments),this._super=n,this._superApply=s,t}}()):void(c[t]=i)}),r.prototype=e.widget.extend(a,{widgetEventPrefix:s?a.widgetEventPrefix||t:t},c,{constructor:r,namespace:h,widgetName:t,widgetFullName:o}),s?(e.each(s._childConstructors,function(t,n){var i=n.prototype;e.widget(i.namespace+"."+i.widgetName,r,n._proto)}),delete s._childConstructors):n._childConstructors.push(r),e.widget.bridge(t,r),r},e.widget.extend=function(t){for(var i,o,s=n.call(arguments,1),r=0,a=s.length;a>r;r++)for(i in s[r])o=s[r][i],s[r].hasOwnProperty(i)&&void 0!==o&&(t[i]=e.isPlainObject(o)?e.isPlainObject(t[i])?e.widget.extend({},t[i],o):e.widget.extend({},o):o);return t},e.widget.bridge=function(t,i){var o=i.prototype.widgetFullName||t;e.fn[t]=function(s){var r="string"==typeof s,a=n.call(arguments,1),c=this;return r?this.each(function(){var n,i=e.data(this,o);return"instance"===s?(c=i,!1):i?e.isFunction(i[s])&&"_"!==s.charAt(0)?(n=i[s].apply(i,a),n!==i&&void 0!==n?(c=n&&n.jquery?c.pushStack(n.get()):n,!1):void 0):e.error("no such method '"+s+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; attempted to call method '"+s+"'")}):(a.length&&(s=e.widget.extend.apply(null,[s].concat(a))),this.each(function(){var t=e.data(this,o);t?(t.option(s||{}),t._init&&t._init()):e.data(this,o,new i(s,this))})),c}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
              ",options:{disabled:!1,create:null},_createWidget:function(n,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=t++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),n),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(t,n){var i,o,s,r=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(r={},i=t.split("."),t=i.shift(),i.length){for(o=r[t]=e.widget.extend({},this.options[t]),s=0;s",{id:c+t,"class":c}).append(i._nestElements(e(this),t)),i.element.append(n),e(this).nextUntil(this.nodeName.toLowerCase()).each(function(){0===e(this).find(i.options.selectors).length?e(this).filter(i.options.selectors).each(function(){e(this).is(s)||i._appendSubheaders.call(this,i,n)}):e(this).find(i.options.selectors).each(function(){e(this).is(s)||i._appendSubheaders.call(this,i,n)})}))})):void i.element.addClass(a)},_setActiveElement:function(e){var n=this,i=t.location.hash.substring(1),o=n.element.find("li[data-unique='"+i+"']");return i.length?(n.element.find("."+n.focusClass).removeClass(n.focusClass),o.addClass(n.focusClass),n.options.showAndHide&&o.click()):(n.element.find("."+n.focusClass).removeClass(n.focusClass),!i.length&&e&&n.options.highlightDefault&&n.element.find(f).first().addClass(n.focusClass)),n},_nestElements:function(t,n){var i,o,s;return i=e.grep(this.items,function(e){return e===t.text()}),this.items.push(i.length?t.text()+n:t.text()),s=this._generateHashValue(i,t,n),o=e("
            • ",{"class":d,"data-unique":s}).append(e("",{text:t.text()})),t.before(e("
              ",{name:s,"data-unique":s})),o},_generateHashValue:function(e,t,n){var i="",o=this.options.hashGenerator;if("pretty"===o){for(i=t.text().toLowerCase().replace(/\s/g,"-"),i=i.replace(/[^\x00-\x7F]/g,"");i.indexOf("--")>-1;)i=i.replace(/--/g,"-");for(;i.indexOf(":-")>-1;)i=i.replace(/:-/g,"-")}else i="function"==typeof o?o(t.text(),t):t.text().replace(/\s/g,"");return e.length&&(i+=""+n),i},_appendSubheaders:function(t,n){var i=e(this).index(t.options.selectors),o=e(t.options.selectors).eq(i-1),s=+e(this).prop("tagName").charAt(1),r=+o.prop("tagName").charAt(1);r>s?t.element.find(l+"[data-tag="+s+"]").last().append(t._nestElements(e(this),i)):s===r?n.find(f).last().after(t._nestElements(e(this),i)):n.find(f).last().after(e("
                ",{"class":u,"data-tag":s})).next(l).append(t._nestElements(e(this),i))},_setEventHandlers:function(){var o=this;this.element.on("click.tocify","li",function(){if(o.options.history&&(t.location.hash=e(this).attr("data-unique")),o.element.find("."+o.focusClass).removeClass(o.focusClass),e(this).addClass(o.focusClass),o.options.showAndHide){var n=e('li[data-unique="'+e(this).attr("data-unique")+'"]');o._triggerShow(n)}o._scrollTo(e(this))}),this.element.find("li").on({"mouseenter.tocify":function(){e(this).addClass(o.hoverClass),e(this).css("cursor","pointer")},"mouseleave.tocify":function(){"bootstrap"!==o.options.theme&&e(this).removeClass(o.hoverClass)}}),e(t).on("resize",function(){o.calculateHeights()}),e(t).on("scroll.tocify",function(){e("html, body").promise().done(function(){var s,r,a,c,h=e(t).scrollTop(),u=e(t).height(),l=e(n).height(),d=e("body")[0].scrollHeight;if(o.options.extendPage&&(o.webkit&&h>=d-u-o.options.extendPageOffset||!o.webkit&&u+h>l-o.options.extendPageOffset)&&!e(g).length){if(r=e('div[data-unique="'+e(f).last().attr("data-unique")+'"]'),!r.length)return;a=r.offset().top,e(o.options.context).append(e("
                ",{"class":p,height:Math.abs(a-h)+"px","data-unique":p})),o.extendPageScroll&&(c=o.element.find("li.active"),o._scrollTo(e("div[data-unique="+c.attr("data-unique")+"]")))}setTimeout(function(){var r,a=null;0==o.cachedHeights.length&&o.calculateHeights();var c=e(t).scrollTop();if(o.cachedAnchors.each(function(e){return o.cachedHeights[e]-c<0?void(a=e):!1}),r=e(o.cachedAnchors[a]).attr("data-unique"),s=e('li[data-unique="'+r+'"]'),o.options.highlightOnScroll&&s.length&&!s.hasClass(o.focusClass)){o.element.find("."+o.focusClass).removeClass(o.focusClass),s.addClass(o.focusClass);var h=o.tocifyWrapper,u=e(s).closest(".tocify-header"),l=u.offset().top,d=h.offset().top,f=l-d;if(f>=e(t).height()){var p=f+h.scrollTop();h.scrollTop(p)}else 0>f&&h.scrollTop(0)}o.options.scrollHistory&&t.location.hash!=="#"+r&&r!==i&&(history.replaceState?history.replaceState({},"","#"+r):(scrollV=n.body.scrollTop,scrollH=n.body.scrollLeft,location.hash="#"+r,n.body.scrollTop=scrollV,n.body.scrollLeft=scrollH)),o.options.showAndHideOnScroll&&o.options.showAndHide&&o._triggerShow(s,!0)},0)})})},calculateHeights:function(){var t=this;t.cachedHeights=[],t.cachedAnchors=[];var n=e(t.options.context).find("div[data-unique]");n.each(function(n){var i=(e(this).next().length?e(this).next():e(this)).offset().top-t.options.highlightOffset;t.cachedHeights[n]=i}),t.cachedAnchors=n},show:function(t){var n=this;if(!t.is(":visible"))switch(t.find(l).length||t.parent().is(h)||t.parent().is(":visible")?t.children(l).length||t.parent().is(h)||(t=t.closest(l)):t=t.parents(l).add(t),n.options.showEffect){case"none":t.show();break;case"show":t.show(n.options.showEffectSpeed);break;case"slideDown":t.slideDown(n.options.showEffectSpeed);break;case"fadeIn":t.fadeIn(n.options.showEffectSpeed);break;default:t.show()}return n.hide(e(l).not(t.parent().is(h)?t:t.closest(h).find(l).not(t.siblings()))),n},hide:function(e){var t=this;switch(t.options.hideEffect){case"none":e.hide();break;case"hide":e.hide(t.options.hideEffectSpeed);break;case"slideUp":e.slideUp(t.options.hideEffectSpeed);break;case"fadeOut":e.fadeOut(t.options.hideEffectSpeed);break;default:e.hide()}return t},_triggerShow:function(e,t){var n=this;return e.parent().is(h)||e.next().is(l)?n.show(e.next(l),t):e.parent().is(l)&&n.show(e.parent(),t),n},_addCSSClasses:function(){return"jqueryui"===this.options.theme?(this.focusClass="ui-state-default",this.hoverClass="ui-state-hover",this.element.addClass("ui-widget").find(".toc-title").addClass("ui-widget-header").end().find("li").addClass("ui-widget-content")):"bootstrap"===this.options.theme?(this.element.find(h+","+l).addClass("nav nav-list"),this.focusClass="active"):(this.focusClass=s,this.hoverClass=r),this},setOption:function(){e.Widget.prototype._setOption.apply(this,arguments)},setOptions:function(){e.Widget.prototype._setOptions.apply(this,arguments)},_scrollTo:function(t){var n=this,i=n.options.smoothScroll||0,o=n.options.scrollTo;return e("html, body").promise().done(function(){e("html, body").animate({scrollTop:e('div[data-unique="'+t.attr("data-unique")+'"]').next().offset().top-(e.isFunction(o)?o.call():o)+"px"},{duration:i})}),n}})}),/*! - * imagesLoaded PACKAGED v3.1.8 - * JavaScript is all like "You images are done yet or what?" - * MIT License - */ -function(){function e(){}function t(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function n(e){return function(){return this[e].apply(this,arguments)}}var i=e.prototype,o=this,s=o.EventEmitter;i.getListeners=function(e){var t,n,i=this._getEvents();if("object"==typeof e){t={};for(n in i)i.hasOwnProperty(n)&&e.test(n)&&(t[n]=i[n])}else t=i[e]||(i[e]=[]);return t},i.flattenListeners=function(e){var t,n=[];for(t=0;e.length>t;t+=1)n.push(e[t].listener);return n},i.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},i.addListener=function(e,n){var i,o=this.getListenersAsObject(e),s="object"==typeof n;for(i in o)o.hasOwnProperty(i)&&-1===t(o[i],n)&&o[i].push(s?n:{listener:n,once:!1});return this},i.on=n("addListener"),i.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},i.once=n("addOnceListener"),i.defineEvent=function(e){return this.getListeners(e),this},i.defineEvents=function(e){for(var t=0;e.length>t;t+=1)this.defineEvent(e[t]);return this},i.removeListener=function(e,n){var i,o,s=this.getListenersAsObject(e);for(o in s)s.hasOwnProperty(o)&&(i=t(s[o],n),-1!==i&&s[o].splice(i,1));return this},i.off=n("removeListener"),i.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},i.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},i.manipulateListeners=function(e,t,n){var i,o,s=e?this.removeListener:this.addListener,r=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(i=n.length;i--;)s.call(this,t,n[i]);else for(i in t)t.hasOwnProperty(i)&&(o=t[i])&&("function"==typeof o?s.call(this,i,o):r.call(this,i,o));return this},i.removeEvent=function(e){var t,n=typeof e,i=this._getEvents();if("string"===n)delete i[e];else if("object"===n)for(t in i)i.hasOwnProperty(t)&&e.test(t)&&delete i[t];else delete this._events;return this},i.removeAllListeners=n("removeEvent"),i.emitEvent=function(e,t){var n,i,o,s,r=this.getListenersAsObject(e);for(o in r)if(r.hasOwnProperty(o))for(i=r[o].length;i--;)n=r[o][i],n.once===!0&&this.removeListener(e,n.listener),s=n.listener.apply(this,t||[]),s===this._getOnceReturnValue()&&this.removeListener(e,n.listener);return this},i.trigger=n("emitEvent"),i.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},i.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},i._getOnceReturnValue=function(){return this.hasOwnProperty("_onceReturnValue")?this._onceReturnValue:!0},i._getEvents=function(){return this._events||(this._events={})},e.noConflict=function(){return o.EventEmitter=s,e},"function"==typeof define&&define.amd?define("eventEmitter/EventEmitter",[],function(){return e}):"object"==typeof module&&module.exports?module.exports=e:this.EventEmitter=e}.call(this),function(e){function t(t){var n=e.event;return n.target=n.target||n.srcElement||t,n}var n=document.documentElement,i=function(){};n.addEventListener?i=function(e,t,n){e.addEventListener(t,n,!1)}:n.attachEvent&&(i=function(e,n,i){e[n+i]=i.handleEvent?function(){var n=t(e);i.handleEvent.call(i,n)}:function(){var n=t(e);i.call(e,n)},e.attachEvent("on"+n,e[n+i])});var o=function(){};n.removeEventListener?o=function(e,t,n){e.removeEventListener(t,n,!1)}:n.detachEvent&&(o=function(e,t,n){e.detachEvent("on"+t,e[t+n]);try{delete e[t+n]}catch(i){e[t+n]=void 0}});var s={bind:i,unbind:o};"function"==typeof define&&define.amd?define("eventie/eventie",s):e.eventie=s}(this),function(e,t){"function"==typeof define&&define.amd?define(["eventEmitter/EventEmitter","eventie/eventie"],function(n,i){return t(e,n,i)}):"object"==typeof exports?module.exports=t(e,require("wolfy87-eventemitter"),require("eventie")):e.imagesLoaded=t(e,e.EventEmitter,e.eventie)}(window,function(e,t,n){function i(e,t){for(var n in t)e[n]=t[n];return e}function o(e){return"[object Array]"===d.call(e)}function s(e){var t=[];if(o(e))t=e;else if("number"==typeof e.length)for(var n=0,i=e.length;i>n;n++)t.push(e[n]);else t.push(e);return t}function r(e,t,n){if(!(this instanceof r))return new r(e,t);"string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=s(e),this.options=i({},this.options),"function"==typeof t?n=t:i(this.options,t),n&&this.on("always",n),this.getImages(),h&&(this.jqDeferred=new h.Deferred);var o=this;setTimeout(function(){o.check()})}function a(e){this.img=e}function c(e){this.src=e,f[e]=this}var h=e.jQuery,u=e.console,l=void 0!==u,d=Object.prototype.toString;r.prototype=new t,r.prototype.options={},r.prototype.getImages=function(){this.images=[];for(var e=0,t=this.elements.length;t>e;e++){var n=this.elements[e];"IMG"===n.nodeName&&this.addImage(n);var i=n.nodeType;if(i&&(1===i||9===i||11===i))for(var o=n.querySelectorAll("img"),s=0,r=o.length;r>s;s++){var a=o[s];this.addImage(a)}}},r.prototype.addImage=function(e){var t=new a(e);this.images.push(t)},r.prototype.check=function(){function e(e,o){return t.options.debug&&l&&u.log("confirm",e,o),t.progress(e),n++,n===i&&t.complete(),!0}var t=this,n=0,i=this.images.length;if(this.hasAnyBroken=!1,!i)return void this.complete();for(var o=0;i>o;o++){var s=this.images[o];s.on("confirm",e),s.check()}},r.prototype.progress=function(e){this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded;var t=this;setTimeout(function(){t.emit("progress",t,e),t.jqDeferred&&t.jqDeferred.notify&&t.jqDeferred.notify(t,e)})},r.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";this.isComplete=!0;var t=this;setTimeout(function(){if(t.emit(e,t),t.emit("always",t),t.jqDeferred){var n=t.hasAnyBroken?"reject":"resolve";t.jqDeferred[n](t)}})},h&&(h.fn.imagesLoaded=function(e,t){var n=new r(this,e,t);return n.jqDeferred.promise(h(this))}),a.prototype=new t,a.prototype.check=function(){var e=f[this.img.src]||new c(this.img.src);if(e.isConfirmed)return void this.confirm(e.isLoaded,"cached was confirmed");if(this.img.complete&&void 0!==this.img.naturalWidth)return void this.confirm(0!==this.img.naturalWidth,"naturalWidth");var t=this;e.on("confirm",function(e,n){return t.confirm(e.isLoaded,n),!0}),e.check()},a.prototype.confirm=function(e,t){this.isLoaded=e,this.emit("confirm",this,t)};var f={};return c.prototype=new t,c.prototype.check=function(){if(!this.isChecked){var e=new Image;n.bind(e,"load",this),n.bind(e,"error",this),e.src=this.src,this.isChecked=!0}},c.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},c.prototype.onload=function(e){this.confirm(!0,"onload"),this.unbindProxyEvents(e)},c.prototype.onerror=function(e){this.confirm(!1,"onerror"),this.unbindProxyEvents(e)},c.prototype.confirm=function(e,t){this.isConfirmed=!0,this.isLoaded=e,this.emit("confirm",this,t)},c.prototype.unbindProxyEvents=function(e){n.unbind(e.target,"load",this),n.unbind(e.target,"error",this)},r}),function(e){"use strict";function t(){setTimeout(function(){toc.setOption("showEffectSpeed",180)},50)}var n=function(){$(".tocify-wrapper").removeClass("open"),$("#nav-button").removeClass("open")},i=function(){e.toc=$("#toc").tocify({selectors:"h1, h2",extendPage:!1,theme:"none",smoothScroll:!1,showEffectSpeed:0,hideEffectSpeed:180,ignoreSelector:".toc-ignore",highlightOffset:60,scrollTo:-1,scrollHistory:!0,hashGenerator:function(e,t){return t.prop("id")}}).data("toc-tocify"),$("#nav-button").click(function(){return $(".tocify-wrapper").toggleClass("open"),$("#nav-button").toggleClass("open"),!1}),$(".page-wrapper").click(n),$(".tocify-item").click(n)};$(function(){i(),t(),$(".content").imagesLoaded(function(){e.toc.calculateHeights()})})}(window); \ No newline at end of file diff --git a/apidocs/docker-cloud/stylesheets/print.css b/apidocs/docker-cloud/stylesheets/print.css deleted file mode 100644 index 7b58586abf..0000000000 --- a/apidocs/docker-cloud/stylesheets/print.css +++ /dev/null @@ -1 +0,0 @@ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.content h1,.content h2,.content h3,.content h4,body{font-family:"Helvetica Neue", Helvetica, Arial, "Microsoft Yahei","微软雅黑", STXihei, "华文细黑", sans-serif;font-size:13px}.content h1,.content h2,.content h3,.content h4{font-weight:bold}.content pre,.content code{font-family:Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, serif;font-size:12px;line-height:1.5}.content pre,.content code{word-break:break-all;word-break:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}@font-face{font-family:'slate';src:url("../fonts/slate.eot?-syv14m");src:url("../fonts/slate.eot?#iefix-syv14m") format("embedded-opentype"),url("../fonts/slate.woff2?-syv14m") format("woff2"),url("../fonts/slate.woff?-syv14m") format("woff"),url("../fonts/slate.ttf?-syv14m") format("truetype"),url("../fonts/slate.svg?-syv14m#slate") format("svg");font-weight:normal;font-style:normal}.content aside.warning:before,.content aside.notice:before,.content aside.success:before{font-family:'slate';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1}.content aside.warning:before{content:"\e600"}.content aside.notice:before{content:"\e602"}.content aside.success:before{content:"\e606"}.tocify,.toc-footer,.lang-selector,.search,#nav-button{display:none}.tocify-wrapper>img{margin:0 auto;display:block}.content{font-size:12px}.content pre,.content code{border:1px solid #999;border-radius:5px;font-size:0.8em}.content pre{padding:1.3em}.content code{padding:0.2em}.content table{border:1px solid #999}.content table tr{border-bottom:1px solid #999}.content table td,.content table th{padding:0.7em}.content p{line-height:1.5}.content a{text-decoration:none;color:#000}.content h1{font-size:2.5em;padding-top:0.5em;padding-bottom:0.5em;margin-top:1em;margin-bottom:21px;border:2px solid #ccc;border-width:2px 0;text-align:center}.content h2{font-size:1.8em;margin-top:2em;border-top:2px solid #ccc;padding-top:0.8em}.content h1+h2,.content h1+div+h2{border-top:none;padding-top:0;margin-top:0}.content h3,.content h4{font-size:0.8em;margin-top:1.5em;margin-bottom:0.8em;text-transform:uppercase}.content h5,.content h6{text-transform:uppercase}.content aside{padding:1em;border:1px solid #ccc;border-radius:5px;margin-top:1.5em;margin-bottom:1.5em;line-height:1.6}.content aside:before{vertical-align:middle;padding-right:0.5em;font-size:14px} \ No newline at end of file diff --git a/apidocs/docker-cloud/stylesheets/screen.css b/apidocs/docker-cloud/stylesheets/screen.css deleted file mode 100644 index 5cb708361d..0000000000 --- a/apidocs/docker-cloud/stylesheets/screen.css +++ /dev/null @@ -1,12 +0,0 @@ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6,html,body{font-family:"Helvetica Neue", Helvetica, Arial, "Microsoft Yahei","微软雅黑", STXihei, "华文细黑", sans-serif;font-size:13px}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{font-weight:bold}.content code,.content pre{font-family:Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, serif;font-size:12px;line-height:1.5}.content code{word-break:break-all;word-break:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.highlight table td{padding:5px}.highlight table pre{margin:0}.highlight,.highlight .w{color:#f8f8f2;background-color:#272822}.highlight .err{color:#151515;background-color:#ac4142}.highlight .c,.highlight .cd,.highlight .cm,.highlight .c1,.highlight .cs{color:#505050}.highlight .cp{color:#f4bf75}.highlight .nt{color:#f4bf75}.highlight .o,.highlight .ow{color:#d0d0d0}.highlight .p,.highlight .pi{color:#d0d0d0}.highlight .gi{color:#90a959}.highlight .gd{color:#ac4142}.highlight .gh{color:#6a9fb5;background-color:#151515;font-weight:bold}.highlight .k,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kv{color:#aa759f}.highlight .kc{color:#d28445}.highlight .kt{color:#d28445}.highlight .kd{color:#d28445}.highlight .s,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .s2,.highlight .sh,.highlight .sx,.highlight .s1{color:#90a959}.highlight .sr{color:#75b5aa}.highlight .si{color:#8f5536}.highlight .se{color:#8f5536}.highlight .nn{color:#f4bf75}.highlight .nc{color:#f4bf75}.highlight .no{color:#f4bf75}.highlight .na{color:#6a9fb5}.highlight .m,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .il,.highlight .mo,.highlight .mb,.highlight .mx{color:#90a959}.highlight .ss{color:#90a959}.highlight .c,.highlight .cm,.highlight .c1,.highlight .cs{color:#909090}.highlight,.highlight .w{background-color:#292929}@font-face{font-family:'slate';src:url("../fonts/slate.eot?-syv14m");src:url("../fonts/slate.eot?#iefix-syv14m") format("embedded-opentype"),url("../fonts/slate.woff2?-syv14m") format("woff2"),url("../fonts/slate.woff?-syv14m") format("woff"),url("../fonts/slate.ttf?-syv14m") format("truetype"),url("../fonts/slate.svg?-syv14m#slate") format("svg");font-weight:normal;font-style:normal}.content aside.warning:before,.content aside.notice:before,.content aside.success:before,.tocify-wrapper>.search:before{font-family:'slate';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1}.content aside.warning:before{content:"\e600"}.content aside.notice:before{content:"\e602"}.content aside.success:before{content:"\e606"}.tocify-wrapper>.search:before{content:"\e607"}html,body{color:#333;padding:0;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#eaf2f6;height:100%;-webkit-text-size-adjust:none}#toc>ul>li>a>span{float:right;background-color:#2484FF;border-radius:40px;width:20px}.tocify-wrapper{transition:left 0.3s ease-in-out;overflow-y:auto;overflow-x:hidden;position:fixed;z-index:30;top:0;left:0;bottom:0;width:230px;background-color:#393939;font-size:13px;font-weight:bold}.tocify-wrapper .lang-selector{display:none}.tocify-wrapper .lang-selector a{padding-top:0.5em;padding-bottom:0.5em}.tocify-wrapper>img{display:block}.tocify-wrapper>.search{position:relative}.tocify-wrapper>.search input{background:#393939;border-width:0 0 1px 0;border-color:#666;padding:6px 0 6px 20px;box-sizing:border-box;margin:10px 15px;width:200px;outline:none;color:#fff;border-radius:0}.tocify-wrapper>.search:before{position:absolute;top:17px;left:15px;color:#fff}.tocify-wrapper img+.tocify{margin-top:20px}.tocify-wrapper .search-results{margin-top:0;box-sizing:border-box;height:0;overflow-y:auto;overflow-x:hidden;transition-property:height, margin;transition-duration:180ms;transition-timing-function:ease-in-out;background:linear-gradient(to bottom, rgba(0,0,0,0.2), transparent 8px),linear-gradient(to top, rgba(0,0,0,0.2), transparent 8px),linear-gradient(to bottom, #000, transparent 1.5px),linear-gradient(to top, #939393, rgba(147,147,147,0) 1.5px),#262626}.tocify-wrapper .search-results.visible{height:30%;margin-bottom:1em}.tocify-wrapper .search-results li{margin:1em 15px;line-height:1}.tocify-wrapper .search-results a{color:#fff;text-decoration:none}.tocify-wrapper .search-results a:hover{text-decoration:underline}.tocify-wrapper .tocify-item>a,.tocify-wrapper .toc-footer li{padding:0 15px 0 15px;display:block;overflow-x:hidden;white-space:nowrap;text-overflow:ellipsis}.tocify-wrapper ul,.tocify-wrapper li{list-style:none;margin:0;padding:0;line-height:28px}.tocify-wrapper li{color:#fff;transition-property:background;transition-timing-function:linear;transition-duration:230ms}.tocify-wrapper .tocify-focus{box-shadow:0px 1px 0px #000;background-color:#2467af;color:#fff}.tocify-wrapper .tocify-subheader{display:none;background-color:#262626;font-weight:500;background:linear-gradient(to bottom, rgba(0,0,0,0.2), transparent 8px),linear-gradient(to top, rgba(0,0,0,0.2), transparent 8px),linear-gradient(to bottom, #000, transparent 1.5px),linear-gradient(to top, #939393, rgba(147,147,147,0) 1.5px),#262626}.tocify-wrapper .tocify-subheader .tocify-item>a{padding-left:25px;font-size:12px}.tocify-wrapper .tocify-subheader>li:last-child{box-shadow:none}.tocify-wrapper .toc-footer{padding:1em 0;margin-top:1em;border-top:1px dashed #666}.tocify-wrapper .toc-footer li,.tocify-wrapper .toc-footer a{color:#fff;text-decoration:none}.tocify-wrapper .toc-footer a:hover{text-decoration:underline}.tocify-wrapper .toc-footer li{font-size:0.8em;line-height:1.7;text-decoration:none}#nav-button{padding:0 1.5em 5em 0;display:none;position:fixed;top:0;left:0;z-index:100;color:#000;text-decoration:none;font-weight:bold;opacity:0.7;line-height:16px;transition:left 0.3s ease-in-out}#nav-button span{display:block;padding:6px 6px 6px;background-color:rgba(234,242,246,0.7);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:rotate(-90deg) translate(-100%, 0);transform:rotate(-90deg) translate(-100%, 0);border-radius:0 0 0 5px}#nav-button img{height:16px;vertical-align:bottom}#nav-button:hover{opacity:1}#nav-button.open{left:230px}.page-wrapper{margin-left:230px;position:relative;z-index:10;background-color:#eaf2f6;min-height:100%;padding-bottom:1px}.page-wrapper .dark-box{width:50%;background-color:#393939;position:absolute;right:0;top:0;bottom:0}.page-wrapper .lang-selector{position:fixed;z-index:50;border-bottom:5px solid #393939}.lang-selector{background-color:#222;width:100%;font-weight:bold}.lang-selector a{display:block;float:left;color:#fff;text-decoration:none;padding:0 10px;line-height:30px;outline:0}.lang-selector a:active,.lang-selector a:focus{background-color:#111;color:#fff}.lang-selector a.active{background-color:#393939;color:#fff}.lang-selector:after{content:'';clear:both;display:block}.content{position:relative;z-index:30}.content:after{content:'';display:block;clear:both}.content>h1,.content>h2,.content>h3,.content>h4,.content>h5,.content>h6,.content>p,.content>table,.content>ul,.content>ol,.content>aside,.content>dl{margin-right:50%;padding:0 28px;box-sizing:border-box;display:block;text-shadow:0px 1px 0px #fff}.content>ul,.content>ol{padding-left:43px}.content>h1,.content>h2,.content>div{clear:both}.content h1{font-size:30px;padding-top:0.5em;padding-bottom:0.5em;border-bottom:1px solid #ccc;margin-bottom:21px;margin-top:2em;border-top:1px solid #ddd;background-image:linear-gradient(to bottom, #fff, #f9f9f9)}.content h1:first-child,.content div:first-child+h1{border-top-width:0;margin-top:0}.content h2{font-size:20px;margin-top:4em;margin-bottom:0;border-top:1px solid #ccc;padding-top:1.2em;padding-bottom:1.2em;background-image:linear-gradient(to bottom, rgba(255,255,255,0.4), rgba(255,255,255,0))}.content h1+h2,.content h1+div+h2{margin-top:-21px;border-top:none}.content h3,.content h4,.content h5,.content h6{font-size:15px;margin-top:2.5em;margin-bottom:0.8em}.content h4,.content h5,.content h6{font-size:10px}.content hr{margin:2em 0;border-top:2px solid #393939;border-bottom:2px solid #eaf2f6}.content table{margin-bottom:1em;overflow:auto}.content table th,.content table td{text-align:left;vertical-align:top;line-height:1.6}.content table th{padding:5px 10px;border-bottom:1px solid #ccc;vertical-align:bottom}.content table td{padding:10px}.content table tr:last-child{border-bottom:1px solid #ccc}.content table tr:nth-child(odd)>td{background-color:#f9fbfc}.content table tr:nth-child(even)>td{background-color:#f3f7fa}.content dt{font-weight:bold}.content dd{margin-left:15px}.content p,.content li,.content dt,.content dd{line-height:1.6;margin-top:0}.content img{max-width:100%}.content code{background-color:rgba(0,0,0,0.05);padding:3px;border-radius:3px}.content pre>code{background-color:transparent;padding:0}.content aside{padding-top:1em;padding-bottom:1em;text-shadow:0 1px 0 #c6dde9;margin-top:1.5em;margin-bottom:1.5em;background:#8fbcd4;line-height:1.6}.content aside.warning{background-color:#c97a7e;text-shadow:0 1px 0 #dfb0b3}.content aside.success{background-color:#6ac174;text-shadow:0 1px 0 #a0d7a6}.content aside:before{vertical-align:middle;padding-right:0.5em;font-size:14px}.content .search-highlight{padding:2px;margin:-2px;border-radius:4px;border:1px solid #F7E633;text-shadow:1px 1px 0 #666;background:linear-gradient(to top left, #f7e633 0%, #f1d32f 100%)}.content pre,.content blockquote{background-color:#292929;color:#fff;padding:2em 28px;margin:0;width:50%;float:right;clear:right;box-sizing:border-box;text-shadow:0px 1px 2px rgba(0,0,0,0.4)}.content pre>p,.content blockquote>p{margin:0}.content pre a,.content blockquote a{color:#fff;text-decoration:none;border-bottom:dashed 1px #ccc}.content blockquote>p{background-color:#1c1c1c;border-radius:5px;padding:13px;color:#ccc;border-top:1px solid #000;border-bottom:1px solid #404040}@media (max-width: 930px){.tocify-wrapper{left:-230px}.tocify-wrapper.open{left:0}.page-wrapper{margin-left:0}#nav-button{display:block}.tocify-wrapper .tocify-item>a{padding-top:0.3em;padding-bottom:0.3em}}@media (max-width: 700px){.dark-box{display:none}.content>h1,.content>h2,.content>h3,.content>h4,.content>h5,.content>h6,.content>p,.content>table,.content>ul,.content>ol,.content>aside,.content>dl{margin-right:0}.tocify-wrapper .lang-selector{display:block}.page-wrapper .lang-selector{display:none}.content pre,.content blockquote{width:auto;float:none}.content>pre+h1,.content>blockquote+h1,.content>pre+h2,.content>blockquote+h2,.content>pre+h3,.content>blockquote+h3,.content>pre+h4,.content>blockquote+h4,.content>pre+h5,.content>blockquote+h5,.content>pre+h6,.content>blockquote+h6,.content>pre+p,.content>blockquote+p,.content>pre+table,.content>blockquote+table,.content>pre+ul,.content>blockquote+ul,.content>pre+ol,.content>blockquote+ol,.content>pre+aside,.content>blockquote+aside,.content>pre+dl,.content>blockquote+dl{margin-top:28px}} - -/** overrides **/ -.logo { - padding: 10px 0 0 15px; -} -// .tocify-wrapper { -// background-color: rgb(16, 28, 41) -// } - .tocify-wrapper>.search:before { - left: 19px; -} \ No newline at end of file diff --git a/apidocs/dtr-api-overview.png b/apidocs/dtr-api-overview.png deleted file mode 100644 index 26268f797b..0000000000 Binary files a/apidocs/dtr-api-overview.png and /dev/null differ diff --git a/apidocs/index.md b/apidocs/index.md deleted file mode 100644 index 4709ef0ea4..0000000000 --- a/apidocs/index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -description: Learn how to use DTR APIs. -keywords: docker, registry, DTR, APIs -title: DTR APIs ---- - -This section includes the following topics: - -* [API overview](overview.md) diff --git a/apidocs/layouts/single.html b/apidocs/layouts/single.html deleted file mode 100644 index be239550b4..0000000000 --- a/apidocs/layouts/single.html +++ /dev/null @@ -1,6577 +0,0 @@ - - - - - - - Docker Cloud API reference - - - - - - - - - - - - - - NAV - - - -
                - -
                - http - go - python - CLI -
                - -
                  -
                  -
                  -
                  -
                  -
                  -
                  -

                  Introduction

                  - -

                  Docker Cloud currently offers a HTTP REST API and a Websocket Stream API which are used by both the Web UI and the CLI. This API documentation contains all API operations currently supported in the platform and provides examples of how to execute them using our Command Line Interface (CLI), Python SDK and Go SDK.

                  - -

                  Authentication

                  - -

                  In order to be able to make requests to the Docker Cloud API, you should first obtain an ApiKey for your account. For this, log into Docker Cloud, click on the menu on the upper right corner of the screen, select Account info and then select API keys.

                  - -

                  REST API

                  -
                  import dockercloud
                  -dockercloud.user = "username"
                  -dockercloud.apikey = "apikey"
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -dockercloud.User = "username"
                  -dockercloud.ApiKey = "apikey"
                  -
                  -
                  GET /api/app/v1/service/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  export DOCKERCLOUD_USER=username
                  -export DOCKERCLOUD_APIKEY=apikey
                  -
                  - -
                  -

                  Make sure to replace username with your username and apikey with your API key.

                  -
                  - -

                  The Docker Cloud REST API is reachable through the following hostname:

                  - -

                  https://cloud.docker.com/

                  - -

                  All requests should be sent to this endpoint using Basic authentication using your API key as password:

                  - -

                  Authorization: Basic dXNlcm5hbWU6YXBpa2V5

                  - -

                  HTTP responses are given in JSON format, so the following Accept header is required for every API call:

                  - -

                  Accept: application/json

                  - -

                  Namespaced endpoints

                  - -

                  Endpoints that are labeled as “namespaced” allow the users to operate over -different namespaces, for example over an individual user namespace, or the -namespace of an organization the user is a member of. A namespace identifies the -owner of the resource.

                  - -

                  The namespace is optional. If left blank, it defaults to the authenticated user -in the request. The namespace is set before the resource in the URL schema: -https://cloud.docker.com/api/<subsystem>/<version>/(optional_namespace/)<resource>/

                  - -

                  Examples:

                  - -
                    -
                  • The user exampleuser wants to operate on the node cluster list endpoint in their own namespace. They can use either of the following urls: - -
                      -
                    • https://cloud.docker.com/api/infra/v1/nodecluster/ (namespace omitted, so will use the user authenticated in the request)
                    • -
                    • https://cloud.docker.com/api/infra/v1/exampleuser/nodecluster/
                    • -
                  • -
                  • The user wants to operate on the node cluster list endpoint in an organization called exampleorg (which they have permission to see): - -
                      -
                    • https://cloud.docker.com/api/infra/v1/exampleorg/nodecluster/
                    • -
                  • -
                  - -

                  Namespaced endpoints in the docker-cloud CLI

                  - -

                  If you are using namespaces with the docker-cloud CLI, set them by changing -the value of the DOCKERCLOUD_NAMESPACE environment variable. You can either -set this globally, or specify it before each CLI command. To learn more, see the -Docker Cloud CLI README.

                  - -

                  Stream API

                  -
                  import websocket
                  -import base64
                  -
                  -header = "Authorization: Basic %s" % base64.b64encode("%s:%s" % (username, password))
                  -ws = websocket.WebSocketApp('wss://ws.cloud.docker.com/v1/events', header=[header])
                  -
                  -
                  import "github.com/gorilla/websocket"
                  -import "encoding/base64"
                  -
                  -var StreamUrl = "wss://ws.cloud.docker.com:443/v1/events"
                  -
                  -sEnc := base64.StdEncoding.EncodeToString([]byte(User + ":" + ApiKey))
                  -header := http.Header{}
                  -header.Add("Authorization", fmt.Sprintf("Basic %s", sEnc))
                  -
                  -var Dialer websocket.Dialer
                  -ws, _, err := Dialer.Dial(url, header)
                  -if err != nil {
                  -    log.Println(err)
                  -}
                  -
                  -
                  GET /api/audit/v1/events HTTP/1.1
                  -Host: ws.cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Connection: Upgrade
                  -Upgrade: websocket
                  -
                  -
                  export DOCKERCLOUD_USER=username
                  -export DOCKERCLOUD_APIKEY=apikey
                  -
                  - -
                  -

                  Make sure to replace username with your username and apikey with your API key.

                  -
                  - -

                  The Docker Cloud Stream API is reachable through the following hostname:

                  - -

                  wss://ws.cloud.docker.com/

                  - -

                  The Stream API requires the same authentication mechanism as the REST API:

                  - -

                  Authorization: Basic dXNlcm5hbWU6YXBpa2V5

                  - -

                  API roles

                  - -
                  -

                  The CLI and the SDKs will detect this environment variable and automatically use it

                  -
                  - -

                  If you give an API role to a container, the environment variable DOCKERCLOUD_AUTH inside the container will have the contents of the Authorization header that you can use to authenticate against the REST or Stream APIs:

                  - -

                  curl -H "Authorization: $DOCKERCLOUD_AUTH" https://cloud.docker.com/api/app/v1/service/

                  - -

                  Actions

                  - -

                  Action

                  - -
                  -

                  Example

                  -
                  -
                  {
                  -    "action": "Cluster Create",
                  -    "end_date": "Wed, 17 Sep 2014 08:26:22 +0000",
                  -    "ip": "56.78.90.12",
                  -    "is_user_action": true,
                  -    "can_be_canceled": false,
                  -    "location": "New York, USA",
                  -    "method": "POST",
                  -    "object": "/api/infra/v1/user_namespace/cluster/eea638f4-b77a-4183-b241-22dbd7866f22/",
                  -    "path": "/api/infra/v1/user_namespace/cluster/",
                  -    "resource_uri": "/api/audit/v1/action/6246c558-976c-4df6-ba60-eb1a344a17af/",
                  -    "start_date": "Wed, 17 Sep 2014 08:26:22 +0000",
                  -    "state": "Success",
                  -    "user": "user_namespace",
                  -    "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.78.2 (KHTML, like Gecko) Version/7.0.6 Safari/537.78.2",
                  -    "uuid": "6246c558-976c-4df6-ba60-eb1a344a17af"
                  -}
                  -
                  - -

                  An action represents an API call by a user. Details of the API call such as timestamp, origin IP address, and user agent are logged in the action object.

                  - -

                  Simple API calls that do not require asynchronous execution will return immediately with the appropriate HTTP error code and an action object will be created either in Success or Failed states. API calls that do require asynchronous execution will return HTTP code 202 Accepted immediately and create an action object in In progress state, which will change to Success or Failed state depending on the outcome of the operation being performed. In both cases the response will include a X-DockerCloud-Action-URI header with the resource URI of the created action.

                  - -

                  Attributes

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  resource_uriA unique API endpoint that represents the action
                  uuidA unique identifier for the action generated automatically on creation
                  objectThe API object (resource URI) to which the action applies to
                  actionName of the operation performed/being performed
                  methodHTTP method used to access the API
                  pathHTTP path of the API accessed
                  userThe user authenticated in the request that created the action
                  user_agentThe user agent provided by the client when accessing the API endpoint
                  start_dateDate and time when the API call was performed and the operation started processing
                  end_dateDate and time when the API call finished processing
                  stateState of the operation (see table below)
                  ipIP address of the user that performed the API call
                  locationGeographic location of the IP address of the user that performed the API call
                  is_user_actionIf the action has been triggered by the user
                  can_be_canceledIf the action can be canceled by the user in the middle of its execution
                  can_be_retriedIf the action can be retried by the user
                  - -

                  Action states

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  StateDescription
                  PendingThe action needed asynchronous execution and it is waiting for an in progress action
                  In progressThe action needed asynchronous execution and is being performed
                  CancelingThe action is being canceled by user request
                  CanceledThe action has been canceled
                  SuccessThe action was executed successfully
                  FailedThere was an issue when the action was being performed. Check the logs for more information.
                  - -

                  List all actions

                  -
                  import dockercloud
                  -
                  -actions = dockercloud.Action.list()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -actionList, err := dockercloud.ListActions()
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(actionList)
                  -
                  -
                  GET /api/audit/v1/action/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud action ls
                  -
                  - -

                  Lists all actions in chronological order. Returns a list of Action objects.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/audit/v1/action/

                  - -

                  Query Parameters

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  ParameterDescription
                  uuidFilter by UUID.
                  stateFilter by state. Possible values: In progress, Success, Failed
                  start_dateFilter by start date. Valid filtering values are start_date__gte (after or on the date supplied) and start_date__lte (before or on the date supplied)
                  end_dateFilter by end date. Valid filtering values are end_date__gte (after or on the date supplied) and end_date__lte (before or on the date supplied)
                  objectFilter by resource URI of the related object. This filter can only be combined with ‘include_related’ filter
                  include_relatedThere is a parent-child relationship between Docker Cloud objects, described in table Relationships between Docker Cloud objects. If set to 'true’, will include the actions of the related objects to the object specified in “object” filter parameter. Possible values: 'true’ or 'false’
                  - -

                  Relationships between Docker Cloud objects

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  ObjectRelationships
                  ContainerContainer, service, stack (if any)
                  ServiceAll containers in the service, service, stack (if any)
                  StackAll services in the stack, all containers in every service in the stack, stack
                  NodeNode, node cluster (if any)
                  Node clusterAll nodes in the cluster, node cluster
                  - -

                  Get an action by UUID

                  -
                  import dockercloud
                  -
                  -action = dockercloud.Action.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -action, err := dockercloud.GetAction("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(action)
                  -
                  -
                  GET /api/audit/v1/action/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud action inspect 7eaf7fff
                  -
                  - -

                  Get all the details of an specific action

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/audit/v1/action/(uuid)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the action to retrieve
                  - -

                  Get the logs of an action

                  - -
                  -

                  Example log line

                  -
                  -
                  {
                  -    "type": "log",
                  -    "log": "Log line from the action",
                  -    "timestamp": 1433779324
                  -}
                  -
                  -
                  import dockercloud
                  -
                  -def log_handler(message):
                  -    print message
                  -
                  -action = dockercloud.Action.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -action.logs(tail=300, follow=True, log_handler=log_handler)
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -c := make(chan dockercloud.Logs)
                  -action, err := dockercloud.GetAction("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -    log.Println(err)
                  -}
                  -
                  -go action.GetLogs(c)
                  -
                  -for {
                  -    log.Println(<-c)
                  -}
                  -
                  -
                  GET /api/audit/v1/action/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/logs/ HTTP/1.1
                  -Host: ws.cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Connection: Upgrade
                  -Upgrade: websocket
                  -
                  -
                  docker-cloud action logs 7eaf7fff-882c-4f3d-9a8f-a22317ac00ce
                  -
                  - -

                  Get the logs of the specified action.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s STREAM API

                  - -

                  HTTP Request

                  - -

                  GET /api/audit/v1/action/(uuid)/logs/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the action to retrieve logs
                  - -

                  Query Parameters

                  - - - - - - - - - - - - - - - -
                  ParameterDescription
                  tailNumber of lines to show from the end of the logs (default: 300)
                  followWhether to stream logs or close the connection immediately (default: true)
                  - -

                  Cancel an action

                  -
                  POST /api/audit/v1/action/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/cancel/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -action, err := dockercloud.GetAction("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -action, err = action.Cancel()
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(action)
                  -
                  - -

                  Cancels an action in Pending or In progress state.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/audit/v1/action/(uuid)/cancel/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the action to cancel
                  - -

                  Retry an action

                  -
                  import dockercloud
                  -
                  -def log_handler(message):
                  -  print message
                  -
                  -action = dockercloud.Action.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -action.logs(tail=300, follow=True, log_handler=log_handler)
                  -
                  -
                  POST /api/audit/v1/action/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/retry/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -action, err := dockercloud.GetAction("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -action, err = action.Retry()
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(action)
                  -
                  -
                  docker-cloud action logs 7eaf7fff-882c-4f3d-9a8f-a22317ac00ce
                  -
                  - -

                  Retries an action in Success, Failed or Canceled state.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/audit/v1/action/(uuid)/retry/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the action to retry
                  - -

                  Providers

                  - -

                  Provider

                  - -
                  -

                  Example

                  -
                  -
                  {
                  -    "available": true,
                  -    "label": "Digital Ocean",
                  -    "name": "digitalocean",
                  -    "regions": [
                  -        "/api/infra/v1/region/digitalocean/ams1/",
                  -        "/api/infra/v1/region/digitalocean/ams2/",
                  -        "/api/infra/v1/region/digitalocean/ams3/",
                  -        "/api/infra/v1/region/digitalocean/lon1/",
                  -        "/api/infra/v1/region/digitalocean/nyc1/",
                  -        "/api/infra/v1/region/digitalocean/nyc2/",
                  -        "/api/infra/v1/region/digitalocean/nyc3/",
                  -        "/api/infra/v1/region/digitalocean/sfo1/",
                  -        "/api/infra/v1/region/digitalocean/sgp1/"
                  -    ],
                  -    "resource_uri": "/api/infra/v1/provider/digitalocean/"
                  -}
                  -
                  - -

                  A provider is a representation of a cloud provider supported by Docker Cloud. Providers have one or more regions where nodes are deployed.

                  - -

                  Attributes

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  resource_uriA unique API endpoint that represents the provider
                  nameA unique identifier for the provider
                  labelA user-friendly name for the provider
                  regionsA list of resource URIs of the regions available in this provider
                  availableWhether the provider is currently available for new node deployments
                  - -

                  List all providers

                  -
                  import dockercloud
                  -
                  -providers = dockercloud.Provider.list()
                  -
                  -
                  GET /api/infra/v1/provider/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -providerList, err := dockercloud.ListProviders()
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(providerList)
                  -
                  -
                  docker-cloud nodecluster provider
                  -
                  - -

                  Lists all supported cloud providers. Returns a list of Provider objects.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/infra/v1/provider/

                  - -

                  Query Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  nameFilter by provider name
                  - -

                  Get an individual provider

                  -
                  import dockercloud
                  -
                  -provider = dockercloud.Provider.fetch("digitalocean")
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -provider, err := dockercloud.GetProvider("digitalocean")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(provider)
                  -
                  -
                  GET /api/infra/v1/provider/digitalocean/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  - -

                  Get all the details of a specific provider

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/infra/v1/provider/(name)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  nameThe name of the provider to retrieve
                  - -

                  Regions

                  - -

                  Region

                  - -
                  -

                  Example

                  -
                  -
                  {
                  -    "availability_zones": [],
                  -    "available": true,
                  -    "label": "Amsterdam 2",
                  -    "name": "ams2",
                  -    "node_types": [
                  -        "/api/infra/v1/nodetype/digitalocean/1gb/",
                  -        "/api/infra/v1/nodetype/digitalocean/2gb/",
                  -        "/api/infra/v1/nodetype/digitalocean/4gb/",
                  -        "/api/infra/v1/nodetype/digitalocean/8gb/",
                  -        "/api/infra/v1/nodetype/digitalocean/16gb/",
                  -        "/api/infra/v1/nodetype/digitalocean/32gb/",
                  -        "/api/infra/v1/nodetype/digitalocean/48gb/",
                  -        "/api/infra/v1/nodetype/digitalocean/64gb/"
                  -    ],
                  -    "provider": "/api/infra/v1/provider/digitalocean/",
                  -    "resource_uri": "/api/infra/v1/region/digitalocean/ams2/"
                  -}
                  -
                  - -

                  A region is a representation of an entire or a subset of a data center of a cloud provider. It can contain availability zones (depending on the provider) and one or more node types.

                  - -

                  Attributes

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  resource_uriA unique API endpoint that represents the region
                  nameAn identifier for the region
                  labelA user-friendly name for the region
                  node_typesA list of resource URIs of the node types available in the region
                  availability_zonesA list of resource URIs of the availability zones available in the region
                  providerThe resource URI of the provider of the region
                  availableWhether the region is currently available for new node deployments
                  - -

                  List all regions

                  -
                  import dockercloud
                  -
                  -regions = dockercloud.Region.list()
                  -
                  -
                  GET /api/infra/v1/region/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -regionList, err := dockercloud.ListRegions()
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(regionList)
                  -
                  -
                  docker-cloud nodecluster region
                  -
                  - -

                  Lists all regions of all supported cloud providers. Returns a list of Region objects.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/infra/v1/region/

                  - -

                  Query Parameters

                  - - - - - - - - - - - - - - - -
                  ParameterDescription
                  nameFilter by region name
                  providerFilter by resource URI of the target provider
                  - -

                  Get an individual region

                  -
                  import dockercloud
                  -
                  -region = dockercloud.Region.fetch("digitalocean/lon1")
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -region, err := dockercloud.GetRegion("digitalocean","lon1")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(region)
                  -
                  -
                  GET /api/infra/v1/region/digitalocean/lon1/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  - -

                  Get all the details of a specific region

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/infra/v1/region/(provider.name)/(name)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - - - - - -
                  ParameterDescription
                  nameThe name of the region to retrieve
                  provider.nameThe name of the provider of the region
                  - -

                  Availability Zones

                  - -

                  Availability Zone

                  - -
                  -

                  Example

                  -
                  -
                  {
                  -    "available": true,
                  -    "name": "ap-northeast-1a",
                  -    "region": "/api/infra/v1/region/az/ap-northeast-1/",
                  -    "resource_uri": "/api/infra/v1/az/aws/ap-northeast-1/ap-northeast-1a/"
                  -}
                  -
                  - -

                  An Availability Zone is an isolated location inside a region. Providers that support availability zones: AWS

                  - -

                  Attributes

                  - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  availableWhether the availability zone is currently available for new node deployments
                  nameAn identifier for the availability zone
                  regionThe resource URI of the region where the availability zone is allocated
                  resource_uriA unique API endpoint that represents the zone
                  - -

                  List all availability zones

                  -
                  import dockercloud
                  -
                  -az = dockercloud.AZ.list()
                  -
                  -
                  GET /api/infra/v1/az/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -az, err := dockercloud.ListAZ()
                  -if err != nil {
                  -    log.Println(err)
                  -}
                  -
                  -log.Println(az)
                  -
                  -
                  docker-cloud nodecluster az
                  -
                  - -

                  Lists all availability zones from all regions of all supported cloud providers. Returns a list of Availability Zone objects.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/infra/v1/az/

                  - -

                  Query Parameters

                  - - - - - - - - - - - - - - - -
                  ParameterDescription
                  nameFilter by availability zone name
                  regionFilter by resource URI of the target region
                  - -

                  Get an individual availability zone

                  -
                  import dockercloud
                  -
                  -az = dockercloud.AZ.fetch("aws/sa-east-1/sa-east-1a")
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -az, err := dockercloud.GetAZ("aws/sa-east-1/sa-east-1a")
                  -if err != nil {
                  -    log.Println(err)
                  -}
                  -
                  -log.Println(az)
                  -
                  -
                  GET /api/infra/v1/az/aws/sa-east-1/sa-east-1a/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  - -

                  Get all the details of a specific availability zone

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/infra/v1/az/(provider.name)/(region.name)/(name)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - - - - - - - - - -
                  ParameterDescription
                  nameThe name of the availability zone to retrieve
                  providerThe name of the provider
                  regionThe name of the region
                  - -

                  Node Types

                  - -

                  Node Type

                  - -
                  -

                  Example

                  -
                  -
                  {
                  -    "availability_zones": [],
                  -    "available": true,
                  -    "label": "1GB",
                  -    "name": "1gb",
                  -    "provider": "/api/infra/v1/provider/digitalocean/",
                  -    "regions": [
                  -        "/api/infra/v1/region/digitalocean/ams1/",
                  -        "/api/infra/v1/region/digitalocean/sfo1/",
                  -        "/api/infra/v1/region/digitalocean/nyc2/",
                  -        "/api/infra/v1/region/digitalocean/ams2/",
                  -        "/api/infra/v1/region/digitalocean/sgp1/",
                  -        "/api/infra/v1/region/digitalocean/lon1/",
                  -        "/api/infra/v1/region/digitalocean/nyc3/",
                  -        "/api/infra/v1/region/digitalocean/nyc1/"
                  -    ],
                  -    "resource_uri": "/api/infra/v1/nodetype/digitalocean/1gb/"
                  -}
                  -
                  - -

                  A node type is a representation of an instance size supported by a certain cloud provider in a certain region and/or availability zone.

                  - -

                  Attributes

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  resource_uriA unique API endpoint that represents the node type
                  nameAn identifier for the node type
                  labelA user-friendly name for the node type
                  regionsA list of resource URIs of the regions to which this node type can be deployed to
                  availability_zonesA list of resource URIs of the availability zones to which this node type can be deployed to
                  providerThe resource URI of the provider of the node type
                  availableWhether the node type is currently available for new node deployments
                  - -

                  List all node types

                  -
                  import dockercloud
                  -
                  -nodetypes = dockercloud.NodeType.list()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -nodetypeList, err := dockercloud.ListNodeTypes()
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(nodetypeList)
                  -
                  -
                  GET /api/infra/v1/nodetype/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud nodecluster nodetype
                  -
                  - -

                  Lists all node types of all supported cloud providers. Returns a list of NodeType objects.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/infra/v1/nodetype/

                  - -

                  Query Parameters

                  - - - - - - - - - - - - - - - - - - - -
                  ParameterDescription
                  nameFilter by node type name
                  regionsFilter by resource URI of the target regions
                  availability_zonesFilter by resource URI of the target availability zones
                  - -

                  Get an individual node type

                  -
                  import dockercloud
                  -
                  -nodetype = dockercloud.NodeType.fetch("digitalocean/1gb")
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -nodetype, err := dockercloud.GetNodeType("digitalocean","1gb")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(nodetype)
                  -
                  -
                  GET /api/infra/v1/nodetype/digitalocean/1gb/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  - -

                  Get all the details of a specific node type

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/infra/v1/nodetype/(provider.name)/(name)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - - - - - -
                  ParameterDescription
                  nameThe name of the node type to retrieve
                  provider.nameThe name of the provider of the node type
                  - -

                  Node Clusters

                  - -

                  Node Cluster

                  - -
                  -

                  Example

                  -
                  -
                  {
                  -    "current_num_nodes": 1,
                  -    "deployed_datetime": "Tue, 16 Sep 2014 17:01:15 +0000",
                  -    "destroyed_datetime": null,
                  -    "disk": 60,
                  -    "nickname": "my test cluster",
                  -    "name": "TestCluster",
                  -    "node_type": "/api/infra/v1/nodetype/aws/t2.micro/",
                  -    "nodes": [
                  -        "/api/infra/v1/user_namespace/node/75d20367-0948-4f10-8ba4-ffb4d16ed3c6/"
                  -    ],
                  -    "region": "/api/infra/v1/region/aws/us-east-1/",
                  -    "resource_uri": "/api/infra/v1/user_namespace/nodecluster/5516df0b-721e-4470-b350-741ff22e63a0/",
                  -    "state": "Deployed",
                  -    "tags": [
                  -        {"name": "tag_one"},
                  -        {"name": "tag-two"},
                  -        {"name": "tagthree3"}
                  -    ],
                  -    "target_num_nodes": 2,
                  -    "uuid": "5516df0b-721e-4470-b350-741ff22e63a0",
                  -    "provider_options": {
                  -        "vpc": {
                  -            "id": "vpc-aa1c70d4",
                  -            "subnets": ["subnet-aaa7d94f", "subnet-aa15fa64"],
                  -            "security_groups": ["sg-aa1c70d4"]
                  -        },
                  -        "iam": {
                  -            "instance_profile_name": "my_instance_profile"
                  -        }
                  -    }
                  -}
                  -
                  - -

                  A node cluster is a group of nodes that share the same provider, region and/or availability zone, and node type. They are on the same private network.

                  - -

                  This is a namespaced endpoint.

                  - -

                  Attributes

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  uuidA unique identifier for the node cluster generated automatically on creation
                  resource_uriA unique API endpoint that represents the node cluster
                  nameA user provided name for the node cluster
                  stateThe state of the node cluster. See the below table for a list of possible states.
                  node_typeThe resource URI of the node type used for the node cluster
                  diskThe size of the disk where images and containers are stored (in GB)
                  nodesA list of resource URIs of the Node objects on the node cluster
                  regionThe resource URI of the Region object where the node cluster is deployed
                  target_num_nodesThe desired number of nodes for the node cluster
                  current_num_nodesThe actual number of nodes in the node cluster. This may differ from target_num_nodes if the node cluster is being deployed or scaled
                  deployed_datetimeThe date and time when this node cluster was deployed
                  destroyed_datetimeThe date and time when this node cluster was terminated (if applicable)
                  tagsList of tags to identify the node cluster nodes when deploying services (see Tags for more information)
                  provider_optionsProvider-specific extra options for the deployment of the node (see Provider options table below for more information)
                  nicknameA user-friendly name for the node cluster (name by default)
                  - -

                  Node Cluster states

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  StateDescription
                  InitThe node cluster has been created and has no deployed containers yet. Possible actions in this state: deploy, terminate.
                  DeployingAll nodes in the cluster are either deployed or being deployed. No actions allowed in this state.
                  DeployedAll nodes in the cluster are deployed and provisioned. Possible actions in this state: terminate.
                  Partly deployedOne or more nodes of the cluster are deployed and running. Possible actions in this state: terminate.
                  ScalingThe cluster is either deploying new nodes or terminating existing ones responding to a scaling request. No actions allowed in this state.
                  TerminatingAll nodes in the cluster are either being terminated or already terminated. No actions allowed in this state.
                  TerminatedThe node cluster and all its nodes have been terminated. No actions allowed in this state.
                  Empty clusterThere are no nodes deployed in this cluster. Possible actions in this state: terminate.
                  - -

                  Provider options

                  - -

                  You can specify the following options when using the Amazon Web Services provider:

                  - -
                    -
                  • vpc: VPC-related options (optional) - -
                      -
                    • id: AWS VPC identifier of the target VPC where the nodes of the cluster will be deployed (required)
                    • -
                    • subnets: a list of target subnet identifiers inside selected VPC. If you specify more than one subnet, Docker Cloud will balance among all of them following a high-availability schema (optional)
                    • -
                    • security_groups: the security group that will be applied to every node of the cluster (optional)
                    • -
                  • -
                  • iam: IAM-related options (optional) - -
                      -
                    • instance_profile_name: name of the instance profile (container for instance an IAM role) to attach to every node of the cluster (required)
                    • -
                  • -
                  - -

                  List all node clusters

                  -
                  import dockercloud
                  -
                  -nodeclusters = dockercloud.NodeCluster.list()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -nodeclusters, err := dockercloud.ListNodeClusters()
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(nodeclusters)
                  -
                  -
                  GET /api/infra/v1/nodecluster/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud nodecluster ls
                  -
                  - -

                  Lists all current and recently terminated node clusters. Returns a list of NodeCluster objects.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/infra/v1/[optional_namespace/]nodecluster/

                  - -

                  Query Parameters

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  ParameterDescription
                  uuidFilter by UUID
                  stateFilter by state. Possible values: Init, Deploying, Deployed, Partly deployed, Scaling, Terminating, Terminated, Empty cluster
                  nameFilter by node cluster name
                  regionFilter by resource URI of the target region
                  node_typeFilter by resource URI of the target node type
                  - -

                  Create a new node cluster

                  -
                  import dockercloud
                  -
                  -region = dockercloud.Region.fetch("digitalocean/lon1")
                  -node_type = dockercloud.NodeType.fetch("digitalocean/1gb")
                  -nodecluster = dockercloud.NodeCluster.create(name="my_cluster", node_type=node_type, region=region, disk=60)
                  -nodecluster.save()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -nodecluster, err := dockercloud.CreateNodeCluster(dockercloud.NodeCreateRequest{Name: "my_cluster", Region: "/api/infra/v1/region/digitalocean/lon1/", NodeType: "/api/infra/v1/nodetype/digitalocean/1gb/", Target_num_nodes: 2})
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(nodecluster)
                  -
                  -
                  POST /api/infra/v1/nodecluster/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -Content-Type: application/json
                  -
                  -{"name": "my_cluster", "region": "/api/infra/v1/region/digitalocean/lon1/", "node_type": "/api/infra/v1/nodetype/digitalocean/1gb/", "disk": 60}
                  -
                  -
                  docker-cloud nodecluster create my_cluster digitalocean lon1 1gb
                  -
                  - -

                  Creates a new node cluster without deploying it.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/infra/v1/[optional_namespace/]nodecluster/

                  - -

                  JSON Parameters

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  ParameterDescription
                  name(required) A user provided name for the node cluster
                  node_type(required) The resource URI of the node type to be used for the node cluster
                  region(required) The resource URI of the region where the node cluster is to be deployed
                  disk(optional) The size of the volume to create where images and containers will be stored, in GB (default: 60). Not available for Digital Ocean. To create Softlayer nodes you must select one of the following sizes (in GBs): 10, 20, 25, 30, 40, 50, 75, 100, 125, 150, 175, 200, 250, 300, 350, 400, 500, 750, 1000, 1500 or 2000
                  nickname(optional) A user-friendly name for the node cluster (name by default)
                  target_num_nodes(optional) The desired number of nodes for the node cluster (default: 1)
                  tags(optional) List of tags of the node cluster to be used when deploying services see Tags for more information) (default: [])
                  provider_optionsProvider-specific extra options for the deployment of the node (see table Provider options above for more information)
                  - -

                  Get an existing node cluster

                  -
                  import dockercloud
                  -
                  -service = dockercloud.NodeCluster.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -nodecluster, err := dockercloud.GetNodeCluster("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(nodecluster)
                  -
                  -
                  GET /api/infra/v1/nodecluster/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud nodecluster inspect 7eaf7fff
                  -
                  - -

                  Get all the details of an specific node cluster

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/infra/v1/[optional_namespace/]nodecluster/(uuid)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the node cluster to retrieve
                  - -

                  Deploy a node cluster

                  -
                  import dockercloud
                  -
                  -nodecluster = dockercloud.NodeCluster.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -nodecluster.deploy()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -nodecluster, err := dockercloud.GetNodeCluster("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -if err = nodecluster.Deploy(); err != nil {
                  -   log.Println(err)
                  -}
                  -
                  -
                  POST /api/infra/v1/nodecluster/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/deploy/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  - -

                  Deploys and provisions a recently created node cluster in the specified region and cloud provider.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/infra/v1/[optional_namespace/]nodecluster/(uuid)/deploy/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the node cluster to deploy
                  - -

                  Update an existing node cluster

                  -
                  import dockercloud
                  -
                  -nodecluster = dockercloud.NodeCluster.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -nodecluster.target_num_nodes = 3
                  -nodecluster.tags.add("tag-1")
                  -nodecluster.save()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -nodecluster, err := dockercloud.GetNodeCluster("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -if err = nodecluster.Update(dockercloud.NodeCreateRequest{Target_num_nodes: 4}); err != nil {
                  -   log.Println(err)
                  -}
                  -
                  -
                  PATCH /api/infra/v1/nodecluster/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -Content-Type: application/json
                  -
                  -{"target_num_nodes": 3, "tags": [{"name": "tag-1"}]}
                  -
                  -
                  docker-cloud nodecluster scale 7eaf7fff 3
                  -docker-cloud tag add -t tag-1 7eaf7fff
                  -docker-cloud tag set -t tag-2 7eaf7fff
                  -
                  - -

                  Updates the node cluster details and applies the changes automatically.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  PATCH /api/infra/v1/[optional_namespace/]nodecluster/(uuid)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the node cluster to update
                  - -

                  JSON Parameters

                  - - - - - - - - - - - - - - - -
                  ParameterDescription
                  target_num_nodes(optional) The number of nodes to scale this node cluster to
                  tags(optional) List of tags the node cluster (and nodes within the node cluster) will have. This operation replaces the user tag list.
                  - -

                  Terminate a node cluster

                  -
                  import dockercloud
                  -
                  -nodecluster = dockercloud.NodeCluster.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -nodecluster.delete()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -nodecluster, err := dockercloud.GetNodeCluster("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -if err = nodecluster.Terminate(); err != nil {
                  -   log.Println(err)
                  -}
                  -
                  -
                  DELETE /api/infra/v1/nodecluster/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  dockercloud nodecluster rm 7eaf7fff
                  -
                  - -

                  Terminates all the nodes in a node cluster and the node cluster itself. This is not reversible.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  DELETE /api/infra/v1/[optional_namespace/]nodecluster/(uuid)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the node cluster to terminate
                  - -

                  Nodes

                  - -

                  Node

                  - -
                  -

                  Example

                  -
                  -
                  {
                  -    "availability_zone": "/api/infra/v1/az/testing-provider/testing-region/testing-az/",
                  -    "cpu": 1,
                  -    "current_num_containers": 4,
                  -    "deployed_datetime": "Tue, 16 Sep 2014 17:01:15 +0000",
                  -    "destroyed_datetime": null,
                  -    "disk": 60,
                  -    "docker_execdriver": "native-0.2",
                  -    "docker_graphdriver": "aufs",
                  -    "docker_version": "1.5.0",
                  -    "external_fqdn": "fc1a5bb9-user.node.dockerapp.io",
                  -    "last_seen": "Thu, 25 Sep 2014 13:14:44 +0000",
                  -    "memory": 1792,
                  -    "nickname": "fc1a5bb9-user.node.dockerapp.io",
                  -    "node_cluster": "/api/infra/v1/user_namespace/nodecluster/d787a4b7-d525-4061-97a0-f423e8f1d229/",
                  -    "node_type": "/api/infra/v1/user_namespace/nodetype/testing-provider/testing-type/",
                  -    "public_ip": "10.45.2.11",
                  -    "region": "/api/infra/v1/region/testing-provider/testing-region/",
                  -    "resource_uri": "/api/infra/v1/user_namespace/node/fc1a5bb9-17f5-4819-b667-8c7cd819e949/",
                  -    "state": "Deployed",
                  -    "tags": [
                  -        {"name": "tag_one"},
                  -        {"name": "tag-two"}
                  -    ],
                  -    "tunnel": "https://tunnel01.cloud.docker.com:12345",
                  -    "uuid": "fc1a5bb9-17f5-4819-b667-8c7cd819e949"
                  -}
                  -
                  - -

                  A node is a virtual machine provided by a cloud provider where containers can be deployed.

                  - -

                  This is a namespaced endpoint.

                  - -

                  Attributes

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  availability_zoneThe resource URI of the availability zone where the node is deployed, if any
                  uuidA unique identifier for the node generated automatically on creation
                  resource_uriA unique API endpoint that represents the node
                  external_fqdnAn automatically generated FQDN for the node. Containers deployed on this node will inherit this FQDN.
                  stateThe state of the node. See the below table for a list of possible states.
                  node_clusterThe resource URI of the node cluster to which this node belongs to (if applicable)
                  node_typeThe resource URI of the node type used for the node
                  regionThe resource URI of the region where the node is deployed
                  docker_execdriverDocker’s execution driver used in the node
                  docker_graphdriverDocker’s storage driver used in the node
                  docker_versionDocker’s version used in the node
                  cpuNode number of CPUs
                  diskNode storage size in GB
                  memoryNode memory in MB
                  current_num_containersThe actual number of containers deployed in this node
                  last_seenDate and time of the last time the node was contacted by Docker Cloud
                  public_ipThe public IP allocated to the node
                  tunnelIf the node does not accept incoming connections to port 2375, the address of the reverse tunnel to access the docker daemon, or null otherwise
                  deployed_datetimeThe date and time when this node cluster was deployed
                  destroyed_datetimeThe date and time when this node cluster was terminated (if applicable)
                  tagsList of tags to identify the node when deploying services (see Tags for more information)
                  nicknameA user-friendly name for the node (external_fqdn by default)
                  - -

                  Node states

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  StateDescription
                  DeployingThe node is being deployed in the cloud provider. No actions allowed in this state.
                  DeployedThe node is deployed and provisioned and is ready to deploy containers. Possible actions in this state: terminate, docker-upgrade.
                  UnreachableThe node is deployed but Docker Cloud cannot connect to the docker daemon. Possible actions in this state: health-check and terminate.
                  UpgradingThe node docker daemon is being upgraded. No actions allowed in this state.
                  TerminatingThe node is being terminated in the cloud provider. No actions allowed in this state.
                  TerminatedThe node has been terminated and is no longer present in the cloud provider. No actions allowed in this state.
                  - -

                  List all nodes

                  -
                  import dockercloud
                  -
                  -nodes = dockercloud.Node.list()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -nodeList, err := dockercloud.ListNodes()
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(nodeList)
                  -
                  -
                  GET /api/infra/v1/node/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud node ls
                  -
                  - -

                  Lists all current and recently terminated nodes. Returns a list of Node objects.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/infra/v1/[optional_namespace/]node/

                  - -

                  Query Parameters

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  ParameterDescription
                  uuidFilter by UUID
                  stateFilter by state. Possible values: Deploying, Deployed, Unreachable, Upgrading, Terminating, Terminated
                  node_clusterFilter by resource URI of the target node cluster
                  node_typeFilter by resource URI of the target node type
                  regionFilter by resource URI of the target region
                  docker_versionFilter by Docker engine version running in the nodes
                  - -

                  Get an existing node

                  -
                  import dockercloud
                  -
                  -node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(node)
                  -
                  -
                  GET /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud node inspect 7eaf7fff
                  -
                  - -

                  Get all the details of an specific node

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/infra/v1/[optional_namespace/]node/(uuid)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the node to retrieve
                  - -

                  Update a node

                  -
                  import dockercloud
                  -
                  -node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -node.tags.add(["tag-1"])
                  -node.save()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -    log.Println(err)
                  -}
                  -
                  -if err = node.Update(dockercloud.Node{Tags: []string{{Name: "tag-1"}}}); err != nil {
                  -            log.Println(err)
                  -}
                  -
                  -
                  PATCH /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -{"tags": [{"name": "tag-1"}], "nickname": "dev node"}
                  -
                  -
                  docker-cloud tag add -t tag-1 7eaf7fff
                  -docker-cloud tag set -t tag-2 7eaf7fff
                  -
                  - -

                  Names the node with a user-friendly name and/or replaces the old tags for the new list provided.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  PATCH /api/infra/v1/[optional_namespace/]node/(uuid)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the node to retrieve
                  - -

                  JSON Parameters

                  - - - - - - - - - - - - - - - -
                  ParameterDescription
                  nickname(optional) A user-friendly name for the node (external_fqdn by default)
                  tags(optional) List of tags the node will have. This operation replaces the user tag list.
                  - -

                  Upgrade Docker Daemon

                  -
                  import dockercloud
                  -
                  -node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -node.upgrade_docker()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -if err = node.Upgrade(); err != nil {
                  -       log.Println(err)
                  -   }
                  -
                  -
                  POST /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/docker-upgrade/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud node upgrade 7eaf7fff
                  -
                  - -

                  Upgrades the docker daemon of the node. This will restart your containers on that node. See Docker upgrade for more information.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/infra/v1/[optional_namespace/]node/(uuid)/docker-upgrade/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the node to upgrade
                  - -

                  Perform a health check of a node

                  -
                  POST /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/health-check/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  - -

                  Tests connectivity between Docker Cloud and the node. Updates the node status to Deployed if the check was successful, or to Unreachable otherwise.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/infra/v1/[optional_namespace/]node/(uuid)/health-check/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the node to perform the health check to
                  - -

                  Terminate a node

                  -
                  import dockercloud
                  -
                  -node = dockercloud.Node.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -node.delete()
                  -
                  -
                  DELETE /api/infra/v1/node/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -node, err := dockercloud.GetNode("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -if err = node.Terminate(); err != nil {
                  -   log.Println(err)
                  -}
                  -
                  -
                  docker-cloud node rm 7eaf7fff
                  -
                  - -

                  Terminates the specified node.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  DELETE /api/infra/v1/[optional_namespace/]node/(uuid)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the node to terminate
                  - -

                  Registries

                  - -

                  Registry

                  - -
                  -

                  Example

                  -
                  -
                  {
                  -  "host": "registry-1.docker.io",
                  -  "is_docker_registry": true,
                  -  "is_ssl": true,
                  -  "name": "Docker Hub",
                  -  "port": 443,
                  -  "resource_uri": "/api/repo/v1/user_namespace/registry/registry-1.docker.io/"
                  -}
                  -
                  - -

                  Represents a registry where repositories are hosted.

                  - -

                  This is a namespaced endpoint.

                  - -

                  Attributes

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  resource_uriA unique API endpoint that represents the registry
                  nameHuman-readable name of the registry
                  hostFQDN of the registry, i.e. registry-1.docker.io
                  is_docker_registryWhether this registry is run by Docker
                  is_sslWhether this registry has SSL activated or not
                  portThe port number where the registry is listening to
                  - -

                  List all registries

                  -
                  GET /api/repo/v1/registry/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  - -

                  Lists all current registries. Returns a list of Registry objects.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/repo/v1/[optional_namespace/]registry/

                  - -

                  Query Parameters

                  - - - - - - - - - - - - - - - - - - - - - - - -
                  ParameterDescription
                  uuidFilter by UUID
                  nameFilter by registry name
                  hostFilter by registry host
                  is_docker_registryFilter by whether the registry is run by Docker or not. Possible values: ‘true’ or 'false’
                  - -

                  Get an existing registry

                  -
                  GET /api/repo/v1/registry/registry-1.docker.io/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  - -

                  Gets all the details of an specific registry

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/v1/[optional_namespace/]registry/(host)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  hostThe host of the registry to retrieve
                  - -

                  External Repositories

                  - -

                  External Repository

                  - -
                  -

                  Example

                  -
                  -
                  {
                  -  "in_use": false,
                  -  "name": "my.registry.com/myrepo",
                  -  "registry": "/api/repo/v1/user_namespace/registry/my.registry.com/",
                  -  "resource_uri": "/api/repo/v1/user_namespace/repository/my.registry.com/myrepo/",
                  -}
                  -
                  - -

                  The repository endpoint is used to add and remove existing repositories on third party registries to be used in deployments and builds.

                  - -

                  This is a namespaced endpoint.

                  - -

                  Attributes

                  - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  resource_uriA unique API endpoint that represents the repository
                  nameName of the repository, i.e. my.registry.com/myrepo
                  in_useIf the image is being used by any of your services
                  registryResource URI of the registry where this image is hosted
                  - -

                  List all external repositories

                  -
                  import dockercloud
                  -
                  -repositories = dockercloud.Repository.list()
                  -
                  -
                  GET /api/repo/v1/repository/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -repositoriesList, err := dockercloud.ListRepositories()
                  -
                  -if err != nil {
                  -    log.Println(err)
                  -}
                  -
                  -log.Pringln(repositoriesList)
                  -
                  -
                  docker-cloud repository ls
                  -
                  - -

                  Lists all added repositories from third party registries. Returns a list of Repository objects.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/repo/v1/[optional_namespace/]repository/

                  - -

                  Query Parameters

                  - - - - - - - - - - - - - - - -
                  ParameterDescription
                  nameFilter by image name
                  registryFilter by resource URI of the target repository registry
                  - -

                  Add a new external repository

                  -
                  import dockercloud
                  -
                  -repository = dockercloud.Repository.create(name="registry.local/user1/image1", username=username, password=password)
                  -repository.save()
                  -
                  -
                  POST /api/repo/v1/repository/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -Content-Type: application/json
                  -
                  -{"name": "registry.local/user1/image1", "username": "username", "password": "password"}
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -image, err := dockercloud.CreateImage(dockercloud.ImageCreateRequest{
                  -  Name: "registry.local/user1/image1",
                  -  Username: "username",
                  -  Password: "password"
                  -})
                  -
                  -
                  docker-cloud repository register -u username -p password registry.local/user1/image1
                  -
                  - -

                  Adds an existing repository on a third party registry.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/repo/v1/[optional_namespace/]repository/

                  - -

                  JSON Parameters

                  - - - - - - - - - - - - - - - - - - - -
                  ParameterDescription
                  nameName of the repository, i.e. ‘my.registry.com/myrepo’
                  usernameUsername to authenticate with the third party registry
                  passwordPassword to authenticate with the third party registry
                  - -

                  Get an external repository details

                  -
                  import dockercloud
                  -
                  -repository = dockercloud.Repository.fetch("registry.local/user1/image1")
                  -
                  -
                  GET /api/repo/v1/repository/registry.local/user1/image1/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -repository, err = dockercloud.GetRepository("registry.local/user1/image1")
                  -
                  -if err != nil {
                  -    log.Println(err)
                  -}
                  -
                  -log.Println(repository)
                  -
                  -
                  docker-cloud repository inspect registry.local/user1/image1
                  -
                  - -

                  Gets all the details of an specific repository

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/repo/v1/[optional_namespace/]repository/(name)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  nameThe name of the repository to retrieve
                  - -

                  Update credentials of an external repository

                  -
                  import dockercloud
                  -
                  -repository = dockercloud.Repository.fetch("registry.local/user1/image1")
                  -repository.username = "new username"
                  -repository.password = "new password"
                  -repository.save()
                  -
                  -
                  PATCH /api/repo/v1/repository/registry.local/user1/image1/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -Content-Type: application/json
                  -
                  -{"username": "username", "password": "password"}
                  -
                  -
                  docker-cloud repository update -n "new username" -p "new password" registry.local/user1/image1
                  -
                  - -

                  Updates the external repository credentials.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  PATCH /api/repo/v1/[optional_namespace/]repository/(name)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  nameThe name of the repository to update
                  - -

                  JSON Parameters

                  - - - - - - - - - - - - - - - -
                  ParameterDescription
                  usernameUsername to authenticate with the private registry
                  passwordPassword to authenticate with the private registry
                  - -

                  Remove an external repository

                  -
                  import dockercloud
                  -
                  -repository = dockercloud.Repository.fetch("registry.local/user1/image1")
                  -repository.delete()
                  -
                  -
                  DELETE /api/repo/v1/repository/registry.local/user1/image1/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -repository, err = dockercloud.GetRepository("registry.local/user1/image1")
                  -
                  -if err != nil {
                  -    log.Println(err)
                  -}
                  -
                  -repository.Remove()
                  -
                  -
                  docker-cloud repository rm registry.local/user1/image1
                  -
                  - -

                  Removes the external repository from Docker Cloud. It won’t remove the repository from the third party registry where it’s stored.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  DELETE /api/repo/v1/[optional_namespace/]repository/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  nameThe name of the external repository to remove
                  - -

                  Stacks

                  - -

                  Stack

                  - -
                  -

                  Example

                  -
                  -
                  {
                  -  "deployed_datetime": "Mon, 13 Oct 2014 11:01:43 +0000",
                  -  "destroyed_datetime": null,
                  -  "nickname": "deployment stack",
                  -  "name": "dockercloud-app",
                  -  "resource_uri": "/api/app/v1/user_namespace/stack/7fe7ec85-58be-4904-81da-de2219098d7c/",
                  -  "services": [
                  -    "/api/app/v1/user_namespace/service/09cbcf8d-a727-40d9-b420-c8e18b7fa55b/"
                  -  ],
                  -  "state": "Running",
                  -  "synchronized": true,
                  -  "uuid": "09cbcf8d-a727-40d9-b420-c8e18b7fa55b"
                  -}
                  -
                  - -

                  A stack is a logical grouping of closely related services, that may be linked with one another.

                  - -

                  This is a namespaced endpoint.

                  - -

                  Attributes

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  uuidA unique identifier for the stack generated automatically on creation
                  resource_uriA unique API endpoint that represents the stack
                  nameA user provided name for the stack.
                  stateThe state of the stack (see table Stack states below)
                  synchronizedFlag indicating if the current stack definition is synchronized with their services.
                  servicesList of service resource URIs belonging to the stack
                  deployed_datetimeThe date and time of the last deployment of the stack (if applicable, null otherwise)
                  destroyed_datetimeThe date and time of the terminate operation on the stack (if applicable, null otherwise)
                  nicknameA user-friendly name for the stack (name by default)
                  - -

                  Stack states

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  StateDescription
                  Not RunningThe stack has been created and has no deployed services yet. Possible actions in this state: start, terminate.
                  StartingAll services for the stack are either starting or already running. No actions allowed in this state.
                  RunningAll services for the service are deployed and running. Possible actions in this state: redeploy, terminate.
                  Partly runningOne or more services of the stack are deployed and running. Possible actions in this state: redeploy, terminate.
                  StoppingAll services for the stack are either stopping or already stopped. No actions allowed in this state.
                  StoppedAll services for the service are stopped. Possible actions in this state: start, redeploy, terminate.
                  RedeployingThe stack is redeploying all its services with the updated configuration. No actions allowed in this state.
                  TerminatingAll services for the stack are either being terminated or already terminated. No actions allowed in this state.
                  TerminatedThe stack and all its services have been terminated. No actions allowed in this state.
                  - -

                  List all stacks

                  -
                  import dockercloud
                  -
                  -stacks = dockercloud.Stack.list()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -stackList, err := dockercloud.ListStacks()
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(stackList)
                  -
                  -
                  GET /api/app/v1/stack/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud stack ls
                  -
                  - -

                  Lists all current and recently terminated stacks. Returns a list of Stack objects.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/app/v1/[optional_namespace/]stack/

                  - -

                  Query Parameters

                  - - - - - - - - - - - - - - - -
                  ParameterDescription
                  uuidFilter by UUID
                  nameFilter by stack name
                  - -

                  Create a new stack

                  -
                  import dockercloud
                  -
                  -stack = dockercloud.Stack.create(name="my-new-stack", services=[{"name": "hello-word", "image": "tutum/hello-world", "target_num_containers": 2}])
                  -stack.save()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -stack, err := dockercloud.CreateStack(dockercloud.StackCreateRequest{Name: "my-new-stack", Services: []dockercloud.ServiceCreateRequest{{Image: "tutum/hello-world", Name: "test", Target_num_containers: 2}}})
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(stack)
                  -
                  -
                  POST /api/app/v1/stack/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -Content-Type: application/json
                  -
                  -{
                  -    "name": "my-new-stack",
                  -    "services": [
                  -        {
                  -            "name": "hello-word",
                  -            "image": "tutum/hello-world",
                  -            "target_num_containers": 2,
                  -            "linked_to_service": [
                  -                {
                  -                    "to_service": "database",
                  -                    "name": "DB"
                  -                }
                  -            ]
                  -        },
                  -        {
                  -            "name": "database",
                  -            "image": "tutum/mysql"
                  -        }
                  -    ]
                  -}
                  -
                  -
                  docker-cloud stack create --name hello-world -f docker-compose.yml
                  -
                  - -

                  Creates a new stack without starting it. Note that the JSON syntax is abstracted by both, the Docker Cloud CLI and our UI, in order to use Stack YAML files.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/app/v1/[optional_namespace/]stack/

                  - -

                  JSON Parameters

                  - - - - - - - - - - - - - - - - - - - -
                  ParameterDescription
                  name(required) A human-readable name for the stack, i.e. my-hello-world-stack
                  nickname(optional) A user-friendly name for the stack (name by default)
                  services(optional) List of services belonging to the stack. Each service accepts the same parameters as a Create new service operation (default: []) plus the ability to refer “links” and “volumes-from” by the name of another service in the stack (see example).
                  - -

                  Export an existing stack

                  -
                  import dockercloud
                  -
                  -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816")
                  -stack.export()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -if err = stack.Export(); err != nil {
                  -   log.Println(err)
                  -}
                  -
                  -
                  GET /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/export/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud stack export 46aca402
                  -
                  - -

                  Get a JSON representation of the stack following the Stack YAML representation.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/app/v1/[optional_namespace/]stack/(uuid)/export/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the stack to retrieve
                  - -

                  Get an existing stack

                  -
                  import dockercloud
                  -
                  -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816")
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(stack)
                  -
                  -
                  GET /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud stack inspect 46aca402-2109-4a70-a378-760cfed43816
                  -
                  - -

                  Get all the details of an specific stack

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/app/v1/[optional_namespace/]stack/(uuid)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the stack to retrieve
                  - -

                  Update an existing stack

                  -
                  import dockercloud
                  -
                  -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816")
                  -stack.services = {"services": [{"name": "hello-word", "image": "tutum/hello-world", "target_num_containers": 2}]}
                  -stack.save()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -if err = stack.Update(dockercloud.StackCreateRequest{Services: []dockercloud.ServiceCreateRequest{{Name: "hello-world", Image: "tutum/hello-world", Target_num_containers: 2}}}); err != nil {
                  -   log.Println(err)
                  -}
                  -
                  -
                  PATCH /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -Content-Type: application/json
                  -
                  -{
                  -    "services": [
                  -        {
                  -            "name": "hello-word",
                  -            "image": "tutum/hello-world",
                  -            "target_num_containers": 3,
                  -            "linked_to_service": [
                  -                {
                  -                    "to_service": "database",
                  -                    "name": "DB"
                  -                }
                  -            ]
                  -        },
                  -        {
                  -            "name": "database",
                  -            "image": "tutum/mysql"
                  -        }
                  -    ]
                  -}
                  -
                  -
                  docker-cloud stack update -f docker-compose.yml 46aca402
                  -
                  - -

                  Updates the details of every service in the stack.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  PATCH /api/app/v1/[optional_namespace/]stack/(uuid)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the stack to update
                  - -

                  JSON Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  services(optional) List of services belonging to the stack. Each service accepts the same parameters as a Update an existing service operation (default: []) plus the ability to refer “links” and “volumes-from” by the name of another service in the stack (see example).
                  - -

                  Stop a stack

                  -
                  import dockercloud
                  -
                  -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816")
                  -stack.stop()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -if err = stack.Stop(); err != nil {
                  -   log.Println(err)
                  -}
                  -
                  -
                  POST /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/stop/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud stack stop 46aca402-2109-4a70-a378-760cfed43816
                  -
                  - -

                  Stops the services in the stack.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/app/v1/[optional_namespace/]stack/(uuid)/stop/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the stack to stop
                  - -

                  Start a stack

                  -
                  import dockercloud
                  -
                  -stack = dockercloud.Stack.fetch()
                  -stack.start()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -if err = stack.Start(); err != nil {
                  -   log.Println(err)
                  -}
                  -
                  -
                  POST /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/start/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud stack start 46aca402
                  -
                  - -

                  Starts the services in the stack.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/app/v1/[optional_namespace/]stack/(uuid)/start/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the stack to start
                  - -

                  Redeploy a stack

                  -
                  import dockercloud
                  -
                  -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816")
                  -stack.redeploy()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: true}) to reuse the existing volumes
                  -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}) to not reuse the existing volumes
                  -if err = stack.Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}); err != nil {
                  -   log.Println(err)
                  -}
                  -
                  -
                  POST /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/redeploy/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud stack redeploy 46aca402
                  -
                  - -

                  Redeploys all the services in the stack.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/app/v1/[optional_namespace/]stack/(uuid)/redeploy/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the stack to redeploy
                  - -

                  Query Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  reuse_volumesWheather to reuse container volumes for this redeploy operation or not (default: true).
                  - -

                  Terminate a stack

                  -
                  import dockercloud
                  -
                  -stack = dockercloud.Stack.fetch("46aca402-2109-4a70-a378-760cfed43816")
                  -stack.delete()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -stack, err := dockercloud.GetStack("46aca402-2109-4a70-a378-760cfed43816")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -if err = stack.Terminate(); err != nil {
                  -   log.Println(err)
                  -}
                  -
                  -
                  DELETE /api/app/v1/stack/46aca402-2109-4a70-a378-760cfed43816/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud stack terminate 46aca402
                  -
                  - -

                  Terminate all the services in a the stack and the stack itself.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  DELETE /api/app/v1/[optional_namespace/]stack/(uuid)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the stack to terminate
                  - -

                  Services

                  - -

                  Service

                  - -
                  -

                  Example

                  -
                  -
                  {
                  -  "autodestroy": "OFF",
                  -  "autoredeploy": false,
                  -  "autorestart": "ON_FAILURE",
                  -  "bindings": [
                  -    {
                  -        "host_path": null,
                  -        "container_path": "/tmp",
                  -        "rewritable": true,
                  -        "volumes_from": null
                  -    },
                  -    {
                  -        "host_path": "/etc",
                  -        "container_path": "/etc",
                  -        "rewritable": true,
                  -        "volumes_from": null
                  -    },
                  -    {
                  -        "host_path": null,
                  -        "container_path": null,
                  -        "rewritable": true,
                  -        "volumes_from": "/api/app/v1/user_namespace/service/2f4f54e5-9d3b-4ac1-85ad-a2d4ff25a179/"
                  -    }
                  -  ],
                  -  "cap_add": [
                  -    "ALL"
                  -  ],
                  -  "cap_drop": [
                  -    "NET_ADMIN",
                  -    "SYS_ADMIN"
                  -  ],
                  -  "container_envvars": [
                  -    {
                  -      "key": "DB_PASS",
                  -      "value": "test"
                  -    }
                  -  ],
                  -  "container_ports": [
                  -    {
                  -      "endpoint_uri": "http://wordpress-stackable.admin.srv.dockerapp.io:80/",
                  -      "inner_port": 80,
                  -      "outer_port": 80,
                  -      "port_name": "http",
                  -      "protocol": "tcp",
                  -      "published": true
                  -    }
                  -  ],
                  -  "containers": [
                  -    "/api/app/v1/user_namespace/container/6f8ee454-9dc3-4387-80c3-57aac1be3cc6/",
                  -    "/api/app/v1/user_namespace/container/fdf9c116-7c08-4a60-b0ce-c54ca72c2f25/"
                  -  ],
                  -  "cpu_shares": 100,
                  -  "cpuset": "0,1",
                  -  "cgroup_parent": "m-executor-abcd",
                  -  "current_num_containers": 2,
                  -  "deployed_datetime": "Mon, 13 Oct 2014 11:01:43 +0000",
                  -  "deployment_strategy": "EMPTIEST_NODE",
                  -  "destroyed_datetime": null,
                  -  "devices": [
                  -    "/dev/ttyUSB0:/dev/ttyUSB0"
                  -  ],
                  -  "dns": [
                  -    "8.8.8.8"
                  -  ],
                  -  "dns_search": [
                  -    "example.com"
                  -  ],
                  -  "domainname": "domainname",
                  -  "entrypoint": "",
                  -  "extra_hosts": [
                  -    "onehost:50.31.209.229"
                  -  ],
                  -  "hostname": "hostname",
                  -  "image_name": "tutum/wordpress-stackable:latest",
                  -  "nickname": "wordpress-stackable",
                  -  "labels": {
                  -    "com.example.description": "Accounting webapp",
                  -    "com.example.department": "Finance",
                  -    "com.example.label-with-empty-value": ""
                  -  },
                  -  "link_variables": {
                  -    "WORDPRESS_STACKABLE_1_ENV_DB_HOST": "**LinkMe**",
                  -    "WORDPRESS_STACKABLE_1_ENV_DB_NAME": "wordpress",
                  -    "WORDPRESS_STACKABLE_1_ENV_DB_PASS": "szVaPz925B7I",
                  -    "WORDPRESS_STACKABLE_1_ENV_DB_PORT": "**LinkMe**",
                  -    "WORDPRESS_STACKABLE_1_ENV_DB_USER": "admin",
                  -    "WORDPRESS_STACKABLE_1_ENV_DEBIAN_FRONTEND": "noninteractive",
                  -    "WORDPRESS_STACKABLE_1_ENV_HOME": "/",
                  -    "WORDPRESS_STACKABLE_1_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                  -    "WORDPRESS_STACKABLE_1_PORT": "tcp://wordpress-stackable-1.admin.cont.dockerapp.io:49153",
                  -    "WORDPRESS_STACKABLE_1_PORT_80_TCP": "tcp://wordpress-stackable-1.admin.cont.dockerapp.io:49153",
                  -    "WORDPRESS_STACKABLE_1_PORT_80_TCP_ADDR": "wordpress-stackable-1.admin.cont.dockerapp.io",
                  -    "WORDPRESS_STACKABLE_1_PORT_80_TCP_PORT": "49153",
                  -    "WORDPRESS_STACKABLE_1_PORT_80_TCP_PROTO": "tcp",
                  -    "WORDPRESS_STACKABLE_2_ENV_DB_HOST": "**LinkMe**",
                  -    "WORDPRESS_STACKABLE_2_ENV_DB_NAME": "wordpress",
                  -    "WORDPRESS_STACKABLE_2_ENV_DB_PASS": "szVaPz925B7I",
                  -    "WORDPRESS_STACKABLE_2_ENV_DB_PORT": "**LinkMe**",
                  -    "WORDPRESS_STACKABLE_2_ENV_DB_USER": "admin",
                  -    "WORDPRESS_STACKABLE_2_ENV_DEBIAN_FRONTEND": "noninteractive",
                  -    "WORDPRESS_STACKABLE_2_ENV_HOME": "/",
                  -    "WORDPRESS_STACKABLE_2_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                  -    "WORDPRESS_STACKABLE_2_PORT": "tcp://wordpress-stackable-2.admin.cont.dockerapp.io:49154",
                  -    "WORDPRESS_STACKABLE_2_PORT_80_TCP": "tcp://wordpress-stackable-2.admin.cont.dockerapp.io:49154",
                  -    "WORDPRESS_STACKABLE_2_PORT_80_TCP_ADDR": "wordpress-stackable-2.admin.cont.dockerapp.io",
                  -    "WORDPRESS_STACKABLE_2_PORT_80_TCP_PORT": "49154",
                  -    "WORDPRESS_STACKABLE_2_PORT_80_TCP_PROTO": "tcp",
                  -    "WORDPRESS_STACKABLE_ENV_DB_HOST": "**LinkMe**",
                  -    "WORDPRESS_STACKABLE_ENV_DB_NAME": "wordpress",
                  -    "WORDPRESS_STACKABLE_ENV_DB_PASS": "szVaPz925B7I",
                  -    "WORDPRESS_STACKABLE_ENV_DB_PORT": "**LinkMe**",
                  -    "WORDPRESS_STACKABLE_ENV_DB_USER": "admin",
                  -    "WORDPRESS_STACKABLE_ENV_DEBIAN_FRONTEND": "noninteractive",
                  -    "WORDPRESS_STACKABLE_ENV_HOME": "/",
                  -    "WORDPRESS_STACKABLE_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                  -    "WORDPRESS_STACKABLE_PORT": "tcp://wordpress-stackable-1.admin.cont.dockerapp.io:49153",
                  -    "WORDPRESS_STACKABLE_PORT_80_TCP": "tcp://wordpress-stackable-1.admin.cont.dockerapp.io:49153",
                  -    "WORDPRESS_STACKABLE_PORT_80_TCP_ADDR": "wordpress-stackable-1.admin.cont.dockerapp.io",
                  -    "WORDPRESS_STACKABLE_PORT_80_TCP_PORT": "49153",
                  -    "WORDPRESS_STACKABLE_PORT_80_TCP_PROTO": "tcp",
                  -    "WORDPRESS_STACKABLE_DOCKERCLOUD_API_URL": "https://cloud.docker.com/api/app/v1/user_namespace/service/adeebc1b-1b81-4af0-b8f2-cefffc69d7fb/"
                  -  },
                  -  "linked_from_service": [],
                  -  "linked_to_service": [
                  -    {
                  -      "from_service": "/api/app/v1/user_namespace/service/09cbcf8d-a727-40d9-b420-c8e18b7fa55b/",
                  -      "name": "DB",
                  -      "to_service": "/api/app/v1/user_namespace/service/72f175bd-390b-46e3-9463-830aca32ce3e/"
                  -    }
                  -  ],
                  -  "mac_address": "02:42:ac:11:65:43",
                  -  "memory": 2048,
                  -  "memory_swap": 8192,
                  -  "name": "wordpress-stackable",
                  -  "net": "bridge",
                  -  "privileged": false,
                  -  "public_dns": "wordpress-stackable.admin.svc.dockerapp.io",
                  -  "read_only": true,
                  -  "resource_uri": "/api/app/v1/user_namespace/service/09cbcf8d-a727-40d9-b420-c8e18b7fa55b/",
                  -  "roles": ["global"],
                  -  "run_command": "/run-wordpress.sh",
                  -  "running_num_containers": 1,
                  -  "security_opt": [
                  -  ],
                  -  "sequential_deployment": false,
                  -  "started_datetime": "Mon, 13 Oct 2014 11:01:43 +0000",
                  -  "state": "Partly running",
                  -  "stack": "/api/app/v1/user_namespace/stack/46aca402-2109-4a70-a378-760cfed43816/",
                  -  "stdin_open": false,
                  -  "stopped_datetime": null,
                  -  "stopped_num_containers": 0,
                  -  "synchronized": true,
                  -  "tags": [
                  -        {"name": "tag_one"},
                  -        {"name": "tag-two"},
                  -        {"name": "tagthree3"}
                  -  ],
                  -  "target_num_containers": 2,
                  -  "tty": false,
                  -  "user": "root",
                  -  "uuid": "09cbcf8d-a727-40d9-b420-c8e18b7fa55b",
                  -  "working_dir": "/app"
                  -}
                  -
                  - -

                  A service is a template used to deploy one or more containers.

                  - -

                  This is a namespaced endpoint.

                  - -

                  Attributes

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  uuidA unique identifier for the service generated automatically on creation
                  resource_uriA unique API endpoint that represents the service
                  image_nameThe Docker image name and tag used for the service containers
                  nameA user provided name for the service. This name will be inherited by the service containers and will be used in endpoint URLs, environment variable names, etc.
                  public_dnsAn external FQDN that resolves to all IPs of the nodes where the service containers are running on (as an A record with multiple IP entries which will be used by clients in a round-robin fashion). If the service is not publishing any ports, this FQDN will fail to resolve.
                  stateThe state of the service (see table Service states below)
                  netNetwork mode to set on the containers (see table Network Modes below, more information /docker-cloud/apps/service-links/)
                  pidSet the PID (Process) Namespace mode for the containers (more information)
                  synchronizedFlag indicating if the current service definition is synchronized with the current containers.
                  deployed_datetimeThe date and time of the last deployment of the service (if applicable, null otherwise)
                  started_datetimeThe date and time of the last start operation on the service (if applicable, null otherwise)
                  stopped_datetimeThe date and time of the last stop operation on the service (if applicable, null otherwise)
                  destroyed_datetimeThe date and time of the terminate operation on the service (if applicable, null otherwise)
                  target_num_containersThe requested number of containers to deploy for the service
                  current_num_containersThe actual number of containers deployed for the service
                  running_num_containersThe actual number of containers deployed for the service in Running state
                  stopped_num_containersThe actual number of containers deployed for the service in Stopped state
                  stackResource URIs of the stack that the service belongs to
                  containersList of resource URIs of the containers launched as part of the service
                  container_portsList of ports to be published on the containers of this service (see table Service Port attributes below)
                  container_envvarsList of user-defined environment variables to set on the containers of the service, which will override the image environment variables (see table Service Environment Variable attributes below)
                  labelsMetadata in form of dictionary used for every container of this service
                  working_dirWorking directory for running binaries within a container of this service
                  userSet the user used on containers of this service (root by default)
                  hostnameSet the hostname used on containers of this service
                  domainnameSet the domainname used on containers of this service
                  mac_addressEthernet device’s MAC address used on containers of this service
                  cgroup_nameOptional parent cgroup used on containers of this service.
                  ttyIf the containers of this service have the tty enable (false by default)
                  stdin_openIf the containers of this service have stdin opened (false by default)
                  dnsCustom DNS servers for containers of this service
                  dns_searchCustom DNS search domain for containers of this service
                  cap_addAdded capabilities for containers of this service
                  cap_dropDropped capabilities for containers of this service
                  devicesList of device mappings for containers of this service
                  extra_hostsList of hostname mappings for containers of this service
                  secuirty_optLabeling scheme for containers of this service
                  entrypointEntrypoint to be set on the containers launched as part of the service, which will override the image entrypoint
                  run_commandRun command to be set on the containers launched as part of the service, which will override the image run command
                  sequential_deploymentWhether the containers for this service should be deployed in sequence, linking each of them to the previous containers (see Service scaling for more information)
                  cpu_sharesThe relative CPU priority of the containers of the service (see Runtime Constraints on CPU and Memory for more information)
                  cpusetCPUs in which to allow execution
                  memoryThe memory limit of the containers of the service in MB (see Runtime Constraints on CPU and Memory for more information)
                  memory_swapTotal memory limit (memory + swap) of the containers of the service in MB
                  linked_from_serviceA list of services that are linked to this one (see table Related services attributes below)
                  linked_to_serviceA list of services that the service is linked to (see table Related services attributes below)
                  bindingsA list of volume bindings that the service has mounted (see table Service binding attributes below)
                  autorestartWhether to restart the containers of the service automatically if they stop (see Crash recovery for more information)
                  autodestroyWhether to terminate the containers of the service automatically if they stop (see Autodestroy for more information)
                  rolesList of Docker Cloud roles assigned to this service (see Service links for more information)
                  link_variablesList of environment variables that would be exposed in the containers if they are linked to this service
                  privilegedWhether to start the containers with Docker’s privileged flag set or not, which allows containers to access all devices on the host among other things (see Runtime privilege for more information)
                  read_onlyWhether the filesystem of every service container is read-only or not (false by default)
                  deployment_strategyContainer distribution among nodes (see table Deployment strategies below and Deployment strategies for more information)
                  tagsList of tags to be used to deploy the service (see Tags for more information)
                  autoredeployWhether to redeploy the containers of the service when its image is updated in Docker Cloud registry (see Docker Cloud’s private registry for more information)
                  nicknameA user-friendly name for the service (name by default)
                  - -

                  Service binding attributes

                  - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  host_pathThe host path of the volume
                  container_pathThe container path where the volume is mounted
                  rewritabletrue is the volume has writable permissions
                  volumes_fromThe resource URI of the service
                  - -

                  Service Port attributes

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  protocolThe protocol of the port, either tcp or udp
                  inner_portThe published port number inside the container
                  outer_portThe published port number in the node public network interface
                  port_nameName of the service associated to this port
                  endpoint_uriThe URI of the service endpoint for this port
                  publishedWhether the port has been published in the host public network interface or not. Non-published ports can only be accessed via links.
                  - -

                  Service Environment Variable attributes

                  - - - - - - - - - - - - - - - -
                  AttributeDescription
                  keyThe name of the environment variable
                  valueThe value of the environment variable
                  - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  nameThe link name
                  from_serviceThe resource URI of the origin of the link
                  to_serviceThe resource URI of the target of the link
                  - -

                  Service states

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  StateDescription
                  Not runningThe service has been created and has no deployed containers yet. Possible actions in this state: start, terminate.
                  StartingAll containers for the service are either starting or already running. No actions allowed in this state.
                  RunningAll containers for the service are deployed and running. Possible actions in this state: stop, redeploy, terminate.
                  Partly runningOne or more containers of the service are deployed and running. Possible actions in this state: stop, redeploy, terminate.
                  ScalingThe service is either deploying new containers or destroying existing ones responding to a scaling request. No actions allowed in this state.
                  RedeployingThe service is redeploying all its containers with the updated configuration. No actions allowed in this state.
                  StoppingAll containers for the service are either stopping or already stopped. No actions allowed in this state.
                  StoppedAll containers for the service are stopped. Possible actions in this state: start, redeploy, terminate.
                  TerminatingAll containers for the service are either being terminated or already terminated. No actions allowed in this state.
                  TerminatedThe service and all its containers have been terminated. No actions allowed in this state.
                  - -

                  Deployment strategies

                  - - - - - - - - - - - - - - - - - - - -
                  StrategyDescription
                  EMPTIEST_NODEIt will deploy containers to the node with the lower total amount of running containers (default).
                  HIGH_AVAILABILITYIt will deploy containers to the node with the lower amount of running containers of the same service.
                  EVERY_NODEIt will deploy one container on every node. The service won’t be able to scale manually. New containers will be deployed to new nodes automatically.
                  - -

                  Network Modes

                  - - - - - - - - - - - - - - - -
                  StrategyDescription
                  bridgeCreates a new network stack for the container on the docker bridge.
                  hostUses the host network stack inside the container.
                  - -

                  List all services

                  -
                  import dockercloud
                  -
                  -services = dockercloud.Service.list()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -serviceList, err := dockercloud.ListServices()
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(serviceList)
                  -
                  -
                  GET /api/app/v1/service/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud service ps
                  -
                  - -

                  Lists all current and recently terminated services. Returns a list of Service objects.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/app/v1/[optional_namespace/]service/

                  - -

                  Query Parameters

                  - - - - - - - - - - - - - - - - - - - - - - - -
                  ParameterDescription
                  uuidFilter by UUID
                  stateFilter by state. Possible values: Not running, Starting, Running, Partly running, Scaling, Redeploying, Stopping, Stopped, Terminating, Terminated
                  nameFilter by service name
                  stackFilter by resource URI of the target stack.
                  - -

                  Create a new service

                  -
                  import dockercloud
                  -
                  -service = dockercloud.Service.create(image="tutum/hello-world", name="my-new-app", target_num_containers=2)
                  -service.save()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -service, err := dockercloud.CreateService(dockercloud.ServiceCreateRequest{Image: "tutum/hello-world",  Name: "my-new-app", Target_num_containers: 2})
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(service)
                  -
                  -
                  POST /api/app/v1/service/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -Content-Type: application/json
                  -
                  -{"image": "tutum/hello-world", "name": "my-new-app", "target_num_containers": 2}
                  -
                  -
                  docker-cloud service create -t 2 --name my-new-app tutum/hello-world
                  -
                  - -

                  Creates a new service without starting it.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/app/v1/[optional_namespace/]service/

                  - -

                  JSON Parameters

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  ParameterDescription
                  image(required) The image used to deploy this service in docker format, i.e. tutum/hello-world
                  name(optional) A human-readable name for the service, i.e. my-hello-world-app (default: image without namespace)
                  target_num_containers(optional) The number of containers to run for this service initially (default: 1)
                  run_command(optional) The command used to start the containers of this service, overriding the value specified in the image, i.e. /run.sh (default: null)
                  entrypoint(optional) The command prefix used to start the containers of this service, overriding the value specified in the image, i.e. /usr/sbin/sshd (default: null)
                  container_ports(optional) An array of objects with port information to be published in the containers for this service, which will be added to the image port information, i.e. [{"protocol": "tcp", "inner_port": 80, "outer_port": 80}] (default: []) (See table Service Port attributes below)
                  container_envvars(optional) An array of objects with environment variables to be added in the service containers on launch (overriding any image-defined environment variables), i.e. [{"key": "DB_PASSWORD", "value": "mypass"}] (default: []) (See table Service Environment Variable attributes below)
                  linked_to_service(optional) An array of service resource URIs to link this service to, including the link name, i.e. [{"to_service": "/api/app/v1/service/80ff1635-2d56-478d-a97f-9b59c720e513/", "name": "db"}] (default: []) (See table Related services attributes below)
                  bindings(optional) An array of bindings this service has to mount, i.e. [{"volumes_from": "/api/app/v1/service/80ff1635-2d56-478d-a97f-9b59c720e513/", "rewritable": true}] (default: []) (See table Related bindings attributes below)
                  autorestart(optional) Whether the containers for this service should be restarted if they stop, i.e. ALWAYS (default: OFF, possible values: OFF, ON_FAILURE, ALWAYS) (see Crash recovery for more information)
                  autodestroy(optional) Whether the containers should be terminated if they stop, i.e. OFF (default: OFF, possible values: OFF, ON_SUCCESS, ALWAYS) (see Autodestroy for more information)
                  sequential_deployment(optional) Whether the containers should be launched and scaled in sequence, i.e. true (default: false) (see Service scaling for more information)
                  roles(optional) A list of Docker Cloud API roles to grant the service, i.e. ["global"] (default: [], possible values: global) (see Service links for more information)
                  privileged(optional) Whether to start the containers with Docker’s privileged flag set or not, i.e. false (default: false) (see Runtime privilege for more information)
                  deployment_strategy(optional) Container distribution among nodes (default: EMPTIEST_NODE, see table Deployment strategies above and Deployment strategies for more information)
                  tags(optional) A list of tags to be used to deploy the service (see Tags for more information) (default: [])
                  autoredeploy(optional) Whether to redeploy the containers of the service when its image is updated in Docker Cloud registry (default: false) (see Docker Cloud’s private registry for more information)
                  net(optional) Set the network mode to the containers (default: bridge, possible values: bridge, host)
                  pid(optional) Set the PID (Process) Namespace mode for the containers (default: none value, possible values: none, host)
                  working_dir(optional) Working directory for running binaries within a container of this service (default: /)
                  nickname(optional) A user-friendly name for the service (name by default)
                  - - - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  host_path(optional) The host path of the volume
                  container_path(required if volumes_from is omitted) The container path where the volume is mounted
                  rewritable(optional) true is the volume has writable permissions (default: true)
                  volumes_from(required if container_path is omitted) The resource URI of the service
                  - -

                  Service Port attributes

                  - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  protocol(required) The protocol of the port, either tcp or udp
                  inner_port(required) The port number inside the container to be published
                  outer_port(optional) The port number in the node public network interface to be published (default: dynamic allocation if published is true)
                  published(optional) Whether to publish the port in the host public network interface or not. Non-published ports can only be accessed via links. (default: false)
                  - -

                  Service Environment Variable attributes

                  - - - - - - - - - - - - - - - -
                  AttributeDescription
                  key(required) The name of the environment variable
                  value(required) The value of the environment variable
                  - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  to_service(required) The resource URI of the target of the link
                  name(optional) The link name
                  - -

                  Get an existing service

                  -
                  import dockercloud
                  -
                  -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(service)
                  -
                  -
                  GET /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud service inspect 7eaf7fff
                  -
                  - -

                  Get all the details of an specific service

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/app/v1/[optional_namespace/]service/(uuid)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the service to retrieve
                  - -

                  Get the logs of a service

                  - -
                  -

                  Example log line

                  -
                  -
                  {
                  -    "type": "log",
                  -    "source": "wordpress-stackable-1",
                  -    "log": "Log line from the container indicated by 'source'",
                  -    "streamType": "stdout",
                  -    "timestamp": 1433779324
                  -}
                  -
                  -
                  import dockercloud
                  -
                  -def log_handler(message):
                  -    print message
                  -
                  -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -service.logs(tail=300, follow=True, log_handler=log_handler)
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -c := make(chan Logs)
                  -
                  -go service.Logs(c)
                  -    for {
                  -        s := <-c
                  -        log.Println(s)
                  -    }
                  -
                  -
                  GET /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/logs/ HTTP/1.1
                  -Host: ws.cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Connection: Upgrade
                  -Upgrade: websocket
                  -
                  -
                  docker-cloud service logs 7eaf7fff
                  -
                  - -

                  Get the aggregated logs of all the containers of the service.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s STREAM API

                  - -

                  HTTP Request

                  - -

                  GET /api/app/v1/[optional_namespace/]service/(uuid)/logs/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the service to retrieve logs
                  - -

                  Query Parameters

                  - - - - - - - - - - - - - - - -
                  ParameterDescription
                  tailNumber of lines to show from the end of the logs (default: 300)
                  followWhether to stream logs or close the connection immediately (default: true)
                  - -

                  Update an existing service

                  -
                  import dockercloud
                  -
                  -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -service.target_num_containers = 3
                  -service.tags.append({"name":"tag-1"})
                  -service.save()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -if err = service.Update(dockercloud.ServiceCreateRequest{Target_num_containers: 3}); err != nil {
                  -   log.Println(err)
                  -}
                  -
                  -
                  PATCH /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -Content-Type: application/json
                  -
                  -{"autorestart": "ON_FAILURE", "autodestroy": "OFF", "container_envvars": [{"key": "DB_PASSWORD", "value": "mypass"}],
                  -"container_ports": [{"protocol": "tcp", "inner_port": 80, "outer_port": 80}], "cpu_shares": 512,
                  -"entrypoint": "/usr/sbin/sshd", "image": "tutum/hello-world",
                  -"linked_to_service": [{"to_service": "/api/app/v1/service/80ff1635-2d56-478d-a97f-9b59c720e513/", "name": "db"}],
                  -"memory": 2048, "privileged": True, "roles": ["global"], "run_command": "/run.sh", "sequential_deployment": False,
                  -"tags": [{"name": "tag-1"}], "target_num_containers": 3, "autoredeploy": False}
                  -
                  -
                  -
                  docker-cloud service scale 7eaf7fff 3
                  -docker-cloud tag add -t tag-1 7eaf7fff
                  -docker-cloud tag set -t tag-2 7eaf7fff
                  -
                  - -

                  Updates the service details.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  PATCH /api/app/v1/[optional_namespace/]service/(uuid)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the service to update
                  - -

                  JSON Parameters

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  ParameterDescription
                  autorestart(optional) Whether the containers for this service should be restarted if they stop, i.e. ALWAYS (possible values: OFF, ON_FAILURE, ALWAYS) (see Crash recovery for more information)
                  autodestroy(optional) Whether the containers should be terminated if they stop, i.e. OFF (possible values: OFF, ON_SUCCESS, ALWAYS) (see Autodestroy for more information)
                  container_envvars(optional) An array of objects with environment variables to be added in the service containers on launch (overriding any image-defined environment variables), i.e. [{"key": "DB_PASSWORD", "value": "mypass"}] (See table Service Environment Variable attributes)
                  container_ports(optional) An array of objects with port information to be published in the containers for this service, which will be added to the image port information, i.e. [{"protocol": "tcp", "inner_port": 80, "outer_port": 80}] (See table Service Port attributes)
                  cpu_shares(optional) The relative CPU priority of the containers the service describes (see Runtime Constraints on CPU and Memory for more information)
                  entrypoint(optional) The command prefix used to start the containers of this service, overriding the value specified in the image, i.e. /usr/sbin/sshd
                  image(optional) The image used to deploy this service in docker format, i.e. tutum/hello-world, tutum/ubuntu:5.6. If no tag is indicated, it will be set to latest by default
                  linked_to_service(optional) An array of service resource URIs to link this service to, including the link name, i.e. [{"to_service": "/api/app/v1/service/80ff1635-2d56-478d-a97f-9b59c720e513/", "name": "db"}] (See table Related services attributes below)
                  memory(optional) The memory limit of the containers of the service in MB (see Runtime Constraints on CPU and Memory for more information)
                  privileged(optional) Whether to start the containers with Docker’s privileged flag set or not, i.e. false (see Runtime privilege for more information)
                  roles(optional) A list of Docker Cloud API roles to grant the service, i.e. ["global"] (possible values: global) (see Service links for more information)
                  run_command(optional) The command used to start the containers of this service, overriding the value specified in the image, i.e. /run.sh
                  sequential_deployment(optional) Whether the containers should be launched and scaled in sequence, i.e. true (see Service scaling for more information)
                  tags(optional) List of new tags the service will have. This operation replaces the tag list
                  target_num_containers(optional) The number of containers to scale this service to
                  deployment_strategy(optional) Container distribution among nodes. A service cannot be updated to or from a deployment strategy of EVERY_NODE. (See table Deployment strategies above and Deployment strategies for more information)
                  autoredeployWhether to redeploy the containers of the service when its image is updated in Docker Cloud registry (see Docker Cloud’s private registry for more information)
                  net(optional) Set the network mode to the containers (default: bridge, possible values: bridge, host)
                  pid(optional) Set the PID (Process) Namespace mode for the containers (default: none value, possible values: none, host)
                  working_dir(optional) Working directory for running binaries within a container of this service (default: /)
                  nickname(optional) A user-friendly name for the service (name by default)
                  - -

                  Start a service

                  -
                  import dockercloud
                  -
                  -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -service.start()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -if err = service.Start(); err != nil {
                  -   log.Println(err)
                  -}
                  -
                  -
                  POST /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/start/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud service start 7eaf7fff
                  -
                  - -

                  Starts all containers in a stopped or partly running service.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/app/v1/[optional_namespace/]service/(uuid)/start/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the service to start
                  - -

                  Stop a service

                  -
                  import dockercloud
                  -
                  -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -service.stop()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -if err = service.Stop(); err != nil {
                  -   log.Println(err)
                  -}
                  -
                  -
                  POST /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/stop/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud service stop 7eaf7fff
                  -
                  - -

                  Stops all containers in a running or partly running service.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/app/v1/[optional_namespace/]service/(uuid)/stop/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the service to stop
                  - -

                  Scale a service

                  -
                  import dockercloud
                  -
                  -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -service.target_num_containers = 3
                  -service.save()
                  -service.scale()
                  -
                  -
                  POST /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/scale/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud service scale 7eaf7fff-882c-4f3d-9a8f-a22317ac00ce 3
                  -
                  - -

                  Scales the service to its current target_num_containers field.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/app/v1/[optional_namespace/]service/(uuid)/scale/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the service to scale
                  - -

                  Redeploy a service

                  -
                  import dockercloud
                  -
                  -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -service.redeploy()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: true}) to reuse the existing volumes
                  -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}) to not reuse the existing volumes
                  -if err = service.Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}); err != nil {
                  -   log.Println(err)
                  -}
                  -
                  -
                  POST /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/redeploy/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud service redeploy 7eaf7fff
                  -
                  - -

                  Redeploys all containers in the service with the current service configuration.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/app/v1/[optional_namespace/]service/(uuid)/redeploy/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the service to redeploy
                  - -

                  Query Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  reuse_volumesWheather to reuse container volumes for this redeploy operation or not (default: true).
                  - -

                  Terminate a service

                  -
                  import dockercloud
                  -
                  -service = dockercloud.Service.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -service.delete()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -service, err := dockercloud.GetService("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -if err = service.Terminate(); err != nil {
                  -   log.Println(err)
                  -}
                  -
                  -
                  DELETE /api/app/v1/service/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud service terminate 7eaf7fff
                  -
                  - -

                  Terminate all the containers in a service and the service itself. This is not reversible. All the data stored in all containers of the service will be permanently deleted.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  DELETE /api/app/v1/[optional_namespace/]service/(uuid)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the service to terminate
                  - -

                  Containers

                  - -

                  Container

                  - -
                  -

                  Example

                  -
                  -
                  {
                  -    "autodestroy": "OFF",
                  -    "autorestart": "OFF",
                  -    "bindings": [
                  -        {
                  -            "volume": "/api/infra/v1/user_namespace/volume/1863e34d-6a7d-4945-aefc-8f27a4ab1a9e/",
                  -            "host_path": null,
                  -            "container_path": "/data",
                  -            "rewritable": true
                  -        },
                  -        {
                  -            "volume": null,
                  -            "host_path": "/etc",
                  -            "container_path": "/etc",
                  -            "rewritable": true
                  -        }
                  -    ],
                  -    "cap_add": [
                  -        "ALL"
                  -    ],
                  -    "cap_drop": [
                  -        "NET_ADMIN",
                  -        "SYS_ADMIN"
                  -    ],
                  -    "container_envvars": [
                  -        {
                  -            "key": "DB_1_ENV_DEBIAN_FRONTEND",
                  -            "value": "noninteractive"
                  -        },
                  -        {
                  -            "key": "DB_1_ENV_MYSQL_PASS",
                  -            "value": "**Random**"
                  -        },
                  -        {
                  -            "key": "DB_1_ENV_MYSQL_USER",
                  -            "value": "admin"
                  -        },
                  -        {
                  -            "key": "DB_1_ENV_PATH",
                  -            "value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
                  -        },
                  -        {
                  -            "key": "DB_1_ENV_REPLICATION_MASTER",
                  -            "value": "**False**"
                  -        },
                  -        {
                  -            "key": "DB_1_ENV_REPLICATION_PASS",
                  -            "value": "replica"
                  -        },
                  -        {
                  -            "key": "DB_1_ENV_REPLICATION_SLAVE",
                  -            "value": "**False**"
                  -        },
                  -        {
                  -            "key": "DB_1_ENV_REPLICATION_USER",
                  -            "value": "replica"
                  -        },
                  -        {
                  -            "key": "DB_1_PORT",
                  -            "value": "tcp://172.16.0.3:3306"
                  -        },
                  -        {
                  -            "key": "DB_1_PORT_3306_TCP",
                  -            "value": "tcp://172.16.0.3:3306"
                  -        },
                  -        {
                  -            "key": "DB_1_PORT_3306_TCP_ADDR",
                  -            "value": "172.16.0.3"
                  -        },
                  -        {
                  -            "key": "DB_1_PORT_3306_TCP_PORT",
                  -            "value": "3306"
                  -        },
                  -        {
                  -            "key": "DB_1_PORT_3306_TCP_PROTO",
                  -            "value": "tcp"
                  -        },
                  -        {
                  -            "key": "DB_ENV_DEBIAN_FRONTEND",
                  -            "value": "noninteractive"
                  -        },
                  -        {
                  -            "key": "DB_ENV_MYSQL_PASS",
                  -            "value": "**Random**"
                  -        },
                  -        {
                  -            "key": "DB_ENV_MYSQL_USER",
                  -            "value": "admin"
                  -        },
                  -        {
                  -            "key": "DB_ENV_PATH",
                  -            "value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
                  -        },
                  -        {
                  -            "key": "DB_ENV_REPLICATION_MASTER",
                  -            "value": "**False**"
                  -        },
                  -        {
                  -            "key": "DB_ENV_REPLICATION_PASS",
                  -            "value": "replica"
                  -        },
                  -        {
                  -            "key": "DB_ENV_REPLICATION_SLAVE",
                  -            "value": "**False**"
                  -        },
                  -        {
                  -            "key": "DB_ENV_REPLICATION_USER",
                  -            "value": "replica"
                  -        },
                  -        {
                  -            "key": "DB_PASS",
                  -            "value": "szVaPz925B7I"
                  -        },
                  -        {
                  -            "key": "DB_PORT",
                  -            "value": "tcp://172.16.0.3:3306"
                  -        },
                  -        {
                  -            "key": "DB_PORT_3306_TCP",
                  -            "value": "tcp://172.16.0.3:3306"
                  -        },
                  -        {
                  -            "key": "DB_PORT_3306_TCP_ADDR",
                  -            "value": "172.16.0.3"
                  -        },
                  -        {
                  -            "key": "DB_PORT_3306_TCP_PORT",
                  -            "value": "3306"
                  -        },
                  -        {
                  -            "key": "DB_PORT_3306_TCP_PROTO",
                  -            "value": "tcp"
                  -        },
                  -        {
                  -            "key": "DB_DOCKERCLOUD_API_URL",
                  -            "value": "https://cloud.docker.com/api/app/v1/user_namespace/service/c0fed1dc-c528-40c9-aa4c-dc00672ebcbf/"
                  -        }
                  -    ],
                  -    "container_ports": [
                  -        {
                  -            "endpoint_uri": "http://wordpress-stackable-1.admin.cont.dockerapp.io:49153/",
                  -            "inner_port": 80,
                  -            "outer_port": 49153,
                  -            "port_name": "http",
                  -            "protocol": "tcp",
                  -            "published": true,
                  -            "uri_protocol": "http"
                  -        }
                  -    ],
                  -    "cpu_shares": 100,
                  -    "cpuset": "0,1",
                  -    "cgroup_parent": "m-executor-abcd",
                  -    "deployed_datetime": "Thu, 16 Oct 2014 12:04:08 +0000",
                  -    "destroyed_datetime": null,
                  -    "devices": [
                  -        "/dev/ttyUSB0:/dev/ttyUSB0"
                  -    ],
                  -    "dns": [
                  -        "8.8.8.8"
                  -    ],
                  -    "dns_search": [
                  -        "example.com",
                  -        "c1dd4e1e-1356-411c-8613-e15146633640.local.dockerapp.io"
                  -    ],
                  -    "domainname": "domainname",
                  -    "entrypoint": "",
                  -    "exit_code": null,
                  -    "exit_code_msg": null,
                  -    "extra_hosts": [
                  -        "onehost:50.31.209.229"
                  -    ],
                  -    "hostname": "hostname",
                  -    "image_name": "tutum/wordpress-stackable:latest",
                  -    "labels": {
                  -        "com.example.description": "Accounting webapp",
                  -        "com.example.department": "Finance",
                  -        "com.example.label-with-empty-value": ""
                  -    },
                  -    "linked_to_container": [
                  -        {
                  -            "endpoints": {
                  -                "3306/tcp": "tcp://172.16.0.3:3306"
                  -            },
                  -            "from_container": "/api/app/v1/user_namespace/container/c1dd4e1e-1356-411c-8613-e15146633640/",
                  -            "name": "DB_1",
                  -            "to_container": "/api/app/v1/user_namespace/container/ba434e1e-1234-411c-8613-e15146633640/"
                  -        }
                  -    ],
                  -    "link_variables": {
                  -        "WORDPRESS_STACKABLE_1_ENV_DB_HOST": "**LinkMe**",
                  -        "WORDPRESS_STACKABLE_1_ENV_DB_NAME": "wordpress",
                  -        "WORDPRESS_STACKABLE_1_ENV_DB_PASS": "szVaPz925B7I",
                  -        "WORDPRESS_STACKABLE_1_ENV_DB_PORT": "**LinkMe**",
                  -        "WORDPRESS_STACKABLE_1_ENV_DB_USER": "admin",
                  -        "WORDPRESS_STACKABLE_1_ENV_DEBIAN_FRONTEND": "noninteractive",
                  -        "WORDPRESS_STACKABLE_1_ENV_HOME": "/",
                  -        "WORDPRESS_STACKABLE_1_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                  -        "WORDPRESS_STACKABLE_1_PORT": "tcp://172.16.0.2:80",
                  -        "WORDPRESS_STACKABLE_1_PORT_80_TCP": "tcp://172.16.0.2:80",
                  -        "WORDPRESS_STACKABLE_1_PORT_80_TCP_ADDR": "172.16.0.2",
                  -        "WORDPRESS_STACKABLE_1_PORT_80_TCP_PORT": "80",
                  -        "WORDPRESS_STACKABLE_1_PORT_80_TCP_PROTO": "tcp",
                  -        "WORDPRESS_STACKABLE_ENV_DB_HOST": "**LinkMe**",
                  -        "WORDPRESS_STACKABLE_ENV_DB_NAME": "wordpress",
                  -        "WORDPRESS_STACKABLE_ENV_DB_PASS": "szVaPz925B7I",
                  -        "WORDPRESS_STACKABLE_ENV_DB_PORT": "**LinkMe**",
                  -        "WORDPRESS_STACKABLE_ENV_DB_USER": "admin",
                  -        "WORDPRESS_STACKABLE_ENV_DEBIAN_FRONTEND": "noninteractive",
                  -        "WORDPRESS_STACKABLE_ENV_HOME": "/",
                  -        "WORDPRESS_STACKABLE_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                  -        "WORDPRESS_STACKABLE_PORT": "tcp://172.16.0.2:80",
                  -        "WORDPRESS_STACKABLE_PORT_80_TCP": "tcp://172.16.0.2:80",
                  -        "WORDPRESS_STACKABLE_PORT_80_TCP_ADDR": "172.16.0.2",
                  -        "WORDPRESS_STACKABLE_PORT_80_TCP_PORT": "80",
                  -        "WORDPRESS_STACKABLE_PORT_80_TCP_PROTO": "tcp"
                  -    },
                  -    "mac_address": "02:42:ac:11:65:43",
                  -    "memory": 1024,
                  -    "memory_swap": 4096,
                  -    "name": "wordpress-stackable",
                  -    "net": "bridge",
                  -    "node": "/api/infra/v1/user_namespace/node/9691c44e-3155-4ca2-958d-c9571aac0a14/",
                  -    "pid": "none",
                  -    "private_ip": "10.7.0.1",
                  -    "privileged": false,
                  -    "public_dns": "wordpress-stackable-1.admin.cont.dockerapp.io",
                  -    "read_only": true,
                  -    "resource_uri": "/api/app/v1/user_namespace/container/c1dd4e1e-1356-411c-8613-e15146633640/",
                  -    "roles": ["global"],
                  -    "run_command": "/run-wordpress.sh",
                  -    "security_opt": [
                  -        "label:user:USER",
                  -        "label:role:ROLE"
                  -    ],
                  -    "service": "/api/app/v1/user_namespace/service/adeebc1b-1b81-4af0-b8f2-cefffc69d7fb/",
                  -    "started_datetime": "Thu, 16 Oct 2014 12:04:08 +0000",
                  -    "state": "Running",
                  -    "stdin_open": false,
                  -    "stopped_datetime": null,
                  -    "synchronized": true,
                  -    "tty": false,
                  -    "user": "root",
                  -    "uuid": "c1dd4e1e-1356-411c-8613-e15146633640",
                  -    "working_dir": "/app"
                  -}
                  -
                  - -

                  A container is a representation of a Docker container in a node.

                  - -

                  This is a namespaced endpoint.

                  - -

                  Attributes

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  uuidA unique identifier for the container generated automatically on creation
                  resource_uriA unique API endpoint that represents the container
                  image_nameThe Docker image name and tag of the container
                  bindingsA list of volume bindings that the container has mounted (see table Container Binding attributes below)
                  nameA user provided name for the container (inherited from the service)
                  nodeThe resource URI of the node where this container is running
                  serviceThe resource URI of the service which this container is part of
                  public_dnsThe external FQDN of the container
                  stateThe state of the container (see table Container states below)
                  synchronizedFlag indicating if the container is synchronized with the current service definition.
                  exit_codeThe numeric exit code of the container (if applicable, null otherwise)
                  exit_code_msgA string representation of the exit code of the container (if applicable, null otherwise)
                  deployed_datetimeThe date and time of the last deployment of the container (if applicable, null otherwise)
                  started_datetimeThe date and time of the last start operation on the container (if applicable, null otherwise)
                  stopped_datetimeThe date and time of the last stop operation on the container (if applicable, null otherwise)
                  destroyed_datetimeThe date and time of the terminate operation on the container (if applicable, null otherwise)
                  container_portsList of published ports of this container (see table Container Port attributes below)
                  container_envvarsList of user-defined environment variables set on the containers of the service, which will override the container environment variables (see table Container Environment Variable attributes below)
                  labelsContainer metadata in form of dictionary
                  working_dirWorking directory for running binaries within a container
                  userUser used on the container on launch
                  hostnameHostname used on the container on launch
                  domainnameDomainname used on the container on launch
                  mac_addressEthernet device’s MAC address used on the container on launch
                  cgroup_nameOptional parent cgroup for the container.
                  ttyIf the container has the tty enable
                  stdin_openIf the container has stdin opened
                  dnsContainer custom DNS servers
                  dns_searchContainer custom DNS search domain
                  cap_addContainer added capabilities
                  cap_dropContainer dropped capabilities
                  devicesList of container device mappings
                  extra_hostsList of container hostname mappings
                  secuirty_optLabeling scheme of this container
                  entrypointEntrypoint used on the container on launch
                  run_commandRun command used on the container on launch
                  cpu_sharesThe relative CPU priority of the container (see Runtime Constraints on CPU and Memory for more information)
                  cpusetCPUs in which execution is allowed
                  memoryThe memory limit of the container in MB (see Runtime Constraints on CPU and Memory for more information)
                  memory_swapTotal memory limit (memory + swap) of the container in MB
                  autorestartWhether to restart the container automatically if it stops (see Crash recovery for more information)
                  autodestroyWhether to terminate the container automatically if it stops (see Autodestroy for more information)
                  rolesList of Docker Cloud roles assigned to this container (see API roles for more information))
                  linked_to_containerList of IP addresses of the linked containers (see table Container Link attributes below and Service links for more information)
                  link_variablesList of environment variables that would be exposed in any container that is linked to this one
                  privilegedWhether the container has Docker’s privileged flag set or not (see Runtime privilege for more information)
                  read_onlyWhether the container filesystem is read-only or not
                  private_ipIP address of the container on the overlay network. This IP will be reachable from any other container.
                  netNetwork mode set on the container (see table Network Modes below, more information)
                  pidPID (Process) Namespace mode for the container (more information)
                  - -

                  Container Binding attributes

                  - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  host_pathThe host path of the volume
                  container_pathThe container path where the volume is mounted
                  rewritabletrue is the volume has writable permissions
                  volumeThe resource URI of the volume
                  - -

                  Container Port attributes

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  protocolThe protocol of the port, either tcp or udp
                  inner_portThe published port number inside the container
                  outer_portThe published port number in the node public network interface
                  port_nameName of the service associated to this port
                  uri_protocolThe protocol to be used in the endpoint for this port (i.e. http)
                  endpoint_uriThe URI of the endpoint for this port
                  publishedWhether the port has been published in the host public network interface or not. Non-published ports can only be accessed via links.
                  - -

                  Container Environment Variable attributes

                  - - - - - - - - - - - - - - - -
                  AttributeDescription
                  keyThe name of the environment variable
                  valueThe value of the environment variable
                  - -

                  Container States

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  StateDescription
                  StartingThe container is being deployed or started (from Stopped). No actions allowed in this state.
                  RunningThe container is deployed and running. Possible actions in this state: stop, terminate.
                  StoppingThe container is being stopped. No actions allowed in this state.
                  StoppedThe container is stopped. Possible actions in this state: start, terminate.
                  TerminatingThe container is being deleted. No actions allowed in this state.
                  TerminatedThe container has been deleted. No actions allowed in this state.
                  - -

                  Network Modes

                  - - - - - - - - - - - - - - - -
                  StrategyDescription
                  bridgeCreates a new network stack for the container on the docker bridge.
                  hostUses the host network stack inside the container.
                  - - - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  nameThe name given to the link
                  from_containerThe resource URI of the “client” container
                  to_containerThe resource URI of the “server” container being linked
                  endpointsA dictionary with the endpoints (protocol, IP and port) to be used to reach each of the “server” container exposed ports
                  - -

                  List all containers

                  -
                  import dockercloud
                  -
                  -containers = dockercloud.Container.list()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -containerList, err := dockercloud.ListContainers()
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(containerList)
                  -
                  -
                  GET /api/app/v1/container/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud container ps
                  -
                  - -

                  Lists all current and recently terminated containers. Returns a list of Container objects.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/app/v1/[optional_namespace/]container/

                  - -

                  Query Parameters

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  ParameterDescription
                  uuidFilter by UUID
                  stateFilter by state. Possible values: Starting, Running, Stopping, Stopped, Terminating, Terminated
                  nameFilter by container name
                  serviceFilter by resource URI of the target service.
                  nodeFilter by resource URI of the target node.
                  - -

                  Get an existing container

                  -
                  import dockercloud
                  -
                  -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -container, err := dockerckoud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(container)
                  -
                  -
                  GET /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud container inspect 7eaf7fff
                  -
                  - -

                  Get all the details of an specific container

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/app/v1/[optional_namespace/]container/(uuid)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the container to retrieve
                  - -

                  Get the logs of a container

                  - -
                  -

                  Example log line

                  -
                  -
                  {
                  -    "type": "log",
                  -    "log": "Log line from the container",
                  -    "streamType": "stdout",
                  -    "timestamp": 1433779324
                  -}
                  -
                  -
                  import dockercloud
                  -
                  -def log_handler(message):
                  -    print message
                  -
                  -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -container.logs(tail=300, follow=True, log_handler=log_handler)
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -container, err := dockercloud.GetContainer("447ecddc-2890-4ea2-849b-99392e0dd7a6")
                  -
                  -if err != nil {
                  -    log.Fatal(err)
                  -}
                  -c := make(chan dockercloud.Logs)
                  -
                  -go container.Logs(c)
                  -    for {
                  -        s := <-c
                  -        log.Println(s)
                  -    }
                  -
                  -
                  GET /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/logs/ HTTP/1.1
                  -Host: ws.cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Connection: Upgrade
                  -Upgrade: websocket
                  -
                  -
                  docker-cloud container logs 7eaf7fff
                  -
                  - -

                  Get the logs of the specified container.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s STREAM API

                  - -

                  HTTP Request

                  - -

                  GET /api/app/v1/[optional_namespace/]container/(uuid)/logs/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the container to retrieve logs
                  - -

                  Query Parameters

                  - - - - - - - - - - - - - - - - - - - -
                  ParameterDescription
                  tailNumber of lines to show from the end of the logs (default: 300)
                  followWhether to stream logs or close the connection immediately (default: true)
                  serviceFilter by service (resource URI)
                  - -

                  Start a container

                  -
                  import dockercloud
                  -
                  -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -container.start()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -    log.Println(err)
                  -}
                  -
                  -if err = container.Start(); err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -
                  POST /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/start/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud container start 7eaf7fff
                  -
                  - -

                  Starts a stopped container.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/app/v1/[optional_namespace/]container/(uuid)/start/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the container to start
                  - -

                  Stop a container

                  -
                  import dockercloud
                  -
                  -container = dockerlcoud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -container.stop()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -    log.Println(err)
                  -}
                  -
                  -if err = container.Stop(); err != nil {
                  -       log.Println(err)
                  -   }
                  -
                  -
                  POST /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/stop/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud container stop 7eaf7fff
                  -
                  - -

                  Stops a running container.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/app/v1/[optional_namespace/]container/(uuid)/stop/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the container to stop
                  - -

                  Redeploy a container

                  -
                  import dockercloud
                  -
                  -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -container.redeploy()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -    log.Println(err)
                  -}
                  -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: true) to reuse the existing volumes
                  -//Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}) to not reuse the existing volumes
                  -if err = container.Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}); err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -
                  POST /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/start/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud container redeploy 7eaf7fff
                  -
                  - -

                  Redeploys a container.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/app/v1/[optional_namespace/]container/(uuid)/redeploy/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the container to redeploy
                  - -

                  Query Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  reuse_volumesWheather to reuse container volumes for this redeploy operation or not (default: true).
                  - -

                  Terminate a container

                  -
                  import dockercloud
                  -
                  -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -container.delete()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -    log.Println(err)
                  -}
                  -
                  -if err = container.Terminate(); err != nil {
                  -       log.Println(err)
                  -   }
                  -
                  -
                  DELETE /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud container terminate 7eaf7fff
                  -
                  - -

                  Terminates the specified container. This is not reversible. All data stored in the container will be permanently deleted.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  DELETE /api/app/v1/[optional_namespace/]container/(uuid)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the container to terminate
                  - -

                  Execute command inside a container

                  -
                  import dockercloud
                  -
                  -def msg_handler(message):
                  -    print message
                  -
                  -container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -container.execute("ls", handler=msg_handler)
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -c := make(chan dockercloud.Exec)
                  -
                  -container.Exec("ls", c)
                  -
                  -
                  -
                  GET /api/app/v1/container/(uuid)/exec/ HTTP/1.1
                  -Host: ws.cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Connection: Upgrade
                  -Upgrade: websocket
                  -
                  -
                  docker-cloud exec 7eaf7fff ls
                  -
                  - -

                  Executes a command inside the specified running container, creating a bi-directional stream for the process’ standard input and output. This endpoint can be connected to using a bi-directional Secure Web Socket wss://ws.cloud.docker.com/api/app/v1/container/(uuid)/exec/

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s STREAM API

                  - -

                  HTTP Request

                  - -

                  GET /api/app/v1/[optional_namespace/]container/(uuid)/exec/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the container where the command will be executed
                  - -

                  Query Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  commandCommand to be executed (default: sh)
                  - -

                  Triggers

                  - -

                  Service triggers

                  - -
                  -

                  Example

                  -
                  -
                  {
                  -  "url": "/api/app/v1/user_namespace/service/82d4a246-52d8-468d-903d-9da9ef05ff28/trigger/0224815a-c156-44e4-92d7-997c69354438/call/",
                  -  "operation": "REDEPLOY",
                  -  "name": "docker_trigger",
                  -  "resource_uri": "/api/app/v1/user_namespace/service/82d4a246-52d8-468d-903d-9da9ef05ff28/trigger/0224815a-c156-44e4-92d7-997c69354438/"
                  -}
                  -
                  - -

                  Triggers are URLs that will start a redeploy of the service whenever a POST request is sent to them. They require no authorization headers, so they should be treated as access tokens. Triggers can be revoked if they are leaked or no longer used for security purposes. See Triggers for more information.

                  - -

                  This is a namespaced endpoint.

                  - -

                  Attributes

                  - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  urlAddress to be used to call the trigger with a POST request
                  nameA user provided name for the trigger
                  operationThe operation that the trigger call performs (see table Operations below)
                  resource_uriA unique API endpoint that represents the trigger
                  - -

                  Operations

                  - - - - - - - - - - - - - - - -
                  OperationDescription
                  REDEPLOYPerforms a redeploy service operation.
                  SCALEUPPerforms a scale up service operation.
                  - -

                  List all triggers

                  -
                  import dockercloud
                  -
                  -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826')
                  -trigger = dockercloud.Trigger.fetch(service)
                  -trigger.list()
                  -
                  -
                  GET /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826")
                  -
                  -    if err != nil {
                  -        log.Println(err)
                  -    }
                  -
                  -trigger, err := service.ListTriggers()
                  -
                  -  if err != nil {
                  -    log.Println(err)
                  -  }
                  -
                  -    log.Println(trigger)
                  -
                  -
                  docker-cloud trigger list 61a29874-9134-48f9-b460-f37d4bec4826
                  -
                  - -

                  Lists all current triggers the service has associated to. Returns a list of Service Trigger objects.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/app/v1/[optional_namespace/]service/(uuid)/trigger/

                  - -

                  Path Parameters

                  - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the service the triggers are associated to
                  - -

                  Create a new trigger

                  -
                  import dockercloud
                  -
                  -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826')
                  -trigger = dockercloud.Trigger.fetch(service)
                  -trigger.add(name="mytrigger_name", operation="REDEPLOY")
                  -trigger.save()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -trigger, err := service.CreateTrigger(dockercloud.TriggerCreateRequest{Name: "test-trigger", Operation: "REDEPLOY"})
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(trigger)
                  -
                  -
                  POST /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -Content-Type: application/json
                  -
                  -{"name": "mytrigger_name", "operation": "REDEPLOY"}
                  -
                  -
                  docker-cloud trigger create --name mytrigger_name --operation REDEPLOY 61a29874-9134-48f9-b460-f37d4bec4826
                  -
                  - -

                  Creates a new service trigger.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/app/v1/[optional_namespace/]service/(uuid)/trigger/

                  - -

                  JSON Parameters

                  - - - - - - - - - - - - - - - -
                  ParameterDescription
                  name(optional) A user provided name for the trigger
                  operation(optional) The operation to be performed by the trigger (default: “REDEPLOY”)
                  - -

                  Get an existing trigger

                  -
                  import dockercloud
                  -
                  -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826')
                  -trigger = dockercloud.Trigger.fetch(service)
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -trigger, err := service.GetTrigger("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -log.Println(trigger)
                  -
                  -
                  GET /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  - -

                  Get all the details of an specific trigger

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  GET /api/app/v1/[optional_namespace/]service/(uuid)/trigger/(trigger_uuid)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the service the triggers are associated to
                  trigger_uuidThe UUID of the trigger to retrieve
                  - -

                  Delete a trigger

                  -
                  import dockercloud
                  -
                  -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826')
                  -trigger = dockercloud.Trigger.fetch(service)
                  -trigger.delete("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -service.DeleteTrigger("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -
                  DELETE /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Accept: application/json
                  -
                  -
                  docker-cloud trigger rm 61a29874-9134-48f9-b460-f37d4bec4826 7eaf7fff-882c-4f3d-9a8f-a22317ac00ce
                  -
                  - -

                  Deletes specific trigger. It will be no longer available to be called.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  DELETE /api/app/v1/[optional_namespace/]service/(uuid)/trigger/(trigger_uuid)/

                  - -

                  Path Parameters

                  - - - - - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the associated service
                  trigger_uuidThe UUID of the trigger to delete
                  - -

                  Call a trigger

                  -
                  import dockercloud
                  -
                  -service = dockercloud.Service.fetch('61a29874-9134-48f9-b460-f37d4bec4826')
                  -trigger = dockercloud.Trigger.fetch(service)
                  -trigger.call("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -service, err := dockercloud.GetService("61a29874-9134-48f9-b460-f37d4bec4826")
                  -
                  -if err != nil {
                  -  log.Println(err)
                  -}
                  -
                  -service.CallTrigger("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
                  -
                  -
                  POST /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/call/ HTTP/1.1
                  -Host: cloud.docker.com
                  -Accept: application/json
                  -
                  - -

                  Executes the trigger. For SCALEUP triggers, the number of containers to scale up can be passed at the end of the trigger call url, for example /api/app/v1/service/61a29874-9134-48f9-b460-f37d4bec4826/trigger/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/call/3/.

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s REST API

                  - -

                  HTTP Request

                  - -

                  POST /api/app/v1/[optional_namespace/]service/(uuid)/trigger/(trigger_uuid)/call/

                  - -

                  Path Parameters

                  - - - - - - - - - - - - - - - -
                  ParameterDescription
                  uuidThe UUID of the associated service
                  trigger_uuidThe UUID of the trigger to call
                  - -

                  Docker Cloud Events

                  - -

                  Docker Cloud Event

                  - -
                  -

                  Example

                  -
                  -
                  {
                  -    "type": "action",
                  -    "action": "update",
                  -    "parents": [
                  -        "/api/app/v1/user_namespace/container/0b0e3538-88df-4f07-9aed-3a3cc4175076/"
                  -    ],
                  -    "resource_uri": "/api/app/v1/user_namespace/action/49f0efe8-a704-4a10-b02f-f96344fabadd/",
                  -    "state": "Success",
                  -    "uuid": "093ba3bb-08dd-48f0-8f12-4d3b85ef85b3",
                  -    "datetime": "2016-02-01T16:47:28Z"
                  -}
                  -
                  - -

                  Docker Cloud events are generated every time any of the following objects is created or changes state:

                  - -
                    -
                  • Stack
                  • -
                  • Service
                  • -
                  • Container
                  • -
                  • Node Cluster
                  • -
                  • Node
                  • -
                  • Action
                  • -
                  - -

                  This is a namespaced endpoint.

                  - -

                  Attributes

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  AttributeDescription
                  typeType of object that was created or updated. For possible values, check the events types table below.
                  actionType of action that was executed on the object. Possible values: create, update or delete
                  parentsList of resource URIs (REST API) of the parents of the object, according to the “Parent-child hierarchy” table below
                  resource_uriResource URI (REST API) of the object that was created or updated. You can do a GET operation on this URL to fetch its details
                  stateThe current state of the object
                  uuidUnique identifier for the event
                  datetimeDate and time of the event in ISO 8601 format
                  - -

                  Event types

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  TypeDescription
                  stackWhenever a Stack is created or updated
                  serviceWhenever a Service is created or updated
                  containerWhenever a Container is created or updated
                  nodeclusterWhenever a Node Cluster is created or updated
                  nodeWhenever a Node is created or updated
                  actionWhenever a Action is created or updated
                  errorSent when an error occurs on the websocket connection or as part of the authentication process
                  - -

                  Parent-child hierarchy

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  Object typeParent types
                  Stack(None)
                  ServiceStack
                  ContainerService, Stack, Node, Node Cluster
                  Node Cluster(None)
                  NodeNode Cluster
                  Action(object to which the action applies to)
                  - -

                  Listen to new Docker Cloud Events

                  -
                  import dockercloud
                  -
                  -def process_event(event):
                  -    print event
                  -
                  -events = dockercloud.Events()
                  -events.on_message(process_event)
                  -events.run_forever()
                  -
                  -
                  import "github.com/docker/go-dockercloud/dockercloud"
                  -
                  -// Listens for container events only
                  -myFilter := dockercloud.NewStreamFilter(&dockercloud.EventFilter{Type: "container"})
                  -
                  -stream := dockercloud.NewStream(myFilter)
                  -
                  -if err := stream.Connect(); err == nil {
                  -    go stream.RunForever()
                  -} else {
                  -    log.Print("Connect err: " + err.Error())
                  -}
                  -
                  -for {
                  -    select {
                  -    case event := <-stream.MessageChan:
                  -        log.Println(event)
                  -    case err := <-stream.ErrorChan:
                  -        log.Println(err)
                  -    }
                  -}
                  -
                  -
                  GET /api/audit/v1/events/ HTTP/1.1
                  -Host: ws.cloud.docker.com
                  -Authorization: Basic dXNlcm5hbWU6YXBpa2V5
                  -Connection: Upgrade
                  -Upgrade: websocket
                  -
                  -
                  docker-cloud event
                  -
                  - -

                  Listens for new Docker Cloud Events

                  - -

                  Endpoint Type

                  - -

                  Available in Docker Cloud’s STREAM API

                  - -

                  HTTP Request

                  - -

                  GET /api/audit/v1/[optional_namespace/]events/

                  - -

                  Query Parameters

                  - - - - - - - - - - - - - - - - - - - -
                  ParameterDescription
                  typeFilter by type
                  objectFilter by object resource URI
                  parentFilter by object parents
                  - -

                  Errors

                  - -
                  -

                  API response structure

                  -
                  -
                  {
                  -    "error": "Descriptive error message"
                  -}
                  -
                  - -

                  The Docker Cloud API uses the following error codes:

                  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  Error CodeMeaning
                  400Bad Request – There’s a problem in the content of your request. Retrying the same request will fail.
                  401Unauthorized – Your API key is wrong or your account has been deactivated.
                  402Payment Required – You need to provide billing information to perform this request.
                  403Forbidden – Quota limit exceeded. Please contact support to request a quota increase.
                  404Not Found – The requested object cannot be found.
                  405Method Not Allowed – The endpoint requested does not implement the method sent.
                  409Conflict – The object cannot be created or updated because another object exists with the same unique fields
                  415Unsupported Media Type – Make sure you are using Accept and Content-Type headers as application/json and that the data your are POST-ing or PATCH-ing is in valid JSON format.
                  429Too Many Requests – You are being throttled because of too many requests in a short period of time.
                  500Internal Server Error – There was a server error while processing your request. Try again later, or contact support.
                  503Service Unavailable – We’re temporarily offline for maintenance. Please try again later.
                  504Gateway Timeout – Our API servers are at full capacity. Please try again later.
                  - -
                  -
                  -
                  - http - go - python - CLI -
                  -
                  -
                  - - diff --git a/apidocs/overview.md b/apidocs/overview.md deleted file mode 100644 index 5875e338fb..0000000000 --- a/apidocs/overview.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -description: Learn how to use DTR APIs. -keywords: docker, registry, DTR, APIs -title: API overview ---- - -Docker Trusted Registry has an experimental API that you can use to manage -DTR repositories, permissions, and settings. - -> This API is still experimental and can change without backwards compatibility. - -To get access to interactive documentation, in your **DTR UI**, click -on the **top-right menu** and choose **API docs**. - -![API docs page, DTR UI](dtr-api-overview.png) diff --git a/apidocs/v1.3.3/css/print.css b/apidocs/v1.3.3/css/print.css deleted file mode 100644 index 708d271316..0000000000 --- a/apidocs/v1.3.3/css/print.css +++ /dev/null @@ -1,1174 +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/apidocs/v1.3.3/css/reset.css b/apidocs/v1.3.3/css/reset.css deleted file mode 100644 index 456215a8d2..0000000000 --- a/apidocs/v1.3.3/css/reset.css +++ /dev/null @@ -1,127 +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/apidocs/v1.3.3/css/screen.css b/apidocs/v1.3.3/css/screen.css deleted file mode 100644 index 05bc2cb876..0000000000 --- a/apidocs/v1.3.3/css/screen.css +++ /dev/null @@ -1,1281 +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/apidocs/v1.3.3/css/style.css b/apidocs/v1.3.3/css/style.css deleted file mode 100644 index 166ff408eb..0000000000 --- a/apidocs/v1.3.3/css/style.css +++ /dev/null @@ -1,252 +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/apidocs/v1.3.3/css/typography.css b/apidocs/v1.3.3/css/typography.css deleted file mode 100644 index 52004247d6..0000000000 --- a/apidocs/v1.3.3/css/typography.css +++ /dev/null @@ -1,28 +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/apidocs/v1.3.3/custom/custom.css b/apidocs/v1.3.3/custom/custom.css deleted file mode 100644 index 1c3fd6546a..0000000000 --- a/apidocs/v1.3.3/custom/custom.css +++ /dev/null @@ -1,17 +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/apidocs/v1.3.3/fonts/droid-sans-v6-latin-700.eot b/apidocs/v1.3.3/fonts/droid-sans-v6-latin-700.eot deleted file mode 100644 index d8524983ad..0000000000 Binary files a/apidocs/v1.3.3/fonts/droid-sans-v6-latin-700.eot and /dev/null differ diff --git a/apidocs/v1.3.3/fonts/droid-sans-v6-latin-700.svg b/apidocs/v1.3.3/fonts/droid-sans-v6-latin-700.svg deleted file mode 100644 index a54bbbbf25..0000000000 --- a/apidocs/v1.3.3/fonts/droid-sans-v6-latin-700.svg +++ /dev/null @@ -1,411 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/apidocs/v1.3.3/fonts/droid-sans-v6-latin-700.ttf b/apidocs/v1.3.3/fonts/droid-sans-v6-latin-700.ttf deleted file mode 100644 index 15896c441f..0000000000 Binary files a/apidocs/v1.3.3/fonts/droid-sans-v6-latin-700.ttf and /dev/null differ diff --git a/apidocs/v1.3.3/fonts/droid-sans-v6-latin-700.woff b/apidocs/v1.3.3/fonts/droid-sans-v6-latin-700.woff deleted file mode 100644 index 67e3e25f83..0000000000 Binary files a/apidocs/v1.3.3/fonts/droid-sans-v6-latin-700.woff and /dev/null differ diff --git a/apidocs/v1.3.3/fonts/droid-sans-v6-latin-700.woff2 b/apidocs/v1.3.3/fonts/droid-sans-v6-latin-700.woff2 deleted file mode 100644 index 1e726a7cfc..0000000000 Binary files a/apidocs/v1.3.3/fonts/droid-sans-v6-latin-700.woff2 and /dev/null differ diff --git a/apidocs/v1.3.3/fonts/droid-sans-v6-latin-regular.eot b/apidocs/v1.3.3/fonts/droid-sans-v6-latin-regular.eot deleted file mode 100644 index ac2698e85a..0000000000 Binary files a/apidocs/v1.3.3/fonts/droid-sans-v6-latin-regular.eot and /dev/null differ diff --git a/apidocs/v1.3.3/fonts/droid-sans-v6-latin-regular.svg b/apidocs/v1.3.3/fonts/droid-sans-v6-latin-regular.svg deleted file mode 100644 index d9f2a214f9..0000000000 --- a/apidocs/v1.3.3/fonts/droid-sans-v6-latin-regular.svg +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/apidocs/v1.3.3/fonts/droid-sans-v6-latin-regular.ttf b/apidocs/v1.3.3/fonts/droid-sans-v6-latin-regular.ttf deleted file mode 100644 index fb8cea662b..0000000000 Binary files a/apidocs/v1.3.3/fonts/droid-sans-v6-latin-regular.ttf and /dev/null differ diff --git a/apidocs/v1.3.3/fonts/droid-sans-v6-latin-regular.woff b/apidocs/v1.3.3/fonts/droid-sans-v6-latin-regular.woff deleted file mode 100644 index abf19899f7..0000000000 Binary files a/apidocs/v1.3.3/fonts/droid-sans-v6-latin-regular.woff and /dev/null differ diff --git a/apidocs/v1.3.3/fonts/droid-sans-v6-latin-regular.woff2 b/apidocs/v1.3.3/fonts/droid-sans-v6-latin-regular.woff2 deleted file mode 100644 index 9f93f74c3b..0000000000 Binary files a/apidocs/v1.3.3/fonts/droid-sans-v6-latin-regular.woff2 and /dev/null differ diff --git a/apidocs/v1.3.3/images/explorer_icons.png b/apidocs/v1.3.3/images/explorer_icons.png deleted file mode 100644 index be43b27394..0000000000 Binary files a/apidocs/v1.3.3/images/explorer_icons.png and /dev/null differ diff --git a/apidocs/v1.3.3/images/favicon-16x16.png b/apidocs/v1.3.3/images/favicon-16x16.png deleted file mode 100644 index 120eb0700e..0000000000 Binary files a/apidocs/v1.3.3/images/favicon-16x16.png and /dev/null differ diff --git a/apidocs/v1.3.3/images/favicon-32x32.png b/apidocs/v1.3.3/images/favicon-32x32.png deleted file mode 100644 index b0a3352ffd..0000000000 Binary files a/apidocs/v1.3.3/images/favicon-32x32.png and /dev/null differ diff --git a/apidocs/v1.3.3/images/favicon.ico b/apidocs/v1.3.3/images/favicon.ico deleted file mode 100644 index 8b60bcf06a..0000000000 Binary files a/apidocs/v1.3.3/images/favicon.ico and /dev/null differ diff --git a/apidocs/v1.3.3/images/logo_small.png b/apidocs/v1.3.3/images/logo_small.png deleted file mode 100644 index 2625a77d48..0000000000 Binary files a/apidocs/v1.3.3/images/logo_small.png and /dev/null differ diff --git a/apidocs/v1.3.3/images/pet_store_api.png b/apidocs/v1.3.3/images/pet_store_api.png deleted file mode 100644 index 1192ad8cd6..0000000000 Binary files a/apidocs/v1.3.3/images/pet_store_api.png and /dev/null differ diff --git a/apidocs/v1.3.3/images/throbber.gif b/apidocs/v1.3.3/images/throbber.gif deleted file mode 100644 index 0639388924..0000000000 Binary files a/apidocs/v1.3.3/images/throbber.gif and /dev/null differ diff --git a/apidocs/v1.3.3/images/wordnik_api.png b/apidocs/v1.3.3/images/wordnik_api.png deleted file mode 100644 index dc0ddab138..0000000000 Binary files a/apidocs/v1.3.3/images/wordnik_api.png and /dev/null differ diff --git a/apidocs/v1.3.3/index.html b/apidocs/v1.3.3/index.html deleted file mode 100644 index 4caddb8c9d..0000000000 --- a/apidocs/v1.3.3/index.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - Docker Trusted Registry API Documentation - - - - - - - - - - - - - - - - - - - - - - - -
                  - - - diff --git a/apidocs/v1.3.3/index.md b/apidocs/v1.3.3/index.md deleted file mode 100644 index 60668298ea..0000000000 --- a/apidocs/v1.3.3/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: v1.3.3 API -description: v1.3.3 API -keywords: Docker, DTR, API, v1.3.3 ---- - -
                  -
                  - - - - - - - - - - - - - - - - - - - - -
                  diff --git a/apidocs/v1.3.3/lang/en.js b/apidocs/v1.3.3/lang/en.js deleted file mode 100644 index 72427df316..0000000000 --- a/apidocs/v1.3.3/lang/en.js +++ /dev/null @@ -1,55 +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/apidocs/v1.3.3/lang/es.js b/apidocs/v1.3.3/lang/es.js deleted file mode 100644 index d3e024ed27..0000000000 --- a/apidocs/v1.3.3/lang/es.js +++ /dev/null @@ -1,54 +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/apidocs/v1.3.3/lang/pt.js b/apidocs/v1.3.3/lang/pt.js deleted file mode 100644 index ecceb8b765..0000000000 --- a/apidocs/v1.3.3/lang/pt.js +++ /dev/null @@ -1,55 +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/apidocs/v1.3.3/lang/ru.js b/apidocs/v1.3.3/lang/ru.js deleted file mode 100644 index 453a030448..0000000000 --- a/apidocs/v1.3.3/lang/ru.js +++ /dev/null @@ -1,54 +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/apidocs/v1.3.3/lang/tr.js b/apidocs/v1.3.3/lang/tr.js deleted file mode 100644 index ea14bccb74..0000000000 --- a/apidocs/v1.3.3/lang/tr.js +++ /dev/null @@ -1,55 +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/apidocs/v1.3.3/lang/translator.js b/apidocs/v1.3.3/lang/translator.js deleted file mode 100644 index 77fde610fc..0000000000 --- a/apidocs/v1.3.3/lang/translator.js +++ /dev/null @@ -1,41 +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/apidocs/v1.3.3/lib/backbone-min.js b/apidocs/v1.3.3/lib/backbone-min.js deleted file mode 100644 index df88c0da92..0000000000 --- a/apidocs/v1.3.3/lib/backbone-min.js +++ /dev/null @@ -1,17 +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.$('