Improve tags in swagger.yaml

- Consistent naming (plural, etc)
- Add section descriptions
- Add docs in swagger.yaml about how to maintain them

Signed-off-by: Ben Firshman <ben@firshman.co.uk>
(cherry picked from commit 2aea9ad56b)
Signed-off-by: Victor Vieux <victorvieux@gmail.com>
This commit is contained in:
Ben Firshman 2016-11-25 11:32:13 +00:00 committed by Victor Vieux
parent 0e1721f09f
commit 76f4793290

View file

@ -87,6 +87,48 @@ info:
}
```
# The tags on paths define the menu sections in the ReDoc documentation, so
# the usage of tags must make sense for that:
# - They should be plural, not singular.
# - There should not be too many tags, or the menu becomes unwieldly. For
# example, it is preferable to add a path to the "System" tag instead of
# creating a tag with a single path in it.
# - The order of tags in this list defines the order in the menu.
tags:
# Primary objects
- name: "Containers"
description: |
Create and manage containers.
- name: "Images"
- name: "Networks"
description: |
Networks are user-defined networks that containers can be attached to. See the [networking documentation](https://docs.docker.com/engine/userguide/networking/) for more information.
- name: "Volumes"
description: |
Create and manage persistent storage that can be attached to containers.
- name: "Exec"
description: |
Run new commands inside running containers. See the [command-line reference](https://docs.docker.com/engine/reference/commandline/exec/) for more information.
To exec a command in a container, you first need to create an exec instance, then start it. These two API endpoints are wrapped up in a single command-line command, `docker exec`.
- name: "Secrets"
# Swarm things
- name: "Swarm"
description: |
Engines can be clustered together in a swarm. See [the swarm mode documentation](https://docs.docker.com/engine/swarm/) for more information.
- name: "Nodes"
description: |
Nodes are instances of the Engine participating in a swarm. Swarm mode must be enabled for these endpoints to work.
- name: "Services"
description: |
Services are the definitions of tasks to run on a swarm. Swarm mode must be enabled for these endpoints to work.
- name: "Tasks"
description: |
A task is a container running on a swarm. It is the atomic scheduling unit of swarm. Swarm mode must be enabled for these endpoints to work.
# System things
- name: "Plugins"
- name: "System"
definitions:
Port:
type: "object"
@ -2576,8 +2618,7 @@ paths:
description: "server error"
schema:
$ref: "#/definitions/ErrorResponse"
tags:
- "Container"
tags: ["Containers"]
/containers/create:
post:
summary: "Create a container"
@ -2776,8 +2817,7 @@ paths:
description: "server error"
schema:
$ref: "#/definitions/ErrorResponse"
tags:
- "Container"
tags: ["Containers"]
/containers/{id}/json:
get:
summary: "Inspect a container"
@ -3053,8 +3093,7 @@ paths:
type: "boolean"
default: false
description: "Return the size of container as fields `SizeRw` and `SizeRootFs`"
tags:
- "Container"
tags: ["Containers"]
/containers/{id}/top:
get:
summary: "List processes running inside a container"
@ -3130,8 +3169,7 @@ paths:
description: "The arguments to pass to `ps`. For example, `aux`"
type: "string"
default: "-ef"
tags:
- "Container"
tags: ["Containers"]
/containers/{id}/logs:
get:
summary: "Get container logs"
@ -3200,8 +3238,7 @@ paths:
description: "Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines."
type: "string"
default: "all"
tags:
- "Container"
tags: ["Containers"]
/containers/{id}/changes:
get:
summary: "Get changes on a containers filesystem"
@ -3257,8 +3294,7 @@ paths:
required: true
description: "ID or name of the container"
type: "string"
tags:
- "Container"
tags: ["Containers"]
/containers/{id}/export:
get:
summary: "Export a container"
@ -3286,8 +3322,7 @@ paths:
required: true
description: "ID or name of the container"
type: "string"
tags:
- "Container"
tags: ["Containers"]
/containers/{id}/stats:
get:
summary: "Get container stats based on resource usage"
@ -3415,8 +3450,7 @@ paths:
description: "Stream the output. If false, the stats will be output once and then it will disconnect."
type: "boolean"
default: true
tags:
- "Container"
tags: ["Containers"]
/containers/{id}/resize:
post:
summary: "Resize a container TTY"
@ -3454,8 +3488,7 @@ paths:
in: "query"
description: "Width of the tty session in characters"
type: "integer"
tags:
- "Container"
tags: ["Containers"]
/containers/{id}/start:
post:
summary: "Start a container"
@ -3488,8 +3521,7 @@ paths:
in: "query"
description: "Override the key sequence for detaching a container. Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`."
type: "string"
tags:
- "Container"
tags: ["Containers"]
/containers/{id}/stop:
post:
summary: "Stop a container"
@ -3522,8 +3554,7 @@ paths:
in: "query"
description: "Number of seconds to wait before killing the container"
type: "integer"
tags:
- "Container"
tags: ["Containers"]
/containers/{id}/restart:
post:
summary: "Restart a container"
@ -3552,8 +3583,7 @@ paths:
in: "query"
description: "Number of seconds to wait before killing the container"
type: "integer"
tags:
- "Container"
tags: ["Containers"]
/containers/{id}/kill:
post:
summary: "Kill a container"
@ -3584,8 +3614,7 @@ paths:
description: "Signal to send to the container as an integer or string (e.g. `SIGINT`)"
type: "string"
default: "SIGKILL"
tags:
- "Container"
tags: ["Containers"]
/containers/{id}/update:
post:
summary: "Update a container"
@ -3646,8 +3675,7 @@ paths:
RestartPolicy:
MaximumRetryCount: 4
Name: "on-failure"
tags:
- "Container"
tags: ["Containers"]
/containers/{id}/rename:
post:
summary: "Rename a container"
@ -3681,8 +3709,7 @@ paths:
required: true
description: "New name for the container"
type: "string"
tags:
- "Container"
tags: ["Containers"]
/containers/{id}/pause:
post:
summary: "Pause a container"
@ -3711,8 +3738,7 @@ paths:
required: true
description: "ID or name of the container"
type: "string"
tags:
- "Container"
tags: ["Containers"]
/containers/{id}/unpause:
post:
summary: "Unpause a container"
@ -3738,8 +3764,7 @@ paths:
required: true
description: "ID or name of the container"
type: "string"
tags:
- "Container"
tags: ["Containers"]
/containers/{id}/attach:
post:
summary: "Attach to a container"
@ -3883,8 +3908,7 @@ paths:
description: "Attach to `stderr`"
type: "boolean"
default: false
tags:
- "Container"
tags: ["Containers"]
/containers/{id}/attach/ws:
get:
summary: "Attach to a container via a websocket"
@ -3944,8 +3968,7 @@ paths:
description: "Attach to `stderr`"
type: "boolean"
default: false
tags:
- "Container"
tags: ["Containers"]
/containers/{id}/wait:
post:
summary: "Wait for a container"
@ -3980,8 +4003,7 @@ paths:
required: true
description: "ID or name of the container"
type: "string"
tags:
- "Container"
tags: ["Containers"]
/containers/{id}:
delete:
summary: "Remove a container"
@ -4020,8 +4042,7 @@ paths:
description: "If the container is running, kill it before removing it."
type: "boolean"
default: false
tags:
- "Container"
tags: ["Containers"]
/containers/{id}/archive:
head:
summary: "Get information about files in a container"
@ -4067,8 +4088,7 @@ paths:
required: true
description: "Resource in the containers filesystem to archive."
type: "string"
tags:
- "Container"
tags: ["Containers"]
get:
summary: "Get an archive of a filesystem resource in a container"
description: "Get an tar archive of a resource in the filesystem of container id."
@ -4111,8 +4131,7 @@ paths:
required: true
description: "Resource in the containers filesystem to archive."
type: "string"
tags:
- "Container"
tags: ["Containers"]
put:
summary: "Extract an archive of files or folders to a directory in a container"
description: "Upload a tar archive to be extracted to a path in the filesystem of container id."
@ -4163,8 +4182,7 @@ paths:
description: "The input stream must be a tar archive compressed with one of the following algorithms: identity (no compression), gzip, bzip2, xz."
schema:
type: "string"
tags:
- "Container"
tags: ["Containers"]
/containers/prune:
post:
summary: "Delete stopped containers"
@ -4192,8 +4210,7 @@ paths:
description: "Server error"
schema:
$ref: "#/definitions/ErrorResponse"
tags:
- "Container"
tags: ["Containers"]
/images/json:
get:
summary: "List Images"
@ -4264,8 +4281,7 @@ paths:
description: "Show digest information as a `RepoDigests` field on each image."
type: "boolean"
default: false
tags:
- "Image"
tags: ["Images"]
/build:
post:
summary: "Build an image"
@ -4412,8 +4428,7 @@ paths:
description: "server error"
schema:
$ref: "#/definitions/ErrorResponse"
tags:
- "Image"
tags: ["Images"]
/images/create:
post:
summary: "Create an image"
@ -4458,8 +4473,7 @@ paths:
in: "header"
description: "A base64-encoded auth configuration. [See the authentication section for details.](#section/Authentication)"
type: "string"
tags:
- "Image"
tags: ["Images"]
/images/{name}/json:
get:
summary: "Inspect an image"
@ -4565,8 +4579,7 @@ paths:
description: "Image name or id"
type: "string"
required: true
tags:
- "Image"
tags: ["Images"]
/images/{name}/history:
get:
summary: "Get the history of an image"
@ -4636,8 +4649,7 @@ paths:
description: "Image name or ID"
type: "string"
required: true
tags:
- "Image"
tags: ["Images"]
/images/{name}/push:
post:
summary: "Push an image"
@ -4676,8 +4688,7 @@ paths:
description: "A base64-encoded auth configuration. [See the authentication section for details.](#section/Authentication)"
type: "string"
required: true
tags:
- "Image"
tags: ["Images"]
/images/{name}/tag:
post:
summary: "Tag an image"
@ -4716,8 +4727,7 @@ paths:
in: "query"
description: "The name of the new tag."
type: "string"
tags:
- "Image"
tags: ["Images"]
/images/{name}:
delete:
summary: "Remove an image"
@ -4768,8 +4778,7 @@ paths:
description: "Do not delete untagged parent images"
type: "boolean"
default: false
tags:
- "Image"
tags: ["Images"]
/images/search:
get:
summary: "Search images"
@ -4835,8 +4844,7 @@ paths:
- `is-automated=(true|false)`
- `is-official=(true|false)`
type: "string"
tags:
- "Image"
tags: ["Images"]
/images/prune:
post:
summary: "Delete unused images"
@ -4874,8 +4882,7 @@ paths:
description: "Server error"
schema:
$ref: "#/definitions/ErrorResponse"
tags:
- "Image"
tags: ["Images"]
/auth:
post:
summary: "Check auth configuration"
@ -4914,7 +4921,7 @@ paths:
description: "Authentication to check"
schema:
$ref: "#/definitions/AuthConfig"
tags: ["Registry"]
tags: ["System"]
/info:
get:
summary: "Get system information"
@ -5126,8 +5133,7 @@ paths:
description: "Server error"
schema:
$ref: "#/definitions/ErrorResponse"
tags:
- "Misc"
tags: ["System"]
/version:
get:
summary: "Get version"
@ -5177,8 +5183,7 @@ paths:
description: "server error"
schema:
$ref: "#/definitions/ErrorResponse"
tags:
- "Misc"
tags: ["System"]
/_ping:
get:
summary: "Ping"
@ -5196,8 +5201,7 @@ paths:
description: "server error"
schema:
$ref: "#/definitions/ErrorResponse"
tags:
- "Misc"
tags: ["System"]
/commit:
post:
summary: "Create a new image from a container"
@ -5257,8 +5261,7 @@ paths:
in: "query"
description: "`Dockerfile` instructions to apply while committing"
type: "string"
tags:
- "Image"
tags: ["Images"]
/events:
get:
summary: "Monitor events"
@ -5348,8 +5351,7 @@ paths:
- `network=<string>` network name or ID
- `daemon=<string>` daemon name or ID
type: "string"
tags:
- "Misc"
tags: ["System"]
/system/df:
get:
summary: "Get data usage information"
@ -5437,8 +5439,7 @@ paths:
description: "server error"
schema:
$ref: "#/definitions/ErrorResponse"
tags:
- "Misc"
tags: ["System"]
/images/{name}/get:
get:
summary: "Export an image"
@ -5485,8 +5486,7 @@ paths:
description: "Image name or ID"
type: "string"
required: true
tags:
- "Image"
tags: ["Images"]
/images/get:
get:
summary: "Export several images"
@ -5516,8 +5516,7 @@ paths:
type: "array"
items:
type: "string"
tags:
- "Image"
tags: ["Images"]
/images/load:
post:
summary: "Import images"
@ -5549,8 +5548,7 @@ paths:
description: "Suppress progress details during load."
type: "boolean"
default: false
tags:
- "Image"
tags: ["Images"]
/containers/{id}/exec:
post:
summary: "Create an exec instance"
@ -5636,8 +5634,7 @@ paths:
description: "ID or name of container"
type: "string"
required: true
tags:
- "Exec"
tags: ["Exec"]
/exec/{id}/start:
post:
summary: "Start an exec instance"
@ -5678,8 +5675,7 @@ paths:
description: "Exec instance ID"
required: true
type: "string"
tags:
- "Exec"
tags: ["Exec"]
/exec/{id}/resize:
post:
summary: "Resize an exec instance"
@ -5706,8 +5702,7 @@ paths:
in: "query"
description: "Width of the TTY session in characters"
type: "integer"
tags:
- "Exec"
tags: ["Exec"]
/exec/{id}/json:
get:
summary: "Inspect an exec instance"
@ -5774,8 +5769,7 @@ paths:
description: "Exec instance ID"
required: true
type: "string"
tags:
- "Exec"
tags: ["Exec"]
/volumes:
get:
@ -5837,7 +5831,7 @@ paths:
driver name.
type: "string"
format: "json"
tags: ["Volume"]
tags: ["Volumes"]
/volumes/create:
post:
@ -5887,7 +5881,7 @@ paths:
com.example.some-label: "some-value"
com.example.some-other-label: "some-other-value"
Driver: "custom"
tags: ["Volume"]
tags: ["Volumes"]
/volumes/{name}:
get:
@ -5913,7 +5907,7 @@ paths:
required: true
description: "Volume name or ID"
type: "string"
tags: ["Volume"]
tags: ["Volumes"]
delete:
summary: "Remove a volume"
@ -5945,7 +5939,7 @@ paths:
description: "Force the removal of the volume"
type: "boolean"
default: false
tags: ["Volume"]
tags: ["Volumes"]
/volumes/prune:
post:
summary: "Delete unused volumes"
@ -5973,8 +5967,7 @@ paths:
description: "Server error"
schema:
$ref: "#/definitions/ErrorResponse"
tags:
- "Volume"
tags: ["Volumes"]
/networks:
get:
summary: "List networks"
@ -6055,7 +6048,7 @@ paths:
- `name=<network-name>` Matches all or part of a network name.
- `type=["custom"|"builtin"]` Filters networks by type. The `custom` keyword returns all user-defined networks.
type: "string"
tags: ["Network"]
tags: ["Networks"]
/networks/{id}:
get:
@ -6078,7 +6071,7 @@ paths:
description: "Network ID or name"
required: true
type: "string"
tags: ["Network"]
tags: ["Networks"]
delete:
summary: "Remove a network"
@ -6100,7 +6093,7 @@ paths:
description: "Network ID or name"
required: true
type: "string"
tags: ["Network"]
tags: ["Networks"]
/networks/create:
post:
@ -6196,7 +6189,7 @@ paths:
Labels:
com.example.some-label: "some-value"
com.example.some-other-label: "some-other-value"
tags: ["Network"]
tags: ["Networks"]
/networks/{id}/connect:
post:
@ -6242,7 +6235,7 @@ paths:
IPAMConfig:
IPv4Address: "172.24.56.89"
IPv6Address: "2001:db8::5689"
tags: ["Network"]
tags: ["Networks"]
/networks/{id}/disconnect:
post:
@ -6283,7 +6276,7 @@ paths:
Force:
type: "boolean"
description: "Force the container to disconnect from the network."
tags: ["Network"]
tags: ["Networks"]
/networks/prune:
post:
summary: "Delete unused networks"
@ -6307,8 +6300,7 @@ paths:
description: "Server error"
schema:
$ref: "#/definitions/ErrorResponse"
tags:
- "Network"
tags: ["Networks"]
/plugins:
get:
summary: "List plugins"
@ -6458,8 +6450,7 @@ paths:
in: "header"
description: "A base64-encoded auth configuration to use when pulling a plugin from a registry. [See the authentication section for details.](#section/Authentication)"
type: "string"
tags:
- "Plugins"
tags: ["Plugins"]
/plugins/{name}:
get:
summary: "Inspect a plugin"
@ -6483,8 +6474,7 @@ paths:
description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
required: true
type: "string"
tags:
- "Plugins"
tags: ["Plugins"]
delete:
summary: "Remove a plugin"
operationId: "DeletePlugins"
@ -6512,8 +6502,7 @@ paths:
description: "Disable the plugin before removing. This may result in issues if the plugin is in use by a container."
type: "boolean"
default: false
tags:
- "Plugins"
tags: ["Plugins"]
/plugins/{name}/enable:
post:
summary: "Enable a plugin"
@ -6536,8 +6525,7 @@ paths:
description: "Set the HTTP client timeout (in seconds)"
type: "integer"
default: 0
tags:
- "Plugins"
tags: ["Plugins"]
/plugins/{name}/disable:
post:
summary: "Disable a plugin"
@ -6555,8 +6543,7 @@ paths:
description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
required: true
type: "string"
tags:
- "Plugins"
tags: ["Plugins"]
/plugins/create:
post:
summary: "Create a plugin"
@ -6582,8 +6569,7 @@ paths:
schema:
type: "string"
format: "binary"
tags:
- "Plugins"
tags: ["Plugins"]
/plugins/{name}/push:
post:
summary: "Push a plugin"
@ -6607,8 +6593,7 @@ paths:
description: "server error"
schema:
$ref: "#/definitions/ErrorResponse"
tags:
- "Plugins"
tags: ["Plugins"]
/plugins/{name}/set:
post:
summary: "Configure a plugin"
@ -6639,8 +6624,7 @@ paths:
description: "Server error"
schema:
$ref: "#/definitions/ErrorResponse"
tags:
- "Plugins"
tags: ["Plugins"]
/nodes:
get:
summary: "List nodes"
@ -6669,8 +6653,7 @@ paths:
- `name=<node name>`
- `role=`(`manager`|`worker`)`
type: "string"
tags:
- "Nodes"
tags: ["Nodes"]
/nodes/{id}:
get:
summary: "Inspect a node"
@ -6694,8 +6677,7 @@ paths:
description: "The ID or name of the node"
type: "string"
required: true
tags:
- "Nodes"
tags: ["Nodes"]
delete:
summary: "Delete a node"
operationId: "DeleteNodes"
@ -6721,8 +6703,7 @@ paths:
description: "Force remove a node from the swarm"
default: false
type: "boolean"
tags:
- "Nodes"
tags: ["Nodes"]
/nodes/{id}/update:
post:
summary: "Update a node"
@ -6754,8 +6735,7 @@ paths:
type: "integer"
format: "int64"
required: true
tags:
- "Nodes"
tags: ["Nodes"]
/swarm:
get:
summary: "Inspect swarm"
@ -6807,8 +6787,7 @@ paths:
description: "server error"
schema:
$ref: "#/definitions/ErrorResponse"
tags:
- "Swarm"
tags: ["Swarm"]
/swarm/init:
post:
summary: "Initialize a new swarm"
@ -6864,8 +6843,7 @@ paths:
CAConfig: {}
EncryptionConfig:
AutoLockManagers: false
tags:
- "Swarm"
tags: ["Swarm"]
/swarm/join:
post:
summary: "Join an existing swarm"
@ -6910,8 +6888,7 @@ paths:
RemoteAddrs:
- "node1:2377"
JoinToken: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2"
tags:
- "Swarm"
tags: ["Swarm"]
/swarm/leave:
post:
summary: "Leave a swarm"
@ -6933,8 +6910,7 @@ paths:
in: "query"
type: "boolean"
default: false
tags:
- "Swarm"
tags: ["Swarm"]
/swarm/update:
post:
summary: "Update a swarm"
@ -6981,8 +6957,7 @@ paths:
description: "Rotate the manager unlock key."
type: "boolean"
default: false
tags:
- "Swarm"
tags: ["Swarm"]
/swarm/unlockkey:
get:
summary: "Get the unlock key"
@ -7004,8 +6979,7 @@ paths:
description: "server error"
schema:
$ref: "#/definitions/ErrorResponse"
tags:
- "Swarm"
tags: ["Swarm"]
/swarm/unlock:
post:
summary: "Unlock a locked manager"
@ -7033,8 +7007,7 @@ paths:
description: "server error"
schema:
$ref: "#/definitions/ErrorResponse"
tags:
- "Swarm"
tags: ["Swarm"]
/services:
get:
summary: "List services"
@ -7060,8 +7033,7 @@ paths:
- `id=<service id>`
- `name=<service name>`
- `label=<service label>`
tags:
- "Services"
tags: ["Services"]
/services/create:
post:
summary: "Create a service"
@ -7158,8 +7130,7 @@ paths:
in: "header"
description: "A base64-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)"
type: "string"
tags:
- "Services"
tags: ["Services"]
/services/{id}:
get:
summary: "Inspect a service"
@ -7183,8 +7154,7 @@ paths:
description: "ID or name of service."
required: true
type: "string"
tags:
- "Services"
tags: ["Services"]
delete:
summary: "Delete a service"
operationId: "DeleteServices"
@ -7205,8 +7175,7 @@ paths:
description: "ID or name of service."
required: true
type: "string"
tags:
- "Services"
tags: ["Services"]
/services/{id}/update:
post:
summary: "Update a service"
@ -7358,8 +7327,7 @@ paths:
description: "Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines."
type: "string"
default: "all"
tags:
- "Services"
tags: ["Services"]
/tasks:
get:
summary: "List tasks"
@ -7502,8 +7470,7 @@ paths:
- `node=<node id or name>`
- `label=key` or `label="key=value"`
- `desired-state=(running | shutdown | accepted)`
tags:
- "Tasks"
tags: ["Tasks"]
/tasks/{id}:
get:
summary: "Inspect a task"
@ -7529,8 +7496,7 @@ paths:
description: "ID of the task"
required: true
type: "string"
tags:
- "Tasks"
tags: ["Tasks"]
/secrets:
get:
summary: "List secrets"
@ -7564,8 +7530,7 @@ paths:
A JSON encoded value of the filters (a `map[string][]string`) to process on the secrets list. Available filters:
- `names=<secret name>`
tags:
- "Secrets"
tags: ["Secrets"]
/secrets/create:
post:
summary: "Create a secret"
@ -7609,8 +7574,7 @@ paths:
Labels:
foo: "bar"
Data: "VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg=="
tags:
- "Secrets"
tags: ["Secrets"]
/secrets/{id}:
get:
summary: "Inspect a secret"
@ -7648,8 +7612,7 @@ paths:
required: true
type: "string"
description: "ID of the secret"
tags:
- "Secrets"
tags: ["Secrets"]
delete:
summary: "Delete a secret"
operationId: "SecretsDelete"
@ -7672,5 +7635,4 @@ paths:
required: true
type: "string"
description: "ID of the secret"
tags:
- "Secrets"
tags: ["Secrets"]