Browse code

docs: add API v1.41

This copies the current swagger.yaml to the docs as v1.41.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>

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