1# A Swagger 2.0 (a.k.a. OpenAPI) definition of the Engine API.
2#
3# This is used for generating API documentation and the types used by the
4# client/server. See api/README.md for more information.
5#
6# Some style notes:
7# - This file is used by ReDoc, which allows GitHub Flavored Markdown in
8#   descriptions.
9# - There is no maximum line length, for ease of editing and pretty diffs.
10# - operationIds are in the format "NounVerb", with a singular noun.
11
12swagger: "2.0"
13schemes:
14  - "http"
15  - "https"
16produces:
17  - "application/json"
18  - "text/plain"
19consumes:
20  - "application/json"
21  - "text/plain"
22basePath: "/v1.32"
23info:
24  title: "Docker Engine API"
25  version: "1.32"
26  x-logo:
27    url: "https://docs.docker.com/images/logo-docker-main.png"
28  description: |
29    The Engine API is an HTTP API served by Docker Engine. It is the API the Docker client uses to communicate with the Engine, so everything the Docker client can do can be done with the API.
30
31    Most of the client's commands map directly to API endpoints (e.g. `docker ps` is `GET /containers/json`). The notable exception is running containers, which consists of several API calls.
32
33    # Errors
34
35    The API uses standard HTTP status codes to indicate the success or failure of the API call. The body of the response will be JSON in the following format:
36
37    ```
38    {
39      "message": "page not found"
40    }
41    ```
42
43    # Versioning
44
45    The API is usually changed in each release of Docker, so API calls are versioned to ensure that clients don't break.
46
47    For Docker Engine 17.07, the API version is 1.31. To lock to this version, you prefix the URL with `/v1.31`. For example, calling `/info` is the same as calling `/v1.31/info`.
48
49    Engine releases in the near future should support this version of the API, so your client will continue to work even if it is talking to a newer Engine.
50
51    In previous versions of Docker, it was possible to access the API without providing a version. This behaviour is now deprecated will be removed in a future version of Docker.
52
53    The API uses an open schema model, which means server may add extra properties to responses. Likewise, the server will ignore any extra query parameters and request body properties. When you write clients, you need to ignore additional properties in responses to ensure they do not break when talking to newer Docker daemons.
54
55    This documentation is for version 1.32 of the API. Use this table to find documentation for previous versions of the API:
56
57    Docker version  | API version | Changes
58    ----------------|-------------|---------
59    17.07.x | [1.31](https://docs.docker.com/engine/api/v1.31/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-31-api-changes)
60    17.06.x | [1.30](https://docs.docker.com/engine/api/v1.30/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-30-api-changes)
61    17.05.x | [1.29](https://docs.docker.com/engine/api/v1.29/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-29-api-changes)
62    17.04.x | [1.28](https://docs.docker.com/engine/api/v1.28/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-28-api-changes)
63    17.03.1 | [1.27](https://docs.docker.com/engine/api/v1.27/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-27-api-changes)
64    1.13.1 & 17.03.0 | [1.26](https://docs.docker.com/engine/api/v1.26/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-26-api-changes)
65    1.13.0 | [1.25](https://docs.docker.com/engine/api/v1.25/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-25-api-changes)
66    1.12.x | [1.24](https://docs.docker.com/engine/api/v1.24/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-24-api-changes)
67    1.11.x | [1.23](https://docs.docker.com/engine/api/v1.23/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-23-api-changes)
68    1.10.x | [1.22](https://docs.docker.com/engine/api/v1.22/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-22-api-changes)
69    1.9.x | [1.21](https://docs.docker.com/engine/api/v1.21/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-21-api-changes)
70    1.8.x | [1.20](https://docs.docker.com/engine/api/v1.20/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-20-api-changes)
71    1.7.x | [1.19](https://docs.docker.com/engine/api/v1.19/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-19-api-changes)
72    1.6.x | [1.18](https://docs.docker.com/engine/api/v1.18/) | [API changes](https://docs.docker.com/engine/api/version-history/#v1-18-api-changes)
73
74    # Authentication
75
76    Authentication for registries is handled client side. The client has to send authentication details to various endpoints that need to communicate with registries, such as `POST /images/(name)/push`. These are sent as `X-Registry-Auth` header as a Base64 encoded (JSON) string with the following structure:
77
78    ```
79    {
80      "username": "string",
81      "password": "string",
82      "email": "string",
83      "serveraddress": "string"
84    }
85    ```
86
87    The `serveraddress` is a domain/IP without a protocol. Throughout this structure, double quotes are required.
88
89    If you have already got an identity token from the [`/auth` endpoint](#operation/SystemAuth), you can just pass this instead of credentials:
90
91    ```
92    {
93      "identitytoken": "9cbaf023786cd7..."
94    }
95    ```
96
97# The tags on paths define the menu sections in the ReDoc documentation, so
98# the usage of tags must make sense for that:
99# - They should be singular, not plural.
100# - There should not be too many tags, or the menu becomes unwieldy. For
101#   example, it is preferable to add a path to the "System" tag instead of
102#   creating a tag with a single path in it.
103# - The order of tags in this list defines the order in the menu.
104tags:
105  # Primary objects
106  - name: "Container"
107    x-displayName: "Containers"
108    description: |
109      Create and manage containers.
110  - name: "Image"
111    x-displayName: "Images"
112  - name: "Network"
113    x-displayName: "Networks"
114    description: |
115      Networks are user-defined networks that containers can be attached to. See the [networking documentation](https://docs.docker.com/network/) for more information.
116  - name: "Volume"
117    x-displayName: "Volumes"
118    description: |
119      Create and manage persistent storage that can be attached to containers.
120  - name: "Exec"
121    x-displayName: "Exec"
122    description: |
123      Run new commands inside running containers. See the [command-line reference](https://docs.docker.com/engine/reference/commandline/exec/) for more information.
124
125      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`.
126  # Swarm things
127  - name: "Swarm"
128    x-displayName: "Swarm"
129    description: |
130      Engines can be clustered together in a swarm. See [the swarm mode documentation](https://docs.docker.com/engine/swarm/) for more information.
131  - name: "Node"
132    x-displayName: "Nodes"
133    description: |
134      Nodes are instances of the Engine participating in a swarm. Swarm mode must be enabled for these endpoints to work.
135  - name: "Service"
136    x-displayName: "Services"
137    description: |
138      Services are the definitions of tasks to run on a swarm. Swarm mode must be enabled for these endpoints to work.
139  - name: "Task"
140    x-displayName: "Tasks"
141    description: |
142      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.
143  - name: "Secret"
144    x-displayName: "Secrets"
145    description: |
146      Secrets are sensitive data that can be used by services. Swarm mode must be enabled for these endpoints to work.
147  # System things
148  - name: "Plugin"
149    x-displayName: "Plugins"
150  - name: "System"
151    x-displayName: "System"
152
153definitions:
154  Port:
155    type: "object"
156    description: "An open port on a container"
157    required: [PrivatePort, Type]
158    properties:
159      IP:
160        type: "string"
161        format: "ip-address"
162      PrivatePort:
163        type: "integer"
164        format: "uint16"
165        x-nullable: false
166        description: "Port on the container"
167      PublicPort:
168        type: "integer"
169        format: "uint16"
170        description: "Port exposed on the host"
171      Type:
172        type: "string"
173        x-nullable: false
174        enum: ["tcp", "udp"]
175    example:
176      PrivatePort: 8080
177      PublicPort: 80
178      Type: "tcp"
179
180  MountPoint:
181    type: "object"
182    description: "A mount point inside a container"
183    properties:
184      Type:
185        type: "string"
186      Name:
187        type: "string"
188      Source:
189        type: "string"
190      Destination:
191        type: "string"
192      Driver:
193        type: "string"
194      Mode:
195        type: "string"
196      RW:
197        type: "boolean"
198      Propagation:
199        type: "string"
200
201  DeviceMapping:
202    type: "object"
203    description: "A device mapping between the host and container"
204    properties:
205      PathOnHost:
206        type: "string"
207      PathInContainer:
208        type: "string"
209      CgroupPermissions:
210        type: "string"
211    example:
212      PathOnHost: "/dev/deviceName"
213      PathInContainer: "/dev/deviceName"
214      CgroupPermissions: "mrw"
215
216  ThrottleDevice:
217    type: "object"
218    properties:
219      Path:
220        description: "Device path"
221        type: "string"
222      Rate:
223        description: "Rate"
224        type: "integer"
225        format: "int64"
226        minimum: 0
227
228  Mount:
229    type: "object"
230    properties:
231      Target:
232        description: "Container path."
233        type: "string"
234      Source:
235        description: "Mount source (e.g. a volume name, a host path)."
236        type: "string"
237      Type:
238        description: |
239          The mount type. Available types:
240
241          - `bind` Mounts a file or directory from the host into the container. Must exist prior to creating the container.
242          - `volume` Creates a volume with the given name and options (or uses a pre-existing volume with the same name and options). These are **not** removed when the container is removed.
243          - `tmpfs` Create a tmpfs with the given options. The mount source cannot be specified for tmpfs.
244        type: "string"
245        enum:
246          - "bind"
247          - "volume"
248          - "tmpfs"
249      ReadOnly:
250        description: "Whether the mount should be read-only."
251        type: "boolean"
252      Consistency:
253        description: "The consistency requirement for the mount: `default`, `consistent`, `cached`, or `delegated`."
254        type: "string"
255      BindOptions:
256        description: "Optional configuration for the `bind` type."
257        type: "object"
258        properties:
259          Propagation:
260            description: "A propagation mode with the value `[r]private`, `[r]shared`, or `[r]slave`."
261            enum:
262              - "private"
263              - "rprivate"
264              - "shared"
265              - "rshared"
266              - "slave"
267              - "rslave"
268      VolumeOptions:
269        description: "Optional configuration for the `volume` type."
270        type: "object"
271        properties:
272          NoCopy:
273            description: "Populate volume with data from the target."
274            type: "boolean"
275            default: false
276          Labels:
277            description: "User-defined key/value metadata."
278            type: "object"
279            additionalProperties:
280              type: "string"
281          DriverConfig:
282            description: "Map of driver specific options"
283            type: "object"
284            properties:
285              Name:
286                description: "Name of the driver to use to create the volume."
287                type: "string"
288              Options:
289                description: "key/value map of driver specific options."
290                type: "object"
291                additionalProperties:
292                  type: "string"
293      TmpfsOptions:
294        description: "Optional configuration for the `tmpfs` type."
295        type: "object"
296        properties:
297          SizeBytes:
298            description: "The size for the tmpfs mount in bytes."
299            type: "integer"
300            format: "int64"
301          Mode:
302            description: "The permission mode for the tmpfs mount in an integer."
303            type: "integer"
304
305  RestartPolicy:
306    description: |
307      The behavior to apply when the container exits. The default is not to restart.
308
309      An ever increasing delay (double the previous delay, starting at 100ms) is added before each restart to prevent flooding the server.
310    type: "object"
311    properties:
312      Name:
313        type: "string"
314        description: |
315          - Empty string means not to restart
316          - `always` Always restart
317          - `unless-stopped` Restart always except when the user has manually stopped the container
318          - `on-failure` Restart only when the container exit code is non-zero
319        enum:
320          - ""
321          - "always"
322          - "unless-stopped"
323          - "on-failure"
324      MaximumRetryCount:
325        type: "integer"
326        description: "If `on-failure` is used, the number of times to retry before giving up"
327
328  Resources:
329    description: "A container's resources (cgroups config, ulimits, etc)"
330    type: "object"
331    properties:
332      # Applicable to all platforms
333      CpuShares:
334        description: "An integer value representing this container's relative CPU weight versus other containers."
335        type: "integer"
336      Memory:
337        description: "Memory limit in bytes."
338        type: "integer"
339        default: 0
340      # Applicable to UNIX platforms
341      CgroupParent:
342        description: "Path to `cgroups` under which the container's `cgroup` is created. If the path is not absolute, the path is considered to be relative to the `cgroups` path of the init process. Cgroups are created if they do not already exist."
343        type: "string"
344      BlkioWeight:
345        description: "Block IO weight (relative weight)."
346        type: "integer"
347        minimum: 0
348        maximum: 1000
349      BlkioWeightDevice:
350        description: |
351          Block IO weight (relative device weight) in the form `[{"Path": "device_path", "Weight": weight}]`.
352        type: "array"
353        items:
354          type: "object"
355          properties:
356            Path:
357              type: "string"
358            Weight:
359              type: "integer"
360              minimum: 0
361      BlkioDeviceReadBps:
362        description: |
363          Limit read rate (bytes per second) from a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
364        type: "array"
365        items:
366          $ref: "#/definitions/ThrottleDevice"
367      BlkioDeviceWriteBps:
368        description: |
369          Limit write rate (bytes per second) to a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
370        type: "array"
371        items:
372          $ref: "#/definitions/ThrottleDevice"
373      BlkioDeviceReadIOps:
374        description: |
375          Limit read rate (IO per second) from a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
376        type: "array"
377        items:
378          $ref: "#/definitions/ThrottleDevice"
379      BlkioDeviceWriteIOps:
380        description: |
381          Limit write rate (IO per second) to a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
382        type: "array"
383        items:
384          $ref: "#/definitions/ThrottleDevice"
385      CpuPeriod:
386        description: "The length of a CPU period in microseconds."
387        type: "integer"
388        format: "int64"
389      CpuQuota:
390        description: "Microseconds of CPU time that the container can get in a CPU period."
391        type: "integer"
392        format: "int64"
393      CpuRealtimePeriod:
394        description: "The length of a CPU real-time period in microseconds. Set to 0 to allocate no time allocated to real-time tasks."
395        type: "integer"
396        format: "int64"
397      CpuRealtimeRuntime:
398        description: "The length of a CPU real-time runtime in microseconds. Set to 0 to allocate no time allocated to real-time tasks."
399        type: "integer"
400        format: "int64"
401      CpusetCpus:
402        description: "CPUs in which to allow execution (e.g., `0-3`, `0,1`)"
403        type: "string"
404        example: "0-3"
405      CpusetMems:
406        description: "Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only effective on NUMA systems."
407        type: "string"
408      Devices:
409        description: "A list of devices to add to the container."
410        type: "array"
411        items:
412          $ref: "#/definitions/DeviceMapping"
413      DeviceCgroupRules:
414        description: "a list of cgroup rules to apply to the container"
415        type: "array"
416        items:
417          type: "string"
418          example: "c 13:* rwm"
419      DiskQuota:
420        description: "Disk limit (in bytes)."
421        type: "integer"
422        format: "int64"
423      KernelMemory:
424        description: "Kernel memory limit in bytes."
425        type: "integer"
426        format: "int64"
427      MemoryReservation:
428        description: "Memory soft limit in bytes."
429        type: "integer"
430        format: "int64"
431      MemorySwap:
432        description: "Total memory limit (memory + swap). Set as `-1` to enable unlimited swap."
433        type: "integer"
434        format: "int64"
435      MemorySwappiness:
436        description: "Tune a container's memory swappiness behavior. Accepts an integer between 0 and 100."
437        type: "integer"
438        format: "int64"
439        minimum: 0
440        maximum: 100
441      NanoCpus:
442        description: "CPU quota in units of 10<sup>-9</sup> CPUs."
443        type: "integer"
444        format: "int64"
445      OomKillDisable:
446        description: "Disable OOM Killer for the container."
447        type: "boolean"
448      PidsLimit:
449        description: "Tune a container's pids limit. Set -1 for unlimited."
450        type: "integer"
451        format: "int64"
452      Ulimits:
453        description: |
454          A list of resource limits to set in the container. For example: `{"Name": "nofile", "Soft": 1024, "Hard": 2048}`"
455        type: "array"
456        items:
457          type: "object"
458          properties:
459            Name:
460              description: "Name of ulimit"
461              type: "string"
462            Soft:
463              description: "Soft limit"
464              type: "integer"
465            Hard:
466              description: "Hard limit"
467              type: "integer"
468      # Applicable to Windows
469      CpuCount:
470        description: |
471          The number of usable CPUs (Windows only).
472
473          On Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last.
474        type: "integer"
475        format: "int64"
476      CpuPercent:
477        description: |
478          The usable percentage of the available CPUs (Windows only).
479
480          On Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last.
481        type: "integer"
482        format: "int64"
483      IOMaximumIOps:
484        description: "Maximum IOps for the container system drive (Windows only)"
485        type: "integer"
486        format: "int64"
487      IOMaximumBandwidth:
488        description: "Maximum IO in bytes per second for the container system drive (Windows only)"
489        type: "integer"
490        format: "int64"
491
492  ResourceObject:
493    description: "An object describing the resources which can be advertised by a node and requested by a task"
494    type: "object"
495    properties:
496      NanoCPUs:
497        type: "integer"
498        format: "int64"
499        example: 4000000000
500      MemoryBytes:
501        type: "integer"
502        format: "int64"
503        example: 8272408576
504      GenericResources:
505        $ref: "#/definitions/GenericResources"
506
507  GenericResources:
508    description: "User-defined resources can be either Integer resources (e.g, `SSD=3`) or String resources (e.g, `GPU=UUID1`)"
509    type: "array"
510    items:
511      type: "object"
512      properties:
513        NamedResourceSpec:
514          type: "object"
515          properties:
516            Kind:
517              type: "string"
518            Value:
519              type: "string"
520        DiscreteResourceSpec:
521          type: "object"
522          properties:
523            Kind:
524              type: "string"
525            Value:
526              type: "integer"
527              format: "int64"
528    example:
529      - DiscreteResourceSpec:
530          Kind: "SSD"
531          Value: 3
532      - NamedResourceSpec:
533          Kind: "GPU"
534          Value: "UUID1"
535      - NamedResourceSpec:
536          Kind: "GPU"
537          Value: "UUID2"
538
539  HealthConfig:
540    description: "A test to perform to check that the container is healthy."
541    type: "object"
542    properties:
543      Test:
544        description: |
545          The test to perform. Possible values are:
546
547          - `[]` inherit healthcheck from image or parent image
548          - `["NONE"]` disable healthcheck
549          - `["CMD", args...]` exec arguments directly
550          - `["CMD-SHELL", command]` run command with system's default shell
551        type: "array"
552        items:
553          type: "string"
554      Interval:
555        description: "The time to wait between checks in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means inherit."
556        type: "integer"
557      Timeout:
558        description: "The time to wait before considering the check to have hung. It should be 0 or at least 1000000 (1 ms). 0 means inherit."
559        type: "integer"
560      Retries:
561        description: "The number of consecutive failures needed to consider a container as unhealthy. 0 means inherit."
562        type: "integer"
563      StartPeriod:
564        description: "Start period for the container to initialize before starting health-retries countdown in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means inherit."
565        type: "integer"
566
567  HostConfig:
568    description: "Container configuration that depends on the host we are running on"
569    allOf:
570      - $ref: "#/definitions/Resources"
571      - type: "object"
572        properties:
573          # Applicable to all platforms
574          Binds:
575            type: "array"
576            description: |
577              A list of volume bindings for this container. Each volume binding is a string in one of these forms:
578
579              - `host-src:container-dest` to bind-mount a host path into the container. Both `host-src`, and `container-dest` must be an _absolute_ path.
580              - `host-src:container-dest:ro` to make the bind mount read-only inside the container. Both `host-src`, and `container-dest` must be an _absolute_ path.
581              - `volume-name:container-dest` to bind-mount a volume managed by a volume driver into the container. `container-dest` must be an _absolute_ path.
582              - `volume-name:container-dest:ro` to mount the volume read-only inside the container.  `container-dest` must be an _absolute_ path.
583            items:
584              type: "string"
585          ContainerIDFile:
586            type: "string"
587            description: "Path to a file where the container ID is written"
588          LogConfig:
589            type: "object"
590            description: "The logging configuration for this container"
591            properties:
592              Type:
593                type: "string"
594                enum:
595                  - "json-file"
596                  - "syslog"
597                  - "journald"
598                  - "gelf"
599                  - "fluentd"
600                  - "awslogs"
601                  - "splunk"
602                  - "etwlogs"
603                  - "none"
604              Config:
605                type: "object"
606                additionalProperties:
607                  type: "string"
608          NetworkMode:
609            type: "string"
610            description: "Network mode to use for this container. Supported standard values are: `bridge`, `host`, `none`, and `container:<name|id>`. Any other value is taken
611              as a custom network's name to which this container should connect to."
612          PortBindings:
613            type: "object"
614            description: "A map of exposed container ports and the host port they should map to."
615            additionalProperties:
616              type: "object"
617              properties:
618                HostIp:
619                  type: "string"
620                  description: "The host IP address"
621                HostPort:
622                  type: "string"
623                  description: "The host port number, as a string"
624          RestartPolicy:
625            $ref: "#/definitions/RestartPolicy"
626          AutoRemove:
627            type: "boolean"
628            description: "Automatically remove the container when the container's process exits. This has no effect if `RestartPolicy` is set."
629          VolumeDriver:
630            type: "string"
631            description: "Driver that this container uses to mount volumes."
632          VolumesFrom:
633            type: "array"
634            description: "A list of volumes to inherit from another container, specified in the form `<container name>[:<ro|rw>]`."
635            items:
636              type: "string"
637          Mounts:
638            description: "Specification for mounts to be added to the container."
639            type: "array"
640            items:
641              $ref: "#/definitions/Mount"
642
643          # Applicable to UNIX platforms
644          CapAdd:
645            type: "array"
646            description: "A list of kernel capabilities to add to the container."
647            items:
648              type: "string"
649          CapDrop:
650            type: "array"
651            description: "A list of kernel capabilities to drop from the container."
652            items:
653              type: "string"
654          Dns:
655            type: "array"
656            description: "A list of DNS servers for the container to use."
657            items:
658              type: "string"
659          DnsOptions:
660            type: "array"
661            description: "A list of DNS options."
662            items:
663              type: "string"
664          DnsSearch:
665            type: "array"
666            description: "A list of DNS search domains."
667            items:
668              type: "string"
669          ExtraHosts:
670            type: "array"
671            description: |
672              A list of hostnames/IP mappings to add to the container's `/etc/hosts` file. Specified in the form `["hostname:IP"]`.
673            items:
674              type: "string"
675          GroupAdd:
676            type: "array"
677            description: "A list of additional groups that the container process will run as."
678            items:
679              type: "string"
680          IpcMode:
681            type: "string"
682            description: |
683                    IPC sharing mode for the container. Possible values are:
684
685                    - `"none"`: own private IPC namespace, with /dev/shm not mounted
686                    - `"private"`: own private IPC namespace
687                    - `"shareable"`: own private IPC namespace, with a possibility to share it with other containers
688                    - `"container:<name|id>"`: join another (shareable) container's IPC namespace
689                    - `"host"`: use the host system's IPC namespace
690
691                    If not specified, daemon default is used, which can either be `"private"`
692                    or `"shareable"`, depending on daemon version and configuration.
693          Cgroup:
694            type: "string"
695            description: "Cgroup to use for the container."
696          Links:
697            type: "array"
698            description: "A list of links for the container in the form `container_name:alias`."
699            items:
700              type: "string"
701          OomScoreAdj:
702            type: "integer"
703            description: "An integer value containing the score given to the container in order to tune OOM killer preferences."
704            example: 500
705          PidMode:
706            type: "string"
707            description: |
708              Set the PID (Process) Namespace mode for the container. It can be either:
709
710              - `"container:<name|id>"`: joins another container's PID namespace
711              - `"host"`: use the host's PID namespace inside the container
712          Privileged:
713            type: "boolean"
714            description: "Gives the container full access to the host."
715          PublishAllPorts:
716            type: "boolean"
717            description: "Allocates a random host port for all of a container's exposed ports."
718          ReadonlyRootfs:
719            type: "boolean"
720            description: "Mount the container's root filesystem as read only."
721          SecurityOpt:
722            type: "array"
723            description: "A list of string values to customize labels for MLS
724            systems, such as SELinux."
725            items:
726              type: "string"
727          StorageOpt:
728            type: "object"
729            description: |
730              Storage driver options for this container, in the form `{"size": "120G"}`.
731            additionalProperties:
732              type: "string"
733          Tmpfs:
734            type: "object"
735            description: |
736              A map of container directories which should be replaced by tmpfs mounts, and their corresponding mount options. For example: `{ "/run": "rw,noexec,nosuid,size=65536k" }`.
737            additionalProperties:
738              type: "string"
739          UTSMode:
740            type: "string"
741            description: "UTS namespace to use for the container."
742          UsernsMode:
743            type: "string"
744            description: "Sets the usernamespace mode for the container when usernamespace remapping option is enabled."
745          ShmSize:
746            type: "integer"
747            description: "Size of `/dev/shm` in bytes. If omitted, the system uses 64MB."
748            minimum: 0
749          Sysctls:
750            type: "object"
751            description: |
752              A list of kernel parameters (sysctls) to set in the container. For example: `{"net.ipv4.ip_forward": "1"}`
753            additionalProperties:
754              type: "string"
755          Runtime:
756            type: "string"
757            description: "Runtime to use with this container."
758          # Applicable to Windows
759          ConsoleSize:
760            type: "array"
761            description: "Initial console size, as an `[height, width]` array. (Windows only)"
762            minItems: 2
763            maxItems: 2
764            items:
765              type: "integer"
766              minimum: 0
767          Isolation:
768            type: "string"
769            description: "Isolation technology of the container. (Windows only)"
770            enum:
771              - "default"
772              - "process"
773              - "hyperv"
774
775  ContainerConfig:
776    description: "Configuration for a container that is portable between hosts"
777    type: "object"
778    properties:
779      Hostname:
780        description: "The hostname to use for the container, as a valid RFC 1123 hostname."
781        type: "string"
782      Domainname:
783        description: "The domain name to use for the container."
784        type: "string"
785      User:
786        description: "The user that commands are run as inside the container."
787        type: "string"
788      AttachStdin:
789        description: "Whether to attach to `stdin`."
790        type: "boolean"
791        default: false
792      AttachStdout:
793        description: "Whether to attach to `stdout`."
794        type: "boolean"
795        default: true
796      AttachStderr:
797        description: "Whether to attach to `stderr`."
798        type: "boolean"
799        default: true
800      ExposedPorts:
801        description: |
802          An object mapping ports to an empty object in the form:
803
804          `{"<port>/<tcp|udp>": {}}`
805        type: "object"
806        additionalProperties:
807          type: "object"
808          enum:
809            - {}
810          default: {}
811      Tty:
812        description: "Attach standard streams to a TTY, including `stdin` if it is not closed."
813        type: "boolean"
814        default: false
815      OpenStdin:
816        description: "Open `stdin`"
817        type: "boolean"
818        default: false
819      StdinOnce:
820        description: "Close `stdin` after one attached client disconnects"
821        type: "boolean"
822        default: false
823      Env:
824        description: |
825          A list of environment variables to set inside the container in the form `["VAR=value", ...]`. A variable without `=` is removed from the environment, rather than to have an empty value.
826        type: "array"
827        items:
828          type: "string"
829      Cmd:
830        description: "Command to run specified as a string or an array of strings."
831        type:
832          - "array"
833          - "string"
834        items:
835          type: "string"
836      Healthcheck:
837        $ref: "#/definitions/HealthConfig"
838      ArgsEscaped:
839        description: "Command is already escaped (Windows only)"
840        type: "boolean"
841      Image:
842        description: "The name of the image to use when creating the container"
843        type: "string"
844      Volumes:
845        description: "An object mapping mount point paths inside the container to empty objects."
846        type: "object"
847        properties:
848          additionalProperties:
849            type: "object"
850            enum:
851              - {}
852            default: {}
853      WorkingDir:
854        description: "The working directory for commands to run in."
855        type: "string"
856      Entrypoint:
857        description: |
858          The entry point for the container as a string or an array of strings.
859
860          If the array consists of exactly one empty string (`[""]`) then the entry point is reset to system default (i.e., the entry point used by docker when there is no `ENTRYPOINT` instruction in the `Dockerfile`).
861        type:
862          - "array"
863          - "string"
864        items:
865          type: "string"
866      NetworkDisabled:
867        description: "Disable networking for the container."
868        type: "boolean"
869      MacAddress:
870        description: "MAC address of the container."
871        type: "string"
872      OnBuild:
873        description: "`ONBUILD` metadata that were defined in the image's `Dockerfile`."
874        type: "array"
875        items:
876          type: "string"
877      Labels:
878        description: "User-defined key/value metadata."
879        type: "object"
880        additionalProperties:
881          type: "string"
882      StopSignal:
883        description: "Signal to stop a container as a string or unsigned integer."
884        type: "string"
885        default: "SIGTERM"
886      StopTimeout:
887        description: "Timeout to stop a container in seconds."
888        type: "integer"
889        default: 10
890      Shell:
891        description: "Shell for when `RUN`, `CMD`, and `ENTRYPOINT` uses a shell."
892        type: "array"
893        items:
894          type: "string"
895
896  NetworkSettings:
897    description: "NetworkSettings exposes the network settings in the API"
898    type: "object"
899    properties:
900      Bridge:
901        description: Name of the network'a bridge (for example, `docker0`).
902        type: "string"
903        example: "docker0"
904      SandboxID:
905        description: SandboxID uniquely represents a container's network stack.
906        type: "string"
907        example: "9d12daf2c33f5959c8bf90aa513e4f65b561738661003029ec84830cd503a0c3"
908      HairpinMode:
909        description: |
910          Indicates if hairpin NAT should be enabled on the virtual interface.
911        type: "boolean"
912        example: false
913      LinkLocalIPv6Address:
914        description: IPv6 unicast address using the link-local prefix.
915        type: "string"
916        example: "fe80::42:acff:fe11:1"
917      LinkLocalIPv6PrefixLen:
918        description: Prefix length of the IPv6 unicast address.
919        type: "integer"
920        example: "64"
921      Ports:
922        $ref: "#/definitions/PortMap"
923      SandboxKey:
924        description: SandboxKey identifies the sandbox
925        type: "string"
926        example: "/var/run/docker/netns/8ab54b426c38"
927
928      # TODO is SecondaryIPAddresses actually used?
929      SecondaryIPAddresses:
930        description: ""
931        type: "array"
932        items:
933          $ref: "#/definitions/Address"
934        x-nullable: true
935
936      # TODO is SecondaryIPv6Addresses actually used?
937      SecondaryIPv6Addresses:
938        description: ""
939        type: "array"
940        items:
941          $ref: "#/definitions/Address"
942        x-nullable: true
943
944      # TODO properties below are part of DefaultNetworkSettings, which is
945      # marked as deprecated since Docker 1.9 and to be removed in Docker v17.12
946      EndpointID:
947        description: |
948          EndpointID uniquely represents a service endpoint in a Sandbox.
949
950          <p><br /></p>
951
952          > **Deprecated**: This field is only propagated when attached to the
953          > default "bridge" network. Use the information from the "bridge"
954          > network inside the `Networks` map instead, which contains the same
955          > information. This field was deprecated in Docker 1.9 and is scheduled
956          > to be removed in Docker 17.12.0
957        type: "string"
958        example: "b88f5b905aabf2893f3cbc4ee42d1ea7980bbc0a92e2c8922b1e1795298afb0b"
959      Gateway:
960        description: |
961          Gateway address for the default "bridge" network.
962
963          <p><br /></p>
964
965          > **Deprecated**: This field is only propagated when attached to the
966          > default "bridge" network. Use the information from the "bridge"
967          > network inside the `Networks` map instead, which contains the same
968          > information. This field was deprecated in Docker 1.9 and is scheduled
969          > to be removed in Docker 17.12.0
970        type: "string"
971        example: "172.17.0.1"
972      GlobalIPv6Address:
973        description: |
974          Global IPv6 address for the default "bridge" network.
975
976          <p><br /></p>
977
978          > **Deprecated**: This field is only propagated when attached to the
979          > default "bridge" network. Use the information from the "bridge"
980          > network inside the `Networks` map instead, which contains the same
981          > information. This field was deprecated in Docker 1.9 and is scheduled
982          > to be removed in Docker 17.12.0
983        type: "string"
984        example: "2001:db8::5689"
985      GlobalIPv6PrefixLen:
986        description: |
987          Mask length of the global IPv6 address.
988
989          <p><br /></p>
990
991          > **Deprecated**: This field is only propagated when attached to the
992          > default "bridge" network. Use the information from the "bridge"
993          > network inside the `Networks` map instead, which contains the same
994          > information. This field was deprecated in Docker 1.9 and is scheduled
995          > to be removed in Docker 17.12.0
996        type: "integer"
997        example: 64
998      IPAddress:
999        description: |
1000          IPv4 address for the default "bridge" network.
1001
1002          <p><br /></p>
1003
1004          > **Deprecated**: This field is only propagated when attached to the
1005          > default "bridge" network. Use the information from the "bridge"
1006          > network inside the `Networks` map instead, which contains the same
1007          > information. This field was deprecated in Docker 1.9 and is scheduled
1008          > to be removed in Docker 17.12.0
1009        type: "string"
1010        example: "172.17.0.4"
1011      IPPrefixLen:
1012        description: |
1013          Mask length of the IPv4 address.
1014
1015          <p><br /></p>
1016
1017          > **Deprecated**: This field is only propagated when attached to the
1018          > default "bridge" network. Use the information from the "bridge"
1019          > network inside the `Networks` map instead, which contains the same
1020          > information. This field was deprecated in Docker 1.9 and is scheduled
1021          > to be removed in Docker 17.12.0
1022        type: "integer"
1023        example: 16
1024      IPv6Gateway:
1025        description: |
1026          IPv6 gateway address for this network.
1027
1028          <p><br /></p>
1029
1030          > **Deprecated**: This field is only propagated when attached to the
1031          > default "bridge" network. Use the information from the "bridge"
1032          > network inside the `Networks` map instead, which contains the same
1033          > information. This field was deprecated in Docker 1.9 and is scheduled
1034          > to be removed in Docker 17.12.0
1035        type: "string"
1036        example: "2001:db8:2::100"
1037      MacAddress:
1038        description: |
1039          MAC address for the container on the default "bridge" network.
1040
1041          <p><br /></p>
1042
1043          > **Deprecated**: This field is only propagated when attached to the
1044          > default "bridge" network. Use the information from the "bridge"
1045          > network inside the `Networks` map instead, which contains the same
1046          > information. This field was deprecated in Docker 1.9 and is scheduled
1047          > to be removed in Docker 17.12.0
1048        type: "string"
1049        example: "02:42:ac:11:00:04"
1050      Networks:
1051        description: |
1052          Information about all networks that the container is connected to.
1053        type: "object"
1054        additionalProperties:
1055          $ref: "#/definitions/EndpointSettings"
1056
1057  Address:
1058    description: Address represents an IPv4 or IPv6 IP address.
1059    type: "object"
1060    properties:
1061      Addr:
1062        description: IP address.
1063        type: "string"
1064      PrefixLen:
1065        description: Mask length of the IP address.
1066        type: "integer"
1067
1068  PortMap:
1069    description: |
1070      PortMap describes the mapping of container ports to host ports, using the
1071      container's port-number and protocol as key in the format `<port>/<protocol>`,
1072      for example, `80/udp`.
1073
1074      If a container's port is mapped for both `tcp` and `udp`, two separate
1075      entries are added to the mapping table.
1076    type: "object"
1077    additionalProperties:
1078      type: "array"
1079      items:
1080        $ref: "#/definitions/PortBinding"
1081    example:
1082      "443/tcp":
1083        - HostIp: "127.0.0.1"
1084          HostPort: "4443"
1085      "80/tcp":
1086        - HostIp: "0.0.0.0"
1087          HostPort: "80"
1088        - HostIp: "0.0.0.0"
1089          HostPort: "8080"
1090      "80/udp":
1091        - HostIp: "0.0.0.0"
1092          HostPort: "80"
1093      "53/udp":
1094        - HostIp: "0.0.0.0"
1095          HostPort: "53"
1096      "2377/tcp": null
1097
1098  PortBinding:
1099    description: |
1100      PortBinding represents a binding between a host IP address and a host
1101      port.
1102    type: "object"
1103    x-nullable: true
1104    properties:
1105      HostIp:
1106        description: "Host IP address that the container's port is mapped to."
1107        type: "string"
1108        example: "127.0.0.1"
1109      HostPort:
1110        description: "Host port number that the container's port is mapped to."
1111        type: "string"
1112        example: "4443"
1113
1114  GraphDriverData:
1115    description: "Information about a container's graph driver."
1116    type: "object"
1117    required: [Name, Data]
1118    properties:
1119      Name:
1120        type: "string"
1121        x-nullable: false
1122      Data:
1123        type: "object"
1124        x-nullable: false
1125        additionalProperties:
1126          type: "string"
1127
1128  Image:
1129    type: "object"
1130    required:
1131      - Id
1132      - Parent
1133      - Comment
1134      - Created
1135      - Container
1136      - DockerVersion
1137      - Author
1138      - Architecture
1139      - Os
1140      - Size
1141      - VirtualSize
1142      - GraphDriver
1143      - RootFS
1144    properties:
1145      Id:
1146        type: "string"
1147        x-nullable: false
1148      RepoTags:
1149        type: "array"
1150        items:
1151          type: "string"
1152      RepoDigests:
1153        type: "array"
1154        items:
1155          type: "string"
1156      Parent:
1157        type: "string"
1158        x-nullable: false
1159      Comment:
1160        type: "string"
1161        x-nullable: false
1162      Created:
1163        type: "string"
1164        x-nullable: false
1165      Container:
1166        type: "string"
1167        x-nullable: false
1168      ContainerConfig:
1169        $ref: "#/definitions/ContainerConfig"
1170      DockerVersion:
1171        type: "string"
1172        x-nullable: false
1173      Author:
1174        type: "string"
1175        x-nullable: false
1176      Config:
1177        $ref: "#/definitions/ContainerConfig"
1178      Architecture:
1179        type: "string"
1180        x-nullable: false
1181      Os:
1182        type: "string"
1183        x-nullable: false
1184      OsVersion:
1185        type: "string"
1186      Size:
1187        type: "integer"
1188        format: "int64"
1189        x-nullable: false
1190      VirtualSize:
1191        type: "integer"
1192        format: "int64"
1193        x-nullable: false
1194      GraphDriver:
1195        $ref: "#/definitions/GraphDriverData"
1196      RootFS:
1197        type: "object"
1198        required: [Type]
1199        properties:
1200          Type:
1201            type: "string"
1202            x-nullable: false
1203          Layers:
1204            type: "array"
1205            items:
1206              type: "string"
1207          BaseLayer:
1208            type: "string"
1209      Metadata:
1210        type: "object"
1211        properties:
1212          LastTagTime:
1213            type: "string"
1214            format: "dateTime"
1215
1216  ImageSummary:
1217    type: "object"
1218    required:
1219      - Id
1220      - ParentId
1221      - RepoTags
1222      - RepoDigests
1223      - Created
1224      - Size
1225      - SharedSize
1226      - VirtualSize
1227      - Labels
1228      - Containers
1229    properties:
1230      Id:
1231        type: "string"
1232        x-nullable: false
1233      ParentId:
1234        type: "string"
1235        x-nullable: false
1236      RepoTags:
1237        type: "array"
1238        x-nullable: false
1239        items:
1240          type: "string"
1241      RepoDigests:
1242        type: "array"
1243        x-nullable: false
1244        items:
1245          type: "string"
1246      Created:
1247        type: "integer"
1248        x-nullable: false
1249      Size:
1250        type: "integer"
1251        x-nullable: false
1252      SharedSize:
1253        type: "integer"
1254        x-nullable: false
1255      VirtualSize:
1256        type: "integer"
1257        x-nullable: false
1258      Labels:
1259        type: "object"
1260        x-nullable: false
1261        additionalProperties:
1262          type: "string"
1263      Containers:
1264        x-nullable: false
1265        type: "integer"
1266
1267  AuthConfig:
1268    type: "object"
1269    properties:
1270      username:
1271        type: "string"
1272      password:
1273        type: "string"
1274      email:
1275        type: "string"
1276      serveraddress:
1277        type: "string"
1278    example:
1279      username: "hannibal"
1280      password: "xxxx"
1281      serveraddress: "https://index.docker.io/v1/"
1282
1283  ProcessConfig:
1284    type: "object"
1285    properties:
1286      privileged:
1287        type: "boolean"
1288      user:
1289        type: "string"
1290      tty:
1291        type: "boolean"
1292      entrypoint:
1293        type: "string"
1294      arguments:
1295        type: "array"
1296        items:
1297          type: "string"
1298
1299  Volume:
1300    type: "object"
1301    required: [Name, Driver, Mountpoint, Labels, Scope, Options]
1302    properties:
1303      Name:
1304        type: "string"
1305        description: "Name of the volume."
1306        x-nullable: false
1307      Driver:
1308        type: "string"
1309        description: "Name of the volume driver used by the volume."
1310        x-nullable: false
1311      Mountpoint:
1312        type: "string"
1313        description: "Mount path of the volume on the host."
1314        x-nullable: false
1315      CreatedAt:
1316        type: "string"
1317        format: "dateTime"
1318        description: "Date/Time the volume was created."
1319      Status:
1320        type: "object"
1321        description: |
1322          Low-level details about the volume, provided by the volume driver.
1323          Details are returned as a map with key/value pairs:
1324          `{"key":"value","key2":"value2"}`.
1325
1326          The `Status` field is optional, and is omitted if the volume driver
1327          does not support this feature.
1328        additionalProperties:
1329          type: "object"
1330      Labels:
1331        type: "object"
1332        description: "User-defined key/value metadata."
1333        x-nullable: false
1334        additionalProperties:
1335          type: "string"
1336      Scope:
1337        type: "string"
1338        description: "The level at which the volume exists. Either `global` for cluster-wide, or `local` for machine level."
1339        default: "local"
1340        x-nullable: false
1341        enum: ["local", "global"]
1342      Options:
1343        type: "object"
1344        description: "The driver specific options used when creating the volume."
1345        additionalProperties:
1346          type: "string"
1347      UsageData:
1348        type: "object"
1349        x-nullable: true
1350        required: [Size, RefCount]
1351        description: |
1352          Usage details about the volume. This information is used by the
1353          `GET /system/df` endpoint, and omitted in other endpoints.
1354        properties:
1355          Size:
1356            type: "integer"
1357            default: -1
1358            description: |
1359              Amount of disk space used by the volume (in bytes). This information
1360              is only available for volumes created with the `"local"` volume
1361              driver. For volumes created with other volume drivers, this field
1362              is set to `-1` ("not available")
1363            x-nullable: false
1364          RefCount:
1365            type: "integer"
1366            default: -1
1367            description: |
1368              The number of containers referencing this volume. This field
1369              is set to `-1` if the reference-count is not available.
1370            x-nullable: false
1371
1372    example:
1373      Name: "tardis"
1374      Driver: "custom"
1375      Mountpoint: "/var/lib/docker/volumes/tardis"
1376      Status:
1377        hello: "world"
1378      Labels:
1379        com.example.some-label: "some-value"
1380        com.example.some-other-label: "some-other-value"
1381      Scope: "local"
1382      CreatedAt: "2016-06-07T20:31:11.853781916Z"
1383
1384  Network:
1385    type: "object"
1386    properties:
1387      Name:
1388        type: "string"
1389      Id:
1390        type: "string"
1391      Created:
1392        type: "string"
1393        format: "dateTime"
1394      Scope:
1395        type: "string"
1396      Driver:
1397        type: "string"
1398      EnableIPv6:
1399        type: "boolean"
1400      IPAM:
1401        $ref: "#/definitions/IPAM"
1402      Internal:
1403        type: "boolean"
1404      Attachable:
1405        type: "boolean"
1406      Ingress:
1407        type: "boolean"
1408      Containers:
1409        type: "object"
1410        additionalProperties:
1411          $ref: "#/definitions/NetworkContainer"
1412      Options:
1413        type: "object"
1414        additionalProperties:
1415          type: "string"
1416      Labels:
1417        type: "object"
1418        additionalProperties:
1419          type: "string"
1420    example:
1421      Name: "net01"
1422      Id: "7d86d31b1478e7cca9ebed7e73aa0fdeec46c5ca29497431d3007d2d9e15ed99"
1423      Created: "2016-10-19T04:33:30.360899459Z"
1424      Scope: "local"
1425      Driver: "bridge"
1426      EnableIPv6: false
1427      IPAM:
1428        Driver: "default"
1429        Config:
1430          - Subnet: "172.19.0.0/16"
1431            Gateway: "172.19.0.1"
1432        Options:
1433          foo: "bar"
1434      Internal: false
1435      Attachable: false
1436      Ingress: false
1437      Containers:
1438        19a4d5d687db25203351ed79d478946f861258f018fe384f229f2efa4b23513c:
1439          Name: "test"
1440          EndpointID: "628cadb8bcb92de107b2a1e516cbffe463e321f548feb37697cce00ad694f21a"
1441          MacAddress: "02:42:ac:13:00:02"
1442          IPv4Address: "172.19.0.2/16"
1443          IPv6Address: ""
1444      Options:
1445        com.docker.network.bridge.default_bridge: "true"
1446        com.docker.network.bridge.enable_icc: "true"
1447        com.docker.network.bridge.enable_ip_masquerade: "true"
1448        com.docker.network.bridge.host_binding_ipv4: "0.0.0.0"
1449        com.docker.network.bridge.name: "docker0"
1450        com.docker.network.driver.mtu: "1500"
1451      Labels:
1452        com.example.some-label: "some-value"
1453        com.example.some-other-label: "some-other-value"
1454  IPAM:
1455    type: "object"
1456    properties:
1457      Driver:
1458        description: "Name of the IPAM driver to use."
1459        type: "string"
1460        default: "default"
1461      Config:
1462        description: "List of IPAM configuration options, specified as a map: `{\"Subnet\": <CIDR>, \"IPRange\": <CIDR>, \"Gateway\": <IP address>, \"AuxAddress\": <device_name:IP address>}`"
1463        type: "array"
1464        items:
1465          type: "object"
1466          additionalProperties:
1467            type: "string"
1468      Options:
1469        description: "Driver-specific options, specified as a map."
1470        type: "array"
1471        items:
1472          type: "object"
1473          additionalProperties:
1474            type: "string"
1475
1476  NetworkContainer:
1477    type: "object"
1478    properties:
1479      Name:
1480        type: "string"
1481      EndpointID:
1482        type: "string"
1483      MacAddress:
1484        type: "string"
1485      IPv4Address:
1486        type: "string"
1487      IPv6Address:
1488        type: "string"
1489
1490  BuildInfo:
1491    type: "object"
1492    properties:
1493      id:
1494        type: "string"
1495      stream:
1496        type: "string"
1497      error:
1498        type: "string"
1499      errorDetail:
1500        $ref: "#/definitions/ErrorDetail"
1501      status:
1502        type: "string"
1503      progress:
1504        type: "string"
1505      progressDetail:
1506        $ref: "#/definitions/ProgressDetail"
1507
1508  CreateImageInfo:
1509    type: "object"
1510    properties:
1511      error:
1512        type: "string"
1513      status:
1514        type: "string"
1515      progress:
1516        type: "string"
1517      progressDetail:
1518        $ref: "#/definitions/ProgressDetail"
1519
1520  PushImageInfo:
1521    type: "object"
1522    properties:
1523      error:
1524        type: "string"
1525      status:
1526        type: "string"
1527      progress:
1528        type: "string"
1529      progressDetail:
1530        $ref: "#/definitions/ProgressDetail"
1531
1532  ErrorDetail:
1533    type: "object"
1534    properties:
1535      code:
1536        type: "integer"
1537      message:
1538        type: "string"
1539
1540  ProgressDetail:
1541    type: "object"
1542    properties:
1543      code:
1544        type: "integer"
1545      message:
1546        type: "integer"
1547
1548  ErrorResponse:
1549    description: "Represents an error."
1550    type: "object"
1551    required: ["message"]
1552    properties:
1553      message:
1554        description: "The error message."
1555        type: "string"
1556        x-nullable: false
1557    example:
1558      message: "Something went wrong."
1559
1560  IdResponse:
1561    description: "Response to an API call that returns just an Id"
1562    type: "object"
1563    required: ["Id"]
1564    properties:
1565      Id:
1566        description: "The id of the newly created object."
1567        type: "string"
1568        x-nullable: false
1569
1570  EndpointSettings:
1571    description: "Configuration for a network endpoint."
1572    type: "object"
1573    properties:
1574      # Configurations
1575      IPAMConfig:
1576        $ref: "#/definitions/EndpointIPAMConfig"
1577      Links:
1578        type: "array"
1579        items:
1580          type: "string"
1581        example:
1582          - "container_1"
1583          - "container_2"
1584      Aliases:
1585        type: "array"
1586        items:
1587          type: "string"
1588        example:
1589          - "server_x"
1590          - "server_y"
1591
1592      # Operational data
1593      NetworkID:
1594        description: |
1595          Unique ID of the network.
1596        type: "string"
1597        example: "08754567f1f40222263eab4102e1c733ae697e8e354aa9cd6e18d7402835292a"
1598      EndpointID:
1599        description: |
1600          Unique ID for the service endpoint in a Sandbox.
1601        type: "string"
1602        example: "b88f5b905aabf2893f3cbc4ee42d1ea7980bbc0a92e2c8922b1e1795298afb0b"
1603      Gateway:
1604        description: |
1605          Gateway address for this network.
1606        type: "string"
1607        example: "172.17.0.1"
1608      IPAddress:
1609        description: |
1610          IPv4 address.
1611        type: "string"
1612        example: "172.17.0.4"
1613      IPPrefixLen:
1614        description: |
1615          Mask length of the IPv4 address.
1616        type: "integer"
1617        example: 16
1618      IPv6Gateway:
1619        description: |
1620          IPv6 gateway address.
1621        type: "string"
1622        example: "2001:db8:2::100"
1623      GlobalIPv6Address:
1624        description: |
1625          Global IPv6 address.
1626        type: "string"
1627        example: "2001:db8::5689"
1628      GlobalIPv6PrefixLen:
1629        description: |
1630          Mask length of the global IPv6 address.
1631        type: "integer"
1632        format: "int64"
1633        example: 64
1634      MacAddress:
1635        description: |
1636          MAC address for the endpoint on this network.
1637        type: "string"
1638        example: "02:42:ac:11:00:04"
1639      DriverOpts:
1640        description: |
1641          DriverOpts is a mapping of driver options and values. These options
1642          are passed directly to the driver and are driver specific.
1643        type: "object"
1644        x-nullable: true
1645        additionalProperties:
1646          type: "string"
1647        example:
1648          com.example.some-label: "some-value"
1649          com.example.some-other-label: "some-other-value"
1650
1651  EndpointIPAMConfig:
1652    description: |
1653      EndpointIPAMConfig represents an endpoint's IPAM configuration.
1654    type: "object"
1655    x-nullable: true
1656    properties:
1657      IPv4Address:
1658        type: "string"
1659        example: "172.20.30.33"
1660      IPv6Address:
1661        type: "string"
1662        example: "2001:db8:abcd::3033"
1663      LinkLocalIPs:
1664        type: "array"
1665        items:
1666          type: "string"
1667        example:
1668          - "169.254.34.68"
1669          - "fe80::3468"
1670
1671  PluginMount:
1672    type: "object"
1673    x-nullable: false
1674    required: [Name, Description, Settable, Source, Destination, Type, Options]
1675    properties:
1676      Name:
1677        type: "string"
1678        x-nullable: false
1679        example: "some-mount"
1680      Description:
1681        type: "string"
1682        x-nullable: false
1683        example: "This is a mount that's used by the plugin."
1684      Settable:
1685        type: "array"
1686        items:
1687          type: "string"
1688      Source:
1689        type: "string"
1690        example: "/var/lib/docker/plugins/"
1691      Destination:
1692        type: "string"
1693        x-nullable: false
1694        example: "/mnt/state"
1695      Type:
1696        type: "string"
1697        x-nullable: false
1698        example: "bind"
1699      Options:
1700        type: "array"
1701        items:
1702          type: "string"
1703        example:
1704          - "rbind"
1705          - "rw"
1706
1707  PluginDevice:
1708    type: "object"
1709    required: [Name, Description, Settable, Path]
1710    x-nullable: false
1711    properties:
1712      Name:
1713        type: "string"
1714        x-nullable: false
1715      Description:
1716        type: "string"
1717        x-nullable: false
1718      Settable:
1719        type: "array"
1720        items:
1721          type: "string"
1722      Path:
1723        type: "string"
1724        example: "/dev/fuse"
1725
1726  PluginEnv:
1727    type: "object"
1728    x-nullable: false
1729    required: [Name, Description, Settable, Value]
1730    properties:
1731      Name:
1732        x-nullable: false
1733        type: "string"
1734      Description:
1735        x-nullable: false
1736        type: "string"
1737      Settable:
1738        type: "array"
1739        items:
1740          type: "string"
1741      Value:
1742        type: "string"
1743
1744  PluginInterfaceType:
1745    type: "object"
1746    x-nullable: false
1747    required: [Prefix, Capability, Version]
1748    properties:
1749      Prefix:
1750        type: "string"
1751        x-nullable: false
1752      Capability:
1753        type: "string"
1754        x-nullable: false
1755      Version:
1756        type: "string"
1757        x-nullable: false
1758
1759  Plugin:
1760    description: "A plugin for the Engine API"
1761    type: "object"
1762    required: [Settings, Enabled, Config, Name]
1763    properties:
1764      Id:
1765        type: "string"
1766        example: "5724e2c8652da337ab2eedd19fc6fc0ec908e4bd907c7421bf6a8dfc70c4c078"
1767      Name:
1768        type: "string"
1769        x-nullable: false
1770        example: "tiborvass/sample-volume-plugin"
1771      Enabled:
1772        description: "True if the plugin is running. False if the plugin is not running, only installed."
1773        type: "boolean"
1774        x-nullable: false
1775        example: true
1776      Settings:
1777        description: "Settings that can be modified by users."
1778        type: "object"
1779        x-nullable: false
1780        required: [Args, Devices, Env, Mounts]
1781        properties:
1782          Mounts:
1783            type: "array"
1784            items:
1785              $ref: "#/definitions/PluginMount"
1786          Env:
1787            type: "array"
1788            items:
1789              type: "string"
1790            example:
1791              - "DEBUG=0"
1792          Args:
1793            type: "array"
1794            items:
1795              type: "string"
1796          Devices:
1797            type: "array"
1798            items:
1799              $ref: "#/definitions/PluginDevice"
1800      PluginReference:
1801        description: "plugin remote reference used to push/pull the plugin"
1802        type: "string"
1803        x-nullable: false
1804        example: "localhost:5000/tiborvass/sample-volume-plugin:latest"
1805      Config:
1806        description: "The config of a plugin."
1807        type: "object"
1808        x-nullable: false
1809        required:
1810          - Description
1811          - Documentation
1812          - Interface
1813          - Entrypoint
1814          - WorkDir
1815          - Network
1816          - Linux
1817          - PidHost
1818          - PropagatedMount
1819          - IpcHost
1820          - Mounts
1821          - Env
1822          - Args
1823        properties:
1824          DockerVersion:
1825            description: "Docker Version used to create the plugin"
1826            type: "string"
1827            x-nullable: false
1828            example: "17.06.0-ce"
1829          Description:
1830            type: "string"
1831            x-nullable: false
1832            example: "A sample volume plugin for Docker"
1833          Documentation:
1834            type: "string"
1835            x-nullable: false
1836            example: "https://docs.docker.com/engine/extend/plugins/"
1837          Interface:
1838            description: "The interface between Docker and the plugin"
1839            x-nullable: false
1840            type: "object"
1841            required: [Types, Socket]
1842            properties:
1843              Types:
1844                type: "array"
1845                items:
1846                  $ref: "#/definitions/PluginInterfaceType"
1847                example:
1848                  - "docker.volumedriver/1.0"
1849              Socket:
1850                type: "string"
1851                x-nullable: false
1852                example: "plugins.sock"
1853          Entrypoint:
1854            type: "array"
1855            items:
1856              type: "string"
1857            example:
1858              - "/usr/bin/sample-volume-plugin"
1859              - "/data"
1860          WorkDir:
1861            type: "string"
1862            x-nullable: false
1863            example: "/bin/"
1864          User:
1865            type: "object"
1866            x-nullable: false
1867            properties:
1868              UID:
1869                type: "integer"
1870                format: "uint32"
1871                example: 1000
1872              GID:
1873                type: "integer"
1874                format: "uint32"
1875                example: 1000
1876          Network:
1877            type: "object"
1878            x-nullable: false
1879            required: [Type]
1880            properties:
1881              Type:
1882                x-nullable: false
1883                type: "string"
1884                example: "host"
1885          Linux:
1886            type: "object"
1887            x-nullable: false
1888            required: [Capabilities, AllowAllDevices, Devices]
1889            properties:
1890              Capabilities:
1891                type: "array"
1892                items:
1893                  type: "string"
1894                example:
1895                  - "CAP_SYS_ADMIN"
1896                  - "CAP_SYSLOG"
1897              AllowAllDevices:
1898                type: "boolean"
1899                x-nullable: false
1900                example: false
1901              Devices:
1902                type: "array"
1903                items:
1904                  $ref: "#/definitions/PluginDevice"
1905          PropagatedMount:
1906            type: "string"
1907            x-nullable: false
1908            example: "/mnt/volumes"
1909          IpcHost:
1910            type: "boolean"
1911            x-nullable: false
1912            example: false
1913          PidHost:
1914            type: "boolean"
1915            x-nullable: false
1916            example: false
1917          Mounts:
1918            type: "array"
1919            items:
1920              $ref: "#/definitions/PluginMount"
1921          Env:
1922            type: "array"
1923            items:
1924              $ref: "#/definitions/PluginEnv"
1925            example:
1926              - Name: "DEBUG"
1927                Description: "If set, prints debug messages"
1928                Settable: null
1929                Value: "0"
1930          Args:
1931            type: "object"
1932            x-nullable: false
1933            required: [Name, Description, Settable, Value]
1934            properties:
1935              Name:
1936                x-nullable: false
1937                type: "string"
1938                example: "args"
1939              Description:
1940                x-nullable: false
1941                type: "string"
1942                example: "command line arguments"
1943              Settable:
1944                type: "array"
1945                items:
1946                  type: "string"
1947              Value:
1948                type: "array"
1949                items:
1950                  type: "string"
1951          rootfs:
1952            type: "object"
1953            properties:
1954              type:
1955                type: "string"
1956                example: "layers"
1957              diff_ids:
1958                type: "array"
1959                items:
1960                  type: "string"
1961                example:
1962                  - "sha256:675532206fbf3030b8458f88d6e26d4eb1577688a25efec97154c94e8b6b4887"
1963                  - "sha256:e216a057b1cb1efc11f8a268f37ef62083e70b1b38323ba252e25ac88904a7e8"
1964
1965  ObjectVersion:
1966    description: |
1967      The version number of the object such as node, service, etc. This is needed to avoid conflicting writes.
1968      The client must send the version number along with the modified specification when updating these objects.
1969      This approach ensures safe concurrency and determinism in that the change on the object
1970      may not be applied if the version number has changed from the last read. In other words,
1971      if two update requests specify the same base version, only one of the requests can succeed.
1972      As a result, two separate update requests that happen at the same time will not
1973      unintentionally overwrite each other.
1974    type: "object"
1975    properties:
1976      Index:
1977        type: "integer"
1978        format: "uint64"
1979        example: 373531
1980
1981  NodeSpec:
1982    type: "object"
1983    properties:
1984      Name:
1985        description: "Name for the node."
1986        type: "string"
1987        example: "my-node"
1988      Labels:
1989        description: "User-defined key/value metadata."
1990        type: "object"
1991        additionalProperties:
1992          type: "string"
1993      Role:
1994        description: "Role of the node."
1995        type: "string"
1996        enum:
1997          - "worker"
1998          - "manager"
1999        example: "manager"
2000      Availability:
2001        description: "Availability of the node."
2002        type: "string"
2003        enum:
2004          - "active"
2005          - "pause"
2006          - "drain"
2007        example: "active"
2008    example:
2009      Availability: "active"
2010      Name: "node-name"
2011      Role: "manager"
2012      Labels:
2013        foo: "bar"
2014
2015  Node:
2016    type: "object"
2017    properties:
2018      ID:
2019        type: "string"
2020        example: "24ifsmvkjbyhk"
2021      Version:
2022        $ref: "#/definitions/ObjectVersion"
2023      CreatedAt:
2024        description: |
2025          Date and time at which the node was added to the swarm in
2026          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
2027        type: "string"
2028        format: "dateTime"
2029        example: "2016-08-18T10:44:24.496525531Z"
2030      UpdatedAt:
2031        description: |
2032          Date and time at which the node was last updated in
2033          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
2034        type: "string"
2035        format: "dateTime"
2036        example: "2017-08-09T07:09:37.632105588Z"
2037      Spec:
2038        $ref: "#/definitions/NodeSpec"
2039      Description:
2040        $ref: "#/definitions/NodeDescription"
2041      Status:
2042        $ref: "#/definitions/NodeStatus"
2043      ManagerStatus:
2044        $ref: "#/definitions/ManagerStatus"
2045
2046  NodeDescription:
2047    description: |
2048      NodeDescription encapsulates the properties of the Node as reported by the
2049      agent.
2050    type: "object"
2051    properties:
2052      Hostname:
2053        type: "string"
2054        example: "bf3067039e47"
2055      Platform:
2056        $ref: "#/definitions/Platform"
2057      Resources:
2058        $ref: "#/definitions/ResourceObject"
2059      Engine:
2060        $ref: "#/definitions/EngineDescription"
2061      TLSInfo:
2062        $ref: "#/definitions/TLSInfo"
2063
2064  Platform:
2065    description: |
2066      Platform represents the platform (Arch/OS).
2067    type: "object"
2068    properties:
2069      Architecture:
2070        description: |
2071          Architecture represents the hardware architecture (for example,
2072          `x86_64`).
2073        type: "string"
2074        example: "x86_64"
2075      OS:
2076        description: |
2077          OS represents the Operating System (for example, `linux` or `windows`).
2078        type: "string"
2079        example: "linux"
2080
2081  EngineDescription:
2082    description: "EngineDescription provides information about an engine."
2083    type: "object"
2084    properties:
2085      EngineVersion:
2086        type: "string"
2087        example: "17.06.0"
2088      Labels:
2089        type: "object"
2090        additionalProperties:
2091          type: "string"
2092        example:
2093          foo: "bar"
2094      Plugins:
2095        type: "array"
2096        items:
2097          type: "object"
2098          properties:
2099            Type:
2100              type: "string"
2101            Name:
2102              type: "string"
2103        example:
2104          - Type: "Log"
2105            Name: "awslogs"
2106          - Type: "Log"
2107            Name: "fluentd"
2108          - Type: "Log"
2109            Name: "gcplogs"
2110          - Type: "Log"
2111            Name: "gelf"
2112          - Type: "Log"
2113            Name: "journald"
2114          - Type: "Log"
2115            Name: "json-file"
2116          - Type: "Log"
2117            Name: "logentries"
2118          - Type: "Log"
2119            Name: "splunk"
2120          - Type: "Log"
2121            Name: "syslog"
2122          - Type: "Network"
2123            Name: "bridge"
2124          - Type: "Network"
2125            Name: "host"
2126          - Type: "Network"
2127            Name: "ipvlan"
2128          - Type: "Network"
2129            Name: "macvlan"
2130          - Type: "Network"
2131            Name: "null"
2132          - Type: "Network"
2133            Name: "overlay"
2134          - Type: "Volume"
2135            Name: "local"
2136          - Type: "Volume"
2137            Name: "localhost:5000/vieux/sshfs:latest"
2138          - Type: "Volume"
2139            Name: "vieux/sshfs:latest"
2140
2141  TLSInfo:
2142    description: "Information about the issuer of leaf TLS certificates and the trusted root CA certificate"
2143    type: "object"
2144    properties:
2145      TrustRoot:
2146        description: "The root CA certificate(s) that are used to validate leaf TLS certificates"
2147        type: "string"
2148      CertIssuerSubject:
2149        description: "The base64-url-safe-encoded raw subject bytes of the issuer"
2150        type: "string"
2151      CertIssuerPublicKey:
2152        description: "The base64-url-safe-encoded raw public key bytes of the issuer"
2153        type: "string"
2154    example:
2155      TrustRoot: |
2156        -----BEGIN CERTIFICATE-----
2157        MIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw
2158        EzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0
2159        MzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH
2160        A0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf
2161        3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB
2162        Af8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO
2163        PQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz
2164        pxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H
2165        -----END CERTIFICATE-----
2166      CertIssuerSubject: "MBMxETAPBgNVBAMTCHN3YXJtLWNh"
2167      CertIssuerPublicKey: "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A=="
2168
2169  NodeStatus:
2170    description: |
2171      NodeStatus represents the status of a node.
2172
2173      It provides the current status of the node, as seen by the manager.
2174    type: "object"
2175    properties:
2176      State:
2177        $ref: "#/definitions/NodeState"
2178      Message:
2179        type: "string"
2180        example: ""
2181      Addr:
2182        description: "IP address of the node."
2183        type: "string"
2184        example: "172.17.0.2"
2185
2186  NodeState:
2187    description: "NodeState represents the state of a node."
2188    type: "string"
2189    enum:
2190      - "unknown"
2191      - "down"
2192      - "ready"
2193      - "disconnected"
2194    example: "ready"
2195
2196  ManagerStatus:
2197    description: |
2198      ManagerStatus represents the status of a manager.
2199
2200      It provides the current status of a node's manager component, if the node
2201      is a manager.
2202    x-nullable: true
2203    type: "object"
2204    properties:
2205      Leader:
2206        type: "boolean"
2207        default: false
2208        example: true
2209      Reachability:
2210        $ref: "#/definitions/Reachability"
2211      Addr:
2212        description: |
2213          The IP address and port at which the manager is reachable.
2214        type: "string"
2215        example: "10.0.0.46:2377"
2216
2217  Reachability:
2218    description: "Reachability represents the reachability of a node."
2219    type: "string"
2220    enum:
2221      - "unknown"
2222      - "unreachable"
2223      - "reachable"
2224    example: "reachable"
2225
2226  SwarmSpec:
2227    description: "User modifiable swarm configuration."
2228    type: "object"
2229    properties:
2230      Name:
2231        description: "Name of the swarm."
2232        type: "string"
2233        example: "default"
2234      Labels:
2235        description: "User-defined key/value metadata."
2236        type: "object"
2237        additionalProperties:
2238          type: "string"
2239        example:
2240          com.example.corp.type: "production"
2241          com.example.corp.department: "engineering"
2242      Orchestration:
2243        description: "Orchestration configuration."
2244        type: "object"
2245        x-nullable: true
2246        properties:
2247          TaskHistoryRetentionLimit:
2248            description: "The number of historic tasks to keep per instance or node. If negative, never remove completed or failed tasks."
2249            type: "integer"
2250            format: "int64"
2251            example: 10
2252      Raft:
2253        description: "Raft configuration."
2254        type: "object"
2255        properties:
2256          SnapshotInterval:
2257            description: "The number of log entries between snapshots."
2258            type: "integer"
2259            format: "uint64"
2260            example: 10000
2261          KeepOldSnapshots:
2262            description: "The number of snapshots to keep beyond the current snapshot."
2263            type: "integer"
2264            format: "uint64"
2265          LogEntriesForSlowFollowers:
2266            description: "The number of log entries to keep around to sync up slow followers after a snapshot is created."
2267            type: "integer"
2268            format: "uint64"
2269            example: 500
2270          ElectionTick:
2271            description: |
2272              The number of ticks that a follower will wait for a message from the leader before becoming a candidate and starting an election. `ElectionTick` must be greater than `HeartbeatTick`.
2273
2274              A tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.
2275            type: "integer"
2276            example: 3
2277          HeartbeatTick:
2278            description: |
2279              The number of ticks between heartbeats. Every HeartbeatTick ticks, the leader will send a heartbeat to the followers.
2280
2281              A tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.
2282            type: "integer"
2283            example: 1
2284      Dispatcher:
2285        description: "Dispatcher configuration."
2286        type: "object"
2287        x-nullable: true
2288        properties:
2289          HeartbeatPeriod:
2290            description: "The delay for an agent to send a heartbeat to the dispatcher."
2291            type: "integer"
2292            format: "int64"
2293            example: 5000000000
2294      CAConfig:
2295        description: "CA configuration."
2296        type: "object"
2297        x-nullable: true
2298        properties:
2299          NodeCertExpiry:
2300            description: "The duration node certificates are issued for."
2301            type: "integer"
2302            format: "int64"
2303            example: 7776000000000000
2304          ExternalCAs:
2305            description: "Configuration for forwarding signing requests to an external certificate authority."
2306            type: "array"
2307            items:
2308              type: "object"
2309              properties:
2310                Protocol:
2311                  description: "Protocol for communication with the external CA (currently only `cfssl` is supported)."
2312                  type: "string"
2313                  enum:
2314                    - "cfssl"
2315                  default: "cfssl"
2316                URL:
2317                  description: "URL where certificate signing requests should be sent."
2318                  type: "string"
2319                Options:
2320                  description: "An object with key/value pairs that are interpreted as protocol-specific options for the external CA driver."
2321                  type: "object"
2322                  additionalProperties:
2323                    type: "string"
2324                CACert:
2325                  description: "The root CA certificate (in PEM format) this external CA uses to issue TLS certificates (assumed to be to the current swarm root CA certificate if not provided)."
2326                  type: "string"
2327          SigningCACert:
2328            description: "The desired signing CA certificate for all swarm node TLS leaf certificates, in PEM format."
2329            type: "string"
2330          SigningCAKey:
2331            description: "The desired signing CA key for all swarm node TLS leaf certificates, in PEM format."
2332            type: "string"
2333          ForceRotate:
2334            description: "An integer whose purpose is to force swarm to generate a new signing CA certificate and key, if none have been specified in `SigningCACert` and `SigningCAKey`"
2335            format: "uint64"
2336            type: "integer"
2337      EncryptionConfig:
2338        description: "Parameters related to encryption-at-rest."
2339        type: "object"
2340        properties:
2341          AutoLockManagers:
2342            description: "If set, generate a key and use it to lock data stored on the managers."
2343            type: "boolean"
2344            example: false
2345      TaskDefaults:
2346        description: "Defaults for creating tasks in this cluster."
2347        type: "object"
2348        properties:
2349          LogDriver:
2350            description: |
2351              The log driver to use for tasks created in the orchestrator if
2352              unspecified by a service.
2353
2354              Updating this value only affects new tasks. Existing tasks continue
2355              to use their previously configured log driver until recreated.
2356            type: "object"
2357            properties:
2358              Name:
2359                description: |
2360                  The log driver to use as a default for new tasks.
2361                type: "string"
2362                example: "json-file"
2363              Options:
2364                description: |
2365                  Driver-specific options for the selectd log driver, specified
2366                  as key/value pairs.
2367                type: "object"
2368                additionalProperties:
2369                  type: "string"
2370                example:
2371                  "max-file": "10"
2372                  "max-size": "100m"
2373
2374  # The Swarm information for `GET /info`. It is the same as `GET /swarm`, but
2375  # without `JoinTokens`.
2376  ClusterInfo:
2377    description: |
2378      ClusterInfo represents information about the swarm as is returned by the
2379      "/info" endpoint. Join-tokens are not included.
2380    x-nullable: true
2381    type: "object"
2382    properties:
2383      ID:
2384        description: "The ID of the swarm."
2385        type: "string"
2386        example: "abajmipo7b4xz5ip2nrla6b11"
2387      Version:
2388        $ref: "#/definitions/ObjectVersion"
2389      CreatedAt:
2390        description: |
2391          Date and time at which the swarm was initialised in
2392          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
2393        type: "string"
2394        format: "dateTime"
2395        example: "2016-08-18T10:44:24.496525531Z"
2396      UpdatedAt:
2397        description: |
2398          Date and time at which the swarm was last updated in
2399          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
2400        type: "string"
2401        format: "dateTime"
2402        example: "2017-08-09T07:09:37.632105588Z"
2403      Spec:
2404        $ref: "#/definitions/SwarmSpec"
2405      TLSInfo:
2406        $ref: "#/definitions/TLSInfo"
2407      RootRotationInProgress:
2408        description: "Whether there is currently a root CA rotation in progress for the swarm"
2409        type: "boolean"
2410        example: false
2411
2412  JoinTokens:
2413    description: |
2414      JoinTokens contains the tokens workers and managers need to join the swarm.
2415    type: "object"
2416    properties:
2417      Worker:
2418        description: |
2419          The token workers can use to join the swarm.
2420        type: "string"
2421        example: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx"
2422      Manager:
2423        description: |
2424          The token managers can use to join the swarm.
2425        type: "string"
2426        example: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2"
2427
2428  Swarm:
2429    type: "object"
2430    allOf:
2431      - $ref: "#/definitions/ClusterInfo"
2432      - type: "object"
2433        properties:
2434          JoinTokens:
2435            $ref: "#/definitions/JoinTokens"
2436
2437  TaskSpec:
2438    description: "User modifiable task configuration."
2439    type: "object"
2440    properties:
2441      PluginSpec:
2442        type: "object"
2443        description: "Invalid when specified with `ContainerSpec`. *(Experimental release only.)*"
2444        properties:
2445          Name:
2446            description: "The name or 'alias' to use for the plugin."
2447            type: "string"
2448          Remote:
2449            description: "The plugin image reference to use."
2450            type: "string"
2451          Disabled:
2452            description: "Disable the plugin once scheduled."
2453            type: "boolean"
2454          PluginPrivilege:
2455            type: "array"
2456            items:
2457              description: "Describes a permission accepted by the user upon installing the plugin."
2458              type: "object"
2459              properties:
2460                Name:
2461                  type: "string"
2462                Description:
2463                  type: "string"
2464                Value:
2465                  type: "array"
2466                  items:
2467                    type: "string"
2468      ContainerSpec:
2469        type: "object"
2470        description: "Invalid when specified with `PluginSpec`."
2471        properties:
2472          Image:
2473            description: "The image name to use for the container"
2474            type: "string"
2475          Labels:
2476            description: "User-defined key/value data."
2477            type: "object"
2478            additionalProperties:
2479              type: "string"
2480          Command:
2481            description: "The command to be run in the image."
2482            type: "array"
2483            items:
2484              type: "string"
2485          Args:
2486            description: "Arguments to the command."
2487            type: "array"
2488            items:
2489              type: "string"
2490          Hostname:
2491            description: "The hostname to use for the container, as a valid RFC 1123 hostname."
2492            type: "string"
2493          Env:
2494            description: "A list of environment variables in the form `VAR=value`."
2495            type: "array"
2496            items:
2497              type: "string"
2498          Dir:
2499            description: "The working directory for commands to run in."
2500            type: "string"
2501          User:
2502            description: "The user inside the container."
2503            type: "string"
2504          Groups:
2505            type: "array"
2506            description: "A list of additional groups that the container process will run as."
2507            items:
2508              type: "string"
2509          Privileges:
2510            type: "object"
2511            description: "Security options for the container"
2512            properties:
2513              CredentialSpec:
2514                type: "object"
2515                description: "CredentialSpec for managed service account (Windows only)"
2516                properties:
2517                  File:
2518                    type: "string"
2519                    description: |
2520                      Load credential spec from this file. The file is read by the daemon, and must be present in the
2521                      `CredentialSpecs` subdirectory in the docker data directory, which defaults to
2522                      `C:\ProgramData\Docker\` on Windows.
2523
2524                      For example, specifying `spec.json` loads `C:\ProgramData\Docker\CredentialSpecs\spec.json`.
2525
2526                      <p><br /></p>
2527
2528                      > **Note**: `CredentialSpec.File` and `CredentialSpec.Registry` are mutually exclusive.
2529                  Registry:
2530                    type: "string"
2531                    description: |
2532                      Load credential spec from this value in the Windows registry. The specified registry value must be
2533                      located in:
2534
2535                      `HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Containers\CredentialSpecs`
2536
2537                      <p><br /></p>
2538
2539
2540                      > **Note**: `CredentialSpec.File` and `CredentialSpec.Registry` are mutually exclusive.
2541              SELinuxContext:
2542                type: "object"
2543                description: "SELinux labels of the container"
2544                properties:
2545                  Disable:
2546                    type: "boolean"
2547                    description: "Disable SELinux"
2548                  User:
2549                    type: "string"
2550                    description: "SELinux user label"
2551                  Role:
2552                    type: "string"
2553                    description: "SELinux role label"
2554                  Type:
2555                    type: "string"
2556                    description: "SELinux type label"
2557                  Level:
2558                    type: "string"
2559                    description: "SELinux level label"
2560          TTY:
2561            description: "Whether a pseudo-TTY should be allocated."
2562            type: "boolean"
2563          OpenStdin:
2564            description: "Open `stdin`"
2565            type: "boolean"
2566          ReadOnly:
2567            description: "Mount the container's root filesystem as read only."
2568            type: "boolean"
2569          Mounts:
2570            description: "Specification for mounts to be added to containers created as part of the service."
2571            type: "array"
2572            items:
2573              $ref: "#/definitions/Mount"
2574          StopSignal:
2575            description: "Signal to stop the container."
2576            type: "string"
2577          StopGracePeriod:
2578            description: "Amount of time to wait for the container to terminate before forcefully killing it."
2579            type: "integer"
2580            format: "int64"
2581          HealthCheck:
2582            $ref: "#/definitions/HealthConfig"
2583          Hosts:
2584            type: "array"
2585            description: |
2586              A list of hostname/IP mappings to add to the container's `hosts`
2587              file. The format of extra hosts is specified in the
2588              [hosts(5)](http://man7.org/linux/man-pages/man5/hosts.5.html)
2589              man page:
2590
2591                  IP_address canonical_hostname [aliases...]
2592            items:
2593              type: "string"
2594          DNSConfig:
2595            description: "Specification for DNS related configurations in resolver configuration file (`resolv.conf`)."
2596            type: "object"
2597            properties:
2598              Nameservers:
2599                description: "The IP addresses of the name servers."
2600                type: "array"
2601                items:
2602                  type: "string"
2603              Search:
2604                description: "A search list for host-name lookup."
2605                type: "array"
2606                items:
2607                  type: "string"
2608              Options:
2609                description: "A list of internal resolver variables to be modified (e.g., `debug`, `ndots:3`, etc.)."
2610                type: "array"
2611                items:
2612                  type: "string"
2613          Secrets:
2614            description: "Secrets contains references to zero or more secrets that will be exposed to the service."
2615            type: "array"
2616            items:
2617              type: "object"
2618              properties:
2619                File:
2620                  description: "File represents a specific target that is backed by a file."
2621                  type: "object"
2622                  properties:
2623                    Name:
2624                      description: "Name represents the final filename in the filesystem."
2625                      type: "string"
2626                    UID:
2627                      description: "UID represents the file UID."
2628                      type: "string"
2629                    GID:
2630                      description: "GID represents the file GID."
2631                      type: "string"
2632                    Mode:
2633                      description: "Mode represents the FileMode of the file."
2634                      type: "integer"
2635                      format: "uint32"
2636                SecretID:
2637                  description: "SecretID represents the ID of the specific secret that we're referencing."
2638                  type: "string"
2639                SecretName:
2640                  description: |
2641                    SecretName is the name of the secret that this references, but this is just provided for
2642                    lookup/display purposes. The secret in the reference will be identified by its ID.
2643                  type: "string"
2644          Configs:
2645            description: "Configs contains references to zero or more configs that will be exposed to the service."
2646            type: "array"
2647            items:
2648              type: "object"
2649              properties:
2650                File:
2651                  description: "File represents a specific target that is backed by a file."
2652                  type: "object"
2653                  properties:
2654                    Name:
2655                      description: "Name represents the final filename in the filesystem."
2656                      type: "string"
2657                    UID:
2658                      description: "UID represents the file UID."
2659                      type: "string"
2660                    GID:
2661                      description: "GID represents the file GID."
2662                      type: "string"
2663                    Mode:
2664                      description: "Mode represents the FileMode of the file."
2665                      type: "integer"
2666                      format: "uint32"
2667                ConfigID:
2668                  description: "ConfigID represents the ID of the specific config that we're referencing."
2669                  type: "string"
2670                ConfigName:
2671                  description: |
2672                    ConfigName is the name of the config that this references, but this is just provided for
2673                    lookup/display purposes. The config in the reference will be identified by its ID.
2674                  type: "string"
2675
2676      Resources:
2677        description: "Resource requirements which apply to each individual container created as part of the service."
2678        type: "object"
2679        properties:
2680          Limits:
2681            description: "Define resources limits."
2682            $ref: "#/definitions/ResourceObject"
2683          Reservation:
2684            description: "Define resources reservation."
2685            $ref: "#/definitions/ResourceObject"
2686      RestartPolicy:
2687        description: "Specification for the restart policy which applies to containers created as part of this service."
2688        type: "object"
2689        properties:
2690          Condition:
2691            description: "Condition for restart."
2692            type: "string"
2693            enum:
2694              - "none"
2695              - "on-failure"
2696              - "any"
2697          Delay:
2698            description: "Delay between restart attempts."
2699            type: "integer"
2700            format: "int64"
2701          MaxAttempts:
2702            description: "Maximum attempts to restart a given container before giving up (default value is 0, which is ignored)."
2703            type: "integer"
2704            format: "int64"
2705            default: 0
2706          Window:
2707            description: "Windows is the time window used to evaluate the restart policy (default value is 0, which is unbounded)."
2708            type: "integer"
2709            format: "int64"
2710            default: 0
2711      Placement:
2712        type: "object"
2713        properties:
2714          Constraints:
2715            description: "An array of constraints."
2716            type: "array"
2717            items:
2718              type: "string"
2719            example:
2720              - "node.hostname!=node3.corp.example.com"
2721              - "node.role!=manager"
2722              - "node.labels.type==production"
2723          Preferences:
2724            description: "Preferences provide a way to make the scheduler aware of factors such as topology. They are provided in order from highest to lowest precedence."
2725            type: "array"
2726            items:
2727              type: "object"
2728              properties:
2729                Spread:
2730                  type: "object"
2731                  properties:
2732                    SpreadDescriptor:
2733                      description: "label descriptor, such as engine.labels.az"
2734                      type: "string"
2735            example:
2736              - Spread:
2737                  SpreadDescriptor: "node.labels.datacenter"
2738              - Spread:
2739                  SpreadDescriptor: "node.labels.rack"
2740          Platforms:
2741            description: |
2742              Platforms stores all the platforms that the service's image can
2743              run on. This field is used in the platform filter for scheduling.
2744              If empty, then the platform filter is off, meaning there are no
2745              scheduling restrictions.
2746            type: "array"
2747            items:
2748              $ref: "#/definitions/Platform"
2749      ForceUpdate:
2750        description: "A counter that triggers an update even if no relevant parameters have been changed."
2751        type: "integer"
2752      Runtime:
2753        description: "Runtime is the type of runtime specified for the task executor."
2754        type: "string"
2755      Networks:
2756        type: "array"
2757        items:
2758          type: "object"
2759          properties:
2760            Target:
2761              type: "string"
2762            Aliases:
2763              type: "array"
2764              items:
2765                type: "string"
2766      LogDriver:
2767        description: "Specifies the log driver to use for tasks created from this spec. If not present, the default one for the swarm will be used, finally falling back to the engine default if not specified."
2768        type: "object"
2769        properties:
2770          Name:
2771            type: "string"
2772          Options:
2773            type: "object"
2774            additionalProperties:
2775              type: "string"
2776
2777  TaskState:
2778    type: "string"
2779    enum:
2780      - "new"
2781      - "allocated"
2782      - "pending"
2783      - "assigned"
2784      - "accepted"
2785      - "preparing"
2786      - "ready"
2787      - "starting"
2788      - "running"
2789      - "complete"
2790      - "shutdown"
2791      - "failed"
2792      - "rejected"
2793
2794  Task:
2795    type: "object"
2796    properties:
2797      ID:
2798        description: "The ID of the task."
2799        type: "string"
2800      Version:
2801        $ref: "#/definitions/ObjectVersion"
2802      CreatedAt:
2803        type: "string"
2804        format: "dateTime"
2805      UpdatedAt:
2806        type: "string"
2807        format: "dateTime"
2808      Name:
2809        description: "Name of the task."
2810        type: "string"
2811      Labels:
2812        description: "User-defined key/value metadata."
2813        type: "object"
2814        additionalProperties:
2815          type: "string"
2816      Spec:
2817        $ref: "#/definitions/TaskSpec"
2818      ServiceID:
2819        description: "The ID of the service this task is part of."
2820        type: "string"
2821      Slot:
2822        type: "integer"
2823      NodeID:
2824        description: "The ID of the node that this task is on."
2825        type: "string"
2826      AssignedGenericResources:
2827        $ref: "#/definitions/GenericResources"
2828      Status:
2829        type: "object"
2830        properties:
2831          Timestamp:
2832            type: "string"
2833            format: "dateTime"
2834          State:
2835            $ref: "#/definitions/TaskState"
2836          Message:
2837            type: "string"
2838          Err:
2839            type: "string"
2840          ContainerStatus:
2841            type: "object"
2842            properties:
2843              ContainerID:
2844                type: "string"
2845              PID:
2846                type: "integer"
2847              ExitCode:
2848                type: "integer"
2849      DesiredState:
2850        $ref: "#/definitions/TaskState"
2851    example:
2852      ID: "0kzzo1i0y4jz6027t0k7aezc7"
2853      Version:
2854        Index: 71
2855      CreatedAt: "2016-06-07T21:07:31.171892745Z"
2856      UpdatedAt: "2016-06-07T21:07:31.376370513Z"
2857      Spec:
2858        ContainerSpec:
2859          Image: "redis"
2860        Resources:
2861          Limits: {}
2862          Reservations: {}
2863        RestartPolicy:
2864          Condition: "any"
2865          MaxAttempts: 0
2866        Placement: {}
2867      ServiceID: "9mnpnzenvg8p8tdbtq4wvbkcz"
2868      Slot: 1
2869      NodeID: "60gvrl6tm78dmak4yl7srz94v"
2870      Status:
2871        Timestamp: "2016-06-07T21:07:31.290032978Z"
2872        State: "running"
2873        Message: "started"
2874        ContainerStatus:
2875          ContainerID: "e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035"
2876          PID: 677
2877      DesiredState: "running"
2878      NetworksAttachments:
2879        - Network:
2880            ID: "4qvuz4ko70xaltuqbt8956gd1"
2881            Version:
2882              Index: 18
2883            CreatedAt: "2016-06-07T20:31:11.912919752Z"
2884            UpdatedAt: "2016-06-07T21:07:29.955277358Z"
2885            Spec:
2886              Name: "ingress"
2887              Labels:
2888                com.docker.swarm.internal: "true"
2889              DriverConfiguration: {}
2890              IPAMOptions:
2891                Driver: {}
2892                Configs:
2893                  - Subnet: "10.255.0.0/16"
2894                    Gateway: "10.255.0.1"
2895            DriverState:
2896              Name: "overlay"
2897              Options:
2898                com.docker.network.driver.overlay.vxlanid_list: "256"
2899            IPAMOptions:
2900              Driver:
2901                Name: "default"
2902              Configs:
2903                - Subnet: "10.255.0.0/16"
2904                  Gateway: "10.255.0.1"
2905          Addresses:
2906            - "10.255.0.10/16"
2907      AssignedGenericResources:
2908        - DiscreteResourceSpec:
2909            Kind: "SSD"
2910            Value: 3
2911        - NamedResourceSpec:
2912            Kind: "GPU"
2913            Value: "UUID1"
2914        - NamedResourceSpec:
2915            Kind: "GPU"
2916            Value: "UUID2"
2917
2918  ServiceSpec:
2919    description: "User modifiable configuration for a service."
2920    properties:
2921      Name:
2922        description: "Name of the service."
2923        type: "string"
2924      Labels:
2925        description: "User-defined key/value metadata."
2926        type: "object"
2927        additionalProperties:
2928          type: "string"
2929      TaskTemplate:
2930        $ref: "#/definitions/TaskSpec"
2931      Mode:
2932        description: "Scheduling mode for the service."
2933        type: "object"
2934        properties:
2935          Replicated:
2936            type: "object"
2937            properties:
2938              Replicas:
2939                type: "integer"
2940                format: "int64"
2941          Global:
2942            type: "object"
2943      UpdateConfig:
2944        description: "Specification for the update strategy of the service."
2945        type: "object"
2946        properties:
2947          Parallelism:
2948            description: "Maximum number of tasks to be updated in one iteration (0 means unlimited parallelism)."
2949            type: "integer"
2950            format: "int64"
2951          Delay:
2952            description: "Amount of time between updates, in nanoseconds."
2953            type: "integer"
2954            format: "int64"
2955          FailureAction:
2956            description: "Action to take if an updated task fails to run, or stops running during the update."
2957            type: "string"
2958            enum:
2959              - "continue"
2960              - "pause"
2961              - "rollback"
2962          Monitor:
2963            description: "Amount of time to monitor each updated task for failures, in nanoseconds."
2964            type: "integer"
2965            format: "int64"
2966          MaxFailureRatio:
2967            description: "The fraction of tasks that may fail during an update before the failure action is invoked, specified as a floating point number between 0 and 1."
2968            type: "number"
2969            default: 0
2970          Order:
2971            description: "The order of operations when rolling out an updated task. Either the old task is shut down before the new task is started, or the new task is started before the old task is shut down."
2972            type: "string"
2973            enum:
2974              - "stop-first"
2975              - "start-first"
2976      RollbackConfig:
2977        description: "Specification for the rollback strategy of the service."
2978        type: "object"
2979        properties:
2980          Parallelism:
2981            description: "Maximum number of tasks to be rolled back in one iteration (0 means unlimited parallelism)."
2982            type: "integer"
2983            format: "int64"
2984          Delay:
2985            description: "Amount of time between rollback iterations, in nanoseconds."
2986            type: "integer"
2987            format: "int64"
2988          FailureAction:
2989            description: "Action to take if an rolled back task fails to run, or stops running during the rollback."
2990            type: "string"
2991            enum:
2992              - "continue"
2993              - "pause"
2994          Monitor:
2995            description: "Amount of time to monitor each rolled back task for failures, in nanoseconds."
2996            type: "integer"
2997            format: "int64"
2998          MaxFailureRatio:
2999            description: "The fraction of tasks that may fail during a rollback before the failure action is invoked, specified as a floating point number between 0 and 1."
3000            type: "number"
3001            default: 0
3002          Order:
3003            description: "The order of operations when rolling back a task. Either the old task is shut down before the new task is started, or the new task is started before the old task is shut down."
3004            type: "string"
3005            enum:
3006              - "stop-first"
3007              - "start-first"
3008      Networks:
3009        description: "Array of network names or IDs to attach the service to."
3010        type: "array"
3011        items:
3012          type: "object"
3013          properties:
3014            Target:
3015              type: "string"
3016            Aliases:
3017              type: "array"
3018              items:
3019                type: "string"
3020      EndpointSpec:
3021        $ref: "#/definitions/EndpointSpec"
3022
3023  EndpointPortConfig:
3024    type: "object"
3025    properties:
3026      Name:
3027        type: "string"
3028      Protocol:
3029        type: "string"
3030        enum:
3031          - "tcp"
3032          - "udp"
3033      TargetPort:
3034        description: "The port inside the container."
3035        type: "integer"
3036      PublishedPort:
3037        description: "The port on the swarm hosts."
3038        type: "integer"
3039
3040  EndpointSpec:
3041    description: "Properties that can be configured to access and load balance a service."
3042    type: "object"
3043    properties:
3044      Mode:
3045        description: "The mode of resolution to use for internal load balancing
3046      between tasks."
3047        type: "string"
3048        enum:
3049          - "vip"
3050          - "dnsrr"
3051        default: "vip"
3052      Ports:
3053        description: "List of exposed ports that this service is accessible on from the outside. Ports can only be provided if `vip` resolution mode is used."
3054        type: "array"
3055        items:
3056          $ref: "#/definitions/EndpointPortConfig"
3057
3058  Service:
3059    type: "object"
3060    properties:
3061      ID:
3062        type: "string"
3063      Version:
3064        $ref: "#/definitions/ObjectVersion"
3065      CreatedAt:
3066        type: "string"
3067        format: "dateTime"
3068      UpdatedAt:
3069        type: "string"
3070        format: "dateTime"
3071      Spec:
3072        $ref: "#/definitions/ServiceSpec"
3073      Endpoint:
3074        type: "object"
3075        properties:
3076          Spec:
3077            $ref: "#/definitions/EndpointSpec"
3078          Ports:
3079            type: "array"
3080            items:
3081              $ref: "#/definitions/EndpointPortConfig"
3082          VirtualIPs:
3083            type: "array"
3084            items:
3085              type: "object"
3086              properties:
3087                NetworkID:
3088                  type: "string"
3089                Addr:
3090                  type: "string"
3091      UpdateStatus:
3092        description: "The status of a service update."
3093        type: "object"
3094        properties:
3095          State:
3096            type: "string"
3097            enum:
3098              - "updating"
3099              - "paused"
3100              - "completed"
3101          StartedAt:
3102            type: "string"
3103            format: "dateTime"
3104          CompletedAt:
3105            type: "string"
3106            format: "dateTime"
3107          Message:
3108            type: "string"
3109    example:
3110      ID: "9mnpnzenvg8p8tdbtq4wvbkcz"
3111      Version:
3112        Index: 19
3113      CreatedAt: "2016-06-07T21:05:51.880065305Z"
3114      UpdatedAt: "2016-06-07T21:07:29.962229872Z"
3115      Spec:
3116        Name: "hopeful_cori"
3117        TaskTemplate:
3118          ContainerSpec:
3119            Image: "redis"
3120          Resources:
3121            Limits: {}
3122            Reservations: {}
3123          RestartPolicy:
3124            Condition: "any"
3125            MaxAttempts: 0
3126          Placement: {}
3127          ForceUpdate: 0
3128        Mode:
3129          Replicated:
3130            Replicas: 1
3131        UpdateConfig:
3132          Parallelism: 1
3133          Delay: 1000000000
3134          FailureAction: "pause"
3135          Monitor: 15000000000
3136          MaxFailureRatio: 0.15
3137        RollbackConfig:
3138          Parallelism: 1
3139          Delay: 1000000000
3140          FailureAction: "pause"
3141          Monitor: 15000000000
3142          MaxFailureRatio: 0.15
3143        EndpointSpec:
3144          Mode: "vip"
3145          Ports:
3146            -
3147              Protocol: "tcp"
3148              TargetPort: 6379
3149              PublishedPort: 30001
3150      Endpoint:
3151        Spec:
3152          Mode: "vip"
3153          Ports:
3154            -
3155              Protocol: "tcp"
3156              TargetPort: 6379
3157              PublishedPort: 30001
3158        Ports:
3159          -
3160            Protocol: "tcp"
3161            TargetPort: 6379
3162            PublishedPort: 30001
3163        VirtualIPs:
3164          -
3165            NetworkID: "4qvuz4ko70xaltuqbt8956gd1"
3166            Addr: "10.255.0.2/16"
3167          -
3168            NetworkID: "4qvuz4ko70xaltuqbt8956gd1"
3169            Addr: "10.255.0.3/16"
3170
3171  ImageDeleteResponseItem:
3172    type: "object"
3173    properties:
3174      Untagged:
3175        description: "The image ID of an image that was untagged"
3176        type: "string"
3177      Deleted:
3178        description: "The image ID of an image that was deleted"
3179        type: "string"
3180
3181  ServiceUpdateResponse:
3182    type: "object"
3183    properties:
3184      Warnings:
3185        description: "Optional warning messages"
3186        type: "array"
3187        items:
3188          type: "string"
3189    example:
3190      Warning: "unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found"
3191
3192  ContainerSummary:
3193    type: "array"
3194    items:
3195      type: "object"
3196      properties:
3197        Id:
3198          description: "The ID of this container"
3199          type: "string"
3200          x-go-name: "ID"
3201        Names:
3202          description: "The names that this container has been given"
3203          type: "array"
3204          items:
3205            type: "string"
3206        Image:
3207          description: "The name of the image used when creating this container"
3208          type: "string"
3209        ImageID:
3210          description: "The ID of the image that this container was created from"
3211          type: "string"
3212        Command:
3213          description: "Command to run when starting the container"
3214          type: "string"
3215        Created:
3216          description: "When the container was created"
3217          type: "integer"
3218          format: "int64"
3219        Ports:
3220          description: "The ports exposed by this container"
3221          type: "array"
3222          items:
3223            $ref: "#/definitions/Port"
3224        SizeRw:
3225          description: "The size of files that have been created or changed by this container"
3226          type: "integer"
3227          format: "int64"
3228        SizeRootFs:
3229          description: "The total size of all the files in this container"
3230          type: "integer"
3231          format: "int64"
3232        Labels:
3233          description: "User-defined key/value metadata."
3234          type: "object"
3235          additionalProperties:
3236            type: "string"
3237        State:
3238          description: "The state of this container (e.g. `Exited`)"
3239          type: "string"
3240        Status:
3241          description: "Additional human-readable status of this container (e.g. `Exit 0`)"
3242          type: "string"
3243        HostConfig:
3244          type: "object"
3245          properties:
3246            NetworkMode:
3247              type: "string"
3248        NetworkSettings:
3249          description: "A summary of the container's network settings"
3250          type: "object"
3251          properties:
3252            Networks:
3253              type: "object"
3254              additionalProperties:
3255                $ref: "#/definitions/EndpointSettings"
3256        Mounts:
3257          type: "array"
3258          items:
3259            $ref: "#/definitions/Mount"
3260
3261  Driver:
3262    description: "Driver represents a driver (network, logging, secrets)."
3263    type: "object"
3264    required: [Name]
3265    properties:
3266      Name:
3267        description: "Name of the driver."
3268        type: "string"
3269        x-nullable: false
3270        example: "some-driver"
3271      Options:
3272        description: "Key/value map of driver-specific options."
3273        type: "object"
3274        x-nullable: false
3275        additionalProperties:
3276          type: "string"
3277        example:
3278          OptionA: "value for driver-specific option A"
3279          OptionB: "value for driver-specific option B"
3280
3281  SecretSpec:
3282    type: "object"
3283    properties:
3284      Name:
3285        description: "User-defined name of the secret."
3286        type: "string"
3287      Labels:
3288        description: "User-defined key/value metadata."
3289        type: "object"
3290        additionalProperties:
3291          type: "string"
3292        example:
3293          com.example.some-label: "some-value"
3294          com.example.some-other-label: "some-other-value"
3295      Data:
3296        description: |
3297          Base64-url-safe-encoded ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-3.2))
3298          data to store as secret.
3299
3300          This field is only used to _create_ a secret, and is not returned by
3301          other endpoints.
3302        type: "string"
3303        example: ""
3304      Driver:
3305        description: "Name of the secrets driver used to fetch the secret's value from an external secret store"
3306        $ref: "#/definitions/Driver"
3307
3308  Secret:
3309    type: "object"
3310    properties:
3311      ID:
3312        type: "string"
3313        example: "blt1owaxmitz71s9v5zh81zun"
3314      Version:
3315        $ref: "#/definitions/ObjectVersion"
3316      CreatedAt:
3317        type: "string"
3318        format: "dateTime"
3319        example: "2017-07-20T13:55:28.678958722Z"
3320      UpdatedAt:
3321        type: "string"
3322        format: "dateTime"
3323        example: "2017-07-20T13:55:28.678958722Z"
3324      Spec:
3325        $ref: "#/definitions/SecretSpec"
3326
3327  ConfigSpec:
3328    type: "object"
3329    properties:
3330      Name:
3331        description: "User-defined name of the config."
3332        type: "string"
3333      Labels:
3334        description: "User-defined key/value metadata."
3335        type: "object"
3336        additionalProperties:
3337          type: "string"
3338      Data:
3339        description: |
3340          Base64-url-safe-encoded ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-3.2))
3341          config data.
3342        type: "string"
3343
3344  Config:
3345    type: "object"
3346    properties:
3347      ID:
3348        type: "string"
3349      Version:
3350        $ref: "#/definitions/ObjectVersion"
3351      CreatedAt:
3352        type: "string"
3353        format: "dateTime"
3354      UpdatedAt:
3355        type: "string"
3356        format: "dateTime"
3357      Spec:
3358        $ref: "#/definitions/ConfigSpec"
3359
3360  SystemInfo:
3361    type: "object"
3362    properties:
3363      ID:
3364        description: |
3365          Unique identifier of the daemon.
3366
3367          <p><br /></p>
3368
3369          > **Note**: The format of the ID itself is not part of the API, and
3370          > should not be considered stable.
3371        type: "string"
3372        example: "7TRN:IPZB:QYBB:VPBQ:UMPP:KARE:6ZNR:XE6T:7EWV:PKF4:ZOJD:TPYS"
3373      Containers:
3374        description: "Total number of containers on the host."
3375        type: "integer"
3376        example: 14
3377      ContainersRunning:
3378        description: |
3379          Number of containers with status `"running"`.
3380        type: "integer"
3381        example: 3
3382      ContainersPaused:
3383        description: |
3384          Number of containers with status `"paused"`.
3385        type: "integer"
3386        example: 1
3387      ContainersStopped:
3388        description: |
3389          Number of containers with status `"stopped"`.
3390        type: "integer"
3391        example: 10
3392      Images:
3393        description: |
3394          Total number of images on the host.
3395
3396          Both _tagged_ and _untagged_ (dangling) images are counted.
3397        type: "integer"
3398        example: 508
3399      Driver:
3400        description: "Name of the storage driver in use."
3401        type: "string"
3402        example: "overlay2"
3403      DriverStatus:
3404        description: |
3405          Information specific to the storage driver, provided as
3406          "label" / "value" pairs.
3407
3408          This information is provided by the storage driver, and formatted
3409          in a way consistent with the output of `docker info` on the command
3410          line.
3411
3412          <p><br /></p>
3413
3414          > **Note**: The information returned in this field, including the
3415          > formatting of values and labels, should not be considered stable,
3416          > and may change without notice.
3417        type: "array"
3418        items:
3419          type: "array"
3420          items:
3421            type: "string"
3422        example:
3423          - ["Backing Filesystem", "extfs"]
3424          - ["Supports d_type", "true"]
3425          - ["Native Overlay Diff", "true"]
3426      DockerRootDir:
3427        description: |
3428          Root directory of persistent Docker state.
3429
3430          Defaults to `/var/lib/docker` on Linux, and `C:\ProgramData\docker`
3431          on Windows.
3432        type: "string"
3433        example: "/var/lib/docker"
3434      SystemStatus:
3435        description: |
3436          Status information about this node (standalone Swarm API).
3437
3438          <p><br /></p>
3439
3440          > **Note**: The information returned in this field is only propagated
3441          > by the Swarm standalone API, and is empty (`null`) when using
3442          > built-in swarm mode.
3443        type: "array"
3444        items:
3445          type: "array"
3446          items:
3447            type: "string"
3448        example:
3449          - ["Role", "primary"]
3450          - ["State", "Healthy"]
3451          - ["Strategy", "spread"]
3452          - ["Filters", "health, port, containerslots, dependency, affinity, constraint, whitelist"]
3453          - ["Nodes", "2"]
3454          - [" swarm-agent-00", "192.168.99.102:2376"]
3455          - ["  └ ID", "5CT6:FBGO:RVGO:CZL4:PB2K:WCYN:2JSV:KSHH:GGFW:QOPG:6J5Q:IOZ2|192.168.99.102:2376"]
3456          - ["  └ Status", "Healthy"]
3457          - ["  └ Containers", "1 (1 Running, 0 Paused, 0 Stopped)"]
3458          - ["  └ Reserved CPUs", "0 / 1"]
3459          - ["  └ Reserved Memory", "0 B / 1.021 GiB"]
3460          - ["  └ Labels", "kernelversion=4.4.74-boot2docker, operatingsystem=Boot2Docker 17.06.0-ce (TCL 7.2); HEAD : 0672754 - Thu Jun 29 00:06:31 UTC 2017, ostype=linux, provider=virtualbox, storagedriver=aufs"]
3461          - ["  └ UpdatedAt", "2017-08-09T10:03:46Z"]
3462          - ["  └ ServerVersion", "17.06.0-ce"]
3463          - [" swarm-manager", "192.168.99.101:2376"]
3464          - ["  └ ID", "TAMD:7LL3:SEF7:LW2W:4Q2X:WVFH:RTXX:JSYS:XY2P:JEHL:ZMJK:JGIW|192.168.99.101:2376"]
3465          - ["  └ Status", "Healthy"]
3466          - ["  └ Containers", "2 (2 Running, 0 Paused, 0 Stopped)"]
3467          - ["  └ Reserved CPUs", "0 / 1"]
3468          - ["  └ Reserved Memory", "0 B / 1.021 GiB"]
3469          - ["  └ Labels", "kernelversion=4.4.74-boot2docker, operatingsystem=Boot2Docker 17.06.0-ce (TCL 7.2); HEAD : 0672754 - Thu Jun 29 00:06:31 UTC 2017, ostype=linux, provider=virtualbox, storagedriver=aufs"]
3470          - ["  └ UpdatedAt", "2017-08-09T10:04:11Z"]
3471          - ["  └ ServerVersion", "17.06.0-ce"]
3472      Plugins:
3473        $ref: "#/definitions/PluginsInfo"
3474      MemoryLimit:
3475        description: "Indicates if the host has memory limit support enabled."
3476        type: "boolean"
3477        example: true
3478      SwapLimit:
3479        description: "Indicates if the host has memory swap limit support enabled."
3480        type: "boolean"
3481        example: true
3482      KernelMemory:
3483        description: "Indicates if the host has kernel memory limit support enabled."
3484        type: "boolean"
3485        example: true
3486      CpuCfsPeriod:
3487        description: "Indicates if CPU CFS(Completely Fair Scheduler) period is supported by the host."
3488        type: "boolean"
3489        example: true
3490      CpuCfsQuota:
3491        description: "Indicates if CPU CFS(Completely Fair Scheduler) quota is supported by the host."
3492        type: "boolean"
3493        example: true
3494      CPUShares:
3495        description: "Indicates if CPU Shares limiting is supported by the host."
3496        type: "boolean"
3497        example: true
3498      CPUSet:
3499        description: |
3500          Indicates if CPUsets (cpuset.cpus, cpuset.mems) are supported by the host.
3501
3502          See [cpuset(7)](https://www.kernel.org/doc/Documentation/cgroup-v1/cpusets.txt)
3503        type: "boolean"
3504        example: true
3505      OomKillDisable:
3506        description: "Indicates if OOM killer disable is supported on the host."
3507        type: "boolean"
3508      IPv4Forwarding:
3509        description: "Indicates IPv4 forwarding is enabled."
3510        type: "boolean"
3511        example: true
3512      BridgeNfIptables:
3513        description: "Indicates if `bridge-nf-call-iptables` is available on the host."
3514        type: "boolean"
3515        example: true
3516      BridgeNfIp6tables:
3517        description: "Indicates if `bridge-nf-call-ip6tables` is available on the host."
3518        type: "boolean"
3519        example: true
3520      Debug:
3521        description: "Indicates if the daemon is running in debug-mode / with debug-level logging enabled."
3522        type: "boolean"
3523        example: true
3524      NFd:
3525        description: |
3526          The total number of file Descriptors in use by the daemon process.
3527
3528          This information is only returned if debug-mode is enabled.
3529        type: "integer"
3530        example: 64
3531      NGoroutines:
3532        description: |
3533          The  number of goroutines that currently exist.
3534
3535          This information is only returned if debug-mode is enabled.
3536        type: "integer"
3537        example: 174
3538      SystemTime:
3539        description: |
3540          Current system-time in [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt)
3541          format with nano-seconds.
3542        type: "string"
3543        example: "2017-08-08T20:28:29.06202363Z"
3544      LoggingDriver:
3545        description: |
3546          The logging driver to use as a default for new containers.
3547        type: "string"
3548      CgroupDriver:
3549        description: |
3550          The driver to use for managing cgroups.
3551        type: "string"
3552        enum: ["cgroupfs", "systemd"]
3553        default: "cgroupfs"
3554        example: "cgroupfs"
3555      NEventsListener:
3556        description: "Number of event listeners subscribed."
3557        type: "integer"
3558        example: 30
3559      KernelVersion:
3560        description: |
3561          Kernel version of the host.
3562
3563          On Linux, this information obtained from `uname`. On Windows this
3564          information is queried from the <kbd>HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\</kbd>
3565          registry value, for example _"10.0 14393 (14393.1198.amd64fre.rs1_release_sec.170427-1353)"_.
3566        type: "string"
3567        example: "4.9.38-moby"
3568      OperatingSystem:
3569        description: |
3570          Name of the host's operating system, for example: "Ubuntu 16.04.2 LTS"
3571          or "Windows Server 2016 Datacenter"
3572        type: "string"
3573        example: "Alpine Linux v3.5"
3574      OSType:
3575        description: |
3576          Generic type of the operating system of the host, as returned by the
3577          Go runtime (`GOOS`).
3578
3579          Currently returned values are "linux" and "windows". A full list of
3580          possible values can be found in the [Go documentation](https://golang.org/doc/install/source#environment).
3581        type: "string"
3582        example: "linux"
3583      Architecture:
3584        description: |
3585          Hardware architecture of the host, as returned by the Go runtime
3586          (`GOARCH`).
3587
3588          A full list of possible values can be found in the [Go documentation](https://golang.org/doc/install/source#environment).
3589        type: "string"
3590        example: "x86_64"
3591      NCPU:
3592        description: |
3593          The number of logical CPUs usable by the daemon.
3594
3595          The number of available CPUs is checked by querying the operating
3596          system when the daemon starts. Changes to operating system CPU
3597          allocation after the daemon is started are not reflected.
3598        type: "integer"
3599        example: 4
3600      MemTotal:
3601        description: |
3602          Total amount of physical memory available on the host, in bytes.
3603        type: "integer"
3604        format: "int64"
3605        example: 2095882240
3606
3607      IndexServerAddress:
3608        description: |
3609          Address / URL of the index server that is used for image search,
3610          and as a default for user authentication for Docker Hub and Docker Cloud.
3611        default: "https://index.docker.io/v1/"
3612        type: "string"
3613        example: "https://index.docker.io/v1/"
3614      RegistryConfig:
3615        $ref: "#/definitions/RegistryServiceConfig"
3616      GenericResources:
3617        $ref: "#/definitions/GenericResources"
3618      HttpProxy:
3619        description: |
3620          HTTP-proxy configured for the daemon. This value is obtained from the
3621          [`HTTP_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html) environment variable.
3622
3623          Containers do not automatically inherit this configuration.
3624        type: "string"
3625        example: "http://user:pass@proxy.corp.example.com:8080"
3626      HttpsProxy:
3627        description: |
3628          HTTPS-proxy configured for the daemon. This value is obtained from the
3629          [`HTTPS_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html) environment variable.
3630
3631          Containers do not automatically inherit this configuration.
3632        type: "string"
3633        example: "https://user:pass@proxy.corp.example.com:4443"
3634      NoProxy:
3635        description: |
3636          Comma-separated list of domain extensions for which no proxy should be
3637          used. This value is obtained from the [`NO_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html)
3638          environment variable.
3639
3640          Containers do not automatically inherit this configuration.
3641        type: "string"
3642        example: "*.local, 169.254/16"
3643      Name:
3644        description: "Hostname of the host."
3645        type: "string"
3646        example: "node5.corp.example.com"
3647      Labels:
3648        description: |
3649          User-defined labels (key/value metadata) as set on the daemon.
3650
3651          <p><br /></p>
3652
3653          > **Note**: When part of a Swarm, nodes can both have _daemon_ labels,
3654          > set through the daemon configuration, and _node_ labels, set from a
3655          > manager node in the Swarm. Node labels are not included in this
3656          > field. Node labels can be retrieved using the `/nodes/(id)` endpoint
3657          > on a manager node in the Swarm.
3658        type: "array"
3659        items:
3660          type: "string"
3661        example: ["storage=ssd", "production"]
3662      ExperimentalBuild:
3663        description: |
3664          Indicates if experimental features are enabled on the daemon.
3665        type: "boolean"
3666        example: true
3667      ServerVersion:
3668        description: |
3669          Version string of the daemon.
3670
3671          > **Note**: the [standalone Swarm API](https://docs.docker.com/swarm/swarm-api/)
3672          > returns the Swarm version instead of the daemon  version, for example
3673          > `swarm/1.2.8`.
3674        type: "string"
3675        example: "17.06.0-ce"
3676      ClusterStore:
3677        description: |
3678          URL of the distributed storage backend.
3679
3680
3681          The storage backend is used for multihost networking (to store
3682          network and endpoint information) and by the node discovery mechanism.
3683
3684          <p><br /></p>
3685
3686          > **Note**: This field is only propagated when using standalone Swarm
3687          > mode, and overlay networking using an external k/v store. Overlay
3688          > networks with Swarm mode enabled use the built-in raft store, and
3689          > this field will be empty.
3690        type: "string"
3691        example: "consul://consul.corp.example.com:8600/some/path"
3692      ClusterAdvertise:
3693        description: |
3694          The network endpoint that the Engine advertises for the purpose of
3695          node discovery. ClusterAdvertise is a `host:port` combination on which
3696          the daemon is reachable by other hosts.
3697
3698          <p><br /></p>
3699
3700          > **Note**: This field is only propagated when using standalone Swarm
3701          > mode, and overlay networking using an external k/v store. Overlay
3702          > networks with Swarm mode enabled use the built-in raft store, and
3703          > this field will be empty.
3704        type: "string"
3705        example: "node5.corp.example.com:8000"
3706      Runtimes:
3707        description: |
3708          List of [OCI compliant](https://github.com/opencontainers/runtime-spec)
3709          runtimes configured on the daemon. Keys hold the "name" used to
3710          reference the runtime.
3711
3712          The Docker daemon relies on an OCI compliant runtime (invoked via the
3713          `containerd` daemon) as its interface to the Linux kernel namespaces,
3714          cgroups, and SELinux.
3715
3716          The default runtime is `runc`, and automatically configured. Additional
3717          runtimes can be configured by the user and will be listed here.
3718        type: "object"
3719        additionalProperties:
3720          $ref: "#/definitions/Runtime"
3721        default:
3722          runc:
3723            path: "docker-runc"
3724        example:
3725          runc:
3726            path: "docker-runc"
3727          runc-master:
3728            path: "/go/bin/runc"
3729          custom:
3730            path: "/usr/local/bin/my-oci-runtime"
3731            runtimeArgs: ["--debug", "--systemd-cgroup=false"]
3732      DefaultRuntime:
3733        description: |
3734          Name of the default OCI runtime that is used when starting containers.
3735
3736          The default can be overridden per-container at create time.
3737        type: "string"
3738        default: "runc"
3739        example: "runc"
3740      Swarm:
3741        $ref: "#/definitions/SwarmInfo"
3742      LiveRestoreEnabled:
3743        description: |
3744          Indicates if live restore is enabled.
3745
3746          If enabled, containers are kept running when the daemon is shutdown
3747          or upon daemon start if running containers are detected.
3748        type: "boolean"
3749        default: false
3750        example: false
3751      Isolation:
3752        description: |
3753          Represents the isolation technology to use as a default for containers.
3754          The supported values are platform-specific.
3755
3756          If no isolation value is specified on daemon start, on Windows client,
3757          the default is `hyperv`, and on Windows server, the default is `process`.
3758
3759          This option is currently not used on other platforms.
3760        default: "default"
3761        type: "string"
3762        enum:
3763          - "default"
3764          - "hyperv"
3765          - "process"
3766      InitBinary:
3767        description: |
3768          Name and, optional, path of the the `docker-init` binary.
3769
3770          If the path is omitted, the daemon searches the host's `$PATH` for the
3771          binary and uses the first result.
3772        type: "string"
3773        example: "docker-init"
3774      ContainerdCommit:
3775        $ref: "#/definitions/Commit"
3776      RuncCommit:
3777        $ref: "#/definitions/Commit"
3778      InitCommit:
3779        $ref: "#/definitions/Commit"
3780      SecurityOptions:
3781        description: |
3782          List of security features that are enabled on the daemon, such as
3783          apparmor, seccomp, SELinux, and user-namespaces (userns).
3784
3785          Additional configuration options for each security feature may
3786          be present, and are included as a comma-separated list of key/value
3787          pairs.
3788        type: "array"
3789        items:
3790          type: "string"
3791        example:
3792          - "name=apparmor"
3793          - "name=seccomp,profile=default"
3794          - "name=selinux"
3795          - "name=userns"
3796
3797
3798  # PluginsInfo is a temp struct holding Plugins name
3799  # registered with docker daemon. It is used by Info struct
3800  PluginsInfo:
3801    description: |
3802      Available plugins per type.
3803
3804      <p><br /></p>
3805
3806      > **Note**: Only unmanaged (V1) plugins are included in this list.
3807      > V1 plugins are "lazily" loaded, and are not returned in this list
3808      > if there is no resource using the plugin.
3809    type: "object"
3810    properties:
3811      Volume:
3812        description: "Names of available volume-drivers, and network-driver plugins."
3813        type: "array"
3814        items:
3815          type: "string"
3816        example: ["local"]
3817      Network:
3818        description: "Names of available network-drivers, and network-driver plugins."
3819        type: "array"
3820        items:
3821          type: "string"
3822        example: ["bridge", "host", "ipvlan", "macvlan", "null", "overlay"]
3823      Authorization:
3824        description: "Names of available authorization plugins."
3825        type: "array"
3826        items:
3827          type: "string"
3828        example: ["img-authz-plugin", "hbm"]
3829      Log:
3830        description: "Names of available logging-drivers, and logging-driver plugins."
3831        type: "array"
3832        items:
3833          type: "string"
3834        example: ["awslogs", "fluentd", "gcplogs", "gelf", "journald", "json-file", "logentries", "splunk", "syslog"]
3835
3836
3837  RegistryServiceConfig:
3838    description: |
3839      RegistryServiceConfig stores daemon registry services configuration.
3840    type: "object"
3841    x-nullable: true
3842    properties:
3843      AllowNondistributableArtifactsCIDRs:
3844        description: |
3845          List of IP ranges to which nondistributable artifacts can be pushed,
3846          using the CIDR syntax [RFC 4632](https://tools.ietf.org/html/4632).
3847
3848          Some images (for example, Windows base images) contain artifacts
3849          whose distribution is restricted by license. When these images are
3850          pushed to a registry, restricted artifacts are not included.
3851
3852          This configuration override this behavior, and enables the daemon to
3853          push nondistributable artifacts to all registries whose resolved IP
3854          address is within the subnet described by the CIDR syntax.
3855
3856          This option is useful when pushing images containing
3857          nondistributable artifacts to a registry on an air-gapped network so
3858          hosts on that network can pull the images without connecting to
3859          another server.
3860
3861          > **Warning**: Nondistributable artifacts typically have restrictions
3862          > on how and where they can be distributed and shared. Only use this
3863          > feature to push artifacts to private registries and ensure that you
3864          > are in compliance with any terms that cover redistributing
3865          > nondistributable artifacts.
3866
3867        type: "array"
3868        items:
3869          type: "string"
3870        example: ["::1/128", "127.0.0.0/8"]
3871      AllowNondistributableArtifactsHostnames:
3872        description: |
3873          List of registry hostnames to which nondistributable artifacts can be
3874          pushed, using the format `<hostname>[:<port>]` or `<IP address>[:<port>]`.
3875
3876          Some images (for example, Windows base images) contain artifacts
3877          whose distribution is restricted by license. When these images are
3878          pushed to a registry, restricted artifacts are not included.
3879
3880          This configuration override this behavior for the specified
3881          registries.
3882
3883          This option is useful when pushing images containing
3884          nondistributable artifacts to a registry on an air-gapped network so
3885          hosts on that network can pull the images without connecting to
3886          another server.
3887
3888          > **Warning**: Nondistributable artifacts typically have restrictions
3889          > on how and where they can be distributed and shared. Only use this
3890          > feature to push artifacts to private registries and ensure that you
3891          > are in compliance with any terms that cover redistributing
3892          > nondistributable artifacts.
3893        type: "array"
3894        items:
3895          type: "string"
3896        example: ["registry.internal.corp.example.com:3000", "[2001:db8:a0b:12f0::1]:443"]
3897      InsecureRegistryCIDRs:
3898        description: |
3899          List of IP ranges of insecure registries, using the CIDR syntax
3900          ([RFC 4632](https://tools.ietf.org/html/4632)). Insecure registries
3901          accept un-encrypted (HTTP) and/or untrusted (HTTPS with certificates
3902          from unknown CAs) communication.
3903
3904          By default, local registries (`127.0.0.0/8`) are configured as
3905          insecure. All other registries are secure. Communicating with an
3906          insecure registry is not possible if the daemon assumes that registry
3907          is secure.
3908
3909          This configuration override this behavior, insecure communication with
3910          registries whose resolved IP address is within the subnet described by
3911          the CIDR syntax.
3912
3913          Registries can also be marked insecure by hostname. Those registries
3914          are listed under `IndexConfigs` and have their `Secure` field set to
3915          `false`.
3916
3917          > **Warning**: Using this option can be useful when running a local
3918          > registry, but introduces security vulnerabilities. This option
3919          > should therefore ONLY be used for testing purposes. For increased
3920          > security, users should add their CA to their system's list of trusted
3921          > CAs instead of enabling this option.
3922        type: "array"
3923        items:
3924          type: "string"
3925        example: ["::1/128", "127.0.0.0/8"]
3926      IndexConfigs:
3927        type: "object"
3928        additionalProperties:
3929          $ref: "#/definitions/IndexInfo"
3930        example:
3931          "127.0.0.1:5000":
3932            "Name": "127.0.0.1:5000"
3933            "Mirrors": []
3934            "Secure": false
3935            "Official": false
3936          "[2001:db8:a0b:12f0::1]:80":
3937            "Name": "[2001:db8:a0b:12f0::1]:80"
3938            "Mirrors": []
3939            "Secure": false
3940            "Official": false
3941          "docker.io":
3942            Name: "docker.io"
3943            Mirrors: ["https://hub-mirror.corp.example.com:5000/"]
3944            Secure: true
3945            Official: true
3946          "registry.internal.corp.example.com:3000":
3947            Name: "registry.internal.corp.example.com:3000"
3948            Mirrors: []
3949            Secure: false
3950            Official: false
3951      Mirrors:
3952        description: |
3953          List of registry URLs that act as a mirror for the official
3954          (`docker.io`) registry.
3955
3956        type: "array"
3957        items:
3958          type: "string"
3959        example:
3960          - "https://hub-mirror.corp.example.com:5000/"
3961          - "https://[2001:db8:a0b:12f0::1]/"
3962
3963  IndexInfo:
3964    description:
3965      IndexInfo contains information about a registry.
3966    type: "object"
3967    x-nullable: true
3968    properties:
3969      Name:
3970        description: |
3971          Name of the registry, such as "docker.io".
3972        type: "string"
3973        example: "docker.io"
3974      Mirrors:
3975        description: |
3976          List of mirrors, expressed as URIs.
3977        type: "array"
3978        items:
3979          type: "string"
3980        example:
3981          - "https://hub-mirror.corp.example.com:5000/"
3982          - "https://registry-2.docker.io/"
3983          - "https://registry-3.docker.io/"
3984      Secure:
3985        description: |
3986          Indicates if the the registry is part of the list of insecure
3987          registries.
3988
3989          If `false`, the registry is insecure. Insecure registries accept
3990          un-encrypted (HTTP) and/or untrusted (HTTPS with certificates from
3991          unknown CAs) communication.
3992
3993          > **Warning**: Insecure registries can be useful when running a local
3994          > registry. However, because its use creates security vulnerabilities
3995          > it should ONLY be enabled for testing purposes. For increased
3996          > security, users should add their CA to their system's list of
3997          > trusted CAs instead of enabling this option.
3998        type: "boolean"
3999        example: true
4000      Official:
4001        description: |
4002          Indicates whether this is an official registry (i.e., Docker Hub / docker.io)
4003        type: "boolean"
4004        example: true
4005
4006  Runtime:
4007    description: |
4008      Runtime describes an [OCI compliant](https://github.com/opencontainers/runtime-spec)
4009      runtime.
4010
4011      The runtime is invoked by the daemon via the `containerd` daemon. OCI
4012      runtimes act as an interface to the Linux kernel namespaces, cgroups,
4013      and SELinux.
4014    type: "object"
4015    properties:
4016      path:
4017        description: |
4018          Name and, optional, path, of the OCI executable binary.
4019
4020          If the path is omitted, the daemon searches the host's `$PATH` for the
4021          binary and uses the first result.
4022        type: "string"
4023        example: "/usr/local/bin/my-oci-runtime"
4024      runtimeArgs:
4025        description: |
4026          List of command-line arguments to pass to the runtime when invoked.
4027        type: "array"
4028        x-nullable: true
4029        items:
4030          type: "string"
4031        example: ["--debug", "--systemd-cgroup=false"]
4032
4033  Commit:
4034    description: |
4035      Commit holds the Git-commit (SHA1) that a binary was built from, as
4036      reported in the version-string of external tools, such as `containerd`,
4037      or `runC`.
4038    type: "object"
4039    properties:
4040      ID:
4041        description: "Actual commit ID of external tool."
4042        type: "string"
4043        example: "cfb82a876ecc11b5ca0977d1733adbe58599088a"
4044      Expected:
4045        description: |
4046          Commit ID of external tool expected by dockerd as set at build time.
4047        type: "string"
4048        example: "2d41c047c83e09a6d61d464906feb2a2f3c52aa4"
4049
4050  SwarmInfo:
4051    description: |
4052      Represents generic information about swarm.
4053    type: "object"
4054    properties:
4055      NodeID:
4056        description: "Unique identifier of for this node in the swarm."
4057        type: "string"
4058        default: ""
4059        example: "k67qz4598weg5unwwffg6z1m1"
4060      NodeAddr:
4061        description: |
4062          IP address at which this node can be reached by other nodes in the
4063          swarm.
4064        type: "string"
4065        default: ""
4066        example: "10.0.0.46"
4067      LocalNodeState:
4068        $ref: "#/definitions/LocalNodeState"
4069      ControlAvailable:
4070        type: "boolean"
4071        default: false
4072        example: true
4073      Error:
4074        type: "string"
4075        default: ""
4076      RemoteManagers:
4077        description: |
4078          List of ID's and addresses of other managers in the swarm.
4079        type: "array"
4080        default: null
4081        x-nullable: true
4082        items:
4083          $ref: "#/definitions/PeerNode"
4084        example:
4085          - NodeID: "71izy0goik036k48jg985xnds"
4086            Addr: "10.0.0.158:2377"
4087          - NodeID: "79y6h1o4gv8n120drcprv5nmc"
4088            Addr: "10.0.0.159:2377"
4089          - NodeID: "k67qz4598weg5unwwffg6z1m1"
4090            Addr: "10.0.0.46:2377"
4091      Nodes:
4092        description: "Total number of nodes in the swarm."
4093        type: "integer"
4094        x-nullable: true
4095        example: 4
4096      Managers:
4097        description: "Total number of managers in the swarm."
4098        type: "integer"
4099        x-nullable: true
4100        example: 3
4101      Cluster:
4102        $ref: "#/definitions/ClusterInfo"
4103
4104  LocalNodeState:
4105    description: "Current local status of this node."
4106    type: "string"
4107    default: ""
4108    enum:
4109      - ""
4110      - "inactive"
4111      - "pending"
4112      - "active"
4113      - "error"
4114      - "locked"
4115    example: "active"
4116
4117  PeerNode:
4118    description: "Represents a peer-node in the swarm"
4119    properties:
4120      NodeID:
4121        description: "Unique identifier of for this node in the swarm."
4122        type: "string"
4123      Addr:
4124        description: |
4125          IP address and ports at which this node can be reached.
4126        type: "string"
4127
4128paths:
4129  /containers/json:
4130    get:
4131      summary: "List containers"
4132      description: |
4133        Returns a list of containers. For details on the format, see [the inspect endpoint](#operation/ContainerInspect).
4134
4135        Note that it uses a different, smaller representation of a container than inspecting a single container. For example,
4136        the list of linked containers is not propagated .
4137      operationId: "ContainerList"
4138      produces:
4139        - "application/json"
4140      parameters:
4141        - name: "all"
4142          in: "query"
4143          description: "Return all containers. By default, only running containers are shown"
4144          type: "boolean"
4145          default: false
4146        - name: "limit"
4147          in: "query"
4148          description: "Return this number of most recently created containers, including non-running ones."
4149          type: "integer"
4150        - name: "size"
4151          in: "query"
4152          description: "Return the size of container as fields `SizeRw` and `SizeRootFs`."
4153          type: "boolean"
4154          default: false
4155        - name: "filters"
4156          in: "query"
4157          description: |
4158            Filters to process on the container list, encoded as JSON (a `map[string][]string`). For example, `{"status": ["paused"]}` will only return paused containers. Available filters:
4159
4160            - `ancestor`=(`<image-name>[:<tag>]`, `<image id>`, or `<image@digest>`)
4161            - `before`=(`<container id>` or `<container name>`)
4162            - `expose`=(`<port>[/<proto>]`|`<startport-endport>/[<proto>]`)
4163            - `exited=<int>` containers with exit code of `<int>`
4164            - `health`=(`starting`|`healthy`|`unhealthy`|`none`)
4165            - `id=<ID>` a container's ID
4166            - `isolation=`(`default`|`process`|`hyperv`) (Windows daemon only)
4167            - `is-task=`(`true`|`false`)
4168            - `label=key` or `label="key=value"` of a container label
4169            - `name=<name>` a container's name
4170            - `network`=(`<network id>` or `<network name>`)
4171            - `publish`=(`<port>[/<proto>]`|`<startport-endport>/[<proto>]`)
4172            - `since`=(`<container id>` or `<container name>`)
4173            - `status=`(`created`|`restarting`|`running`|`removing`|`paused`|`exited`|`dead`)
4174            - `volume`=(`<volume name>` or `<mount point destination>`)
4175          type: "string"
4176      responses:
4177        200:
4178          description: "no error"
4179          schema:
4180            $ref: "#/definitions/ContainerSummary"
4181          examples:
4182            application/json:
4183              - Id: "8dfafdbc3a40"
4184                Names:
4185                  - "/boring_feynman"
4186                Image: "ubuntu:latest"
4187                ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82"
4188                Command: "echo 1"
4189                Created: 1367854155
4190                State: "Exited"
4191                Status: "Exit 0"
4192                Ports:
4193                  - PrivatePort: 2222
4194                    PublicPort: 3333
4195                    Type: "tcp"
4196                Labels:
4197                  com.example.vendor: "Acme"
4198                  com.example.license: "GPL"
4199                  com.example.version: "1.0"
4200                SizeRw: 12288
4201                SizeRootFs: 0
4202                HostConfig:
4203                  NetworkMode: "default"
4204                NetworkSettings:
4205                  Networks:
4206                    bridge:
4207                      NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"
4208                      EndpointID: "2cdc4edb1ded3631c81f57966563e5c8525b81121bb3706a9a9a3ae102711f3f"
4209                      Gateway: "172.17.0.1"
4210                      IPAddress: "172.17.0.2"
4211                      IPPrefixLen: 16
4212                      IPv6Gateway: ""
4213                      GlobalIPv6Address: ""
4214                      GlobalIPv6PrefixLen: 0
4215                      MacAddress: "02:42:ac:11:00:02"
4216                Mounts:
4217                  - Name: "fac362...80535"
4218                    Source: "/data"
4219                    Destination: "/data"
4220                    Driver: "local"
4221                    Mode: "ro,Z"
4222                    RW: false
4223                    Propagation: ""
4224              - Id: "9cd87474be90"
4225                Names:
4226                  - "/coolName"
4227                Image: "ubuntu:latest"
4228                ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82"
4229                Command: "echo 222222"
4230                Created: 1367854155
4231                State: "Exited"
4232                Status: "Exit 0"
4233                Ports: []
4234                Labels: {}
4235                SizeRw: 12288
4236                SizeRootFs: 0
4237                HostConfig:
4238                  NetworkMode: "default"
4239                NetworkSettings:
4240                  Networks:
4241                    bridge:
4242                      NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"
4243                      EndpointID: "88eaed7b37b38c2a3f0c4bc796494fdf51b270c2d22656412a2ca5d559a64d7a"
4244                      Gateway: "172.17.0.1"
4245                      IPAddress: "172.17.0.8"
4246                      IPPrefixLen: 16
4247                      IPv6Gateway: ""
4248                      GlobalIPv6Address: ""
4249                      GlobalIPv6PrefixLen: 0
4250                      MacAddress: "02:42:ac:11:00:08"
4251                Mounts: []
4252              - Id: "3176a2479c92"
4253                Names:
4254                  - "/sleepy_dog"
4255                Image: "ubuntu:latest"
4256                ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82"
4257                Command: "echo 3333333333333333"
4258                Created: 1367854154
4259                State: "Exited"
4260                Status: "Exit 0"
4261                Ports: []
4262                Labels: {}
4263                SizeRw: 12288
4264                SizeRootFs: 0
4265                HostConfig:
4266                  NetworkMode: "default"
4267                NetworkSettings:
4268                  Networks:
4269                    bridge:
4270                      NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"
4271                      EndpointID: "8b27c041c30326d59cd6e6f510d4f8d1d570a228466f956edf7815508f78e30d"
4272                      Gateway: "172.17.0.1"
4273                      IPAddress: "172.17.0.6"
4274                      IPPrefixLen: 16
4275                      IPv6Gateway: ""
4276                      GlobalIPv6Address: ""
4277                      GlobalIPv6PrefixLen: 0
4278                      MacAddress: "02:42:ac:11:00:06"
4279                Mounts: []
4280              - Id: "4cb07b47f9fb"
4281                Names:
4282                  - "/running_cat"
4283                Image: "ubuntu:latest"
4284                ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82"
4285                Command: "echo 444444444444444444444444444444444"
4286                Created: 1367854152
4287                State: "Exited"
4288                Status: "Exit 0"
4289                Ports: []
4290                Labels: {}
4291                SizeRw: 12288
4292                SizeRootFs: 0
4293                HostConfig:
4294                  NetworkMode: "default"
4295                NetworkSettings:
4296                  Networks:
4297                    bridge:
4298                      NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"
4299                      EndpointID: "d91c7b2f0644403d7ef3095985ea0e2370325cd2332ff3a3225c4247328e66e9"
4300                      Gateway: "172.17.0.1"
4301                      IPAddress: "172.17.0.5"
4302                      IPPrefixLen: 16
4303                      IPv6Gateway: ""
4304                      GlobalIPv6Address: ""
4305                      GlobalIPv6PrefixLen: 0
4306                      MacAddress: "02:42:ac:11:00:05"
4307                Mounts: []
4308        400:
4309          description: "bad parameter"
4310          schema:
4311            $ref: "#/definitions/ErrorResponse"
4312        500:
4313          description: "server error"
4314          schema:
4315            $ref: "#/definitions/ErrorResponse"
4316      tags: ["Container"]
4317  /containers/create:
4318    post:
4319      summary: "Create a container"
4320      operationId: "ContainerCreate"
4321      consumes:
4322        - "application/json"
4323        - "application/octet-stream"
4324      produces:
4325        - "application/json"
4326      parameters:
4327        - name: "name"
4328          in: "query"
4329          description: "Assign the specified name to the container. Must match `/?[a-zA-Z0-9_-]+`."
4330          type: "string"
4331          pattern: "/?[a-zA-Z0-9_-]+"
4332        - name: "body"
4333          in: "body"
4334          description: "Container to create"
4335          schema:
4336            allOf:
4337              - $ref: "#/definitions/ContainerConfig"
4338              - type: "object"
4339                properties:
4340                  HostConfig:
4341                    $ref: "#/definitions/HostConfig"
4342                  NetworkingConfig:
4343                    description: "This container's networking configuration."
4344                    type: "object"
4345                    properties:
4346                      EndpointsConfig:
4347                        description: "A mapping of network name to endpoint configuration for that network."
4348                        type: "object"
4349                        additionalProperties:
4350                          $ref: "#/definitions/EndpointSettings"
4351            example:
4352              Hostname: ""
4353              Domainname: ""
4354              User: ""
4355              AttachStdin: false
4356              AttachStdout: true
4357              AttachStderr: true
4358              Tty: false
4359              OpenStdin: false
4360              StdinOnce: false
4361              Env:
4362                - "FOO=bar"
4363                - "BAZ=quux"
4364              Cmd:
4365                - "date"
4366              Entrypoint: ""
4367              Image: "ubuntu"
4368              Labels:
4369                com.example.vendor: "Acme"
4370                com.example.license: "GPL"
4371                com.example.version: "1.0"
4372              Volumes:
4373                /volumes/data: {}
4374              WorkingDir: ""
4375              NetworkDisabled: false
4376              MacAddress: "12:34:56:78:9a:bc"
4377              ExposedPorts:
4378                22/tcp: {}
4379              StopSignal: "SIGTERM"
4380              StopTimeout: 10
4381              HostConfig:
4382                Binds:
4383                  - "/tmp:/tmp"
4384                Links:
4385                  - "redis3:redis"
4386                Memory: 0
4387                MemorySwap: 0
4388                MemoryReservation: 0
4389                KernelMemory: 0
4390                NanoCpus: 500000
4391                CpuPercent: 80
4392                CpuShares: 512
4393                CpuPeriod: 100000
4394                CpuRealtimePeriod: 1000000
4395                CpuRealtimeRuntime: 10000
4396                CpuQuota: 50000
4397                CpusetCpus: "0,1"
4398                CpusetMems: "0,1"
4399                MaximumIOps: 0
4400                MaximumIOBps: 0
4401                BlkioWeight: 300
4402                BlkioWeightDevice:
4403                  - {}
4404                BlkioDeviceReadBps:
4405                  - {}
4406                BlkioDeviceReadIOps:
4407                  - {}
4408                BlkioDeviceWriteBps:
4409                  - {}
4410                BlkioDeviceWriteIOps:
4411                  - {}
4412                MemorySwappiness: 60
4413                OomKillDisable: false
4414                OomScoreAdj: 500
4415                PidMode: ""
4416                PidsLimit: -1
4417                PortBindings:
4418                  22/tcp:
4419                    - HostPort: "11022"
4420                PublishAllPorts: false
4421                Privileged: false
4422                ReadonlyRootfs: false
4423                Dns:
4424                  - "8.8.8.8"
4425                DnsOptions:
4426                  - ""
4427                DnsSearch:
4428                  - ""
4429                VolumesFrom:
4430                  - "parent"
4431                  - "other:ro"
4432                CapAdd:
4433                  - "NET_ADMIN"
4434                CapDrop:
4435                  - "MKNOD"
4436                GroupAdd:
4437                  - "newgroup"
4438                RestartPolicy:
4439                  Name: ""
4440                  MaximumRetryCount: 0
4441                AutoRemove: true
4442                NetworkMode: "bridge"
4443                Devices: []
4444                Ulimits:
4445                  - {}
4446                LogConfig:
4447                  Type: "json-file"
4448                  Config: {}
4449                SecurityOpt: []
4450                StorageOpt: {}
4451                CgroupParent: ""
4452                VolumeDriver: ""
4453                ShmSize: 67108864
4454              NetworkingConfig:
4455                EndpointsConfig:
4456                  isolated_nw:
4457                    IPAMConfig:
4458                      IPv4Address: "172.20.30.33"
4459                      IPv6Address: "2001:db8:abcd::3033"
4460                      LinkLocalIPs:
4461                        - "169.254.34.68"
4462                        - "fe80::3468"
4463                    Links:
4464                      - "container_1"
4465                      - "container_2"
4466                    Aliases:
4467                      - "server_x"
4468                      - "server_y"
4469
4470          required: true
4471      responses:
4472        201:
4473          description: "Container created successfully"
4474          schema:
4475            type: "object"
4476            required: [Id, Warnings]
4477            properties:
4478              Id:
4479                description: "The ID of the created container"
4480                type: "string"
4481                x-nullable: false
4482              Warnings:
4483                description: "Warnings encountered when creating the container"
4484                type: "array"
4485                x-nullable: false
4486                items:
4487                  type: "string"
4488          examples:
4489            application/json:
4490              Id: "e90e34656806"
4491              Warnings: []
4492        400:
4493          description: "bad parameter"
4494          schema:
4495            $ref: "#/definitions/ErrorResponse"
4496        404:
4497          description: "no such image"
4498          schema:
4499            $ref: "#/definitions/ErrorResponse"
4500          examples:
4501            application/json:
4502              message: "No such image: c2ada9df5af8"
4503        409:
4504          description: "conflict"
4505          schema:
4506            $ref: "#/definitions/ErrorResponse"
4507        500:
4508          description: "server error"
4509          schema:
4510            $ref: "#/definitions/ErrorResponse"
4511      tags: ["Container"]
4512  /containers/{id}/json:
4513    get:
4514      summary: "Inspect a container"
4515      description: "Return low-level information about a container."
4516      operationId: "ContainerInspect"
4517      produces:
4518        - "application/json"
4519      responses:
4520        200:
4521          description: "no error"
4522          schema:
4523            type: "object"
4524            properties:
4525              Id:
4526                description: "The ID of the container"
4527                type: "string"
4528              Created:
4529                description: "The time the container was created"
4530                type: "string"
4531              Path:
4532                description: "The path to the command being run"
4533                type: "string"
4534              Args:
4535                description: "The arguments to the command being run"
4536                type: "array"
4537                items:
4538                  type: "string"
4539              State:
4540                description: "The state of the container."
4541                type: "object"
4542                properties:
4543                  Status:
4544                    description: |
4545                      The status of the container. For example, `"running"` or `"exited"`.
4546                    type: "string"
4547                    enum: ["created", "running", "paused", "restarting", "removing", "exited", "dead"]
4548                  Running:
4549                    description: |
4550                      Whether this container is running.
4551
4552                      Note that a running container can be _paused_. The `Running` and `Paused`
4553                      booleans are not mutually exclusive:
4554
4555                      When pausing a container (on Linux), the cgroups freezer is used to suspend
4556                      all processes in the container. Freezing the process requires the process to
4557                      be running. As a result, paused containers are both `Running` _and_ `Paused`.
4558
4559                      Use the `Status` field instead to determine if a container's state is "running".
4560                    type: "boolean"
4561                  Paused:
4562                    description: "Whether this container is paused."
4563                    type: "boolean"
4564                  Restarting:
4565                    description: "Whether this container is restarting."
4566                    type: "boolean"
4567                  OOMKilled:
4568                    description: "Whether this container has been killed because it ran out of memory."
4569                    type: "boolean"
4570                  Dead:
4571                    type: "boolean"
4572                  Pid:
4573                    description: "The process ID of this container"
4574                    type: "integer"
4575                  ExitCode:
4576                    description: "The last exit code of this container"
4577                    type: "integer"
4578                  Error:
4579                    type: "string"
4580                  StartedAt:
4581                    description: "The time when this container was last started."
4582                    type: "string"
4583                  FinishedAt:
4584                    description: "The time when this container last exited."
4585                    type: "string"
4586              Image:
4587                description: "The container's image"
4588                type: "string"
4589              ResolvConfPath:
4590                type: "string"
4591              HostnamePath:
4592                type: "string"
4593              HostsPath:
4594                type: "string"
4595              LogPath:
4596                type: "string"
4597              Node:
4598                description: "TODO"
4599                type: "object"
4600              Name:
4601                type: "string"
4602              RestartCount:
4603                type: "integer"
4604              Driver:
4605                type: "string"
4606              MountLabel:
4607                type: "string"
4608              ProcessLabel:
4609                type: "string"
4610              AppArmorProfile:
4611                type: "string"
4612              ExecIDs:
4613                type: "string"
4614              HostConfig:
4615                $ref: "#/definitions/HostConfig"
4616              GraphDriver:
4617                $ref: "#/definitions/GraphDriverData"
4618              SizeRw:
4619                description: "The size of files that have been created or changed by this container."
4620                type: "integer"
4621                format: "int64"
4622              SizeRootFs:
4623                description: "The total size of all the files in this container."
4624                type: "integer"
4625                format: "int64"
4626              Mounts:
4627                type: "array"
4628                items:
4629                  $ref: "#/definitions/MountPoint"
4630              Config:
4631                $ref: "#/definitions/ContainerConfig"
4632              NetworkSettings:
4633                $ref: "#/definitions/NetworkSettings"
4634          examples:
4635            application/json:
4636              AppArmorProfile: ""
4637              Args:
4638                - "-c"
4639                - "exit 9"
4640              Config:
4641                AttachStderr: true
4642                AttachStdin: false
4643                AttachStdout: true
4644                Cmd:
4645                  - "/bin/sh"
4646                  - "-c"
4647                  - "exit 9"
4648                Domainname: ""
4649                Env:
4650                  - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
4651                Hostname: "ba033ac44011"
4652                Image: "ubuntu"
4653                Labels:
4654                  com.example.vendor: "Acme"
4655                  com.example.license: "GPL"
4656                  com.example.version: "1.0"
4657                MacAddress: ""
4658                NetworkDisabled: false
4659                OpenStdin: false
4660                StdinOnce: false
4661                Tty: false
4662                User: ""
4663                Volumes:
4664                  /volumes/data: {}
4665                WorkingDir: ""
4666                StopSignal: "SIGTERM"
4667                StopTimeout: 10
4668              Created: "2015-01-06T15:47:31.485331387Z"
4669              Driver: "devicemapper"
4670              HostConfig:
4671                MaximumIOps: 0
4672                MaximumIOBps: 0
4673                BlkioWeight: 0
4674                BlkioWeightDevice:
4675                  - {}
4676                BlkioDeviceReadBps:
4677                  - {}
4678                BlkioDeviceWriteBps:
4679                  - {}
4680                BlkioDeviceReadIOps:
4681                  - {}
4682                BlkioDeviceWriteIOps:
4683                  - {}
4684                ContainerIDFile: ""
4685                CpusetCpus: ""
4686                CpusetMems: ""
4687                CpuPercent: 80
4688                CpuShares: 0
4689                CpuPeriod: 100000
4690                CpuRealtimePeriod: 1000000
4691                CpuRealtimeRuntime: 10000
4692                Devices: []
4693                IpcMode: ""
4694                LxcConf: []
4695                Memory: 0
4696                MemorySwap: 0
4697                MemoryReservation: 0
4698                KernelMemory: 0
4699                OomKillDisable: false
4700                OomScoreAdj: 500
4701                NetworkMode: "bridge"
4702                PidMode: ""
4703                PortBindings: {}
4704                Privileged: false
4705                ReadonlyRootfs: false
4706                PublishAllPorts: false
4707                RestartPolicy:
4708                  MaximumRetryCount: 2
4709                  Name: "on-failure"
4710                LogConfig:
4711                  Type: "json-file"
4712                Sysctls:
4713                  net.ipv4.ip_forward: "1"
4714                Ulimits:
4715                  - {}
4716                VolumeDriver: ""
4717                ShmSize: 67108864
4718              HostnamePath: "/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/hostname"
4719              HostsPath: "/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/hosts"
4720              LogPath: "/var/lib/docker/containers/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b-json.log"
4721              Id: "ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39"
4722              Image: "04c5d3b7b0656168630d3ba35d8889bd0e9caafcaeb3004d2bfbc47e7c5d35d2"
4723              MountLabel: ""
4724              Name: "/boring_euclid"
4725              NetworkSettings:
4726                Bridge: ""
4727                SandboxID: ""
4728                HairpinMode: false
4729                LinkLocalIPv6Address: ""
4730                LinkLocalIPv6PrefixLen: 0
4731                SandboxKey: ""
4732                EndpointID: ""
4733                Gateway: ""
4734                GlobalIPv6Address: ""
4735                GlobalIPv6PrefixLen: 0
4736                IPAddress: ""
4737                IPPrefixLen: 0
4738                IPv6Gateway: ""
4739                MacAddress: ""
4740                Networks:
4741                  bridge:
4742                    NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"
4743                    EndpointID: "7587b82f0dada3656fda26588aee72630c6fab1536d36e394b2bfbcf898c971d"
4744                    Gateway: "172.17.0.1"
4745                    IPAddress: "172.17.0.2"
4746                    IPPrefixLen: 16
4747                    IPv6Gateway: ""
4748                    GlobalIPv6Address: ""
4749                    GlobalIPv6PrefixLen: 0
4750                    MacAddress: "02:42:ac:12:00:02"
4751              Path: "/bin/sh"
4752              ProcessLabel: ""
4753              ResolvConfPath: "/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/resolv.conf"
4754              RestartCount: 1
4755              State:
4756                Error: ""
4757                ExitCode: 9
4758                FinishedAt: "2015-01-06T15:47:32.080254511Z"
4759                OOMKilled: false
4760                Dead: false
4761                Paused: false
4762                Pid: 0
4763                Restarting: false
4764                Running: true
4765                StartedAt: "2015-01-06T15:47:32.072697474Z"
4766                Status: "running"
4767              Mounts:
4768                - Name: "fac362...80535"
4769                  Source: "/data"
4770                  Destination: "/data"
4771                  Driver: "local"
4772                  Mode: "ro,Z"
4773                  RW: false
4774                  Propagation: ""
4775        404:
4776          description: "no such container"
4777          schema:
4778            $ref: "#/definitions/ErrorResponse"
4779          examples:
4780            application/json:
4781              message: "No such container: c2ada9df5af8"
4782        500:
4783          description: "server error"
4784          schema:
4785            $ref: "#/definitions/ErrorResponse"
4786      parameters:
4787        - name: "id"
4788          in: "path"
4789          required: true
4790          description: "ID or name of the container"
4791          type: "string"
4792        - name: "size"
4793          in: "query"
4794          type: "boolean"
4795          default: false
4796          description: "Return the size of container as fields `SizeRw` and `SizeRootFs`"
4797      tags: ["Container"]
4798  /containers/{id}/top:
4799    get:
4800      summary: "List processes running inside a container"
4801      description: "On Unix systems, this is done by running the `ps` command. This endpoint is not supported on Windows."
4802      operationId: "ContainerTop"
4803      responses:
4804        200:
4805          description: "no error"
4806          schema:
4807            type: "object"
4808            properties:
4809              Titles:
4810                description: "The ps column titles"
4811                type: "array"
4812                items:
4813                  type: "string"
4814              Processes:
4815                description: "Each process running in the container, where each is process is an array of values corresponding to the titles"
4816                type: "array"
4817                items:
4818                  type: "array"
4819                  items:
4820                    type: "string"
4821          examples:
4822            application/json:
4823              Titles:
4824                - "UID"
4825                - "PID"
4826                - "PPID"
4827                - "C"
4828                - "STIME"
4829                - "TTY"
4830                - "TIME"
4831                - "CMD"
4832              Processes:
4833                -
4834                  - "root"
4835                  - "13642"
4836                  - "882"
4837                  - "0"
4838                  - "17:03"
4839                  - "pts/0"
4840                  - "00:00:00"
4841                  - "/bin/bash"
4842                -
4843                  - "root"
4844                  - "13735"
4845                  - "13642"
4846                  - "0"
4847                  - "17:06"
4848                  - "pts/0"
4849                  - "00:00:00"
4850                  - "sleep 10"
4851        404:
4852          description: "no such container"
4853          schema:
4854            $ref: "#/definitions/ErrorResponse"
4855          examples:
4856            application/json:
4857              message: "No such container: c2ada9df5af8"
4858        500:
4859          description: "server error"
4860          schema:
4861            $ref: "#/definitions/ErrorResponse"
4862      parameters:
4863        - name: "id"
4864          in: "path"
4865          required: true
4866          description: "ID or name of the container"
4867          type: "string"
4868        - name: "ps_args"
4869          in: "query"
4870          description: "The arguments to pass to `ps`. For example, `aux`"
4871          type: "string"
4872          default: "-ef"
4873      tags: ["Container"]
4874  /containers/{id}/logs:
4875    get:
4876      summary: "Get container logs"
4877      description: |
4878        Get `stdout` and `stderr` logs from a container.
4879
4880        Note: This endpoint works only for containers with the `json-file` or `journald` logging driver.
4881      operationId: "ContainerLogs"
4882      responses:
4883        101:
4884          description: "logs returned as a stream"
4885          schema:
4886            type: "string"
4887            format: "binary"
4888        200:
4889          description: "logs returned as a string in response body"
4890          schema:
4891            type: "string"
4892        404:
4893          description: "no such container"
4894          schema:
4895            $ref: "#/definitions/ErrorResponse"
4896          examples:
4897            application/json:
4898              message: "No such container: c2ada9df5af8"
4899        500:
4900          description: "server error"
4901          schema:
4902            $ref: "#/definitions/ErrorResponse"
4903      parameters:
4904        - name: "id"
4905          in: "path"
4906          required: true
4907          description: "ID or name of the container"
4908          type: "string"
4909        - name: "follow"
4910          in: "query"
4911          description: |
4912            Return the logs as a stream.
4913
4914            This will return a `101` HTTP response with a `Connection: upgrade` header, then hijack the HTTP connection to send raw output. For more information about hijacking and the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).
4915          type: "boolean"
4916          default: false
4917        - name: "stdout"
4918          in: "query"
4919          description: "Return logs from `stdout`"
4920          type: "boolean"
4921          default: false
4922        - name: "stderr"
4923          in: "query"
4924          description: "Return logs from `stderr`"
4925          type: "boolean"
4926          default: false
4927        - name: "since"
4928          in: "query"
4929          description: "Only return logs since this time, as a UNIX timestamp"
4930          type: "integer"
4931          default: 0
4932        - name: "timestamps"
4933          in: "query"
4934          description: "Add timestamps to every log line"
4935          type: "boolean"
4936          default: false
4937        - name: "tail"
4938          in: "query"
4939          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."
4940          type: "string"
4941          default: "all"
4942      tags: ["Container"]
4943  /containers/{id}/changes:
4944    get:
4945      summary: "Get changes on a container’s filesystem"
4946      description: |
4947        Returns which files in a container's filesystem have been added, deleted,
4948        or modified. The `Kind` of modification can be one of:
4949
4950        - `0`: Modified
4951        - `1`: Added
4952        - `2`: Deleted
4953      operationId: "ContainerChanges"
4954      produces: ["application/json"]
4955      responses:
4956        200:
4957          description: "The list of changes"
4958          schema:
4959            type: "array"
4960            items:
4961              type: "object"
4962              x-go-name: "ContainerChangeResponseItem"
4963              required: [Path, Kind]
4964              properties:
4965                Path:
4966                  description: "Path to file that has changed"
4967                  type: "string"
4968                  x-nullable: false
4969                Kind:
4970                  description: "Kind of change"
4971                  type: "integer"
4972                  format: "uint8"
4973                  enum: [0, 1, 2]
4974                  x-nullable: false
4975          examples:
4976            application/json:
4977              - Path: "/dev"
4978                Kind: 0
4979              - Path: "/dev/kmsg"
4980                Kind: 1
4981              - Path: "/test"
4982                Kind: 1
4983        404:
4984          description: "no such container"
4985          schema:
4986            $ref: "#/definitions/ErrorResponse"
4987          examples:
4988            application/json:
4989              message: "No such container: c2ada9df5af8"
4990        500:
4991          description: "server error"
4992          schema:
4993            $ref: "#/definitions/ErrorResponse"
4994      parameters:
4995        - name: "id"
4996          in: "path"
4997          required: true
4998          description: "ID or name of the container"
4999          type: "string"
5000      tags: ["Container"]
5001  /containers/{id}/export:
5002    get:
5003      summary: "Export a container"
5004      description: "Export the contents of a container as a tarball."
5005      operationId: "ContainerExport"
5006      produces:
5007        - "application/octet-stream"
5008      responses:
5009        200:
5010          description: "no error"
5011        404:
5012          description: "no such container"
5013          schema:
5014            $ref: "#/definitions/ErrorResponse"
5015          examples:
5016            application/json:
5017              message: "No such container: c2ada9df5af8"
5018        500:
5019          description: "server error"
5020          schema:
5021            $ref: "#/definitions/ErrorResponse"
5022      parameters:
5023        - name: "id"
5024          in: "path"
5025          required: true
5026          description: "ID or name of the container"
5027          type: "string"
5028      tags: ["Container"]
5029  /containers/{id}/stats:
5030    get:
5031      summary: "Get container stats based on resource usage"
5032      description: |
5033        This endpoint returns a live stream of a container’s resource usage
5034        statistics.
5035
5036        The `precpu_stats` is the CPU statistic of last read, which is used
5037        for calculating the CPU usage percentage. It is not the same as the
5038        `cpu_stats` field.
5039
5040        If either `precpu_stats.online_cpus` or `cpu_stats.online_cpus` is
5041        nil then for compatibility with older daemons the length of the
5042        corresponding `cpu_usage.percpu_usage` array should be used.
5043      operationId: "ContainerStats"
5044      produces: ["application/json"]
5045      responses:
5046        200:
5047          description: "no error"
5048          schema:
5049            type: "object"
5050          examples:
5051            application/json:
5052              read: "2015-01-08T22:57:31.547920715Z"
5053              pids_stats:
5054                current: 3
5055              networks:
5056                eth0:
5057                  rx_bytes: 5338
5058                  rx_dropped: 0
5059                  rx_errors: 0
5060                  rx_packets: 36
5061                  tx_bytes: 648
5062                  tx_dropped: 0
5063                  tx_errors: 0
5064                  tx_packets: 8
5065                eth5:
5066                  rx_bytes: 4641
5067                  rx_dropped: 0
5068                  rx_errors: 0
5069                  rx_packets: 26
5070                  tx_bytes: 690
5071                  tx_dropped: 0
5072                  tx_errors: 0
5073                  tx_packets: 9
5074              memory_stats:
5075                stats:
5076                  total_pgmajfault: 0
5077                  cache: 0
5078                  mapped_file: 0
5079                  total_inactive_file: 0
5080                  pgpgout: 414
5081                  rss: 6537216
5082                  total_mapped_file: 0
5083                  writeback: 0
5084                  unevictable: 0
5085                  pgpgin: 477
5086                  total_unevictable: 0
5087                  pgmajfault: 0
5088                  total_rss: 6537216
5089                  total_rss_huge: 6291456
5090                  total_writeback: 0
5091                  total_inactive_anon: 0
5092                  rss_huge: 6291456
5093                  hierarchical_memory_limit: 67108864
5094                  total_pgfault: 964
5095                  total_active_file: 0
5096                  active_anon: 6537216
5097                  total_active_anon: 6537216
5098                  total_pgpgout: 414
5099                  total_cache: 0
5100                  inactive_anon: 0
5101                  active_file: 0
5102                  pgfault: 964
5103                  inactive_file: 0
5104                  total_pgpgin: 477
5105                max_usage: 6651904
5106                usage: 6537216
5107                failcnt: 0
5108                limit: 67108864
5109              blkio_stats: {}
5110              cpu_stats:
5111                cpu_usage:
5112                  percpu_usage:
5113                    - 8646879
5114                    - 24472255
5115                    - 36438778
5116                    - 30657443
5117                  usage_in_usermode: 50000000
5118                  total_usage: 100215355
5119                  usage_in_kernelmode: 30000000
5120                system_cpu_usage: 739306590000000
5121                online_cpus: 4
5122                throttling_data:
5123                  periods: 0
5124                  throttled_periods: 0
5125                  throttled_time: 0
5126              precpu_stats:
5127                cpu_usage:
5128                  percpu_usage:
5129                    - 8646879
5130                    - 24350896
5131                    - 36438778
5132                    - 30657443
5133                  usage_in_usermode: 50000000
5134                  total_usage: 100093996
5135                  usage_in_kernelmode: 30000000
5136                system_cpu_usage: 9492140000000
5137                online_cpus: 4
5138                throttling_data:
5139                  periods: 0
5140                  throttled_periods: 0
5141                  throttled_time: 0
5142        404:
5143          description: "no such container"
5144          schema:
5145            $ref: "#/definitions/ErrorResponse"
5146          examples:
5147            application/json:
5148              message: "No such container: c2ada9df5af8"
5149        500:
5150          description: "server error"
5151          schema:
5152            $ref: "#/definitions/ErrorResponse"
5153      parameters:
5154        - name: "id"
5155          in: "path"
5156          required: true
5157          description: "ID or name of the container"
5158          type: "string"
5159        - name: "stream"
5160          in: "query"
5161          description: "Stream the output. If false, the stats will be output once and then it will disconnect."
5162          type: "boolean"
5163          default: true
5164      tags: ["Container"]
5165  /containers/{id}/resize:
5166    post:
5167      summary: "Resize a container TTY"
5168      description: "Resize the TTY for a container. You must restart the container for the resize to take effect."
5169      operationId: "ContainerResize"
5170      consumes:
5171        - "application/octet-stream"
5172      produces:
5173        - "text/plain"
5174      responses:
5175        200:
5176          description: "no error"
5177        404:
5178          description: "no such container"
5179          schema:
5180            $ref: "#/definitions/ErrorResponse"
5181          examples:
5182            application/json:
5183              message: "No such container: c2ada9df5af8"
5184        500:
5185          description: "cannot resize container"
5186          schema:
5187            $ref: "#/definitions/ErrorResponse"
5188      parameters:
5189        - name: "id"
5190          in: "path"
5191          required: true
5192          description: "ID or name of the container"
5193          type: "string"
5194        - name: "h"
5195          in: "query"
5196          description: "Height of the tty session in characters"
5197          type: "integer"
5198        - name: "w"
5199          in: "query"
5200          description: "Width of the tty session in characters"
5201          type: "integer"
5202      tags: ["Container"]
5203  /containers/{id}/start:
5204    post:
5205      summary: "Start a container"
5206      operationId: "ContainerStart"
5207      responses:
5208        204:
5209          description: "no error"
5210        304:
5211          description: "container already started"
5212          schema:
5213            $ref: "#/definitions/ErrorResponse"
5214        404:
5215          description: "no such container"
5216          schema:
5217            $ref: "#/definitions/ErrorResponse"
5218          examples:
5219            application/json:
5220              message: "No such container: c2ada9df5af8"
5221        500:
5222          description: "server error"
5223          schema:
5224            $ref: "#/definitions/ErrorResponse"
5225      parameters:
5226        - name: "id"
5227          in: "path"
5228          required: true
5229          description: "ID or name of the container"
5230          type: "string"
5231        - name: "detachKeys"
5232          in: "query"
5233          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 `_`."
5234          type: "string"
5235      tags: ["Container"]
5236  /containers/{id}/stop:
5237    post:
5238      summary: "Stop a container"
5239      operationId: "ContainerStop"
5240      responses:
5241        204:
5242          description: "no error"
5243        304:
5244          description: "container already stopped"
5245          schema:
5246            $ref: "#/definitions/ErrorResponse"
5247        404:
5248          description: "no such container"
5249          schema:
5250            $ref: "#/definitions/ErrorResponse"
5251          examples:
5252            application/json:
5253              message: "No such container: c2ada9df5af8"
5254        500:
5255          description: "server error"
5256          schema:
5257            $ref: "#/definitions/ErrorResponse"
5258      parameters:
5259        - name: "id"
5260          in: "path"
5261          required: true
5262          description: "ID or name of the container"
5263          type: "string"
5264        - name: "t"
5265          in: "query"
5266          description: "Number of seconds to wait before killing the container"
5267          type: "integer"
5268      tags: ["Container"]
5269  /containers/{id}/restart:
5270    post:
5271      summary: "Restart a container"
5272      operationId: "ContainerRestart"
5273      responses:
5274        204:
5275          description: "no error"
5276        404:
5277          description: "no such container"
5278          schema:
5279            $ref: "#/definitions/ErrorResponse"
5280          examples:
5281            application/json:
5282              message: "No such container: c2ada9df5af8"
5283        500:
5284          description: "server error"
5285          schema:
5286            $ref: "#/definitions/ErrorResponse"
5287      parameters:
5288        - name: "id"
5289          in: "path"
5290          required: true
5291          description: "ID or name of the container"
5292          type: "string"
5293        - name: "t"
5294          in: "query"
5295          description: "Number of seconds to wait before killing the container"
5296          type: "integer"
5297      tags: ["Container"]
5298  /containers/{id}/kill:
5299    post:
5300      summary: "Kill a container"
5301      description: "Send a POSIX signal to a container, defaulting to killing to the container."
5302      operationId: "ContainerKill"
5303      responses:
5304        204:
5305          description: "no error"
5306        404:
5307          description: "no such container"
5308          schema:
5309            $ref: "#/definitions/ErrorResponse"
5310          examples:
5311            application/json:
5312              message: "No such container: c2ada9df5af8"
5313        500:
5314          description: "server error"
5315          schema:
5316            $ref: "#/definitions/ErrorResponse"
5317      parameters:
5318        - name: "id"
5319          in: "path"
5320          required: true
5321          description: "ID or name of the container"
5322          type: "string"
5323        - name: "signal"
5324          in: "query"
5325          description: "Signal to send to the container as an integer or string (e.g. `SIGINT`)"
5326          type: "string"
5327          default: "SIGKILL"
5328      tags: ["Container"]
5329  /containers/{id}/update:
5330    post:
5331      summary: "Update a container"
5332      description: "Change various configuration options of a container without having to recreate it."
5333      operationId: "ContainerUpdate"
5334      consumes: ["application/json"]
5335      produces: ["application/json"]
5336      responses:
5337        200:
5338          description: "The container has been updated."
5339          schema:
5340            type: "object"
5341            properties:
5342              Warnings:
5343                type: "array"
5344                items:
5345                  type: "string"
5346        404:
5347          description: "no such container"
5348          schema:
5349            $ref: "#/definitions/ErrorResponse"
5350          examples:
5351            application/json:
5352              message: "No such container: c2ada9df5af8"
5353        500:
5354          description: "server error"
5355          schema:
5356            $ref: "#/definitions/ErrorResponse"
5357      parameters:
5358        - name: "id"
5359          in: "path"
5360          required: true
5361          description: "ID or name of the container"
5362          type: "string"
5363        - name: "update"
5364          in: "body"
5365          required: true
5366          schema:
5367            allOf:
5368              - $ref: "#/definitions/Resources"
5369              - type: "object"
5370                properties:
5371                  RestartPolicy:
5372                    $ref: "#/definitions/RestartPolicy"
5373            example:
5374              BlkioWeight: 300
5375              CpuShares: 512
5376              CpuPeriod: 100000
5377              CpuQuota: 50000
5378              CpuRealtimePeriod: 1000000
5379              CpuRealtimeRuntime: 10000
5380              CpusetCpus: "0,1"
5381              CpusetMems: "0"
5382              Memory: 314572800
5383              MemorySwap: 514288000
5384              MemoryReservation: 209715200
5385              KernelMemory: 52428800
5386              RestartPolicy:
5387                MaximumRetryCount: 4
5388                Name: "on-failure"
5389      tags: ["Container"]
5390  /containers/{id}/rename:
5391    post:
5392      summary: "Rename a container"
5393      operationId: "ContainerRename"
5394      responses:
5395        204:
5396          description: "no error"
5397        404:
5398          description: "no such container"
5399          schema:
5400            $ref: "#/definitions/ErrorResponse"
5401          examples:
5402            application/json:
5403              message: "No such container: c2ada9df5af8"
5404        409:
5405          description: "name already in use"
5406          schema:
5407            $ref: "#/definitions/ErrorResponse"
5408        500:
5409          description: "server error"
5410          schema:
5411            $ref: "#/definitions/ErrorResponse"
5412      parameters:
5413        - name: "id"
5414          in: "path"
5415          required: true
5416          description: "ID or name of the container"
5417          type: "string"
5418        - name: "name"
5419          in: "query"
5420          required: true
5421          description: "New name for the container"
5422          type: "string"
5423      tags: ["Container"]
5424  /containers/{id}/pause:
5425    post:
5426      summary: "Pause a container"
5427      description: |
5428        Use the cgroups freezer to suspend all processes in a container.
5429
5430        Traditionally, when suspending a process the `SIGSTOP` signal is used, which is observable by the process being suspended. With the cgroups freezer the process is unaware, and unable to capture, that it is being suspended, and subsequently resumed.
5431      operationId: "ContainerPause"
5432      responses:
5433        204:
5434          description: "no error"
5435        404:
5436          description: "no such container"
5437          schema:
5438            $ref: "#/definitions/ErrorResponse"
5439          examples:
5440            application/json:
5441              message: "No such container: c2ada9df5af8"
5442        500:
5443          description: "server error"
5444          schema:
5445            $ref: "#/definitions/ErrorResponse"
5446      parameters:
5447        - name: "id"
5448          in: "path"
5449          required: true
5450          description: "ID or name of the container"
5451          type: "string"
5452      tags: ["Container"]
5453  /containers/{id}/unpause:
5454    post:
5455      summary: "Unpause a container"
5456      description: "Resume a container which has been paused."
5457      operationId: "ContainerUnpause"
5458      responses:
5459        204:
5460          description: "no error"
5461        404:
5462          description: "no such container"
5463          schema:
5464            $ref: "#/definitions/ErrorResponse"
5465          examples:
5466            application/json:
5467              message: "No such container: c2ada9df5af8"
5468        500:
5469          description: "server error"
5470          schema:
5471            $ref: "#/definitions/ErrorResponse"
5472      parameters:
5473        - name: "id"
5474          in: "path"
5475          required: true
5476          description: "ID or name of the container"
5477          type: "string"
5478      tags: ["Container"]
5479  /containers/{id}/attach:
5480    post:
5481      summary: "Attach to a container"
5482      description: |
5483        Attach to a container to read its output or send it input. You can attach to the same container multiple times and you can reattach to containers that have been detached.
5484
5485        Either the `stream` or `logs` parameter must be `true` for this endpoint to do anything.
5486
5487        See [the documentation for the `docker attach` command](https://docs.docker.com/engine/reference/commandline/attach/) for more details.
5488
5489        ### Hijacking
5490
5491        This endpoint hijacks the HTTP connection to transport `stdin`, `stdout`, and `stderr` on the same socket.
5492
5493        This is the response from the daemon for an attach request:
5494
5495        ```
5496        HTTP/1.1 200 OK
5497        Content-Type: application/vnd.docker.raw-stream
5498
5499        [STREAM]
5500        ```
5501
5502        After the headers and two new lines, the TCP connection can now be used for raw, bidirectional communication between the client and server.
5503
5504        To hint potential proxies about connection hijacking, the Docker client can also optionally send connection upgrade headers.
5505
5506        For example, the client sends this request to upgrade the connection:
5507
5508        ```
5509        POST /containers/16253994b7c4/attach?stream=1&stdout=1 HTTP/1.1
5510        Upgrade: tcp
5511        Connection: Upgrade
5512        ```
5513
5514        The Docker daemon will respond with a `101 UPGRADED` response, and will similarly follow with the raw stream:
5515
5516        ```
5517        HTTP/1.1 101 UPGRADED
5518        Content-Type: application/vnd.docker.raw-stream
5519        Connection: Upgrade
5520        Upgrade: tcp
5521
5522        [STREAM]
5523        ```
5524
5525        ### Stream format
5526
5527        When the TTY setting is disabled in [`POST /containers/create`](#operation/ContainerCreate), the stream over the hijacked connected is multiplexed to separate out `stdout` and `stderr`. The stream consists of a series of frames, each containing a header and a payload.
5528
5529        The header contains the information which the stream writes (`stdout` or `stderr`). It also contains the size of the associated frame encoded in the last four bytes (`uint32`).
5530
5531        It is encoded on the first eight bytes like this:
5532
5533        ```go
5534        header := [8]byte{STREAM_TYPE, 0, 0, 0, SIZE1, SIZE2, SIZE3, SIZE4}
5535        ```
5536
5537        `STREAM_TYPE` can be:
5538
5539        - 0: `stdin` (is written on `stdout`)
5540        - 1: `stdout`
5541        - 2: `stderr`
5542
5543        `SIZE1, SIZE2, SIZE3, SIZE4` are the four bytes of the `uint32` size encoded as big endian.
5544
5545        Following the header is the payload, which is the specified number of bytes of `STREAM_TYPE`.
5546
5547        The simplest way to implement this protocol is the following:
5548
5549        1. Read 8 bytes.
5550        2. Choose `stdout` or `stderr` depending on the first byte.
5551        3. Extract the frame size from the last four bytes.
5552        4. Read the extracted size and output it on the correct output.
5553        5. Goto 1.
5554
5555        ### Stream format when using a TTY
5556
5557        When the TTY setting is enabled in [`POST /containers/create`](#operation/ContainerCreate), the stream is not multiplexed. The data exchanged over the hijacked connection is simply the raw data from the process PTY and client's `stdin`.
5558
5559      operationId: "ContainerAttach"
5560      produces:
5561        - "application/vnd.docker.raw-stream"
5562      responses:
5563        101:
5564          description: "no error, hints proxy about hijacking"
5565        200:
5566          description: "no error, no upgrade header found"
5567        400:
5568          description: "bad parameter"
5569          schema:
5570            $ref: "#/definitions/ErrorResponse"
5571        404:
5572          description: "no such container"
5573          schema:
5574            $ref: "#/definitions/ErrorResponse"
5575          examples:
5576            application/json:
5577              message: "No such container: c2ada9df5af8"
5578        500:
5579          description: "server error"
5580          schema:
5581            $ref: "#/definitions/ErrorResponse"
5582      parameters:
5583        - name: "id"
5584          in: "path"
5585          required: true
5586          description: "ID or name of the container"
5587          type: "string"
5588        - name: "detachKeys"
5589          in: "query"
5590          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 `_`."
5591          type: "string"
5592        - name: "logs"
5593          in: "query"
5594          description: |
5595            Replay previous logs from the container.
5596
5597            This is useful for attaching to a container that has started and you want to output everything since the container started.
5598
5599            If `stream` is also enabled, once all the previous output has been returned, it will seamlessly transition into streaming current output.
5600          type: "boolean"
5601          default: false
5602        - name: "stream"
5603          in: "query"
5604          description: "Stream attached streams from the time the request was made onwards"
5605          type: "boolean"
5606          default: false
5607        - name: "stdin"
5608          in: "query"
5609          description: "Attach to `stdin`"
5610          type: "boolean"
5611          default: false
5612        - name: "stdout"
5613          in: "query"
5614          description: "Attach to `stdout`"
5615          type: "boolean"
5616          default: false
5617        - name: "stderr"
5618          in: "query"
5619          description: "Attach to `stderr`"
5620          type: "boolean"
5621          default: false
5622      tags: ["Container"]
5623  /containers/{id}/attach/ws:
5624    get:
5625      summary: "Attach to a container via a websocket"
5626      operationId: "ContainerAttachWebsocket"
5627      responses:
5628        101:
5629          description: "no error, hints proxy about hijacking"
5630        200:
5631          description: "no error, no upgrade header found"
5632        400:
5633          description: "bad parameter"
5634          schema:
5635            $ref: "#/definitions/ErrorResponse"
5636        404:
5637          description: "no such container"
5638          schema:
5639            $ref: "#/definitions/ErrorResponse"
5640          examples:
5641            application/json:
5642              message: "No such container: c2ada9df5af8"
5643        500:
5644          description: "server error"
5645          schema:
5646            $ref: "#/definitions/ErrorResponse"
5647      parameters:
5648        - name: "id"
5649          in: "path"
5650          required: true
5651          description: "ID or name of the container"
5652          type: "string"
5653        - name: "detachKeys"
5654          in: "query"
5655          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 `_`."
5656          type: "string"
5657        - name: "logs"
5658          in: "query"
5659          description: "Return logs"
5660          type: "boolean"
5661          default: false
5662        - name: "stream"
5663          in: "query"
5664          description: "Return stream"
5665          type: "boolean"
5666          default: false
5667        - name: "stdin"
5668          in: "query"
5669          description: "Attach to `stdin`"
5670          type: "boolean"
5671          default: false
5672        - name: "stdout"
5673          in: "query"
5674          description: "Attach to `stdout`"
5675          type: "boolean"
5676          default: false
5677        - name: "stderr"
5678          in: "query"
5679          description: "Attach to `stderr`"
5680          type: "boolean"
5681          default: false
5682      tags: ["Container"]
5683  /containers/{id}/wait:
5684    post:
5685      summary: "Wait for a container"
5686      description: "Block until a container stops, then returns the exit code."
5687      operationId: "ContainerWait"
5688      produces: ["application/json"]
5689      responses:
5690        200:
5691          description: "The container has exit."
5692          schema:
5693            type: "object"
5694            required: [StatusCode]
5695            properties:
5696              StatusCode:
5697                description: "Exit code of the container"
5698                type: "integer"
5699                x-nullable: false
5700        404:
5701          description: "no such container"
5702          schema:
5703            $ref: "#/definitions/ErrorResponse"
5704          examples:
5705            application/json:
5706              message: "No such container: c2ada9df5af8"
5707        500:
5708          description: "server error"
5709          schema:
5710            $ref: "#/definitions/ErrorResponse"
5711      parameters:
5712        - name: "id"
5713          in: "path"
5714          required: true
5715          description: "ID or name of the container"
5716          type: "string"
5717        - name: "condition"
5718          in: "query"
5719          description: "Wait until a container state reaches the given condition, either 'not-running' (default), 'next-exit', or 'removed'."
5720          type: "string"
5721          default: "not-running"
5722      tags: ["Container"]
5723  /containers/{id}:
5724    delete:
5725      summary: "Remove a container"
5726      operationId: "ContainerDelete"
5727      responses:
5728        204:
5729          description: "no error"
5730        400:
5731          description: "bad parameter"
5732          schema:
5733            $ref: "#/definitions/ErrorResponse"
5734        404:
5735          description: "no such container"
5736          schema:
5737            $ref: "#/definitions/ErrorResponse"
5738          examples:
5739            application/json:
5740              message: "No such container: c2ada9df5af8"
5741        409:
5742          description: "conflict"
5743          schema:
5744            $ref: "#/definitions/ErrorResponse"
5745          examples:
5746            application/json:
5747              message: "You cannot remove a running container: c2ada9df5af8. Stop the container before attempting removal or force remove"
5748        500:
5749          description: "server error"
5750          schema:
5751            $ref: "#/definitions/ErrorResponse"
5752      parameters:
5753        - name: "id"
5754          in: "path"
5755          required: true
5756          description: "ID or name of the container"
5757          type: "string"
5758        - name: "v"
5759          in: "query"
5760          description: "Remove anonymous volumes associated with the container."
5761          type: "boolean"
5762          default: false
5763        - name: "force"
5764          in: "query"
5765          description: "If the container is running, kill it before removing it."
5766          type: "boolean"
5767          default: false
5768        - name: "link"
5769          in: "query"
5770          description: "Remove the specified link associated with the container."
5771          type: "boolean"
5772          default: false
5773      tags: ["Container"]
5774  /containers/{id}/archive:
5775    head:
5776      summary: "Get information about files in a container"
5777      description: "A response header `X-Docker-Container-Path-Stat` is return containing a base64 - encoded JSON object with some filesystem header information about the path."
5778      operationId: "ContainerArchiveInfo"
5779      responses:
5780        200:
5781          description: "no error"
5782          headers:
5783            X-Docker-Container-Path-Stat:
5784              type: "string"
5785              description: "TODO"
5786        400:
5787          description: "Bad parameter"
5788          schema:
5789            allOf:
5790              - $ref: "#/definitions/ErrorResponse"
5791              - type: "object"
5792                properties:
5793                  message:
5794                    description: "The error message. Either \"must specify path parameter\" (path cannot be empty) or \"not a directory\" (path was asserted to be a directory but exists as a file)."
5795                    type: "string"
5796                    x-nullable: false
5797        404:
5798          description: "Container or path does not exist"
5799          schema:
5800            $ref: "#/definitions/ErrorResponse"
5801          examples:
5802            application/json:
5803              message: "No such container: c2ada9df5af8"
5804        500:
5805          description: "Server error"
5806          schema:
5807            $ref: "#/definitions/ErrorResponse"
5808      parameters:
5809        - name: "id"
5810          in: "path"
5811          required: true
5812          description: "ID or name of the container"
5813          type: "string"
5814        - name: "path"
5815          in: "query"
5816          required: true
5817          description: "Resource in the container’s filesystem to archive."
5818          type: "string"
5819      tags: ["Container"]
5820    get:
5821      summary: "Get an archive of a filesystem resource in a container"
5822      description: "Get a tar archive of a resource in the filesystem of container id."
5823      operationId: "ContainerArchive"
5824      produces: ["application/x-tar"]
5825      responses:
5826        200:
5827          description: "no error"
5828        400:
5829          description: "Bad parameter"
5830          schema:
5831            allOf:
5832              - $ref: "#/definitions/ErrorResponse"
5833              - type: "object"
5834                properties:
5835                  message:
5836                    description: "The error message. Either \"must specify path parameter\" (path cannot be empty) or \"not a directory\" (path was asserted to be a directory but exists as a file)."
5837                    type: "string"
5838                    x-nullable: false
5839        404:
5840          description: "Container or path does not exist"
5841          schema:
5842            $ref: "#/definitions/ErrorResponse"
5843          examples:
5844            application/json:
5845              message: "No such container: c2ada9df5af8"
5846        500:
5847          description: "server error"
5848          schema:
5849            $ref: "#/definitions/ErrorResponse"
5850      parameters:
5851        - name: "id"
5852          in: "path"
5853          required: true
5854          description: "ID or name of the container"
5855          type: "string"
5856        - name: "path"
5857          in: "query"
5858          required: true
5859          description: "Resource in the container’s filesystem to archive."
5860          type: "string"
5861      tags: ["Container"]
5862    put:
5863      summary: "Extract an archive of files or folders to a directory in a container"
5864      description: "Upload a tar archive to be extracted to a path in the filesystem of container id."
5865      operationId: "PutContainerArchive"
5866      consumes: ["application/x-tar", "application/octet-stream"]
5867      responses:
5868        200:
5869          description: "The content was extracted successfully"
5870        400:
5871          description: "Bad parameter"
5872          schema:
5873            $ref: "#/definitions/ErrorResponse"
5874        403:
5875          description: "Permission denied, the volume or container rootfs is marked as read-only."
5876          schema:
5877            $ref: "#/definitions/ErrorResponse"
5878        404:
5879          description: "No such container or path does not exist inside the container"
5880          schema:
5881            $ref: "#/definitions/ErrorResponse"
5882          examples:
5883            application/json:
5884              message: "No such container: c2ada9df5af8"
5885        500:
5886          description: "Server error"
5887          schema:
5888            $ref: "#/definitions/ErrorResponse"
5889      parameters:
5890        - name: "id"
5891          in: "path"
5892          required: true
5893          description: "ID or name of the container"
5894          type: "string"
5895        - name: "path"
5896          in: "query"
5897          required: true
5898          description: "Path to a directory in the container to extract the archive’s contents into. "
5899          type: "string"
5900        - name: "noOverwriteDirNonDir"
5901          in: "query"
5902          description: "If “1”, “true”, or “True” then it will be an error if unpacking the given content would cause an existing directory to be replaced with a non-directory and vice versa."
5903          type: "string"
5904        - name: "inputStream"
5905          in: "body"
5906          required: true
5907          description: "The input stream must be a tar archive compressed with one of the following algorithms: identity (no compression), gzip, bzip2, xz."
5908          schema:
5909            type: "string"
5910      tags: ["Container"]
5911  /containers/prune:
5912    post:
5913      summary: "Delete stopped containers"
5914      produces:
5915        - "application/json"
5916      operationId: "ContainerPrune"
5917      parameters:
5918        - name: "filters"
5919          in: "query"
5920          description: |
5921            Filters to process on the prune list, encoded as JSON (a `map[string][]string`).
5922
5923            Available filters:
5924            - `until=<timestamp>` Prune containers created before this timestamp. The `<timestamp>` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time.
5925            - `label` (`label=<key>`, `label=<key>=<value>`, `label!=<key>`, or `label!=<key>=<value>`) Prune containers with (or without, in case `label!=...` is used) the specified labels.
5926          type: "string"
5927      responses:
5928        200:
5929          description: "No error"
5930          schema:
5931            type: "object"
5932            properties:
5933              ContainersDeleted:
5934                description: "Container IDs that were deleted"
5935                type: "array"
5936                items:
5937                  type: "string"
5938              SpaceReclaimed:
5939                description: "Disk space reclaimed in bytes"
5940                type: "integer"
5941                format: "int64"
5942        500:
5943          description: "Server error"
5944          schema:
5945            $ref: "#/definitions/ErrorResponse"
5946      tags: ["Container"]
5947  /images/json:
5948    get:
5949      summary: "List Images"
5950      description: "Returns a list of images on the server. Note that it uses a different, smaller representation of an image than inspecting a single image."
5951      operationId: "ImageList"
5952      produces:
5953        - "application/json"
5954      responses:
5955        200:
5956          description: "Summary image data for the images matching the query"
5957          schema:
5958            type: "array"
5959            items:
5960              $ref: "#/definitions/ImageSummary"
5961          examples:
5962            application/json:
5963              - Id: "sha256:e216a057b1cb1efc11f8a268f37ef62083e70b1b38323ba252e25ac88904a7e8"
5964                ParentId: ""
5965                RepoTags:
5966                  - "ubuntu:12.04"
5967                  - "ubuntu:precise"
5968                RepoDigests:
5969                  - "ubuntu@sha256:992069aee4016783df6345315302fa59681aae51a8eeb2f889dea59290f21787"
5970                Created: 1474925151
5971                Size: 103579269
5972                VirtualSize: 103579269
5973                SharedSize: 0
5974                Labels: {}
5975                Containers: 2
5976              - Id: "sha256:3e314f95dcace0f5e4fd37b10862fe8398e3c60ed36600bc0ca5fda78b087175"
5977                ParentId: ""
5978                RepoTags:
5979                  - "ubuntu:12.10"
5980                  - "ubuntu:quantal"
5981                RepoDigests:
5982                  - "ubuntu@sha256:002fba3e3255af10be97ea26e476692a7ebed0bb074a9ab960b2e7a1526b15d7"
5983                  - "ubuntu@sha256:68ea0200f0b90df725d99d823905b04cf844f6039ef60c60bf3e019915017bd3"
5984                Created: 1403128455
5985                Size: 172064416
5986                VirtualSize: 172064416
5987                SharedSize: 0
5988                Labels: {}
5989                Containers: 5
5990        500:
5991          description: "server error"
5992          schema:
5993            $ref: "#/definitions/ErrorResponse"
5994      parameters:
5995        - name: "all"
5996          in: "query"
5997          description: "Show all images. Only images from a final layer (no children) are shown by default."
5998          type: "boolean"
5999          default: false
6000        - name: "filters"
6001          in: "query"
6002          description: |
6003            A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters:
6004
6005            - `before`=(`<image-name>[:<tag>]`,  `<image id>` or `<image@digest>`)
6006            - `dangling=true`
6007            - `label=key` or `label="key=value"` of an image label
6008            - `reference`=(`<image-name>[:<tag>]`)
6009            - `since`=(`<image-name>[:<tag>]`,  `<image id>` or `<image@digest>`)
6010          type: "string"
6011        - name: "digests"
6012          in: "query"
6013          description: "Show digest information as a `RepoDigests` field on each image."
6014          type: "boolean"
6015          default: false
6016      tags: ["Image"]
6017  /build:
6018    post:
6019      summary: "Build an image"
6020      description: |
6021        Build an image from a tar archive with a `Dockerfile` in it.
6022
6023        The `Dockerfile` specifies how the image is built from the tar archive. It is typically in the archive's root, but can be at a different path or have a different name by specifying the `dockerfile` parameter. [See the `Dockerfile` reference for more information](https://docs.docker.com/engine/reference/builder/).
6024
6025        The Docker daemon performs a preliminary validation of the `Dockerfile` before starting the build, and returns an error if the syntax is incorrect. After that, each instruction is run one-by-one until the ID of the new image is output.
6026
6027        The build is canceled if the client drops the connection by quitting or being killed.
6028      operationId: "ImageBuild"
6029      consumes:
6030        - "application/octet-stream"
6031      produces:
6032        - "application/json"
6033      parameters:
6034        - name: "inputStream"
6035          in: "body"
6036          description: "A tar archive compressed with one of the following algorithms: identity (no compression), gzip, bzip2, xz."
6037          schema:
6038            type: "string"
6039            format: "binary"
6040        - name: "dockerfile"
6041          in: "query"
6042          description: "Path within the build context to the `Dockerfile`. This is ignored if `remote` is specified and points to an external `Dockerfile`."
6043          type: "string"
6044          default: "Dockerfile"
6045        - name: "t"
6046          in: "query"
6047          description: "A name and optional tag to apply to the image in the `name:tag` format. If you omit the tag the default `latest` value is assumed. You can provide several `t` parameters."
6048          type: "string"
6049        - name: "extrahosts"
6050          in: "query"
6051          description: "Extra hosts to add to /etc/hosts"
6052          type: "string"
6053        - name: "remote"
6054          in: "query"
6055          description: "A Git repository URI or HTTP/HTTPS context URI. If the URI points to a single text file, the file’s contents are placed into a file called `Dockerfile` and the image is built from that file. If the URI points to a tarball, the file is downloaded by the daemon and the contents therein used as the context for the build. If the URI points to a tarball and the `dockerfile` parameter is also specified, there must be a file with the corresponding path inside the tarball."
6056          type: "string"
6057        - name: "q"
6058          in: "query"
6059          description: "Suppress verbose build output."
6060          type: "boolean"
6061          default: false
6062        - name: "nocache"
6063          in: "query"
6064          description: "Do not use the cache when building the image."
6065          type: "boolean"
6066          default: false
6067        - name: "cachefrom"
6068          in: "query"
6069          description: "JSON array of images used for build cache resolution."
6070          type: "string"
6071        - name: "pull"
6072          in: "query"
6073          description: "Attempt to pull the image even if an older image exists locally."
6074          type: "string"
6075        - name: "rm"
6076          in: "query"
6077          description: "Remove intermediate containers after a successful build."
6078          type: "boolean"
6079          default: true
6080        - name: "forcerm"
6081          in: "query"
6082          description: "Always remove intermediate containers, even upon failure."
6083          type: "boolean"
6084          default: false
6085        - name: "memory"
6086          in: "query"
6087          description: "Set memory limit for build."
6088          type: "integer"
6089        - name: "memswap"
6090          in: "query"
6091          description: "Total memory (memory + swap). Set as `-1` to disable swap."
6092          type: "integer"
6093        - name: "cpushares"
6094          in: "query"
6095          description: "CPU shares (relative weight)."
6096          type: "integer"
6097        - name: "cpusetcpus"
6098          in: "query"
6099          description: "CPUs in which to allow execution (e.g., `0-3`, `0,1`)."
6100          type: "string"
6101        - name: "cpuperiod"
6102          in: "query"
6103          description: "The length of a CPU period in microseconds."
6104          type: "integer"
6105        - name: "cpuquota"
6106          in: "query"
6107          description: "Microseconds of CPU time that the container can get in a CPU period."
6108          type: "integer"
6109        - name: "buildargs"
6110          in: "query"
6111          description: "JSON map of string pairs for build-time variables. Users pass these values at build-time. Docker uses the buildargs as the environment context for commands run via the `Dockerfile` RUN instruction, or for variable expansion in other `Dockerfile` instructions. This is not meant for passing secret values. [Read more about the buildargs instruction.](https://docs.docker.com/engine/reference/builder/#arg)"
6112          type: "integer"
6113        - name: "shmsize"
6114          in: "query"
6115          description: "Size of `/dev/shm` in bytes. The size must be greater than 0. If omitted the system uses 64MB."
6116          type: "integer"
6117        - name: "squash"
6118          in: "query"
6119          description: "Squash the resulting images layers into a single layer. *(Experimental release only.)*"
6120          type: "boolean"
6121        - name: "labels"
6122          in: "query"
6123          description: "Arbitrary key/value labels to set on the image, as a JSON map of string pairs."
6124          type: "string"
6125        - name: "networkmode"
6126          in: "query"
6127          description: "Sets the networking mode for the run commands during
6128        build. Supported standard values are: `bridge`, `host`, `none`, and
6129        `container:<name|id>`. Any other value is taken as a custom network's
6130        name to which this container should connect to."
6131          type: "string"
6132        - name: "Content-type"
6133          in: "header"
6134          type: "string"
6135          enum:
6136            - "application/x-tar"
6137          default: "application/x-tar"
6138        - name: "X-Registry-Config"
6139          in: "header"
6140          description: |
6141            This is a base64-encoded JSON object with auth configurations for multiple registries that a build may refer to.
6142
6143            The key is a registry URL, and the value is an auth configuration object, [as described in the authentication section](#section/Authentication). For example:
6144
6145            ```
6146            {
6147              "docker.example.com": {
6148                "username": "janedoe",
6149                "password": "hunter2"
6150              },
6151              "https://index.docker.io/v1/": {
6152                "username": "mobydock",
6153                "password": "conta1n3rize14"
6154              }
6155            }
6156            ```
6157
6158            Only the registry domain name (and port if not the default 443) are required. However, for legacy reasons, the Docker Hub registry must be specified with both a `https://` prefix and a `/v1/` suffix even though Docker will prefer to use the v2 registry API.
6159          type: "string"
6160      responses:
6161        200:
6162          description: "no error"
6163        400:
6164          description: "Bad parameter"
6165          schema:
6166            $ref: "#/definitions/ErrorResponse"
6167        500:
6168          description: "server error"
6169          schema:
6170            $ref: "#/definitions/ErrorResponse"
6171      tags: ["Image"]
6172  /build/prune:
6173    post:
6174      summary: "Delete builder cache"
6175      produces:
6176        - "application/json"
6177      operationId: "BuildPrune"
6178      responses:
6179        200:
6180          description: "No error"
6181          schema:
6182            type: "object"
6183            properties:
6184              SpaceReclaimed:
6185                description: "Disk space reclaimed in bytes"
6186                type: "integer"
6187                format: "int64"
6188        500:
6189          description: "Server error"
6190          schema:
6191            $ref: "#/definitions/ErrorResponse"
6192      tags: ["Image"]
6193  /images/create:
6194    post:
6195      summary: "Create an image"
6196      description: "Create an image by either pulling it from a registry or importing it."
6197      operationId: "ImageCreate"
6198      consumes:
6199        - "text/plain"
6200        - "application/octet-stream"
6201      produces:
6202        - "application/json"
6203      responses:
6204        200:
6205          description: "no error"
6206        404:
6207          description: "repository does not exist or no read access"
6208          schema:
6209            $ref: "#/definitions/ErrorResponse"
6210        500:
6211          description: "server error"
6212          schema:
6213            $ref: "#/definitions/ErrorResponse"
6214      parameters:
6215        - name: "fromImage"
6216          in: "query"
6217          description: "Name of the image to pull. The name may include a tag or digest. This parameter may only be used when pulling an image. The pull is cancelled if the HTTP connection is closed."
6218          type: "string"
6219        - name: "fromSrc"
6220          in: "query"
6221          description: "Source to import. The value may be a URL from which the image can be retrieved or `-` to read the image from the request body. This parameter may only be used when importing an image."
6222          type: "string"
6223        - name: "repo"
6224          in: "query"
6225          description: "Repository name given to an image when it is imported. The repo may include a tag. This parameter may only be used when importing an image."
6226          type: "string"
6227        - name: "tag"
6228          in: "query"
6229          description: "Tag or digest. If empty when pulling an image, this causes all tags for the given image to be pulled."
6230          type: "string"
6231        - name: "inputImage"
6232          in: "body"
6233          description: "Image content if the value `-` has been specified in fromSrc query parameter"
6234          schema:
6235            type: "string"
6236          required: false
6237        - name: "X-Registry-Auth"
6238          in: "header"
6239          description: "A base64-encoded auth configuration. [See the authentication section for details.](#section/Authentication)"
6240          type: "string"
6241      tags: ["Image"]
6242  /images/{name}/json:
6243    get:
6244      summary: "Inspect an image"
6245      description: "Return low-level information about an image."
6246      operationId: "ImageInspect"
6247      produces:
6248        - "application/json"
6249      responses:
6250        200:
6251          description: "No error"
6252          schema:
6253            $ref: "#/definitions/Image"
6254          examples:
6255            application/json:
6256              Id: "sha256:85f05633ddc1c50679be2b16a0479ab6f7637f8884e0cfe0f4d20e1ebb3d6e7c"
6257              Container: "cb91e48a60d01f1e27028b4fc6819f4f290b3cf12496c8176ec714d0d390984a"
6258              Comment: ""
6259              Os: "linux"
6260              Architecture: "amd64"
6261              Parent: "sha256:91e54dfb11794fad694460162bf0cb0a4fa710cfa3f60979c177d920813e267c"
6262              ContainerConfig:
6263                Tty: false
6264                Hostname: "e611e15f9c9d"
6265                Domainname: ""
6266                AttachStdout: false
6267                PublishService: ""
6268                AttachStdin: false
6269                OpenStdin: false
6270                StdinOnce: false
6271                NetworkDisabled: false
6272                OnBuild: []
6273                Image: "91e54dfb11794fad694460162bf0cb0a4fa710cfa3f60979c177d920813e267c"
6274                User: ""
6275                WorkingDir: ""
6276                MacAddress: ""
6277                AttachStderr: false
6278                Labels:
6279                  com.example.license: "GPL"
6280                  com.example.version: "1.0"
6281                  com.example.vendor: "Acme"
6282                Env:
6283                  - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
6284                Cmd:
6285                  - "/bin/sh"
6286                  - "-c"
6287                  - "#(nop) LABEL com.example.vendor=Acme com.example.license=GPL com.example.version=1.0"
6288              DockerVersion: "1.9.0-dev"
6289              VirtualSize: 188359297
6290              Size: 0
6291              Author: ""
6292              Created: "2015-09-10T08:30:53.26995814Z"
6293              GraphDriver:
6294                Name: "aufs"
6295                Data: {}
6296              RepoDigests:
6297                - "localhost:5000/test/busybox/example@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf"
6298              RepoTags:
6299                - "example:1.0"
6300                - "example:latest"
6301                - "example:stable"
6302              Config:
6303                Image: "91e54dfb11794fad694460162bf0cb0a4fa710cfa3f60979c177d920813e267c"
6304                NetworkDisabled: false
6305                OnBuild: []
6306                StdinOnce: false
6307                PublishService: ""
6308                AttachStdin: false
6309                OpenStdin: false
6310                Domainname: ""
6311                AttachStdout: false
6312                Tty: false
6313                Hostname: "e611e15f9c9d"
6314                Cmd:
6315                  - "/bin/bash"
6316                Env:
6317                  - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
6318                Labels:
6319                  com.example.vendor: "Acme"
6320                  com.example.version: "1.0"
6321                  com.example.license: "GPL"
6322                MacAddress: ""
6323                AttachStderr: false
6324                WorkingDir: ""
6325                User: ""
6326              RootFS:
6327                Type: "layers"
6328                Layers:
6329                  - "sha256:1834950e52ce4d5a88a1bbd131c537f4d0e56d10ff0dd69e66be3b7dfa9df7e6"
6330                  - "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef"
6331        404:
6332          description: "No such image"
6333          schema:
6334            $ref: "#/definitions/ErrorResponse"
6335          examples:
6336            application/json:
6337              message: "No such image: someimage (tag: latest)"
6338        500:
6339          description: "Server error"
6340          schema:
6341            $ref: "#/definitions/ErrorResponse"
6342      parameters:
6343        - name: "name"
6344          in: "path"
6345          description: "Image name or id"
6346          type: "string"
6347          required: true
6348      tags: ["Image"]
6349  /images/{name}/history:
6350    get:
6351      summary: "Get the history of an image"
6352      description: "Return parent layers of an image."
6353      operationId: "ImageHistory"
6354      produces: ["application/json"]
6355      responses:
6356        200:
6357          description: "List of image layers"
6358          schema:
6359            type: "array"
6360            items:
6361              type: "object"
6362              x-go-name: HistoryResponseItem
6363              required: [Id, Created, CreatedBy, Tags, Size, Comment]
6364              properties:
6365                Id:
6366                  type: "string"
6367                  x-nullable: false
6368                Created:
6369                  type: "integer"
6370                  format: "int64"
6371                  x-nullable: false
6372                CreatedBy:
6373                  type: "string"
6374                  x-nullable: false
6375                Tags:
6376                  type: "array"
6377                  items:
6378                    type: "string"
6379                Size:
6380                  type: "integer"
6381                  format: "int64"
6382                  x-nullable: false
6383                Comment:
6384                  type: "string"
6385                  x-nullable: false
6386          examples:
6387            application/json:
6388              - Id: "3db9c44f45209632d6050b35958829c3a2aa256d81b9a7be45b362ff85c54710"
6389                Created: 1398108230
6390                CreatedBy: "/bin/sh -c #(nop) ADD file:eb15dbd63394e063b805a3c32ca7bf0266ef64676d5a6fab4801f2e81e2a5148 in /"
6391                Tags:
6392                  - "ubuntu:lucid"
6393                  - "ubuntu:10.04"
6394                Size: 182964289
6395                Comment: ""
6396              - Id: "6cfa4d1f33fb861d4d114f43b25abd0ac737509268065cdfd69d544a59c85ab8"
6397                Created: 1398108222
6398                CreatedBy: "/bin/sh -c #(nop) MAINTAINER Tianon Gravi <admwiggin@gmail.com> - mkimage-debootstrap.sh -i iproute,iputils-ping,ubuntu-minimal -t lucid.tar.xz lucid http://archive.ubuntu.com/ubuntu/"
6399                Tags: []
6400                Size: 0
6401                Comment: ""
6402              - Id: "511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158"
6403                Created: 1371157430
6404                CreatedBy: ""
6405                Tags:
6406                  - "scratch12:latest"
6407                  - "scratch:latest"
6408                Size: 0
6409                Comment: "Imported from -"
6410        404:
6411          description: "No such image"
6412          schema:
6413            $ref: "#/definitions/ErrorResponse"
6414        500:
6415          description: "Server error"
6416          schema:
6417            $ref: "#/definitions/ErrorResponse"
6418      parameters:
6419        - name: "name"
6420          in: "path"
6421          description: "Image name or ID"
6422          type: "string"
6423          required: true
6424      tags: ["Image"]
6425  /images/{name}/push:
6426    post:
6427      summary: "Push an image"
6428      description: |
6429        Push an image to a registry.
6430
6431        If you wish to push an image on to a private registry, that image must already have a tag which references the registry. For example, `registry.example.com/myimage:latest`.
6432
6433        The push is cancelled if the HTTP connection is closed.
6434      operationId: "ImagePush"
6435      consumes:
6436        - "application/octet-stream"
6437      responses:
6438        200:
6439          description: "No error"
6440        404:
6441          description: "No such image"
6442          schema:
6443            $ref: "#/definitions/ErrorResponse"
6444        500:
6445          description: "Server error"
6446          schema:
6447            $ref: "#/definitions/ErrorResponse"
6448      parameters:
6449        - name: "name"
6450          in: "path"
6451          description: "Image name or ID."
6452          type: "string"
6453          required: true
6454        - name: "tag"
6455          in: "query"
6456          description: "The tag to associate with the image on the registry."
6457          type: "string"
6458        - name: "X-Registry-Auth"
6459          in: "header"
6460          description: "A base64-encoded auth configuration. [See the authentication section for details.](#section/Authentication)"
6461          type: "string"
6462          required: true
6463      tags: ["Image"]
6464  /images/{name}/tag:
6465    post:
6466      summary: "Tag an image"
6467      description: "Tag an image so that it becomes part of a repository."
6468      operationId: "ImageTag"
6469      responses:
6470        201:
6471          description: "No error"
6472        400:
6473          description: "Bad parameter"
6474          schema:
6475            $ref: "#/definitions/ErrorResponse"
6476        404:
6477          description: "No such image"
6478          schema:
6479            $ref: "#/definitions/ErrorResponse"
6480        409:
6481          description: "Conflict"
6482          schema:
6483            $ref: "#/definitions/ErrorResponse"
6484        500:
6485          description: "Server error"
6486          schema:
6487            $ref: "#/definitions/ErrorResponse"
6488      parameters:
6489        - name: "name"
6490          in: "path"
6491          description: "Image name or ID to tag."
6492          type: "string"
6493          required: true
6494        - name: "repo"
6495          in: "query"
6496          description: "The repository to tag in. For example, `someuser/someimage`."
6497          type: "string"
6498        - name: "tag"
6499          in: "query"
6500          description: "The name of the new tag."
6501          type: "string"
6502      tags: ["Image"]
6503  /images/{name}:
6504    delete:
6505      summary: "Remove an image"
6506      description: |
6507        Remove an image, along with any untagged parent images that were
6508        referenced by that image.
6509
6510        Images can't be removed if they have descendant images, are being
6511        used by a running container or are being used by a build.
6512      operationId: "ImageDelete"
6513      produces: ["application/json"]
6514      responses:
6515        200:
6516          description: "The image was deleted successfully"
6517          schema:
6518            type: "array"
6519            items:
6520              $ref: "#/definitions/ImageDeleteResponseItem"
6521          examples:
6522            application/json:
6523              - Untagged: "3e2f21a89f"
6524              - Deleted: "3e2f21a89f"
6525              - Deleted: "53b4f83ac9"
6526        404:
6527          description: "No such image"
6528          schema:
6529            $ref: "#/definitions/ErrorResponse"
6530        409:
6531          description: "Conflict"
6532          schema:
6533            $ref: "#/definitions/ErrorResponse"
6534        500:
6535          description: "Server error"
6536          schema:
6537            $ref: "#/definitions/ErrorResponse"
6538      parameters:
6539        - name: "name"
6540          in: "path"
6541          description: "Image name or ID"
6542          type: "string"
6543          required: true
6544        - name: "force"
6545          in: "query"
6546          description: "Remove the image even if it is being used by stopped containers or has other tags"
6547          type: "boolean"
6548          default: false
6549        - name: "noprune"
6550          in: "query"
6551          description: "Do not delete untagged parent images"
6552          type: "boolean"
6553          default: false
6554      tags: ["Image"]
6555  /images/search:
6556    get:
6557      summary: "Search images"
6558      description: "Search for an image on Docker Hub."
6559      operationId: "ImageSearch"
6560      produces:
6561        - "application/json"
6562      responses:
6563        200:
6564          description: "No error"
6565          schema:
6566            type: "array"
6567            items:
6568              type: "object"
6569              properties:
6570                description:
6571                  type: "string"
6572                is_official:
6573                  type: "boolean"
6574                is_automated:
6575                  type: "boolean"
6576                name:
6577                  type: "string"
6578                star_count:
6579                  type: "integer"
6580          examples:
6581            application/json:
6582              - description: ""
6583                is_official: false
6584                is_automated: false
6585                name: "wma55/u1210sshd"
6586                star_count: 0
6587              - description: ""
6588                is_official: false
6589                is_automated: false
6590                name: "jdswinbank/sshd"
6591                star_count: 0
6592              - description: ""
6593                is_official: false
6594                is_automated: false
6595                name: "vgauthier/sshd"
6596                star_count: 0
6597        500:
6598          description: "Server error"
6599          schema:
6600            $ref: "#/definitions/ErrorResponse"
6601      parameters:
6602        - name: "term"
6603          in: "query"
6604          description: "Term to search"
6605          type: "string"
6606          required: true
6607        - name: "limit"
6608          in: "query"
6609          description: "Maximum number of results to return"
6610          type: "integer"
6611        - name: "filters"
6612          in: "query"
6613          description: |
6614            A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters:
6615
6616            - `is-automated=(true|false)`
6617            - `is-official=(true|false)`
6618            - `stars=<number>` Matches images that has at least 'number' stars.
6619          type: "string"
6620      tags: ["Image"]
6621  /images/prune:
6622    post:
6623      summary: "Delete unused images"
6624      produces:
6625        - "application/json"
6626      operationId: "ImagePrune"
6627      parameters:
6628        - name: "filters"
6629          in: "query"
6630          description: |
6631            Filters to process on the prune list, encoded as JSON (a `map[string][]string`). Available filters:
6632
6633            - `dangling=<boolean>` When set to `true` (or `1`), prune only
6634               unused *and* untagged images. When set to `false`
6635               (or `0`), all unused images are pruned.
6636            - `until=<string>` Prune images created before this timestamp. The `<timestamp>` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time.
6637            - `label` (`label=<key>`, `label=<key>=<value>`, `label!=<key>`, or `label!=<key>=<value>`) Prune images with (or without, in case `label!=...` is used) the specified labels.
6638          type: "string"
6639      responses:
6640        200:
6641          description: "No error"
6642          schema:
6643            type: "object"
6644            properties:
6645              ImagesDeleted:
6646                description: "Images that were deleted"
6647                type: "array"
6648                items:
6649                  $ref: "#/definitions/ImageDeleteResponseItem"
6650              SpaceReclaimed:
6651                description: "Disk space reclaimed in bytes"
6652                type: "integer"
6653                format: "int64"
6654        500:
6655          description: "Server error"
6656          schema:
6657            $ref: "#/definitions/ErrorResponse"
6658      tags: ["Image"]
6659  /auth:
6660    post:
6661      summary: "Check auth configuration"
6662      description: "Validate credentials for a registry and, if available, get an identity token for accessing the registry without password."
6663      operationId: "SystemAuth"
6664      consumes: ["application/json"]
6665      produces: ["application/json"]
6666      responses:
6667        200:
6668          description: "An identity token was generated successfully."
6669          schema:
6670            type: "object"
6671            required: [Status]
6672            properties:
6673              Status:
6674                description: "The status of the authentication"
6675                type: "string"
6676                x-nullable: false
6677              IdentityToken:
6678                description: "An opaque token used to authenticate a user after a successful login"
6679                type: "string"
6680                x-nullable: false
6681          examples:
6682            application/json:
6683              Status: "Login Succeeded"
6684              IdentityToken: "9cbaf023786cd7..."
6685        204:
6686          description: "No error"
6687        500:
6688          description: "Server error"
6689          schema:
6690            $ref: "#/definitions/ErrorResponse"
6691      parameters:
6692        - name: "authConfig"
6693          in: "body"
6694          description: "Authentication to check"
6695          schema:
6696            $ref: "#/definitions/AuthConfig"
6697      tags: ["System"]
6698  /info:
6699    get:
6700      summary: "Get system information"
6701      operationId: "SystemInfo"
6702      produces:
6703        - "application/json"
6704      responses:
6705        200:
6706          description: "No error"
6707          schema:
6708            $ref: "#/definitions/SystemInfo"
6709        500:
6710          description: "Server error"
6711          schema:
6712            $ref: "#/definitions/ErrorResponse"
6713      tags: ["System"]
6714  /version:
6715    get:
6716      summary: "Get version"
6717      description: "Returns the version of Docker that is running and various information about the system that Docker is running on."
6718      operationId: "SystemVersion"
6719      produces: ["application/json"]
6720      responses:
6721        200:
6722          description: "no error"
6723          schema:
6724            type: "object"
6725            properties:
6726              Version:
6727                type: "string"
6728              ApiVersion:
6729                type: "string"
6730              MinAPIVersion:
6731                type: "string"
6732              GitCommit:
6733                type: "string"
6734              GoVersion:
6735                type: "string"
6736              Os:
6737                type: "string"
6738              Arch:
6739                type: "string"
6740              KernelVersion:
6741                type: "string"
6742              Experimental:
6743                type: "boolean"
6744              BuildTime:
6745                type: "string"
6746          examples:
6747            application/json:
6748              Version: "17.04.0"
6749              Os: "linux"
6750              KernelVersion: "3.19.0-23-generic"
6751              GoVersion: "go1.7.5"
6752              GitCommit: "deadbee"
6753              Arch: "amd64"
6754              ApiVersion: "1.27"
6755              MinAPIVersion: "1.12"
6756              BuildTime: "2016-06-14T07:09:13.444803460+00:00"
6757              Experimental: true
6758        500:
6759          description: "server error"
6760          schema:
6761            $ref: "#/definitions/ErrorResponse"
6762      tags: ["System"]
6763  /_ping:
6764    get:
6765      summary: "Ping"
6766      description: "This is a dummy endpoint you can use to test if the server is accessible."
6767      operationId: "SystemPing"
6768      produces: ["text/plain"]
6769      responses:
6770        200:
6771          description: "no error"
6772          schema:
6773            type: "string"
6774            example: "OK"
6775          headers:
6776            API-Version:
6777              type: "string"
6778              description: "Max API Version the server supports"
6779            Docker-Experimental:
6780              type: "boolean"
6781              description: "If the server is running with experimental mode enabled"
6782        500:
6783          description: "server error"
6784          schema:
6785            $ref: "#/definitions/ErrorResponse"
6786      tags: ["System"]
6787  /commit:
6788    post:
6789      summary: "Create a new image from a container"
6790      operationId: "ImageCommit"
6791      consumes:
6792        - "application/json"
6793      produces:
6794        - "application/json"
6795      responses:
6796        201:
6797          description: "no error"
6798          schema:
6799            $ref: "#/definitions/IdResponse"
6800        404:
6801          description: "no such container"
6802          schema:
6803            $ref: "#/definitions/ErrorResponse"
6804          examples:
6805            application/json:
6806              message: "No such container: c2ada9df5af8"
6807        500:
6808          description: "server error"
6809          schema:
6810            $ref: "#/definitions/ErrorResponse"
6811      parameters:
6812        - name: "containerConfig"
6813          in: "body"
6814          description: "The container configuration"
6815          schema:
6816            $ref: "#/definitions/ContainerConfig"
6817        - name: "container"
6818          in: "query"
6819          description: "The ID or name of the container to commit"
6820          type: "string"
6821        - name: "repo"
6822          in: "query"
6823          description: "Repository name for the created image"
6824          type: "string"
6825        - name: "tag"
6826          in: "query"
6827          description: "Tag name for the create image"
6828          type: "string"
6829        - name: "comment"
6830          in: "query"
6831          description: "Commit message"
6832          type: "string"
6833        - name: "author"
6834          in: "query"
6835          description: "Author of the image (e.g., `John Hannibal Smith <hannibal@a-team.com>`)"
6836          type: "string"
6837        - name: "pause"
6838          in: "query"
6839          description: "Whether to pause the container before committing"
6840          type: "boolean"
6841          default: true
6842        - name: "changes"
6843          in: "query"
6844          description: "`Dockerfile` instructions to apply while committing"
6845          type: "string"
6846      tags: ["Image"]
6847  /events:
6848    get:
6849      summary: "Monitor events"
6850      description: |
6851        Stream real-time events from the server.
6852
6853        Various objects within Docker report events when something happens to them.
6854
6855        Containers report these events: `attach`, `commit`, `copy`, `create`, `destroy`, `detach`, `die`, `exec_create`, `exec_detach`, `exec_start`, `export`, `health_status`, `kill`, `oom`, `pause`, `rename`, `resize`, `restart`, `start`, `stop`, `top`, `unpause`, and `update`
6856
6857        Images report these events: `delete`, `import`, `load`, `pull`, `push`, `save`, `tag`, and `untag`
6858
6859        Volumes report these events: `create`, `mount`, `unmount`, and `destroy`
6860
6861        Networks report these events: `create`, `connect`, `disconnect`, `destroy`, `update`, and `remove`
6862
6863        The Docker daemon reports these events: `reload`
6864
6865        Services report these events: `create`, `update`, and `remove`
6866
6867        Nodes report these events: `create`, `update`, and `remove`
6868
6869        Secrets report these events: `create`, `update`, and `remove`
6870
6871        Configs report these events: `create`, `update`, and `remove`
6872
6873      operationId: "SystemEvents"
6874      produces:
6875        - "application/json"
6876      responses:
6877        200:
6878          description: "no error"
6879          schema:
6880            type: "object"
6881            properties:
6882              Type:
6883                description: "The type of object emitting the event"
6884                type: "string"
6885              Action:
6886                description: "The type of event"
6887                type: "string"
6888              Actor:
6889                type: "object"
6890                properties:
6891                  ID:
6892                    description: "The ID of the object emitting the event"
6893                    type: "string"
6894                  Attributes:
6895                    description: "Various key/value attributes of the object, depending on its type"
6896                    type: "object"
6897                    additionalProperties:
6898                      type: "string"
6899              time:
6900                description: "Timestamp of event"
6901                type: "integer"
6902              timeNano:
6903                description: "Timestamp of event, with nanosecond accuracy"
6904                type: "integer"
6905                format: "int64"
6906          examples:
6907            application/json:
6908              Type: "container"
6909              Action: "create"
6910              Actor:
6911                ID: "ede54ee1afda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c743"
6912                Attributes:
6913                  com.example.some-label: "some-label-value"
6914                  image: "alpine"
6915                  name: "my-container"
6916              time: 1461943101
6917        400:
6918          description: "bad parameter"
6919          schema:
6920            $ref: "#/definitions/ErrorResponse"
6921        500:
6922          description: "server error"
6923          schema:
6924            $ref: "#/definitions/ErrorResponse"
6925      parameters:
6926        - name: "since"
6927          in: "query"
6928          description: "Show events created since this timestamp then stream new events."
6929          type: "string"
6930        - name: "until"
6931          in: "query"
6932          description: "Show events created until this timestamp then stop streaming."
6933          type: "string"
6934        - name: "filters"
6935          in: "query"
6936          description: |
6937            A JSON encoded value of filters (a `map[string][]string`) to process on the event list. Available filters:
6938
6939            - `container=<string>` container name or ID
6940            - `daemon=<string>` daemon name or ID
6941            - `event=<string>` event type
6942            - `image=<string>` image name or ID
6943            - `label=<string>` image or container label
6944            - `network=<string>` network name or ID
6945            - `plugin`=<string> plugin name or ID
6946            - `scope`=<string> local or swarm
6947            - `type=<string>` object to filter by, one of `container`, `image`, `volume`, `network`, `daemon`, `plugin`, `node`, `service` or `secret`
6948            - `volume=<string>` volume name or ID
6949          type: "string"
6950      tags: ["System"]
6951  /system/df:
6952    get:
6953      summary: "Get data usage information"
6954      operationId: "SystemDataUsage"
6955      responses:
6956        200:
6957          description: "no error"
6958          schema:
6959            type: "object"
6960            properties:
6961              LayersSize:
6962                type: "integer"
6963                format: "int64"
6964              Images:
6965                type: "array"
6966                items:
6967                  $ref: "#/definitions/ImageSummary"
6968              Containers:
6969                type: "array"
6970                items:
6971                  $ref: "#/definitions/ContainerSummary"
6972              Volumes:
6973                type: "array"
6974                items:
6975                  $ref: "#/definitions/Volume"
6976            example:
6977              LayersSize: 1092588
6978              Images:
6979                -
6980                  Id: "sha256:2b8fd9751c4c0f5dd266fcae00707e67a2545ef34f9a29354585f93dac906749"
6981                  ParentId: ""
6982                  RepoTags:
6983                    - "busybox:latest"
6984                  RepoDigests:
6985                    - "busybox@sha256:a59906e33509d14c036c8678d687bd4eec81ed7c4b8ce907b888c607f6a1e0e6"
6986                  Created: 1466724217
6987                  Size: 1092588
6988                  SharedSize: 0
6989                  VirtualSize: 1092588
6990                  Labels: {}
6991                  Containers: 1
6992              Containers:
6993                -
6994                  Id: "e575172ed11dc01bfce087fb27bee502db149e1a0fad7c296ad300bbff178148"
6995                  Names:
6996                    - "/top"
6997                  Image: "busybox"
6998                  ImageID: "sha256:2b8fd9751c4c0f5dd266fcae00707e67a2545ef34f9a29354585f93dac906749"
6999                  Command: "top"
7000                  Created: 1472592424
7001                  Ports: []
7002                  SizeRootFs: 1092588
7003                  Labels: {}
7004                  State: "exited"
7005                  Status: "Exited (0) 56 minutes ago"
7006                  HostConfig:
7007                    NetworkMode: "default"
7008                  NetworkSettings:
7009                    Networks:
7010                      bridge:
7011                        IPAMConfig: null
7012                        Links: null
7013                        Aliases: null
7014                        NetworkID: "d687bc59335f0e5c9ee8193e5612e8aee000c8c62ea170cfb99c098f95899d92"
7015                        EndpointID: "8ed5115aeaad9abb174f68dcf135b49f11daf597678315231a32ca28441dec6a"
7016                        Gateway: "172.18.0.1"
7017                        IPAddress: "172.18.0.2"
7018                        IPPrefixLen: 16
7019                        IPv6Gateway: ""
7020                        GlobalIPv6Address: ""
7021                        GlobalIPv6PrefixLen: 0
7022                        MacAddress: "02:42:ac:12:00:02"
7023                  Mounts: []
7024              Volumes:
7025                -
7026                  Name: "my-volume"
7027                  Driver: "local"
7028                  Mountpoint: "/var/lib/docker/volumes/my-volume/_data"
7029                  Labels: null
7030                  Scope: "local"
7031                  Options: null
7032                  UsageData:
7033                    Size: 10920104
7034                    RefCount: 2
7035        500:
7036          description: "server error"
7037          schema:
7038            $ref: "#/definitions/ErrorResponse"
7039      tags: ["System"]
7040  /images/{name}/get:
7041    get:
7042      summary: "Export an image"
7043      description: |
7044        Get a tarball containing all images and metadata for a repository.
7045
7046        If `name` is a specific name and tag (e.g. `ubuntu:latest`), then only that image (and its parents) are returned. If `name` is an image ID, similarly only that image (and its parents) are returned, but with the exclusion of the `repositories` file in the tarball, as there were no image names referenced.
7047
7048        ### Image tarball format
7049
7050        An image tarball contains one directory per image layer (named using its long ID), each containing these files:
7051
7052        - `VERSION`: currently `1.0` - the file format version
7053        - `json`: detailed layer information, similar to `docker inspect layer_id`
7054        - `layer.tar`: A tarfile containing the filesystem changes in this layer
7055
7056        The `layer.tar` file contains `aufs` style `.wh..wh.aufs` files and directories for storing attribute changes and deletions.
7057
7058        If the tarball defines a repository, the tarball should also include a `repositories` file at the root that contains a list of repository and tag names mapped to layer IDs.
7059
7060        ```json
7061        {
7062          "hello-world": {
7063            "latest": "565a9d68a73f6706862bfe8409a7f659776d4d60a8d096eb4a3cbce6999cc2a1"
7064          }
7065        }
7066        ```
7067      operationId: "ImageGet"
7068      produces:
7069        - "application/x-tar"
7070      responses:
7071        200:
7072          description: "no error"
7073          schema:
7074            type: "string"
7075            format: "binary"
7076        500:
7077          description: "server error"
7078          schema:
7079            $ref: "#/definitions/ErrorResponse"
7080      parameters:
7081        - name: "name"
7082          in: "path"
7083          description: "Image name or ID"
7084          type: "string"
7085          required: true
7086      tags: ["Image"]
7087  /images/get:
7088    get:
7089      summary: "Export several images"
7090      description: |
7091        Get a tarball containing all images and metadata for several image repositories.
7092
7093        For each value of the `names` parameter: if it is a specific name and tag (e.g. `ubuntu:latest`), then only that image (and its parents) are returned; if it is an image ID, similarly only that image (and its parents) are returned and there would be no names referenced in the 'repositories' file for this image ID.
7094
7095        For details on the format, see [the export image endpoint](#operation/ImageGet).
7096      operationId: "ImageGetAll"
7097      produces:
7098        - "application/x-tar"
7099      responses:
7100        200:
7101          description: "no error"
7102          schema:
7103            type: "string"
7104            format: "binary"
7105        500:
7106          description: "server error"
7107          schema:
7108            $ref: "#/definitions/ErrorResponse"
7109      parameters:
7110        - name: "names"
7111          in: "query"
7112          description: "Image names to filter by"
7113          type: "array"
7114          items:
7115            type: "string"
7116      tags: ["Image"]
7117  /images/load:
7118    post:
7119      summary: "Import images"
7120      description: |
7121        Load a set of images and tags into a repository.
7122
7123        For details on the format, see [the export image endpoint](#operation/ImageGet).
7124      operationId: "ImageLoad"
7125      consumes:
7126        - "application/x-tar"
7127      produces:
7128        - "application/json"
7129      responses:
7130        200:
7131          description: "no error"
7132        500:
7133          description: "server error"
7134          schema:
7135            $ref: "#/definitions/ErrorResponse"
7136      parameters:
7137        - name: "imagesTarball"
7138          in: "body"
7139          description: "Tar archive containing images"
7140          schema:
7141            type: "string"
7142            format: "binary"
7143        - name: "quiet"
7144          in: "query"
7145          description: "Suppress progress details during load."
7146          type: "boolean"
7147          default: false
7148      tags: ["Image"]
7149  /containers/{id}/exec:
7150    post:
7151      summary: "Create an exec instance"
7152      description: "Run a command inside a running container."
7153      operationId: "ContainerExec"
7154      consumes:
7155        - "application/json"
7156      produces:
7157        - "application/json"
7158      responses:
7159        201:
7160          description: "no error"
7161          schema:
7162            $ref: "#/definitions/IdResponse"
7163        404:
7164          description: "no such container"
7165          schema:
7166            $ref: "#/definitions/ErrorResponse"
7167          examples:
7168            application/json:
7169              message: "No such container: c2ada9df5af8"
7170        409:
7171          description: "container is paused"
7172          schema:
7173            $ref: "#/definitions/ErrorResponse"
7174        500:
7175          description: "Server error"
7176          schema:
7177            $ref: "#/definitions/ErrorResponse"
7178      parameters:
7179        - name: "execConfig"
7180          in: "body"
7181          description: "Exec configuration"
7182          schema:
7183            type: "object"
7184            properties:
7185              AttachStdin:
7186                type: "boolean"
7187                description: "Attach to `stdin` of the exec command."
7188              AttachStdout:
7189                type: "boolean"
7190                description: "Attach to `stdout` of the exec command."
7191              AttachStderr:
7192                type: "boolean"
7193                description: "Attach to `stderr` of the exec command."
7194              DetachKeys:
7195                type: "string"
7196                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 `_`."
7197              Tty:
7198                type: "boolean"
7199                description: "Allocate a pseudo-TTY."
7200              Env:
7201                description: "A list of environment variables in the form `[\"VAR=value\", ...]`."
7202                type: "array"
7203                items:
7204                  type: "string"
7205              Cmd:
7206                type: "array"
7207                description: "Command to run, as a string or array of strings."
7208                items:
7209                  type: "string"
7210              Privileged:
7211                type: "boolean"
7212                description: "Runs the exec process with extended privileges."
7213                default: false
7214              User:
7215                type: "string"
7216                description: "The user, and optionally, group to run the exec process inside the container. Format is one of: `user`, `user:group`, `uid`, or `uid:gid`."
7217            example:
7218              AttachStdin: false
7219              AttachStdout: true
7220              AttachStderr: true
7221              DetachKeys: "ctrl-p,ctrl-q"
7222              Tty: false
7223              Cmd:
7224                - "date"
7225              Env:
7226                - "FOO=bar"
7227                - "BAZ=quux"
7228          required: true
7229        - name: "id"
7230          in: "path"
7231          description: "ID or name of container"
7232          type: "string"
7233          required: true
7234      tags: ["Exec"]
7235  /exec/{id}/start:
7236    post:
7237      summary: "Start an exec instance"
7238      description: "Starts a previously set up exec instance. If detach is true, this endpoint returns immediately after starting the command. Otherwise, it sets up an interactive session with the command."
7239      operationId: "ExecStart"
7240      consumes:
7241        - "application/json"
7242      produces:
7243        - "application/vnd.docker.raw-stream"
7244      responses:
7245        200:
7246          description: "No error"
7247        404:
7248          description: "No such exec instance"
7249          schema:
7250            $ref: "#/definitions/ErrorResponse"
7251        409:
7252          description: "Container is stopped or paused"
7253          schema:
7254            $ref: "#/definitions/ErrorResponse"
7255      parameters:
7256        - name: "execStartConfig"
7257          in: "body"
7258          schema:
7259            type: "object"
7260            properties:
7261              Detach:
7262                type: "boolean"
7263                description: "Detach from the command."
7264              Tty:
7265                type: "boolean"
7266                description: "Allocate a pseudo-TTY."
7267            example:
7268              Detach: false
7269              Tty: false
7270        - name: "id"
7271          in: "path"
7272          description: "Exec instance ID"
7273          required: true
7274          type: "string"
7275      tags: ["Exec"]
7276  /exec/{id}/resize:
7277    post:
7278      summary: "Resize an exec instance"
7279      description: "Resize the TTY session used by an exec instance. This endpoint only works if `tty` was specified as part of creating and starting the exec instance."
7280      operationId: "ExecResize"
7281      responses:
7282        201:
7283          description: "No error"
7284        404:
7285          description: "No such exec instance"
7286          schema:
7287            $ref: "#/definitions/ErrorResponse"
7288      parameters:
7289        - name: "id"
7290          in: "path"
7291          description: "Exec instance ID"
7292          required: true
7293          type: "string"
7294        - name: "h"
7295          in: "query"
7296          description: "Height of the TTY session in characters"
7297          type: "integer"
7298        - name: "w"
7299          in: "query"
7300          description: "Width of the TTY session in characters"
7301          type: "integer"
7302      tags: ["Exec"]
7303  /exec/{id}/json:
7304    get:
7305      summary: "Inspect an exec instance"
7306      description: "Return low-level information about an exec instance."
7307      operationId: "ExecInspect"
7308      produces:
7309        - "application/json"
7310      responses:
7311        200:
7312          description: "No error"
7313          schema:
7314            type: "object"
7315            properties:
7316              ID:
7317                type: "string"
7318              Running:
7319                type: "boolean"
7320              ExitCode:
7321                type: "integer"
7322              ProcessConfig:
7323                $ref: "#/definitions/ProcessConfig"
7324              OpenStdin:
7325                type: "boolean"
7326              OpenStderr:
7327                type: "boolean"
7328              OpenStdout:
7329                type: "boolean"
7330              ContainerID:
7331                type: "string"
7332              Pid:
7333                type: "integer"
7334                description: "The system process ID for the exec process."
7335          examples:
7336            application/json:
7337              CanRemove: false
7338              ContainerID: "b53ee82b53a40c7dca428523e34f741f3abc51d9f297a14ff874bf761b995126"
7339              DetachKeys: ""
7340              ExitCode: 2
7341              ID: "f33bbfb39f5b142420f4759b2348913bd4a8d1a6d7fd56499cb41a1bb91d7b3b"
7342              OpenStderr: true
7343              OpenStdin: true
7344              OpenStdout: true
7345              ProcessConfig:
7346                arguments:
7347                  - "-c"
7348                  - "exit 2"
7349                entrypoint: "sh"
7350                privileged: false
7351                tty: true
7352                user: "1000"
7353              Running: false
7354              Pid: 42000
7355        404:
7356          description: "No such exec instance"
7357          schema:
7358            $ref: "#/definitions/ErrorResponse"
7359        500:
7360          description: "Server error"
7361          schema:
7362            $ref: "#/definitions/ErrorResponse"
7363      parameters:
7364        - name: "id"
7365          in: "path"
7366          description: "Exec instance ID"
7367          required: true
7368          type: "string"
7369      tags: ["Exec"]
7370
7371  /volumes:
7372    get:
7373      summary: "List volumes"
7374      operationId: "VolumeList"
7375      produces: ["application/json"]
7376      responses:
7377        200:
7378          description: "Summary volume data that matches the query"
7379          schema:
7380            type: "object"
7381            required: [Volumes, Warnings]
7382            properties:
7383              Volumes:
7384                type: "array"
7385                x-nullable: false
7386                description: "List of volumes"
7387                items:
7388                  $ref: "#/definitions/Volume"
7389              Warnings:
7390                type: "array"
7391                x-nullable: false
7392                description: "Warnings that occurred when fetching the list of volumes"
7393                items:
7394                  type: "string"
7395
7396          examples:
7397            application/json:
7398              Volumes:
7399                - CreatedAt: "2017-07-19T12:00:26Z"
7400                  Name: "tardis"
7401                  Driver: "local"
7402                  Mountpoint: "/var/lib/docker/volumes/tardis"
7403                  Labels:
7404                    com.example.some-label: "some-value"
7405                    com.example.some-other-label: "some-other-value"
7406                  Scope: "local"
7407                  Options:
7408                    device: "tmpfs"
7409                    o: "size=100m,uid=1000"
7410                    type: "tmpfs"
7411              Warnings: []
7412        500:
7413          description: "Server error"
7414          schema:
7415            $ref: "#/definitions/ErrorResponse"
7416      parameters:
7417        - name: "filters"
7418          in: "query"
7419          description: |
7420            JSON encoded value of the filters (a `map[string][]string`) to
7421            process on the volumes list. Available filters:
7422
7423            - `dangling=<boolean>` When set to `true` (or `1`), returns all
7424               volumes that are not in use by a container. When set to `false`
7425               (or `0`), only volumes that are in use by one or more
7426               containers are returned.
7427            - `driver=<volume-driver-name>` Matches volumes based on their driver.
7428            - `label=<key>` or `label=<key>:<value>` Matches volumes based on
7429               the presence of a `label` alone or a `label` and a value.
7430            - `name=<volume-name>` Matches all or part of a volume name.
7431          type: "string"
7432          format: "json"
7433      tags: ["Volume"]
7434
7435  /volumes/create:
7436    post:
7437      summary: "Create a volume"
7438      operationId: "VolumeCreate"
7439      consumes: ["application/json"]
7440      produces: ["application/json"]
7441      responses:
7442        201:
7443          description: "The volume was created successfully"
7444          schema:
7445            $ref: "#/definitions/Volume"
7446        500:
7447          description: "Server error"
7448          schema:
7449            $ref: "#/definitions/ErrorResponse"
7450      parameters:
7451        - name: "volumeConfig"
7452          in: "body"
7453          required: true
7454          description: "Volume configuration"
7455          schema:
7456            type: "object"
7457            properties:
7458              Name:
7459                description: "The new volume's name. If not specified, Docker generates a name."
7460                type: "string"
7461                x-nullable: false
7462              Driver:
7463                description: "Name of the volume driver to use."
7464                type: "string"
7465                default: "local"
7466                x-nullable: false
7467              DriverOpts:
7468                description: "A mapping of driver options and values. These options are passed directly to the driver and are driver specific."
7469                type: "object"
7470                additionalProperties:
7471                  type: "string"
7472              Labels:
7473                description: "User-defined key/value metadata."
7474                type: "object"
7475                additionalProperties:
7476                  type: "string"
7477            example:
7478              Name: "tardis"
7479              Labels:
7480                com.example.some-label: "some-value"
7481                com.example.some-other-label: "some-other-value"
7482              Driver: "custom"
7483      tags: ["Volume"]
7484
7485  /volumes/{name}:
7486    get:
7487      summary: "Inspect a volume"
7488      operationId: "VolumeInspect"
7489      produces: ["application/json"]
7490      responses:
7491        200:
7492          description: "No error"
7493          schema:
7494            $ref: "#/definitions/Volume"
7495        404:
7496          description: "No such volume"
7497          schema:
7498            $ref: "#/definitions/ErrorResponse"
7499        500:
7500          description: "Server error"
7501          schema:
7502            $ref: "#/definitions/ErrorResponse"
7503      parameters:
7504        - name: "name"
7505          in: "path"
7506          required: true
7507          description: "Volume name or ID"
7508          type: "string"
7509      tags: ["Volume"]
7510
7511    delete:
7512      summary: "Remove a volume"
7513      description: "Instruct the driver to remove the volume."
7514      operationId: "VolumeDelete"
7515      responses:
7516        204:
7517          description: "The volume was removed"
7518        404:
7519          description: "No such volume or volume driver"
7520          schema:
7521            $ref: "#/definitions/ErrorResponse"
7522        409:
7523          description: "Volume is in use and cannot be removed"
7524          schema:
7525            $ref: "#/definitions/ErrorResponse"
7526        500:
7527          description: "Server error"
7528          schema:
7529            $ref: "#/definitions/ErrorResponse"
7530      parameters:
7531        - name: "name"
7532          in: "path"
7533          required: true
7534          description: "Volume name or ID"
7535          type: "string"
7536        - name: "force"
7537          in: "query"
7538          description: "Force the removal of the volume"
7539          type: "boolean"
7540          default: false
7541      tags: ["Volume"]
7542  /volumes/prune:
7543    post:
7544      summary: "Delete unused volumes"
7545      produces:
7546        - "application/json"
7547      operationId: "VolumePrune"
7548      parameters:
7549        - name: "filters"
7550          in: "query"
7551          description: |
7552            Filters to process on the prune list, encoded as JSON (a `map[string][]string`).
7553
7554            Available filters:
7555            - `label` (`label=<key>`, `label=<key>=<value>`, `label!=<key>`, or `label!=<key>=<value>`) Prune volumes with (or without, in case `label!=...` is used) the specified labels.
7556          type: "string"
7557      responses:
7558        200:
7559          description: "No error"
7560          schema:
7561            type: "object"
7562            properties:
7563              VolumesDeleted:
7564                description: "Volumes that were deleted"
7565                type: "array"
7566                items:
7567                  type: "string"
7568              SpaceReclaimed:
7569                description: "Disk space reclaimed in bytes"
7570                type: "integer"
7571                format: "int64"
7572        500:
7573          description: "Server error"
7574          schema:
7575            $ref: "#/definitions/ErrorResponse"
7576      tags: ["Volume"]
7577  /networks:
7578    get:
7579      summary: "List networks"
7580      description: |
7581        Returns a list of networks. For details on the format, see [the network inspect endpoint](#operation/NetworkInspect).
7582
7583        Note that it uses a different, smaller representation of a network than inspecting a single network. For example,
7584        the list of containers attached to the network is not propagated in API versions 1.28 and up.
7585      operationId: "NetworkList"
7586      produces:
7587        - "application/json"
7588      responses:
7589        200:
7590          description: "No error"
7591          schema:
7592            type: "array"
7593            items:
7594              $ref: "#/definitions/Network"
7595          examples:
7596            application/json:
7597              - Name: "bridge"
7598                Id: "f2de39df4171b0dc801e8002d1d999b77256983dfc63041c0f34030aa3977566"
7599                Created: "2016-10-19T06:21:00.416543526Z"
7600                Scope: "local"
7601                Driver: "bridge"
7602                EnableIPv6: false
7603                Internal: false
7604                Attachable: false
7605                Ingress: false
7606                IPAM:
7607                  Driver: "default"
7608                  Config:
7609                    -
7610                      Subnet: "172.17.0.0/16"
7611                Options:
7612                  com.docker.network.bridge.default_bridge: "true"
7613                  com.docker.network.bridge.enable_icc: "true"
7614                  com.docker.network.bridge.enable_ip_masquerade: "true"
7615                  com.docker.network.bridge.host_binding_ipv4: "0.0.0.0"
7616                  com.docker.network.bridge.name: "docker0"
7617                  com.docker.network.driver.mtu: "1500"
7618              - Name: "none"
7619                Id: "e086a3893b05ab69242d3c44e49483a3bbbd3a26b46baa8f61ab797c1088d794"
7620                Created: "0001-01-01T00:00:00Z"
7621                Scope: "local"
7622                Driver: "null"
7623                EnableIPv6: false
7624                Internal: false
7625                Attachable: false
7626                Ingress: false
7627                IPAM:
7628                  Driver: "default"
7629                  Config: []
7630                Containers: {}
7631                Options: {}
7632              - Name: "host"
7633                Id: "13e871235c677f196c4e1ecebb9dc733b9b2d2ab589e30c539efeda84a24215e"
7634                Created: "0001-01-01T00:00:00Z"
7635                Scope: "local"
7636                Driver: "host"
7637                EnableIPv6: false
7638                Internal: false
7639                Attachable: false
7640                Ingress: false
7641                IPAM:
7642                  Driver: "default"
7643                  Config: []
7644                Containers: {}
7645                Options: {}
7646        500:
7647          description: "Server error"
7648          schema:
7649            $ref: "#/definitions/ErrorResponse"
7650      parameters:
7651        - name: "filters"
7652          in: "query"
7653          description: |
7654            JSON encoded value of the filters (a `map[string][]string`) to process on the networks list. Available filters:
7655
7656            - `driver=<driver-name>` Matches a network's driver.
7657            - `id=<network-id>` Matches all or part of a network ID.
7658            - `label=<key>` or `label=<key>=<value>` of a network label.
7659            - `name=<network-name>` Matches all or part of a network name.
7660            - `scope=["swarm"|"global"|"local"]` Filters networks by scope (`swarm`, `global`, or `local`).
7661            - `type=["custom"|"builtin"]` Filters networks by type. The `custom` keyword returns all user-defined networks.
7662          type: "string"
7663      tags: ["Network"]
7664
7665  /networks/{id}:
7666    get:
7667      summary: "Inspect a network"
7668      operationId: "NetworkInspect"
7669      produces:
7670        - "application/json"
7671      responses:
7672        200:
7673          description: "No error"
7674          schema:
7675            $ref: "#/definitions/Network"
7676        404:
7677          description: "Network not found"
7678          schema:
7679            $ref: "#/definitions/ErrorResponse"
7680        500:
7681          description: "Server error"
7682          schema:
7683            $ref: "#/definitions/ErrorResponse"
7684      parameters:
7685        - name: "id"
7686          in: "path"
7687          description: "Network ID or name"
7688          required: true
7689          type: "string"
7690        - name: "verbose"
7691          in: "query"
7692          description: "Detailed inspect output for troubleshooting"
7693          type: "boolean"
7694          default: false
7695        - name: "scope"
7696          in: "query"
7697          description: "Filter the network by scope (swarm, global, or local)"
7698          type: "string"
7699      tags: ["Network"]
7700
7701    delete:
7702      summary: "Remove a network"
7703      operationId: "NetworkDelete"
7704      responses:
7705        204:
7706          description: "No error"
7707        403:
7708          description: "operation not supported for pre-defined networks"
7709          schema:
7710            $ref: "#/definitions/ErrorResponse"
7711        404:
7712          description: "no such network"
7713          schema:
7714            $ref: "#/definitions/ErrorResponse"
7715        500:
7716          description: "Server error"
7717          schema:
7718            $ref: "#/definitions/ErrorResponse"
7719      parameters:
7720        - name: "id"
7721          in: "path"
7722          description: "Network ID or name"
7723          required: true
7724          type: "string"
7725      tags: ["Network"]
7726
7727  /networks/create:
7728    post:
7729      summary: "Create a network"
7730      operationId: "NetworkCreate"
7731      consumes:
7732        - "application/json"
7733      produces:
7734        - "application/json"
7735      responses:
7736        201:
7737          description: "No error"
7738          schema:
7739            type: "object"
7740            properties:
7741              Id:
7742                description: "The ID of the created network."
7743                type: "string"
7744              Warning:
7745                type: "string"
7746            example:
7747              Id: "22be93d5babb089c5aab8dbc369042fad48ff791584ca2da2100db837a1c7c30"
7748              Warning: ""
7749        403:
7750          description: "operation not supported for pre-defined networks"
7751          schema:
7752            $ref: "#/definitions/ErrorResponse"
7753        404:
7754          description: "plugin not found"
7755          schema:
7756            $ref: "#/definitions/ErrorResponse"
7757        500:
7758          description: "Server error"
7759          schema:
7760            $ref: "#/definitions/ErrorResponse"
7761      parameters:
7762        - name: "networkConfig"
7763          in: "body"
7764          description: "Network configuration"
7765          required: true
7766          schema:
7767            type: "object"
7768            required: ["Name"]
7769            properties:
7770              Name:
7771                description: "The network's name."
7772                type: "string"
7773              CheckDuplicate:
7774                description: "Check for networks with duplicate names. Since Network is primarily keyed based on a random ID and not on the name, and network name is strictly a user-friendly alias to the network which is uniquely identified using ID, there is no guaranteed way to check for duplicates. CheckDuplicate is there to provide a best effort checking of any networks which has the same name but it is not guaranteed to catch all name collisions."
7775                type: "boolean"
7776              Driver:
7777                description: "Name of the network driver plugin to use."
7778                type: "string"
7779                default: "bridge"
7780              Internal:
7781                description: "Restrict external access to the network."
7782                type: "boolean"
7783              Attachable:
7784                description: "Globally scoped network is manually attachable by regular containers from workers in swarm mode."
7785                type: "boolean"
7786              Ingress:
7787                description: "Ingress network is the network which provides the routing-mesh in swarm mode."
7788                type: "boolean"
7789              IPAM:
7790                description: "Optional custom IP scheme for the network."
7791                $ref: "#/definitions/IPAM"
7792              EnableIPv6:
7793                description: "Enable IPv6 on the network."
7794                type: "boolean"
7795              Options:
7796                description: "Network specific options to be used by the drivers."
7797                type: "object"
7798                additionalProperties:
7799                  type: "string"
7800              Labels:
7801                description: "User-defined key/value metadata."
7802                type: "object"
7803                additionalProperties:
7804                  type: "string"
7805            example:
7806              Name: "isolated_nw"
7807              CheckDuplicate: false
7808              Driver: "bridge"
7809              EnableIPv6: true
7810              IPAM:
7811                Driver: "default"
7812                Config:
7813                  - Subnet: "172.20.0.0/16"
7814                    IPRange: "172.20.10.0/24"
7815                    Gateway: "172.20.10.11"
7816                  - Subnet: "2001:db8:abcd::/64"
7817                    Gateway: "2001:db8:abcd::1011"
7818                Options:
7819                  foo: "bar"
7820              Internal: true
7821              Attachable: false
7822              Ingress: false
7823              Options:
7824                com.docker.network.bridge.default_bridge: "true"
7825                com.docker.network.bridge.enable_icc: "true"
7826                com.docker.network.bridge.enable_ip_masquerade: "true"
7827                com.docker.network.bridge.host_binding_ipv4: "0.0.0.0"
7828                com.docker.network.bridge.name: "docker0"
7829                com.docker.network.driver.mtu: "1500"
7830              Labels:
7831                com.example.some-label: "some-value"
7832                com.example.some-other-label: "some-other-value"
7833      tags: ["Network"]
7834
7835  /networks/{id}/connect:
7836    post:
7837      summary: "Connect a container to a network"
7838      operationId: "NetworkConnect"
7839      consumes:
7840        - "application/octet-stream"
7841      responses:
7842        200:
7843          description: "No error"
7844        403:
7845          description: "Operation not supported for swarm scoped networks"
7846          schema:
7847            $ref: "#/definitions/ErrorResponse"
7848        404:
7849          description: "Network or container not found"
7850          schema:
7851            $ref: "#/definitions/ErrorResponse"
7852        500:
7853          description: "Server error"
7854          schema:
7855            $ref: "#/definitions/ErrorResponse"
7856      parameters:
7857        - name: "id"
7858          in: "path"
7859          description: "Network ID or name"
7860          required: true
7861          type: "string"
7862        - name: "container"
7863          in: "body"
7864          required: true
7865          schema:
7866            type: "object"
7867            properties:
7868              Container:
7869                type: "string"
7870                description: "The ID or name of the container to connect to the network."
7871              EndpointConfig:
7872                $ref: "#/definitions/EndpointSettings"
7873            example:
7874              Container: "3613f73ba0e4"
7875              EndpointConfig:
7876                IPAMConfig:
7877                  IPv4Address: "172.24.56.89"
7878                  IPv6Address: "2001:db8::5689"
7879      tags: ["Network"]
7880
7881  /networks/{id}/disconnect:
7882    post:
7883      summary: "Disconnect a container from a network"
7884      operationId: "NetworkDisconnect"
7885      consumes:
7886        - "application/json"
7887      responses:
7888        200:
7889          description: "No error"
7890        403:
7891          description: "Operation not supported for swarm scoped networks"
7892          schema:
7893            $ref: "#/definitions/ErrorResponse"
7894        404:
7895          description: "Network or container not found"
7896          schema:
7897            $ref: "#/definitions/ErrorResponse"
7898        500:
7899          description: "Server error"
7900          schema:
7901            $ref: "#/definitions/ErrorResponse"
7902      parameters:
7903        - name: "id"
7904          in: "path"
7905          description: "Network ID or name"
7906          required: true
7907          type: "string"
7908        - name: "container"
7909          in: "body"
7910          required: true
7911          schema:
7912            type: "object"
7913            properties:
7914              Container:
7915                type: "string"
7916                description: "The ID or name of the container to disconnect from the network."
7917              Force:
7918                type: "boolean"
7919                description: "Force the container to disconnect from the network."
7920      tags: ["Network"]
7921  /networks/prune:
7922    post:
7923      summary: "Delete unused networks"
7924      produces:
7925        - "application/json"
7926      operationId: "NetworkPrune"
7927      parameters:
7928        - name: "filters"
7929          in: "query"
7930          description: |
7931            Filters to process on the prune list, encoded as JSON (a `map[string][]string`).
7932
7933            Available filters:
7934            - `until=<timestamp>` Prune networks created before this timestamp. The `<timestamp>` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time.
7935            - `label` (`label=<key>`, `label=<key>=<value>`, `label!=<key>`, or `label!=<key>=<value>`) Prune networks with (or without, in case `label!=...` is used) the specified labels.
7936          type: "string"
7937      responses:
7938        200:
7939          description: "No error"
7940          schema:
7941            type: "object"
7942            properties:
7943              NetworksDeleted:
7944                description: "Networks that were deleted"
7945                type: "array"
7946                items:
7947                  type: "string"
7948        500:
7949          description: "Server error"
7950          schema:
7951            $ref: "#/definitions/ErrorResponse"
7952      tags: ["Network"]
7953  /plugins:
7954    get:
7955      summary: "List plugins"
7956      operationId: "PluginList"
7957      description: "Returns information about installed plugins."
7958      produces: ["application/json"]
7959      responses:
7960        200:
7961          description: "No error"
7962          schema:
7963            type: "array"
7964            items:
7965              $ref: "#/definitions/Plugin"
7966        500:
7967          description: "Server error"
7968          schema:
7969            $ref: "#/definitions/ErrorResponse"
7970      parameters:
7971        - name: "filters"
7972          in: "query"
7973          type: "string"
7974          description: |
7975            A JSON encoded value of the filters (a `map[string][]string`) to process on the plugin list. Available filters:
7976
7977            - `capability=<capability name>`
7978            - `enable=<true>|<false>`
7979      tags: ["Plugin"]
7980
7981  /plugins/privileges:
7982    get:
7983      summary: "Get plugin privileges"
7984      operationId: "GetPluginPrivileges"
7985      responses:
7986        200:
7987          description: "no error"
7988          schema:
7989            type: "array"
7990            items:
7991              description: "Describes a permission the user has to accept upon installing the plugin."
7992              type: "object"
7993              properties:
7994                Name:
7995                  type: "string"
7996                Description:
7997                  type: "string"
7998                Value:
7999                  type: "array"
8000                  items:
8001                    type: "string"
8002            example:
8003              - Name: "network"
8004                Description: ""
8005                Value:
8006                  - "host"
8007              - Name: "mount"
8008                Description: ""
8009                Value:
8010                  - "/data"
8011              - Name: "device"
8012                Description: ""
8013                Value:
8014                  - "/dev/cpu_dma_latency"
8015        500:
8016          description: "server error"
8017          schema:
8018            $ref: "#/definitions/ErrorResponse"
8019      parameters:
8020        - name: "remote"
8021          in: "query"
8022          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8023          required: true
8024          type: "string"
8025      tags:
8026        - "Plugin"
8027
8028  /plugins/pull:
8029    post:
8030      summary: "Install a plugin"
8031      operationId: "PluginPull"
8032      description: |
8033        Pulls and installs a plugin. After the plugin is installed, it can be enabled using the [`POST /plugins/{name}/enable` endpoint](#operation/PostPluginsEnable).
8034      produces:
8035        - "application/json"
8036      responses:
8037        204:
8038          description: "no error"
8039        500:
8040          description: "server error"
8041          schema:
8042            $ref: "#/definitions/ErrorResponse"
8043      parameters:
8044        - name: "remote"
8045          in: "query"
8046          description: |
8047            Remote reference for plugin to install.
8048
8049            The `:latest` tag is optional, and is used as the default if omitted.
8050          required: true
8051          type: "string"
8052        - name: "name"
8053          in: "query"
8054          description: |
8055            Local name for the pulled plugin.
8056
8057            The `:latest` tag is optional, and is used as the default if omitted.
8058          required: false
8059          type: "string"
8060        - name: "X-Registry-Auth"
8061          in: "header"
8062          description: "A base64-encoded auth configuration to use when pulling a plugin from a registry. [See the authentication section for details.](#section/Authentication)"
8063          type: "string"
8064        - name: "body"
8065          in: "body"
8066          schema:
8067            type: "array"
8068            items:
8069              description: "Describes a permission accepted by the user upon installing the plugin."
8070              type: "object"
8071              properties:
8072                Name:
8073                  type: "string"
8074                Description:
8075                  type: "string"
8076                Value:
8077                  type: "array"
8078                  items:
8079                    type: "string"
8080            example:
8081              - Name: "network"
8082                Description: ""
8083                Value:
8084                  - "host"
8085              - Name: "mount"
8086                Description: ""
8087                Value:
8088                  - "/data"
8089              - Name: "device"
8090                Description: ""
8091                Value:
8092                  - "/dev/cpu_dma_latency"
8093      tags: ["Plugin"]
8094  /plugins/{name}/json:
8095    get:
8096      summary: "Inspect a plugin"
8097      operationId: "PluginInspect"
8098      responses:
8099        200:
8100          description: "no error"
8101          schema:
8102            $ref: "#/definitions/Plugin"
8103        404:
8104          description: "plugin is not installed"
8105          schema:
8106            $ref: "#/definitions/ErrorResponse"
8107        500:
8108          description: "server error"
8109          schema:
8110            $ref: "#/definitions/ErrorResponse"
8111      parameters:
8112        - name: "name"
8113          in: "path"
8114          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8115          required: true
8116          type: "string"
8117      tags: ["Plugin"]
8118  /plugins/{name}:
8119    delete:
8120      summary: "Remove a plugin"
8121      operationId: "PluginDelete"
8122      responses:
8123        200:
8124          description: "no error"
8125          schema:
8126            $ref: "#/definitions/Plugin"
8127        404:
8128          description: "plugin is not installed"
8129          schema:
8130            $ref: "#/definitions/ErrorResponse"
8131        500:
8132          description: "server error"
8133          schema:
8134            $ref: "#/definitions/ErrorResponse"
8135      parameters:
8136        - name: "name"
8137          in: "path"
8138          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8139          required: true
8140          type: "string"
8141        - name: "force"
8142          in: "query"
8143          description: "Disable the plugin before removing. This may result in issues if the plugin is in use by a container."
8144          type: "boolean"
8145          default: false
8146      tags: ["Plugin"]
8147  /plugins/{name}/enable:
8148    post:
8149      summary: "Enable a plugin"
8150      operationId: "PluginEnable"
8151      responses:
8152        200:
8153          description: "no error"
8154        404:
8155          description: "plugin is not installed"
8156          schema:
8157            $ref: "#/definitions/ErrorResponse"
8158        500:
8159          description: "server error"
8160          schema:
8161            $ref: "#/definitions/ErrorResponse"
8162      parameters:
8163        - name: "name"
8164          in: "path"
8165          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8166          required: true
8167          type: "string"
8168        - name: "timeout"
8169          in: "query"
8170          description: "Set the HTTP client timeout (in seconds)"
8171          type: "integer"
8172          default: 0
8173      tags: ["Plugin"]
8174  /plugins/{name}/disable:
8175    post:
8176      summary: "Disable a plugin"
8177      operationId: "PluginDisable"
8178      responses:
8179        200:
8180          description: "no error"
8181        404:
8182          description: "plugin is not installed"
8183          schema:
8184            $ref: "#/definitions/ErrorResponse"
8185        500:
8186          description: "server error"
8187          schema:
8188            $ref: "#/definitions/ErrorResponse"
8189      parameters:
8190        - name: "name"
8191          in: "path"
8192          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8193          required: true
8194          type: "string"
8195      tags: ["Plugin"]
8196  /plugins/{name}/upgrade:
8197    post:
8198      summary: "Upgrade a plugin"
8199      operationId: "PluginUpgrade"
8200      responses:
8201        204:
8202          description: "no error"
8203        404:
8204          description: "plugin not installed"
8205          schema:
8206            $ref: "#/definitions/ErrorResponse"
8207        500:
8208          description: "server error"
8209          schema:
8210            $ref: "#/definitions/ErrorResponse"
8211      parameters:
8212        - name: "name"
8213          in: "path"
8214          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8215          required: true
8216          type: "string"
8217        - name: "remote"
8218          in: "query"
8219          description: |
8220            Remote reference to upgrade to.
8221
8222            The `:latest` tag is optional, and is used as the default if omitted.
8223          required: true
8224          type: "string"
8225        - name: "X-Registry-Auth"
8226          in: "header"
8227          description: "A base64-encoded auth configuration to use when pulling a plugin from a registry. [See the authentication section for details.](#section/Authentication)"
8228          type: "string"
8229        - name: "body"
8230          in: "body"
8231          schema:
8232            type: "array"
8233            items:
8234              description: "Describes a permission accepted by the user upon installing the plugin."
8235              type: "object"
8236              properties:
8237                Name:
8238                  type: "string"
8239                Description:
8240                  type: "string"
8241                Value:
8242                  type: "array"
8243                  items:
8244                    type: "string"
8245            example:
8246              - Name: "network"
8247                Description: ""
8248                Value:
8249                  - "host"
8250              - Name: "mount"
8251                Description: ""
8252                Value:
8253                  - "/data"
8254              - Name: "device"
8255                Description: ""
8256                Value:
8257                  - "/dev/cpu_dma_latency"
8258      tags: ["Plugin"]
8259  /plugins/create:
8260    post:
8261      summary: "Create a plugin"
8262      operationId: "PluginCreate"
8263      consumes:
8264        - "application/x-tar"
8265      responses:
8266        204:
8267          description: "no error"
8268        500:
8269          description: "server error"
8270          schema:
8271            $ref: "#/definitions/ErrorResponse"
8272      parameters:
8273        - name: "name"
8274          in: "query"
8275          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8276          required: true
8277          type: "string"
8278        - name: "tarContext"
8279          in: "body"
8280          description: "Path to tar containing plugin rootfs and manifest"
8281          schema:
8282            type: "string"
8283            format: "binary"
8284      tags: ["Plugin"]
8285  /plugins/{name}/push:
8286    post:
8287      summary: "Push a plugin"
8288      operationId: "PluginPush"
8289      description: |
8290        Push a plugin to the registry.
8291      parameters:
8292        - name: "name"
8293          in: "path"
8294          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8295          required: true
8296          type: "string"
8297      responses:
8298        200:
8299          description: "no error"
8300        404:
8301          description: "plugin not installed"
8302          schema:
8303            $ref: "#/definitions/ErrorResponse"
8304        500:
8305          description: "server error"
8306          schema:
8307            $ref: "#/definitions/ErrorResponse"
8308      tags: ["Plugin"]
8309  /plugins/{name}/set:
8310    post:
8311      summary: "Configure a plugin"
8312      operationId: "PluginSet"
8313      consumes:
8314        - "application/json"
8315      parameters:
8316        - name: "name"
8317          in: "path"
8318          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8319          required: true
8320          type: "string"
8321        - name: "body"
8322          in: "body"
8323          schema:
8324            type: "array"
8325            items:
8326              type: "string"
8327            example: ["DEBUG=1"]
8328      responses:
8329        204:
8330          description: "No error"
8331        404:
8332          description: "Plugin not installed"
8333          schema:
8334            $ref: "#/definitions/ErrorResponse"
8335        500:
8336          description: "Server error"
8337          schema:
8338            $ref: "#/definitions/ErrorResponse"
8339      tags: ["Plugin"]
8340  /nodes:
8341    get:
8342      summary: "List nodes"
8343      operationId: "NodeList"
8344      responses:
8345        200:
8346          description: "no error"
8347          schema:
8348            type: "array"
8349            items:
8350              $ref: "#/definitions/Node"
8351        500:
8352          description: "server error"
8353          schema:
8354            $ref: "#/definitions/ErrorResponse"
8355        503:
8356          description: "node is not part of a swarm"
8357          schema:
8358            $ref: "#/definitions/ErrorResponse"
8359      parameters:
8360        - name: "filters"
8361          in: "query"
8362          description: |
8363            Filters to process on the nodes list, encoded as JSON (a `map[string][]string`).
8364
8365            Available filters:
8366            - `id=<node id>`
8367            - `label=<engine label>`
8368            - `membership=`(`accepted`|`pending`)`
8369            - `name=<node name>`
8370            - `role=`(`manager`|`worker`)`
8371          type: "string"
8372      tags: ["Node"]
8373  /nodes/{id}:
8374    get:
8375      summary: "Inspect a node"
8376      operationId: "NodeInspect"
8377      responses:
8378        200:
8379          description: "no error"
8380          schema:
8381            $ref: "#/definitions/Node"
8382        404:
8383          description: "no such node"
8384          schema:
8385            $ref: "#/definitions/ErrorResponse"
8386        500:
8387          description: "server error"
8388          schema:
8389            $ref: "#/definitions/ErrorResponse"
8390        503:
8391          description: "node is not part of a swarm"
8392          schema:
8393            $ref: "#/definitions/ErrorResponse"
8394      parameters:
8395        - name: "id"
8396          in: "path"
8397          description: "The ID or name of the node"
8398          type: "string"
8399          required: true
8400      tags: ["Node"]
8401    delete:
8402      summary: "Delete a node"
8403      operationId: "NodeDelete"
8404      responses:
8405        200:
8406          description: "no error"
8407        404:
8408          description: "no such node"
8409          schema:
8410            $ref: "#/definitions/ErrorResponse"
8411        500:
8412          description: "server error"
8413          schema:
8414            $ref: "#/definitions/ErrorResponse"
8415        503:
8416          description: "node is not part of a swarm"
8417          schema:
8418            $ref: "#/definitions/ErrorResponse"
8419      parameters:
8420        - name: "id"
8421          in: "path"
8422          description: "The ID or name of the node"
8423          type: "string"
8424          required: true
8425        - name: "force"
8426          in: "query"
8427          description: "Force remove a node from the swarm"
8428          default: false
8429          type: "boolean"
8430      tags: ["Node"]
8431  /nodes/{id}/update:
8432    post:
8433      summary: "Update a node"
8434      operationId: "NodeUpdate"
8435      responses:
8436        200:
8437          description: "no error"
8438        400:
8439          description: "bad parameter"
8440          schema:
8441            $ref: "#/definitions/ErrorResponse"
8442        404:
8443          description: "no such node"
8444          schema:
8445            $ref: "#/definitions/ErrorResponse"
8446        500:
8447          description: "server error"
8448          schema:
8449            $ref: "#/definitions/ErrorResponse"
8450        503:
8451          description: "node is not part of a swarm"
8452          schema:
8453            $ref: "#/definitions/ErrorResponse"
8454      parameters:
8455        - name: "id"
8456          in: "path"
8457          description: "The ID of the node"
8458          type: "string"
8459          required: true
8460        - name: "body"
8461          in: "body"
8462          schema:
8463            $ref: "#/definitions/NodeSpec"
8464        - name: "version"
8465          in: "query"
8466          description: "The version number of the node object being updated. This is required to avoid conflicting writes."
8467          type: "integer"
8468          format: "int64"
8469          required: true
8470      tags: ["Node"]
8471  /swarm:
8472    get:
8473      summary: "Inspect swarm"
8474      operationId: "SwarmInspect"
8475      responses:
8476        200:
8477          description: "no error"
8478          schema:
8479            $ref: "#/definitions/Swarm"
8480        404:
8481          description: "no such swarm"
8482          schema:
8483            $ref: "#/definitions/ErrorResponse"
8484        500:
8485          description: "server error"
8486          schema:
8487            $ref: "#/definitions/ErrorResponse"
8488        503:
8489          description: "node is not part of a swarm"
8490          schema:
8491            $ref: "#/definitions/ErrorResponse"
8492      tags: ["Swarm"]
8493  /swarm/init:
8494    post:
8495      summary: "Initialize a new swarm"
8496      operationId: "SwarmInit"
8497      produces:
8498        - "application/json"
8499        - "text/plain"
8500      responses:
8501        200:
8502          description: "no error"
8503          schema:
8504            description: "The node ID"
8505            type: "string"
8506            example: "7v2t30z9blmxuhnyo6s4cpenp"
8507        400:
8508          description: "bad parameter"
8509          schema:
8510            $ref: "#/definitions/ErrorResponse"
8511        500:
8512          description: "server error"
8513          schema:
8514            $ref: "#/definitions/ErrorResponse"
8515        503:
8516          description: "node is already part of a swarm"
8517          schema:
8518            $ref: "#/definitions/ErrorResponse"
8519      parameters:
8520        - name: "body"
8521          in: "body"
8522          required: true
8523          schema:
8524            type: "object"
8525            properties:
8526              ListenAddr:
8527                description: "Listen address used for inter-manager communication, as well as determining the networking interface used for the VXLAN Tunnel Endpoint (VTEP). This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the default swarm listening port is used."
8528                type: "string"
8529              AdvertiseAddr:
8530                description: "Externally reachable address advertised to other nodes. This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the port number from the listen address is used. If `AdvertiseAddr` is not specified, it will be automatically detected when possible."
8531                type: "string"
8532              DataPathAddr:
8533                description: |
8534                  Address or interface to use for data path traffic (format: `<ip|interface>`), for example,  `192.168.1.1`,
8535                  or an interface, like `eth0`. If `DataPathAddr` is unspecified, the same address as `AdvertiseAddr`
8536                  is used.
8537
8538                  The `DataPathAddr` specifies the address that global scope network drivers will publish towards other
8539                  nodes in order to reach the containers running on this node. Using this parameter it is possible to
8540                  separate the container data traffic from the management traffic of the cluster.
8541                type: "string"
8542              ForceNewCluster:
8543                description: "Force creation of a new swarm."
8544                type: "boolean"
8545              Spec:
8546                $ref: "#/definitions/SwarmSpec"
8547            example:
8548              ListenAddr: "0.0.0.0:2377"
8549              AdvertiseAddr: "192.168.1.1:2377"
8550              ForceNewCluster: false
8551              Spec:
8552                Orchestration: {}
8553                Raft: {}
8554                Dispatcher: {}
8555                CAConfig: {}
8556                EncryptionConfig:
8557                  AutoLockManagers: false
8558      tags: ["Swarm"]
8559  /swarm/join:
8560    post:
8561      summary: "Join an existing swarm"
8562      operationId: "SwarmJoin"
8563      responses:
8564        200:
8565          description: "no error"
8566        400:
8567          description: "bad parameter"
8568          schema:
8569            $ref: "#/definitions/ErrorResponse"
8570        500:
8571          description: "server error"
8572          schema:
8573            $ref: "#/definitions/ErrorResponse"
8574        503:
8575          description: "node is already part of a swarm"
8576          schema:
8577            $ref: "#/definitions/ErrorResponse"
8578      parameters:
8579        - name: "body"
8580          in: "body"
8581          required: true
8582          schema:
8583            type: "object"
8584            properties:
8585              ListenAddr:
8586                description: "Listen address used for inter-manager communication if the node gets promoted to manager, as well as determining the networking interface used for the VXLAN Tunnel Endpoint (VTEP)."
8587                type: "string"
8588              AdvertiseAddr:
8589                description: "Externally reachable address advertised to other nodes. This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the port number from the listen address is used. If `AdvertiseAddr` is not specified, it will be automatically detected when possible."
8590                type: "string"
8591              DataPathAddr:
8592                description: |
8593                  Address or interface to use for data path traffic (format: `<ip|interface>`), for example,  `192.168.1.1`,
8594                  or an interface, like `eth0`. If `DataPathAddr` is unspecified, the same address as `AdvertiseAddr`
8595                  is used.
8596
8597                  The `DataPathAddr` specifies the address that global scope network drivers will publish towards other
8598                  nodes in order to reach the containers running on this node. Using this parameter it is possible to
8599                  separate the container data traffic from the management traffic of the cluster.
8600
8601                type: "string"
8602              RemoteAddrs:
8603                description: "Addresses of manager nodes already participating in the swarm."
8604                type: "string"
8605              JoinToken:
8606                description: "Secret token for joining this swarm."
8607                type: "string"
8608            example:
8609              ListenAddr: "0.0.0.0:2377"
8610              AdvertiseAddr: "192.168.1.1:2377"
8611              RemoteAddrs:
8612                - "node1:2377"
8613              JoinToken: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2"
8614      tags: ["Swarm"]
8615  /swarm/leave:
8616    post:
8617      summary: "Leave a swarm"
8618      operationId: "SwarmLeave"
8619      responses:
8620        200:
8621          description: "no error"
8622        500:
8623          description: "server error"
8624          schema:
8625            $ref: "#/definitions/ErrorResponse"
8626        503:
8627          description: "node is not part of a swarm"
8628          schema:
8629            $ref: "#/definitions/ErrorResponse"
8630      parameters:
8631        - name: "force"
8632          description: "Force leave swarm, even if this is the last manager or that it will break the cluster."
8633          in: "query"
8634          type: "boolean"
8635          default: false
8636      tags: ["Swarm"]
8637  /swarm/update:
8638    post:
8639      summary: "Update a swarm"
8640      operationId: "SwarmUpdate"
8641      responses:
8642        200:
8643          description: "no error"
8644        400:
8645          description: "bad parameter"
8646          schema:
8647            $ref: "#/definitions/ErrorResponse"
8648        500:
8649          description: "server error"
8650          schema:
8651            $ref: "#/definitions/ErrorResponse"
8652        503:
8653          description: "node is not part of a swarm"
8654          schema:
8655            $ref: "#/definitions/ErrorResponse"
8656      parameters:
8657        - name: "body"
8658          in: "body"
8659          required: true
8660          schema:
8661            $ref: "#/definitions/SwarmSpec"
8662        - name: "version"
8663          in: "query"
8664          description: "The version number of the swarm object being updated. This is required to avoid conflicting writes."
8665          type: "integer"
8666          format: "int64"
8667          required: true
8668        - name: "rotateWorkerToken"
8669          in: "query"
8670          description: "Rotate the worker join token."
8671          type: "boolean"
8672          default: false
8673        - name: "rotateManagerToken"
8674          in: "query"
8675          description: "Rotate the manager join token."
8676          type: "boolean"
8677          default: false
8678        - name: "rotateManagerUnlockKey"
8679          in: "query"
8680          description: "Rotate the manager unlock key."
8681          type: "boolean"
8682          default: false
8683      tags: ["Swarm"]
8684  /swarm/unlockkey:
8685    get:
8686      summary: "Get the unlock key"
8687      operationId: "SwarmUnlockkey"
8688      consumes:
8689        - "application/json"
8690      responses:
8691        200:
8692          description: "no error"
8693          schema:
8694            type: "object"
8695            properties:
8696              UnlockKey:
8697                description: "The swarm's unlock key."
8698                type: "string"
8699            example:
8700              UnlockKey: "SWMKEY-1-7c37Cc8654o6p38HnroywCi19pllOnGtbdZEgtKxZu8"
8701        500:
8702          description: "server error"
8703          schema:
8704            $ref: "#/definitions/ErrorResponse"
8705        503:
8706          description: "node is not part of a swarm"
8707          schema:
8708            $ref: "#/definitions/ErrorResponse"
8709      tags: ["Swarm"]
8710  /swarm/unlock:
8711    post:
8712      summary: "Unlock a locked manager"
8713      operationId: "SwarmUnlock"
8714      consumes:
8715        - "application/json"
8716      produces:
8717        - "application/json"
8718      parameters:
8719        - name: "body"
8720          in: "body"
8721          required: true
8722          schema:
8723            type: "object"
8724            properties:
8725              UnlockKey:
8726                description: "The swarm's unlock key."
8727                type: "string"
8728            example:
8729              UnlockKey: "SWMKEY-1-7c37Cc8654o6p38HnroywCi19pllOnGtbdZEgtKxZu8"
8730      responses:
8731        200:
8732          description: "no error"
8733        500:
8734          description: "server error"
8735          schema:
8736            $ref: "#/definitions/ErrorResponse"
8737        503:
8738          description: "node is not part of a swarm"
8739          schema:
8740            $ref: "#/definitions/ErrorResponse"
8741      tags: ["Swarm"]
8742  /services:
8743    get:
8744      summary: "List services"
8745      operationId: "ServiceList"
8746      responses:
8747        200:
8748          description: "no error"
8749          schema:
8750            type: "array"
8751            items:
8752              $ref: "#/definitions/Service"
8753        500:
8754          description: "server error"
8755          schema:
8756            $ref: "#/definitions/ErrorResponse"
8757        503:
8758          description: "node is not part of a swarm"
8759          schema:
8760            $ref: "#/definitions/ErrorResponse"
8761      parameters:
8762        - name: "filters"
8763          in: "query"
8764          type: "string"
8765          description: |
8766            A JSON encoded value of the filters (a `map[string][]string`) to process on the services list. Available filters:
8767
8768            - `id=<service id>`
8769            - `label=<service label>`
8770            - `mode=["replicated"|"global"]`
8771            - `name=<service name>`
8772      tags: ["Service"]
8773  /services/create:
8774    post:
8775      summary: "Create a service"
8776      operationId: "ServiceCreate"
8777      consumes:
8778        - "application/json"
8779      produces:
8780        - "application/json"
8781      responses:
8782        201:
8783          description: "no error"
8784          schema:
8785            type: "object"
8786            properties:
8787              ID:
8788                description: "The ID of the created service."
8789                type: "string"
8790              Warning:
8791                description: "Optional warning message"
8792                type: "string"
8793            example:
8794              ID: "ak7w3gjqoa3kuz8xcpnyy0pvl"
8795              Warning: "unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found"
8796        400:
8797          description: "bad parameter"
8798          schema:
8799            $ref: "#/definitions/ErrorResponse"
8800        403:
8801          description: "network is not eligible for services"
8802          schema:
8803            $ref: "#/definitions/ErrorResponse"
8804        409:
8805          description: "name conflicts with an existing service"
8806          schema:
8807            $ref: "#/definitions/ErrorResponse"
8808        500:
8809          description: "server error"
8810          schema:
8811            $ref: "#/definitions/ErrorResponse"
8812        503:
8813          description: "node is not part of a swarm"
8814          schema:
8815            $ref: "#/definitions/ErrorResponse"
8816      parameters:
8817        - name: "body"
8818          in: "body"
8819          required: true
8820          schema:
8821            allOf:
8822              - $ref: "#/definitions/ServiceSpec"
8823              - type: "object"
8824                example:
8825                  Name: "web"
8826                  TaskTemplate:
8827                    ContainerSpec:
8828                      Image: "nginx:alpine"
8829                      Mounts:
8830                        -
8831                          ReadOnly: true
8832                          Source: "web-data"
8833                          Target: "/usr/share/nginx/html"
8834                          Type: "volume"
8835                          VolumeOptions:
8836                            DriverConfig: {}
8837                            Labels:
8838                              com.example.something: "something-value"
8839                      Hosts: ["10.10.10.10 host1", "ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 host2"]
8840                      User: "33"
8841                      DNSConfig:
8842                        Nameservers: ["8.8.8.8"]
8843                        Search: ["example.org"]
8844                        Options: ["timeout:3"]
8845                      Secrets:
8846                        -
8847                          File:
8848                            Name: "www.example.org.key"
8849                            UID: "33"
8850                            GID: "33"
8851                            Mode: 384
8852                          SecretID: "fpjqlhnwb19zds35k8wn80lq9"
8853                          SecretName: "example_org_domain_key"
8854                    LogDriver:
8855                      Name: "json-file"
8856                      Options:
8857                        max-file: "3"
8858                        max-size: "10M"
8859                    Placement: {}
8860                    Resources:
8861                      Limits:
8862                        MemoryBytes: 104857600
8863                      Reservations: {}
8864                    RestartPolicy:
8865                      Condition: "on-failure"
8866                      Delay: 10000000000
8867                      MaxAttempts: 10
8868                  Mode:
8869                    Replicated:
8870                      Replicas: 4
8871                  UpdateConfig:
8872                    Parallelism: 2
8873                    Delay: 1000000000
8874                    FailureAction: "pause"
8875                    Monitor: 15000000000
8876                    MaxFailureRatio: 0.15
8877                  RollbackConfig:
8878                    Parallelism: 1
8879                    Delay: 1000000000
8880                    FailureAction: "pause"
8881                    Monitor: 15000000000
8882                    MaxFailureRatio: 0.15
8883                  EndpointSpec:
8884                    Ports:
8885                      -
8886                        Protocol: "tcp"
8887                        PublishedPort: 8080
8888                        TargetPort: 80
8889                  Labels:
8890                    foo: "bar"
8891        - name: "X-Registry-Auth"
8892          in: "header"
8893          description: "A base64-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)"
8894          type: "string"
8895      tags: ["Service"]
8896  /services/{id}:
8897    get:
8898      summary: "Inspect a service"
8899      operationId: "ServiceInspect"
8900      responses:
8901        200:
8902          description: "no error"
8903          schema:
8904            $ref: "#/definitions/Service"
8905        404:
8906          description: "no such service"
8907          schema:
8908            $ref: "#/definitions/ErrorResponse"
8909        500:
8910          description: "server error"
8911          schema:
8912            $ref: "#/definitions/ErrorResponse"
8913        503:
8914          description: "node is not part of a swarm"
8915          schema:
8916            $ref: "#/definitions/ErrorResponse"
8917      parameters:
8918        - name: "id"
8919          in: "path"
8920          description: "ID or name of service."
8921          required: true
8922          type: "string"
8923        - name: "insertDefaults"
8924          in: "query"
8925          description: "Fill empty fields with default values."
8926          type: "boolean"
8927          default: false
8928      tags: ["Service"]
8929    delete:
8930      summary: "Delete a service"
8931      operationId: "ServiceDelete"
8932      responses:
8933        200:
8934          description: "no error"
8935        404:
8936          description: "no such service"
8937          schema:
8938            $ref: "#/definitions/ErrorResponse"
8939        500:
8940          description: "server error"
8941          schema:
8942            $ref: "#/definitions/ErrorResponse"
8943        503:
8944          description: "node is not part of a swarm"
8945          schema:
8946            $ref: "#/definitions/ErrorResponse"
8947      parameters:
8948        - name: "id"
8949          in: "path"
8950          description: "ID or name of service."
8951          required: true
8952          type: "string"
8953      tags: ["Service"]
8954  /services/{id}/update:
8955    post:
8956      summary: "Update a service"
8957      operationId: "ServiceUpdate"
8958      consumes: ["application/json"]
8959      produces: ["application/json"]
8960      responses:
8961        200:
8962          description: "no error"
8963          schema:
8964            $ref: "#/definitions/ServiceUpdateResponse"
8965        400:
8966          description: "bad parameter"
8967          schema:
8968            $ref: "#/definitions/ErrorResponse"
8969        404:
8970          description: "no such service"
8971          schema:
8972            $ref: "#/definitions/ErrorResponse"
8973        500:
8974          description: "server error"
8975          schema:
8976            $ref: "#/definitions/ErrorResponse"
8977        503:
8978          description: "node is not part of a swarm"
8979          schema:
8980            $ref: "#/definitions/ErrorResponse"
8981      parameters:
8982        - name: "id"
8983          in: "path"
8984          description: "ID or name of service."
8985          required: true
8986          type: "string"
8987        - name: "body"
8988          in: "body"
8989          required: true
8990          schema:
8991            allOf:
8992              - $ref: "#/definitions/ServiceSpec"
8993              - type: "object"
8994                example:
8995                  Name: "top"
8996                  TaskTemplate:
8997                    ContainerSpec:
8998                      Image: "busybox"
8999                      Args:
9000                        - "top"
9001                    Resources:
9002                      Limits: {}
9003                      Reservations: {}
9004                    RestartPolicy:
9005                      Condition: "any"
9006                      MaxAttempts: 0
9007                    Placement: {}
9008                    ForceUpdate: 0
9009                  Mode:
9010                    Replicated:
9011                      Replicas: 1
9012                  UpdateConfig:
9013                    Parallelism: 2
9014                    Delay: 1000000000
9015                    FailureAction: "pause"
9016                    Monitor: 15000000000
9017                    MaxFailureRatio: 0.15
9018                  RollbackConfig:
9019                    Parallelism: 1
9020                    Delay: 1000000000
9021                    FailureAction: "pause"
9022                    Monitor: 15000000000
9023                    MaxFailureRatio: 0.15
9024                  EndpointSpec:
9025                    Mode: "vip"
9026
9027        - name: "version"
9028          in: "query"
9029          description: "The version number of the service object being updated. This is required to avoid conflicting writes."
9030          required: true
9031          type: "integer"
9032        - name: "registryAuthFrom"
9033          in: "query"
9034          type: "string"
9035          description: "If the X-Registry-Auth header is not specified, this
9036  parameter indicates where to find registry authorization credentials. The
9037  valid values are `spec` and `previous-spec`."
9038          default: "spec"
9039        - name: "rollback"
9040          in: "query"
9041          type: "string"
9042          description: "Set to this parameter to `previous` to cause a
9043  server-side rollback to the previous service spec. The supplied spec will be
9044  ignored in this case."
9045        - name: "X-Registry-Auth"
9046          in: "header"
9047          description: "A base64-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)"
9048          type: "string"
9049
9050      tags: ["Service"]
9051  /services/{id}/logs:
9052    get:
9053      summary: "Get service logs"
9054      description: |
9055        Get `stdout` and `stderr` logs from a service.
9056
9057        **Note**: This endpoint works only for services with the `json-file` or `journald` logging drivers.
9058      operationId: "ServiceLogs"
9059      produces:
9060        - "application/vnd.docker.raw-stream"
9061        - "application/json"
9062      responses:
9063        101:
9064          description: "logs returned as a stream"
9065          schema:
9066            type: "string"
9067            format: "binary"
9068        200:
9069          description: "logs returned as a string in response body"
9070          schema:
9071            type: "string"
9072        404:
9073          description: "no such service"
9074          schema:
9075            $ref: "#/definitions/ErrorResponse"
9076          examples:
9077            application/json:
9078              message: "No such service: c2ada9df5af8"
9079        500:
9080          description: "server error"
9081          schema:
9082            $ref: "#/definitions/ErrorResponse"
9083        503:
9084          description: "node is not part of a swarm"
9085          schema:
9086            $ref: "#/definitions/ErrorResponse"
9087      parameters:
9088        - name: "id"
9089          in: "path"
9090          required: true
9091          description: "ID or name of the service"
9092          type: "string"
9093        - name: "details"
9094          in: "query"
9095          description: "Show service context and extra details provided to logs."
9096          type: "boolean"
9097          default: false
9098        - name: "follow"
9099          in: "query"
9100          description: |
9101            Return the logs as a stream.
9102
9103            This will return a `101` HTTP response with a `Connection: upgrade` header, then hijack the HTTP connection to send raw output. For more information about hijacking and the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).
9104          type: "boolean"
9105          default: false
9106        - name: "stdout"
9107          in: "query"
9108          description: "Return logs from `stdout`"
9109          type: "boolean"
9110          default: false
9111        - name: "stderr"
9112          in: "query"
9113          description: "Return logs from `stderr`"
9114          type: "boolean"
9115          default: false
9116        - name: "since"
9117          in: "query"
9118          description: "Only return logs since this time, as a UNIX timestamp"
9119          type: "integer"
9120          default: 0
9121        - name: "timestamps"
9122          in: "query"
9123          description: "Add timestamps to every log line"
9124          type: "boolean"
9125          default: false
9126        - name: "tail"
9127          in: "query"
9128          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."
9129          type: "string"
9130          default: "all"
9131      tags: ["Service"]
9132  /tasks:
9133    get:
9134      summary: "List tasks"
9135      operationId: "TaskList"
9136      produces:
9137        - "application/json"
9138      responses:
9139        200:
9140          description: "no error"
9141          schema:
9142            type: "array"
9143            items:
9144              $ref: "#/definitions/Task"
9145            example:
9146              - ID: "0kzzo1i0y4jz6027t0k7aezc7"
9147                Version:
9148                  Index: 71
9149                CreatedAt: "2016-06-07T21:07:31.171892745Z"
9150                UpdatedAt: "2016-06-07T21:07:31.376370513Z"
9151                Spec:
9152                  ContainerSpec:
9153                    Image: "redis"
9154                  Resources:
9155                    Limits: {}
9156                    Reservations: {}
9157                  RestartPolicy:
9158                    Condition: "any"
9159                    MaxAttempts: 0
9160                  Placement: {}
9161                ServiceID: "9mnpnzenvg8p8tdbtq4wvbkcz"
9162                Slot: 1
9163                NodeID: "60gvrl6tm78dmak4yl7srz94v"
9164                Status:
9165                  Timestamp: "2016-06-07T21:07:31.290032978Z"
9166                  State: "running"
9167                  Message: "started"
9168                  ContainerStatus:
9169                    ContainerID: "e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035"
9170                    PID: 677
9171                DesiredState: "running"
9172                NetworksAttachments:
9173                  - Network:
9174                      ID: "4qvuz4ko70xaltuqbt8956gd1"
9175                      Version:
9176                        Index: 18
9177                      CreatedAt: "2016-06-07T20:31:11.912919752Z"
9178                      UpdatedAt: "2016-06-07T21:07:29.955277358Z"
9179                      Spec:
9180                        Name: "ingress"
9181                        Labels:
9182                          com.docker.swarm.internal: "true"
9183                        DriverConfiguration: {}
9184                        IPAMOptions:
9185                          Driver: {}
9186                          Configs:
9187                            - Subnet: "10.255.0.0/16"
9188                              Gateway: "10.255.0.1"
9189                      DriverState:
9190                        Name: "overlay"
9191                        Options:
9192                          com.docker.network.driver.overlay.vxlanid_list: "256"
9193                      IPAMOptions:
9194                        Driver:
9195                          Name: "default"
9196                        Configs:
9197                          - Subnet: "10.255.0.0/16"
9198                            Gateway: "10.255.0.1"
9199                    Addresses:
9200                      - "10.255.0.10/16"
9201              - ID: "1yljwbmlr8er2waf8orvqpwms"
9202                Version:
9203                  Index: 30
9204                CreatedAt: "2016-06-07T21:07:30.019104782Z"
9205                UpdatedAt: "2016-06-07T21:07:30.231958098Z"
9206                Name: "hopeful_cori"
9207                Spec:
9208                  ContainerSpec:
9209                    Image: "redis"
9210                  Resources:
9211                    Limits: {}
9212                    Reservations: {}
9213                  RestartPolicy:
9214                    Condition: "any"
9215                    MaxAttempts: 0
9216                  Placement: {}
9217                ServiceID: "9mnpnzenvg8p8tdbtq4wvbkcz"
9218                Slot: 1
9219                NodeID: "60gvrl6tm78dmak4yl7srz94v"
9220                Status:
9221                  Timestamp: "2016-06-07T21:07:30.202183143Z"
9222                  State: "shutdown"
9223                  Message: "shutdown"
9224                  ContainerStatus:
9225                    ContainerID: "1cf8d63d18e79668b0004a4be4c6ee58cddfad2dae29506d8781581d0688a213"
9226                DesiredState: "shutdown"
9227                NetworksAttachments:
9228                  - Network:
9229                      ID: "4qvuz4ko70xaltuqbt8956gd1"
9230                      Version:
9231                        Index: 18
9232                      CreatedAt: "2016-06-07T20:31:11.912919752Z"
9233                      UpdatedAt: "2016-06-07T21:07:29.955277358Z"
9234                      Spec:
9235                        Name: "ingress"
9236                        Labels:
9237                          com.docker.swarm.internal: "true"
9238                        DriverConfiguration: {}
9239                        IPAMOptions:
9240                          Driver: {}
9241                          Configs:
9242                            - Subnet: "10.255.0.0/16"
9243                              Gateway: "10.255.0.1"
9244                      DriverState:
9245                        Name: "overlay"
9246                        Options:
9247                          com.docker.network.driver.overlay.vxlanid_list: "256"
9248                      IPAMOptions:
9249                        Driver:
9250                          Name: "default"
9251                        Configs:
9252                          - Subnet: "10.255.0.0/16"
9253                            Gateway: "10.255.0.1"
9254                    Addresses:
9255                      - "10.255.0.5/16"
9256        500:
9257          description: "server error"
9258          schema:
9259            $ref: "#/definitions/ErrorResponse"
9260        503:
9261          description: "node is not part of a swarm"
9262          schema:
9263            $ref: "#/definitions/ErrorResponse"
9264      parameters:
9265        - name: "filters"
9266          in: "query"
9267          type: "string"
9268          description: |
9269            A JSON encoded value of the filters (a `map[string][]string`) to process on the tasks list. Available filters:
9270
9271            - `desired-state=(running | shutdown | accepted)`
9272            - `id=<task id>`
9273            - `label=key` or `label="key=value"`
9274            - `name=<task name>`
9275            - `node=<node id or name>`
9276            - `service=<service name>`
9277      tags: ["Task"]
9278  /tasks/{id}:
9279    get:
9280      summary: "Inspect a task"
9281      operationId: "TaskInspect"
9282      produces:
9283        - "application/json"
9284      responses:
9285        200:
9286          description: "no error"
9287          schema:
9288            $ref: "#/definitions/Task"
9289        404:
9290          description: "no such task"
9291          schema:
9292            $ref: "#/definitions/ErrorResponse"
9293        500:
9294          description: "server error"
9295          schema:
9296            $ref: "#/definitions/ErrorResponse"
9297        503:
9298          description: "node is not part of a swarm"
9299          schema:
9300            $ref: "#/definitions/ErrorResponse"
9301      parameters:
9302        - name: "id"
9303          in: "path"
9304          description: "ID of the task"
9305          required: true
9306          type: "string"
9307      tags: ["Task"]
9308  /tasks/{id}/logs:
9309    get:
9310      summary: "Get task logs"
9311      description: |
9312        Get `stdout` and `stderr` logs from a task.
9313
9314        **Note**: This endpoint works only for services with the `json-file` or `journald` logging drivers.
9315      operationId: "TaskLogs"
9316      produces:
9317        - "application/vnd.docker.raw-stream"
9318        - "application/json"
9319      responses:
9320        101:
9321          description: "logs returned as a stream"
9322          schema:
9323            type: "string"
9324            format: "binary"
9325        200:
9326          description: "logs returned as a string in response body"
9327          schema:
9328            type: "string"
9329        404:
9330          description: "no such task"
9331          schema:
9332            $ref: "#/definitions/ErrorResponse"
9333          examples:
9334            application/json:
9335              message: "No such task: c2ada9df5af8"
9336        500:
9337          description: "server error"
9338          schema:
9339            $ref: "#/definitions/ErrorResponse"
9340        503:
9341          description: "node is not part of a swarm"
9342          schema:
9343            $ref: "#/definitions/ErrorResponse"
9344      parameters:
9345        - name: "id"
9346          in: "path"
9347          required: true
9348          description: "ID of the task"
9349          type: "string"
9350        - name: "details"
9351          in: "query"
9352          description: "Show task context and extra details provided to logs."
9353          type: "boolean"
9354          default: false
9355        - name: "follow"
9356          in: "query"
9357          description: |
9358            Return the logs as a stream.
9359
9360            This will return a `101` HTTP response with a `Connection: upgrade` header, then hijack the HTTP connection to send raw output. For more information about hijacking and the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).
9361          type: "boolean"
9362          default: false
9363        - name: "stdout"
9364          in: "query"
9365          description: "Return logs from `stdout`"
9366          type: "boolean"
9367          default: false
9368        - name: "stderr"
9369          in: "query"
9370          description: "Return logs from `stderr`"
9371          type: "boolean"
9372          default: false
9373        - name: "since"
9374          in: "query"
9375          description: "Only return logs since this time, as a UNIX timestamp"
9376          type: "integer"
9377          default: 0
9378        - name: "timestamps"
9379          in: "query"
9380          description: "Add timestamps to every log line"
9381          type: "boolean"
9382          default: false
9383        - name: "tail"
9384          in: "query"
9385          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."
9386          type: "string"
9387          default: "all"
9388  /secrets:
9389    get:
9390      summary: "List secrets"
9391      operationId: "SecretList"
9392      produces:
9393        - "application/json"
9394      responses:
9395        200:
9396          description: "no error"
9397          schema:
9398            type: "array"
9399            items:
9400              $ref: "#/definitions/Secret"
9401            example:
9402              - ID: "blt1owaxmitz71s9v5zh81zun"
9403                Version:
9404                  Index: 85
9405                CreatedAt: "2017-07-20T13:55:28.678958722Z"
9406                UpdatedAt: "2017-07-20T13:55:28.678958722Z"
9407                Spec:
9408                  Name: "mysql-passwd"
9409                  Labels:
9410                    some.label: "some.value"
9411                  Driver:
9412                    Name: "secret-bucket"
9413                    Options:
9414                      OptionA: "value for driver option A"
9415                      OptionB: "value for driver option B"
9416              - ID: "ktnbjxoalbkvbvedmg1urrz8h"
9417                Version:
9418                  Index: 11
9419                CreatedAt: "2016-11-05T01:20:17.327670065Z"
9420                UpdatedAt: "2016-11-05T01:20:17.327670065Z"
9421                Spec:
9422                  Name: "app-dev.crt"
9423                  Labels:
9424                    foo: "bar"
9425        500:
9426          description: "server error"
9427          schema:
9428            $ref: "#/definitions/ErrorResponse"
9429        503:
9430          description: "node is not part of a swarm"
9431          schema:
9432            $ref: "#/definitions/ErrorResponse"
9433      parameters:
9434        - name: "filters"
9435          in: "query"
9436          type: "string"
9437          description: |
9438            A JSON encoded value of the filters (a `map[string][]string`) to process on the secrets list. Available filters:
9439
9440            - `id=<secret id>`
9441            - `label=<key> or label=<key>=value`
9442            - `name=<secret name>`
9443            - `names=<secret name>`
9444      tags: ["Secret"]
9445  /secrets/create:
9446    post:
9447      summary: "Create a secret"
9448      operationId: "SecretCreate"
9449      consumes:
9450        - "application/json"
9451      produces:
9452        - "application/json"
9453      responses:
9454        201:
9455          description: "no error"
9456          schema:
9457            type: "object"
9458            properties:
9459              ID:
9460                description: "The ID of the created secret."
9461                type: "string"
9462            example:
9463              ID: "ktnbjxoalbkvbvedmg1urrz8h"
9464        409:
9465          description: "name conflicts with an existing object"
9466          schema:
9467            $ref: "#/definitions/ErrorResponse"
9468        500:
9469          description: "server error"
9470          schema:
9471            $ref: "#/definitions/ErrorResponse"
9472        503:
9473          description: "node is not part of a swarm"
9474          schema:
9475            $ref: "#/definitions/ErrorResponse"
9476      parameters:
9477        - name: "body"
9478          in: "body"
9479          schema:
9480            allOf:
9481              - $ref: "#/definitions/SecretSpec"
9482              - type: "object"
9483                example:
9484                  Name: "app-key.crt"
9485                  Labels:
9486                    foo: "bar"
9487                  Data: "VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg=="
9488                  Driver:
9489                    Name: "secret-bucket"
9490                    Options:
9491                      OptionA: "value for driver option A"
9492                      OptionB: "value for driver option B"
9493      tags: ["Secret"]
9494  /secrets/{id}:
9495    get:
9496      summary: "Inspect a secret"
9497      operationId: "SecretInspect"
9498      produces:
9499        - "application/json"
9500      responses:
9501        200:
9502          description: "no error"
9503          schema:
9504            $ref: "#/definitions/Secret"
9505          examples:
9506            application/json:
9507              ID: "ktnbjxoalbkvbvedmg1urrz8h"
9508              Version:
9509                Index: 11
9510              CreatedAt: "2016-11-05T01:20:17.327670065Z"
9511              UpdatedAt: "2016-11-05T01:20:17.327670065Z"
9512              Spec:
9513                Name: "app-dev.crt"
9514                Labels:
9515                  foo: "bar"
9516                Driver:
9517                  Name: "secret-bucket"
9518                  Options:
9519                    OptionA: "value for driver option A"
9520                    OptionB: "value for driver option B"
9521
9522        404:
9523          description: "secret not found"
9524          schema:
9525            $ref: "#/definitions/ErrorResponse"
9526        500:
9527          description: "server error"
9528          schema:
9529            $ref: "#/definitions/ErrorResponse"
9530        503:
9531          description: "node is not part of a swarm"
9532          schema:
9533            $ref: "#/definitions/ErrorResponse"
9534      parameters:
9535        - name: "id"
9536          in: "path"
9537          required: true
9538          type: "string"
9539          description: "ID of the secret"
9540      tags: ["Secret"]
9541    delete:
9542      summary: "Delete a secret"
9543      operationId: "SecretDelete"
9544      produces:
9545        - "application/json"
9546      responses:
9547        204:
9548          description: "no error"
9549        404:
9550          description: "secret not found"
9551          schema:
9552            $ref: "#/definitions/ErrorResponse"
9553        500:
9554          description: "server error"
9555          schema:
9556            $ref: "#/definitions/ErrorResponse"
9557        503:
9558          description: "node is not part of a swarm"
9559          schema:
9560            $ref: "#/definitions/ErrorResponse"
9561      parameters:
9562        - name: "id"
9563          in: "path"
9564          required: true
9565          type: "string"
9566          description: "ID of the secret"
9567      tags: ["Secret"]
9568  /secrets/{id}/update:
9569    post:
9570      summary: "Update a Secret"
9571      operationId: "SecretUpdate"
9572      responses:
9573        200:
9574          description: "no error"
9575        400:
9576          description: "bad parameter"
9577          schema:
9578            $ref: "#/definitions/ErrorResponse"
9579        404:
9580          description: "no such secret"
9581          schema:
9582            $ref: "#/definitions/ErrorResponse"
9583        500:
9584          description: "server error"
9585          schema:
9586            $ref: "#/definitions/ErrorResponse"
9587        503:
9588          description: "node is not part of a swarm"
9589          schema:
9590            $ref: "#/definitions/ErrorResponse"
9591      parameters:
9592        - name: "id"
9593          in: "path"
9594          description: "The ID or name of the secret"
9595          type: "string"
9596          required: true
9597        - name: "body"
9598          in: "body"
9599          schema:
9600            $ref: "#/definitions/SecretSpec"
9601          description: "The spec of the secret to update. Currently, only the Labels field can be updated. All other fields must remain unchanged from the [SecretInspect endpoint](#operation/SecretInspect) response values."
9602        - name: "version"
9603          in: "query"
9604          description: "The version number of the secret object being updated. This is required to avoid conflicting writes."
9605          type: "integer"
9606          format: "int64"
9607          required: true
9608      tags: ["Secret"]
9609  /configs:
9610    get:
9611      summary: "List configs"
9612      operationId: "ConfigList"
9613      produces:
9614        - "application/json"
9615      responses:
9616        200:
9617          description: "no error"
9618          schema:
9619            type: "array"
9620            items:
9621              $ref: "#/definitions/Config"
9622            example:
9623              - ID: "ktnbjxoalbkvbvedmg1urrz8h"
9624                Version:
9625                  Index: 11
9626                CreatedAt: "2016-11-05T01:20:17.327670065Z"
9627                UpdatedAt: "2016-11-05T01:20:17.327670065Z"
9628                Spec:
9629                  Name: "server.conf"
9630        500:
9631          description: "server error"
9632          schema:
9633            $ref: "#/definitions/ErrorResponse"
9634        503:
9635          description: "node is not part of a swarm"
9636          schema:
9637            $ref: "#/definitions/ErrorResponse"
9638      parameters:
9639        - name: "filters"
9640          in: "query"
9641          type: "string"
9642          description: |
9643            A JSON encoded value of the filters (a `map[string][]string`) to process on the configs list. Available filters:
9644
9645            - `id=<config id>`
9646            - `label=<key> or label=<key>=value`
9647            - `name=<config name>`
9648            - `names=<config name>`
9649      tags: ["Config"]
9650  /configs/create:
9651    post:
9652      summary: "Create a config"
9653      operationId: "ConfigCreate"
9654      consumes:
9655        - "application/json"
9656      produces:
9657        - "application/json"
9658      responses:
9659        201:
9660          description: "no error"
9661          schema:
9662            type: "object"
9663            properties:
9664              ID:
9665                description: "The ID of the created config."
9666                type: "string"
9667            example:
9668              ID: "ktnbjxoalbkvbvedmg1urrz8h"
9669        409:
9670          description: "name conflicts with an existing object"
9671          schema:
9672            $ref: "#/definitions/ErrorResponse"
9673        500:
9674          description: "server error"
9675          schema:
9676            $ref: "#/definitions/ErrorResponse"
9677        503:
9678          description: "node is not part of a swarm"
9679          schema:
9680            $ref: "#/definitions/ErrorResponse"
9681      parameters:
9682        - name: "body"
9683          in: "body"
9684          schema:
9685            allOf:
9686              - $ref: "#/definitions/ConfigSpec"
9687              - type: "object"
9688                example:
9689                  Name: "server.conf"
9690                  Labels:
9691                    foo: "bar"
9692                  Data: "VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg=="
9693      tags: ["Config"]
9694  /configs/{id}:
9695    get:
9696      summary: "Inspect a config"
9697      operationId: "ConfigInspect"
9698      produces:
9699        - "application/json"
9700      responses:
9701        200:
9702          description: "no error"
9703          schema:
9704            $ref: "#/definitions/Config"
9705          examples:
9706            application/json:
9707              ID: "ktnbjxoalbkvbvedmg1urrz8h"
9708              Version:
9709                Index: 11
9710              CreatedAt: "2016-11-05T01:20:17.327670065Z"
9711              UpdatedAt: "2016-11-05T01:20:17.327670065Z"
9712              Spec:
9713                Name: "app-dev.crt"
9714        404:
9715          description: "config not found"
9716          schema:
9717            $ref: "#/definitions/ErrorResponse"
9718        500:
9719          description: "server error"
9720          schema:
9721            $ref: "#/definitions/ErrorResponse"
9722        503:
9723          description: "node is not part of a swarm"
9724          schema:
9725            $ref: "#/definitions/ErrorResponse"
9726      parameters:
9727        - name: "id"
9728          in: "path"
9729          required: true
9730          type: "string"
9731          description: "ID of the config"
9732      tags: ["Config"]
9733    delete:
9734      summary: "Delete a config"
9735      operationId: "ConfigDelete"
9736      produces:
9737        - "application/json"
9738      responses:
9739        204:
9740          description: "no error"
9741        404:
9742          description: "config not found"
9743          schema:
9744            $ref: "#/definitions/ErrorResponse"
9745        500:
9746          description: "server error"
9747          schema:
9748            $ref: "#/definitions/ErrorResponse"
9749        503:
9750          description: "node is not part of a swarm"
9751          schema:
9752            $ref: "#/definitions/ErrorResponse"
9753      parameters:
9754        - name: "id"
9755          in: "path"
9756          required: true
9757          type: "string"
9758          description: "ID of the config"
9759      tags: ["Config"]
9760  /configs/{id}/update:
9761    post:
9762      summary: "Update a Config"
9763      operationId: "ConfigUpdate"
9764      responses:
9765        200:
9766          description: "no error"
9767        400:
9768          description: "bad parameter"
9769          schema:
9770            $ref: "#/definitions/ErrorResponse"
9771        404:
9772          description: "no such config"
9773          schema:
9774            $ref: "#/definitions/ErrorResponse"
9775        500:
9776          description: "server error"
9777          schema:
9778            $ref: "#/definitions/ErrorResponse"
9779        503:
9780          description: "node is not part of a swarm"
9781          schema:
9782            $ref: "#/definitions/ErrorResponse"
9783      parameters:
9784        - name: "id"
9785          in: "path"
9786          description: "The ID or name of the config"
9787          type: "string"
9788          required: true
9789        - name: "body"
9790          in: "body"
9791          schema:
9792            $ref: "#/definitions/ConfigSpec"
9793          description: "The spec of the config to update. Currently, only the Labels field can be updated. All other fields must remain unchanged from the [ConfigInspect endpoint](#operation/ConfigInspect) response values."
9794        - name: "version"
9795          in: "query"
9796          description: "The version number of the config object being updated. This is required to avoid conflicting writes."
9797          type: "integer"
9798          format: "int64"
9799          required: true
9800      tags: ["Config"]
9801  /distribution/{name}/json:
9802    get:
9803      summary: "Get image information from the registry"
9804      description: "Return image digest and platform information by contacting the registry."
9805      operationId: "DistributionInspect"
9806      produces:
9807        - "application/json"
9808      responses:
9809        200:
9810          description: "descriptor and platform information"
9811          schema:
9812            type: "object"
9813            x-go-name: DistributionInspect
9814            required: [Descriptor, Platforms]
9815            properties:
9816              Descriptor:
9817                type: "object"
9818                description: "A descriptor struct containing digest, media type, and size"
9819                properties:
9820                  MediaType:
9821                    type: "string"
9822                  Size:
9823                    type: "integer"
9824                    format: "int64"
9825                  Digest:
9826                    type: "string"
9827                  URLs:
9828                    type: "array"
9829                    items:
9830                      type: "string"
9831              Platforms:
9832                type: "array"
9833                description: "An array containing all platforms supported by the image"
9834                items:
9835                  type: "object"
9836                  properties:
9837                    Architecture:
9838                      type: "string"
9839                    OS:
9840                      type: "string"
9841                    OSVersion:
9842                      type: "string"
9843                    OSFeatures:
9844                      type: "array"
9845                      items:
9846                        type: "string"
9847                    Variant:
9848                      type: "string"
9849                    Features:
9850                      type: "array"
9851                      items:
9852                        type: "string"
9853          examples:
9854            application/json:
9855              Descriptor:
9856                MediaType: "application/vnd.docker.distribution.manifest.v2+json"
9857                Digest: "sha256:c0537ff6a5218ef531ece93d4984efc99bbf3f7497c0a7726c88e2bb7584dc96"
9858                Size: 3987495
9859                URLs:
9860                  - ""
9861              Platforms:
9862                - Architecture: "amd64"
9863                  OS: "linux"
9864                  OSVersion: ""
9865                  OSFeatures:
9866                    - ""
9867                  Variant: ""
9868                  Features:
9869                    - ""
9870        401:
9871          description: "Failed authentication or no image found"
9872          schema:
9873            $ref: "#/definitions/ErrorResponse"
9874          examples:
9875            application/json:
9876              message: "No such image: someimage (tag: latest)"
9877        500:
9878          description: "Server error"
9879          schema:
9880            $ref: "#/definitions/ErrorResponse"
9881      parameters:
9882        - name: "name"
9883          in: "path"
9884          description: "Image name or id"
9885          type: "string"
9886          required: true
9887      tags: ["Distribution"]
9888  /session:
9889    post:
9890      summary: "Initialize interactive session"
9891      description: |
9892        Start a new interactive session with a server. Session allows server to call back to the client for advanced capabilities.
9893
9894        > **Note**: This endpoint is *experimental* and only available if the daemon is started with experimental
9895        > features enabled. The specifications for this endpoint may still change in a future version of the API.
9896
9897        ### Hijacking
9898
9899        This endpoint hijacks the HTTP connection to HTTP2 transport that allows the client to expose gPRC services on that connection.
9900
9901        For example, the client sends this request to upgrade the connection:
9902
9903        ```
9904        POST /session HTTP/1.1
9905        Upgrade: h2c
9906        Connection: Upgrade
9907        ```
9908
9909        The Docker daemon will respond with a `101 UPGRADED` response follow with the raw stream:
9910
9911        ```
9912        HTTP/1.1 101 UPGRADED
9913        Connection: Upgrade
9914        Upgrade: h2c
9915        ```
9916      operationId: "Session"
9917      produces:
9918        - "application/vnd.docker.raw-stream"
9919      responses:
9920        101:
9921          description: "no error, hijacking successful"
9922        400:
9923          description: "bad parameter"
9924          schema:
9925            $ref: "#/definitions/ErrorResponse"
9926        500:
9927          description: "server error"
9928          schema:
9929            $ref: "#/definitions/ErrorResponse"
9930      tags: ["Session (experimental)"]
9931