Browse code

Merge pull request #41248 from thaJeztah/19.03_backport_swagger_updates

Brian Goff authored on 2020/07/28 04:02:16
Showing 7 changed files
... ...
@@ -26,13 +26,19 @@ info:
26 26
   x-logo:
27 27
     url: "https://docs.docker.com/images/logo-docker-main.png"
28 28
   description: |
29
-    The Engine API is an HTTP API served by Docker Engine. It is the API the Docker client uses to communicate with the Engine, so everything the Docker client can do can be done with the API.
29
+    The Engine API is an HTTP API served by Docker Engine. It is the API the
30
+    Docker client uses to communicate with the Engine, so everything the Docker
31
+    client can do can be done with the API.
30 32
 
31
-    Most of the client's commands map directly to API endpoints (e.g. `docker ps` is `GET /containers/json`). The notable exception is running containers, which consists of several API calls.
33
+    Most of the client's commands map directly to API endpoints (e.g. `docker ps`
34
+    is `GET /containers/json`). The notable exception is running containers,
35
+    which consists of several API calls.
32 36
 
33 37
     # Errors
34 38
 
35
-    The API uses standard HTTP status codes to indicate the success or failure of the API call. The body of the response will be JSON in the following format:
39
+    The API uses standard HTTP status codes to indicate the success or failure
40
+    of the API call. The body of the response will be JSON in the following
41
+    format:
36 42
 
37 43
     ```
38 44
     {
... ...
@@ -65,7 +71,11 @@ info:
65 65
 
66 66
     # Authentication
67 67
 
68
-    Authentication for registries is handled client side. The client has to send authentication details to various endpoints that need to communicate with registries, such as `POST /images/(name)/push`. These are sent as `X-Registry-Auth` header as a [base64url encoded](https://tools.ietf.org/html/rfc4648#section-5) (JSON) string with the following structure:
68
+    Authentication for registries is handled client side. The client has to send
69
+    authentication details to various endpoints that need to communicate with
70
+    registries, such as `POST /images/(name)/push`. These are sent as
71
+    `X-Registry-Auth` header as a [base64url encoded](https://tools.ietf.org/html/rfc4648#section-5)
72
+    (JSON) string with the following structure:
69 73
 
70 74
     ```
71 75
     {
... ...
@@ -76,9 +86,11 @@ info:
76 76
     }
77 77
     ```
78 78
 
79
-    The `serveraddress` is a domain/IP without a protocol. Throughout this structure, double quotes are required.
79
+    The `serveraddress` is a domain/IP without a protocol. Throughout this
80
+    structure, double quotes are required.
80 81
 
81
-    If you have already got an identity token from the [`/auth` endpoint](#operation/SystemAuth), you can just pass this instead of credentials:
82
+    If you have already got an identity token from the [`/auth` endpoint](#operation/SystemAuth),
83
+    you can just pass this instead of credentials:
82 84
 
83 85
     ```
84 86
     {
... ...
@@ -104,7 +116,9 @@ tags:
104 104
   - name: "Network"
105 105
     x-displayName: "Networks"
106 106
     description: |
107
-      Networks are user-defined networks that containers can be attached to. See the [networking documentation](https://docs.docker.com/engine/userguide/networking/) for more information.
107
+      Networks are user-defined networks that containers can be attached to.
108
+      See the [networking documentation](https://docs.docker.com/network/)
109
+      for more information.
108 110
   - name: "Volume"
109 111
     x-displayName: "Volumes"
110 112
     description: |
... ...
@@ -112,34 +126,46 @@ tags:
112 112
   - name: "Exec"
113 113
     x-displayName: "Exec"
114 114
     description: |
115
-      Run new commands inside running containers. See the [command-line reference](https://docs.docker.com/engine/reference/commandline/exec/) for more information.
115
+      Run new commands inside running containers. Refer to the
116
+      [command-line reference](https://docs.docker.com/engine/reference/commandline/exec/)
117
+      for more information.
118
+
119
+      To exec a command in a container, you first need to create an exec instance,
120
+      then start it. These two API endpoints are wrapped up in a single command-line
121
+      command, `docker exec`.
116 122
 
117
-      To exec a command in a container, you first need to create an exec instance, then start it. These two API endpoints are wrapped up in a single command-line command, `docker exec`.
118 123
   # Swarm things
119 124
   - name: "Swarm"
120 125
     x-displayName: "Swarm"
121 126
     description: |
122
-      Engines can be clustered together in a swarm. See [the swarm mode documentation](https://docs.docker.com/engine/swarm/) for more information.
127
+      Engines can be clustered together in a swarm. Refer to the
128
+      [swarm mode documentation](https://docs.docker.com/engine/swarm/)
129
+      for more information.
123 130
   - name: "Node"
124 131
     x-displayName: "Nodes"
125 132
     description: |
126
-      Nodes are instances of the Engine participating in a swarm. Swarm mode must be enabled for these endpoints to work.
133
+      Nodes are instances of the Engine participating in a swarm. Swarm mode
134
+      must be enabled for these endpoints to work.
127 135
   - name: "Service"
128 136
     x-displayName: "Services"
129 137
     description: |
130
-      Services are the definitions of tasks to run on a swarm. Swarm mode must be enabled for these endpoints to work.
138
+      Services are the definitions of tasks to run on a swarm. Swarm mode must
139
+      be enabled for these endpoints to work.
131 140
   - name: "Task"
132 141
     x-displayName: "Tasks"
133 142
     description: |
134
-      A task is a container running on a swarm. It is the atomic scheduling unit of swarm. Swarm mode must be enabled for these endpoints to work.
143
+      A task is a container running on a swarm. It is the atomic scheduling unit
144
+      of swarm. Swarm mode must be enabled for these endpoints to work.
135 145
   - name: "Secret"
136 146
     x-displayName: "Secrets"
137 147
     description: |
138
-      Secrets are sensitive data that can be used by services. Swarm mode must be enabled for these endpoints to work.
148
+      Secrets are sensitive data that can be used by services. Swarm mode must
149
+      be enabled for these endpoints to work.
139 150
   - name: "Config"
140 151
     x-displayName: "Configs"
141 152
     description: |
142
-      Configs are application configurations that can be used by services. Swarm mode must be enabled for these endpoints to work.
153
+      Configs are application configurations that can be used by services. Swarm
154
+      mode must be enabled for these endpoints to work.
143 155
   # System things
144 156
   - name: "Plugin"
145 157
     x-displayName: "Plugins"
... ...
@@ -345,9 +371,11 @@ definitions:
345 345
 
346 346
   RestartPolicy:
347 347
     description: |
348
-      The behavior to apply when the container exits. The default is not to restart.
348
+      The behavior to apply when the container exits. The default is not to
349
+      restart.
349 350
 
350
-      An ever increasing delay (double the previous delay, starting at 100ms) is added before each restart to prevent flooding the server.
351
+      An ever increasing delay (double the previous delay, starting at 100ms) is
352
+      added before each restart to prevent flooding the server.
351 353
     type: "object"
352 354
     properties:
353 355
       Name:
... ...
@@ -364,7 +392,8 @@ definitions:
364 364
           - "on-failure"
365 365
       MaximumRetryCount:
366 366
         type: "integer"
367
-        description: "If `on-failure` is used, the number of times to retry before giving up"
367
+        description: |
368
+          If `on-failure` is used, the number of times to retry before giving up.
368 369
 
369 370
   Resources:
370 371
     description: "A container's resources (cgroups config, ulimits, etc)"
... ...
@@ -372,7 +401,9 @@ definitions:
372 372
     properties:
373 373
       # Applicable to all platforms
374 374
       CpuShares:
375
-        description: "An integer value representing this container's relative CPU weight versus other containers."
375
+        description: |
376
+          An integer value representing this container's relative CPU weight
377
+          versus other containers.
376 378
         type: "integer"
377 379
       Memory:
378 380
         description: "Memory limit in bytes."
... ...
@@ -381,7 +412,11 @@ definitions:
381 381
         default: 0
382 382
       # Applicable to UNIX platforms
383 383
       CgroupParent:
384
-        description: "Path to `cgroups` under which the container's `cgroup` is created. If the path is not absolute, the path is considered to be relative to the `cgroups` path of the init process. Cgroups are created if they do not already exist."
384
+        description: |
385
+          Path to `cgroups` under which the container's `cgroup` is created. If
386
+          the path is not absolute, the path is considered to be relative to the
387
+          `cgroups` path of the init process. Cgroups are created if they do not
388
+          already exist.
385 389
         type: "string"
386 390
       BlkioWeight:
387 391
         description: "Block IO weight (relative weight)."
... ...
@@ -390,7 +425,11 @@ definitions:
390 390
         maximum: 1000
391 391
       BlkioWeightDevice:
392 392
         description: |
393
-          Block IO weight (relative device weight) in the form `[{"Path": "device_path", "Weight": weight}]`.
393
+          Block IO weight (relative device weight) in the form:
394
+
395
+          ```
396
+          [{"Path": "device_path", "Weight": weight}]
397
+          ```
394 398
         type: "array"
395 399
         items:
396 400
           type: "object"
... ...
@@ -402,25 +441,41 @@ definitions:
402 402
               minimum: 0
403 403
       BlkioDeviceReadBps:
404 404
         description: |
405
-          Limit read rate (bytes per second) from a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
405
+          Limit read rate (bytes per second) from a device, in the form:
406
+
407
+          ```
408
+          [{"Path": "device_path", "Rate": rate}]
409
+          ```
406 410
         type: "array"
407 411
         items:
408 412
           $ref: "#/definitions/ThrottleDevice"
409 413
       BlkioDeviceWriteBps:
410 414
         description: |
411
-          Limit write rate (bytes per second) to a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
415
+          Limit write rate (bytes per second) to a device, in the form:
416
+
417
+          ```
418
+          [{"Path": "device_path", "Rate": rate}]
419
+          ```
412 420
         type: "array"
413 421
         items:
414 422
           $ref: "#/definitions/ThrottleDevice"
415 423
       BlkioDeviceReadIOps:
416 424
         description: |
417
-          Limit read rate (IO per second) from a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
425
+          Limit read rate (IO per second) from a device, in the form:
426
+
427
+          ```
428
+          [{"Path": "device_path", "Rate": rate}]
429
+          ```
418 430
         type: "array"
419 431
         items:
420 432
           $ref: "#/definitions/ThrottleDevice"
421 433
       BlkioDeviceWriteIOps:
422 434
         description: |
423
-          Limit write rate (IO per second) to a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
435
+          Limit write rate (IO per second) to a device, in the form:
436
+
437
+          ```
438
+          [{"Path": "device_path", "Rate": rate}]
439
+          ```
424 440
         type: "array"
425 441
         items:
426 442
           $ref: "#/definitions/ThrottleDevice"
... ...
@@ -429,23 +484,31 @@ definitions:
429 429
         type: "integer"
430 430
         format: "int64"
431 431
       CpuQuota:
432
-        description: "Microseconds of CPU time that the container can get in a CPU period."
432
+        description: |
433
+          Microseconds of CPU time that the container can get in a CPU period.
433 434
         type: "integer"
434 435
         format: "int64"
435 436
       CpuRealtimePeriod:
436
-        description: "The length of a CPU real-time period in microseconds. Set to 0 to allocate no time allocated to real-time tasks."
437
+        description: |
438
+          The length of a CPU real-time period in microseconds. Set to 0 to
439
+          allocate no time allocated to real-time tasks.
437 440
         type: "integer"
438 441
         format: "int64"
439 442
       CpuRealtimeRuntime:
440
-        description: "The length of a CPU real-time runtime in microseconds. Set to 0 to allocate no time allocated to real-time tasks."
443
+        description: |
444
+          The length of a CPU real-time runtime in microseconds. Set to 0 to
445
+          allocate no time allocated to real-time tasks.
441 446
         type: "integer"
442 447
         format: "int64"
443 448
       CpusetCpus:
444
-        description: "CPUs in which to allow execution (e.g., `0-3`, `0,1`)"
449
+        description: |
450
+          CPUs in which to allow execution (e.g., `0-3`, `0,1`).
445 451
         type: "string"
446 452
         example: "0-3"
447 453
       CpusetMems:
448
-        description: "Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only effective on NUMA systems."
454
+        description: |
455
+          Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only
456
+          effective on NUMA systems.
449 457
         type: "string"
450 458
       Devices:
451 459
         description: "A list of devices to add to the container."
... ...
@@ -459,7 +522,8 @@ definitions:
459 459
           type: "string"
460 460
           example: "c 13:* rwm"
461 461
       DeviceRequests:
462
-        description: "a list of requests for devices to be sent to device drivers"
462
+        description: |
463
+          A list of requests for devices to be sent to device drivers.
463 464
         type: "array"
464 465
         items:
465 466
           $ref: "#/definitions/DeviceRequest"
... ...
@@ -477,11 +541,15 @@ definitions:
477 477
         type: "integer"
478 478
         format: "int64"
479 479
       MemorySwap:
480
-        description: "Total memory limit (memory + swap). Set as `-1` to enable unlimited swap."
480
+        description: |
481
+          Total memory limit (memory + swap). Set as `-1` to enable unlimited
482
+          swap.
481 483
         type: "integer"
482 484
         format: "int64"
483 485
       MemorySwappiness:
484
-        description: "Tune a container's memory swappiness behavior. Accepts an integer between 0 and 100."
486
+        description: |
487
+          Tune a container's memory swappiness behavior. Accepts an integer
488
+          between 0 and 100.
485 489
         type: "integer"
486 490
         format: "int64"
487 491
         minimum: 0
... ...
@@ -494,18 +562,26 @@ definitions:
494 494
         description: "Disable OOM Killer for the container."
495 495
         type: "boolean"
496 496
       Init:
497
-        description: "Run an init inside the container that forwards signals and reaps processes. This field is omitted if empty, and the default (as configured on the daemon) is used."
497
+        description: |
498
+          Run an init inside the container that forwards signals and reaps
499
+          processes. This field is omitted if empty, and the default (as
500
+          configured on the daemon) is used.
498 501
         type: "boolean"
499 502
         x-nullable: true
500 503
       PidsLimit:
501 504
         description: |
502
-          Tune a container's PIDs limit. Set `0` or `-1` for unlimited, or `null` to not change.
505
+          Tune a container's PIDs limit. Set `0` or `-1` for unlimited, or `null`
506
+          to not change.
503 507
         type: "integer"
504 508
         format: "int64"
505 509
         x-nullable: true
506 510
       Ulimits:
507 511
         description: |
508
-          A list of resource limits to set in the container. For example: `{"Name": "nofile", "Soft": 1024, "Hard": 2048}`"
512
+          A list of resource limits to set in the container. For example:
513
+
514
+          ```
515
+          {"Name": "nofile", "Soft": 1024, "Hard": 2048}
516
+          ```
509 517
         type: "array"
510 518
         items:
511 519
           type: "object"
... ...
@@ -524,14 +600,18 @@ definitions:
524 524
         description: |
525 525
           The number of usable CPUs (Windows only).
526 526
 
527
-          On Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last.
527
+          On Windows Server containers, the processor resource controls are
528
+          mutually exclusive. The order of precedence is `CPUCount` first, then
529
+          `CPUShares`, and `CPUPercent` last.
528 530
         type: "integer"
529 531
         format: "int64"
530 532
       CpuPercent:
531 533
         description: |
532 534
           The usable percentage of the available CPUs (Windows only).
533 535
 
534
-          On Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last.
536
+          On Windows Server containers, the processor resource controls are
537
+          mutually exclusive. The order of precedence is `CPUCount` first, then
538
+          `CPUShares`, and `CPUPercent` last.
535 539
         type: "integer"
536 540
         format: "int64"
537 541
       IOMaximumIOps:
... ...
@@ -539,12 +619,16 @@ definitions:
539 539
         type: "integer"
540 540
         format: "int64"
541 541
       IOMaximumBandwidth:
542
-        description: "Maximum IO in bytes per second for the container system drive (Windows only)"
542
+        description: |
543
+          Maximum IO in bytes per second for the container system drive
544
+          (Windows only).
543 545
         type: "integer"
544 546
         format: "int64"
545 547
 
546 548
   ResourceObject:
547
-    description: "An object describing the resources which can be advertised by a node and requested by a task"
549
+    description: |
550
+      An object describing the resources which can be advertised by a node and
551
+      requested by a task.
548 552
     type: "object"
549 553
     properties:
550 554
       NanoCPUs:
... ...
@@ -559,7 +643,9 @@ definitions:
559 559
         $ref: "#/definitions/GenericResources"
560 560
 
561 561
   GenericResources:
562
-    description: "User-defined resources can be either Integer resources (e.g, `SSD=3`) or String resources (e.g, `GPU=UUID1`)"
562
+    description: |
563
+      User-defined resources can be either Integer resources (e.g, `SSD=3`) or
564
+      String resources (e.g, `GPU=UUID1`).
563 565
     type: "array"
564 566
     items:
565 567
       type: "object"
... ...
@@ -606,16 +692,25 @@ definitions:
606 606
         items:
607 607
           type: "string"
608 608
       Interval:
609
-        description: "The time to wait between checks in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means inherit."
609
+        description: |
610
+          The time to wait between checks in nanoseconds. It should be 0 or at
611
+          least 1000000 (1 ms). 0 means inherit.
610 612
         type: "integer"
611 613
       Timeout:
612
-        description: "The time to wait before considering the check to have hung. It should be 0 or at least 1000000 (1 ms). 0 means inherit."
614
+        description: |
615
+          The time to wait before considering the check to have hung. It should
616
+          be 0 or at least 1000000 (1 ms). 0 means inherit.
613 617
         type: "integer"
614 618
       Retries:
615
-        description: "The number of consecutive failures needed to consider a container as unhealthy. 0 means inherit."
619
+        description: |
620
+          The number of consecutive failures needed to consider a container as
621
+          unhealthy. 0 means inherit.
616 622
         type: "integer"
617 623
       StartPeriod:
618
-        description: "Start period for the container to initialize before starting health-retries countdown in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means inherit."
624
+        description: |
625
+          Start period for the container to initialize before starting
626
+          health-retries countdown in nanoseconds. It should be 0 or at least
627
+          1000000 (1 ms). 0 means inherit.
619 628
         type: "integer"
620 629
 
621 630
   Health:
... ...
@@ -758,25 +853,33 @@ definitions:
758 758
                   type: "string"
759 759
           NetworkMode:
760 760
             type: "string"
761
-            description: "Network mode to use for this container. Supported standard values are: `bridge`, `host`, `none`, and `container:<name|id>`. Any other value is taken
762
-              as a custom network's name to which this container should connect to."
761
+            description: |
762
+              Network mode to use for this container. Supported standard values
763
+              are: `bridge`, `host`, `none`, and `container:<name|id>`. Any
764
+              other value is taken as a custom network's name to which this
765
+              container should connect to.
763 766
           PortBindings:
764 767
             $ref: "#/definitions/PortMap"
765 768
           RestartPolicy:
766 769
             $ref: "#/definitions/RestartPolicy"
767 770
           AutoRemove:
768 771
             type: "boolean"
769
-            description: "Automatically remove the container when the container's process exits. This has no effect if `RestartPolicy` is set."
772
+            description: |
773
+              Automatically remove the container when the container's process
774
+              exits. This has no effect if `RestartPolicy` is set.
770 775
           VolumeDriver:
771 776
             type: "string"
772 777
             description: "Driver that this container uses to mount volumes."
773 778
           VolumesFrom:
774 779
             type: "array"
775
-            description: "A list of volumes to inherit from another container, specified in the form `<container name>[:<ro|rw>]`."
780
+            description: |
781
+              A list of volumes to inherit from another container, specified in
782
+              the form `<container name>[:<ro|rw>]`.
776 783
             items:
777 784
               type: "string"
778 785
           Mounts:
779
-            description: "Specification for mounts to be added to the container."
786
+            description: |
787
+              Specification for mounts to be added to the container.
780 788
             type: "array"
781 789
             items:
782 790
               $ref: "#/definitions/Mount"
... ...
@@ -785,19 +888,24 @@ definitions:
785 785
           Capabilities:
786 786
             type: "array"
787 787
             description: |
788
-              A list of kernel capabilities to be available for container (this overrides the default set).
788
+              A list of kernel capabilities to be available for container (this
789
+              overrides the default set).
789 790
 
790 791
               Conflicts with options 'CapAdd' and 'CapDrop'"
791 792
             items:
792 793
               type: "string"
793 794
           CapAdd:
794 795
             type: "array"
795
-            description: "A list of kernel capabilities to add to the container. Conflicts with option 'Capabilities'"
796
+            description: |
797
+              A list of kernel capabilities to add to the container. Conflicts
798
+              with option 'Capabilities'.
796 799
             items:
797 800
               type: "string"
798 801
           CapDrop:
799 802
             type: "array"
800
-            description: "A list of kernel capabilities to drop from the container. Conflicts with option 'Capabilities'"
803
+            description: |
804
+              A list of kernel capabilities to drop from the container. Conflicts
805
+              with option 'Capabilities'.
801 806
             items:
802 807
               type: "string"
803 808
           Dns:
... ...
@@ -818,43 +926,49 @@ definitions:
818 818
           ExtraHosts:
819 819
             type: "array"
820 820
             description: |
821
-              A list of hostnames/IP mappings to add to the container's `/etc/hosts` file. Specified in the form `["hostname:IP"]`.
821
+              A list of hostnames/IP mappings to add to the container's `/etc/hosts`
822
+              file. Specified in the form `["hostname:IP"]`.
822 823
             items:
823 824
               type: "string"
824 825
           GroupAdd:
825 826
             type: "array"
826
-            description: "A list of additional groups that the container process will run as."
827
+            description: |
828
+              A list of additional groups that the container process will run as.
827 829
             items:
828 830
               type: "string"
829 831
           IpcMode:
830 832
             type: "string"
831 833
             description: |
832
-                    IPC sharing mode for the container. Possible values are:
834
+              IPC sharing mode for the container. Possible values are:
833 835
 
834
-                    - `"none"`: own private IPC namespace, with /dev/shm not mounted
835
-                    - `"private"`: own private IPC namespace
836
-                    - `"shareable"`: own private IPC namespace, with a possibility to share it with other containers
837
-                    - `"container:<name|id>"`: join another (shareable) container's IPC namespace
838
-                    - `"host"`: use the host system's IPC namespace
836
+              - `"none"`: own private IPC namespace, with /dev/shm not mounted
837
+              - `"private"`: own private IPC namespace
838
+              - `"shareable"`: own private IPC namespace, with a possibility to share it with other containers
839
+              - `"container:<name|id>"`: join another (shareable) container's IPC namespace
840
+              - `"host"`: use the host system's IPC namespace
839 841
 
840
-                    If not specified, daemon default is used, which can either be `"private"`
841
-                    or `"shareable"`, depending on daemon version and configuration.
842
+              If not specified, daemon default is used, which can either be `"private"`
843
+              or `"shareable"`, depending on daemon version and configuration.
842 844
           Cgroup:
843 845
             type: "string"
844 846
             description: "Cgroup to use for the container."
845 847
           Links:
846 848
             type: "array"
847
-            description: "A list of links for the container in the form `container_name:alias`."
849
+            description: |
850
+              A list of links for the container in the form `container_name:alias`.
848 851
             items:
849 852
               type: "string"
850 853
           OomScoreAdj:
851 854
             type: "integer"
852
-            description: "An integer value containing the score given to the container in order to tune OOM killer preferences."
855
+            description: |
856
+              An integer value containing the score given to the container in
857
+              order to tune OOM killer preferences.
853 858
             example: 500
854 859
           PidMode:
855 860
             type: "string"
856 861
             description: |
857
-              Set the PID (Process) Namespace mode for the container. It can be either:
862
+              Set the PID (Process) Namespace mode for the container. It can be
863
+              either:
858 864
 
859 865
               - `"container:<name|id>"`: joins another container's PID namespace
860 866
               - `"host"`: use the host's PID namespace inside the container
... ...
@@ -867,11 +981,13 @@ definitions:
867 867
               Allocates an ephemeral host port for all of a container's
868 868
               exposed ports.
869 869
 
870
-              Ports are de-allocated when the container stops and allocated when the container starts.
871
-              The allocated port might be changed when restarting the container.
870
+              Ports are de-allocated when the container stops and allocated when
871
+              the container starts. The allocated port might be changed when
872
+              restarting the container.
872 873
 
873
-              The port is selected from the ephemeral port range that depends on the kernel.
874
-              For example, on Linux the range is defined by `/proc/sys/net/ipv4/ip_local_port_range`.
874
+              The port is selected from the ephemeral port range that depends on
875
+              the kernel. For example, on Linux the range is defined by
876
+              `/proc/sys/net/ipv4/ip_local_port_range`.
875 877
           ReadonlyRootfs:
876 878
             type: "boolean"
877 879
             description: "Mount the container's root filesystem as read only."
... ...
@@ -890,7 +1006,12 @@ definitions:
890 890
           Tmpfs:
891 891
             type: "object"
892 892
             description: |
893
-              A map of container directories which should be replaced by tmpfs mounts, and their corresponding mount options. For example: `{ "/run": "rw,noexec,nosuid,size=65536k" }`.
893
+              A map of container directories which should be replaced by tmpfs
894
+              mounts, and their corresponding mount options. For example:
895
+
896
+              ```
897
+              { "/run": "rw,noexec,nosuid,size=65536k" }
898
+              ```
894 899
             additionalProperties:
895 900
               type: "string"
896 901
           UTSMode:
... ...
@@ -898,15 +1019,23 @@ definitions:
898 898
             description: "UTS namespace to use for the container."
899 899
           UsernsMode:
900 900
             type: "string"
901
-            description: "Sets the usernamespace mode for the container when usernamespace remapping option is enabled."
901
+            description: |
902
+              Sets the usernamespace mode for the container when usernamespace
903
+              remapping option is enabled.
902 904
           ShmSize:
903 905
             type: "integer"
904
-            description: "Size of `/dev/shm` in bytes. If omitted, the system uses 64MB."
906
+            description: |
907
+              Size of `/dev/shm` in bytes. If omitted, the system uses 64MB.
905 908
             minimum: 0
906 909
           Sysctls:
907 910
             type: "object"
908 911
             description: |
909
-              A list of kernel parameters (sysctls) to set in the container. For example: `{"net.ipv4.ip_forward": "1"}`
912
+              A list of kernel parameters (sysctls) to set in the container.
913
+              For example:
914
+
915
+              ```
916
+              {"net.ipv4.ip_forward": "1"}
917
+              ```
910 918
             additionalProperties:
911 919
               type: "string"
912 920
           Runtime:
... ...
@@ -915,7 +1044,8 @@ definitions:
915 915
           # Applicable to Windows
916 916
           ConsoleSize:
917 917
             type: "array"
918
-            description: "Initial console size, as an `[height, width]` array. (Windows only)"
918
+            description: |
919
+              Initial console size, as an `[height, width]` array. (Windows only)
919 920
             minItems: 2
920 921
             maxItems: 2
921 922
             items:
... ...
@@ -923,19 +1053,24 @@ definitions:
923 923
               minimum: 0
924 924
           Isolation:
925 925
             type: "string"
926
-            description: "Isolation technology of the container. (Windows only)"
926
+            description: |
927
+              Isolation technology of the container. (Windows only)
927 928
             enum:
928 929
               - "default"
929 930
               - "process"
930 931
               - "hyperv"
931 932
           MaskedPaths:
932 933
             type: "array"
933
-            description: "The list of paths to be masked inside the container (this overrides the default set of paths)"
934
+            description: |
935
+              The list of paths to be masked inside the container (this overrides
936
+              the default set of paths).
934 937
             items:
935 938
               type: "string"
936 939
           ReadonlyPaths:
937 940
             type: "array"
938
-            description: "The list of paths to be set as read-only inside the container (this overrides the default set of paths)"
941
+            description: |
942
+              The list of paths to be set as read-only inside the container
943
+              (this overrides the default set of paths).
939 944
             items:
940 945
               type: "string"
941 946
 
... ...
@@ -976,7 +1111,8 @@ definitions:
976 976
             - {}
977 977
           default: {}
978 978
       Tty:
979
-        description: "Attach standard streams to a TTY, including `stdin` if it is not closed."
979
+        description: |
980
+          Attach standard streams to a TTY, including `stdin` if it is not closed.
980 981
         type: "boolean"
981 982
         default: false
982 983
       OpenStdin:
... ...
@@ -989,12 +1125,15 @@ definitions:
989 989
         default: false
990 990
       Env:
991 991
         description: |
992
-          A list of environment variables to set inside the container in the form `["VAR=value", ...]`. A variable without `=` is removed from the environment, rather than to have an empty value.
992
+          A list of environment variables to set inside the container in the
993
+          form `["VAR=value", ...]`. A variable without `=` is removed from the
994
+          environment, rather than to have an empty value.
993 995
         type: "array"
994 996
         items:
995 997
           type: "string"
996 998
       Cmd:
997
-        description: "Command to run specified as a string or an array of strings."
999
+        description: |
1000
+          Command to run specified as a string or an array of strings.
998 1001
         type: "array"
999 1002
         items:
1000 1003
           type: "string"
... ...
@@ -1004,10 +1143,13 @@ definitions:
1004 1004
         description: "Command is already escaped (Windows only)"
1005 1005
         type: "boolean"
1006 1006
       Image:
1007
-        description: "The name of the image to use when creating the container"
1007
+        description: |
1008
+          The name of the image to use when creating the container/
1008 1009
         type: "string"
1009 1010
       Volumes:
1010
-        description: "An object mapping mount point paths inside the container to empty objects."
1011
+        description: |
1012
+          An object mapping mount point paths inside the container to empty
1013
+          objects.
1011 1014
         type: "object"
1012 1015
         additionalProperties:
1013 1016
           type: "object"
... ...
@@ -1021,7 +1163,9 @@ definitions:
1021 1021
         description: |
1022 1022
           The entry point for the container as a string or an array of strings.
1023 1023
 
1024
-          If the array consists of exactly one empty string (`[""]`) then the entry point is reset to system default (i.e., the entry point used by docker when there is no `ENTRYPOINT` instruction in the `Dockerfile`).
1024
+          If the array consists of exactly one empty string (`[""]`) then the
1025
+          entry point is reset to system default (i.e., the entry point used by
1026
+          docker when there is no `ENTRYPOINT` instruction in the `Dockerfile`).
1025 1027
         type: "array"
1026 1028
         items:
1027 1029
           type: "string"
... ...
@@ -1032,7 +1176,8 @@ definitions:
1032 1032
         description: "MAC address of the container."
1033 1033
         type: "string"
1034 1034
       OnBuild:
1035
-        description: "`ONBUILD` metadata that were defined in the image's `Dockerfile`."
1035
+        description: |
1036
+          `ONBUILD` metadata that were defined in the image's `Dockerfile`.
1036 1037
         type: "array"
1037 1038
         items:
1038 1039
           type: "string"
... ...
@@ -1042,7 +1187,8 @@ definitions:
1042 1042
         additionalProperties:
1043 1043
           type: "string"
1044 1044
       StopSignal:
1045
-        description: "Signal to stop a container as a string or unsigned integer."
1045
+        description: |
1046
+          Signal to stop a container as a string or unsigned integer.
1046 1047
         type: "string"
1047 1048
         default: "SIGTERM"
1048 1049
       StopTimeout:
... ...
@@ -1050,11 +1196,48 @@ definitions:
1050 1050
         type: "integer"
1051 1051
         default: 10
1052 1052
       Shell:
1053
-        description: "Shell for when `RUN`, `CMD`, and `ENTRYPOINT` uses a shell."
1053
+        description: |
1054
+          Shell for when `RUN`, `CMD`, and `ENTRYPOINT` uses a shell.
1054 1055
         type: "array"
1055 1056
         items:
1056 1057
           type: "string"
1057 1058
 
1059
+  NetworkingConfig:
1060
+    description: |
1061
+      NetworkingConfig represents the container's networking configuration for
1062
+      each of its interfaces.
1063
+      It is used for the networking configs specified in the `docker create`
1064
+      and `docker network connect` commands.
1065
+    type: "object"
1066
+    properties:
1067
+      EndpointsConfig:
1068
+        description: |
1069
+          A mapping of network name to endpoint configuration for that network.
1070
+        type: "object"
1071
+        additionalProperties:
1072
+          $ref: "#/definitions/EndpointSettings"
1073
+    example:
1074
+      # putting an example here, instead of using the example values from
1075
+      # /definitions/EndpointSettings, because containers/create currently
1076
+      # does not support attaching to multiple networks, so the example request
1077
+      # would be confusing if it showed that multiple networks can be contained
1078
+      # in the EndpointsConfig.
1079
+      # TODO remove once we support multiple networks on container create (see https://github.com/moby/moby/blob/07e6b843594e061f82baa5fa23c2ff7d536c2a05/daemon/create.go#L323)
1080
+      EndpointsConfig:
1081
+        isolated_nw:
1082
+          IPAMConfig:
1083
+            IPv4Address: "172.20.30.33"
1084
+            IPv6Address: "2001:db8:abcd::3033"
1085
+            LinkLocalIPs:
1086
+              - "169.254.34.68"
1087
+              - "fe80::3468"
1088
+          Links:
1089
+            - "container_1"
1090
+            - "container_2"
1091
+          Aliases:
1092
+            - "server_x"
1093
+            - "server_y"
1094
+
1058 1095
   NetworkSettings:
1059 1096
     description: "NetworkSettings exposes the network settings in the API"
1060 1097
     type: "object"
... ...
@@ -1497,13 +1680,16 @@ definitions:
1497 1497
           type: "string"
1498 1498
       Scope:
1499 1499
         type: "string"
1500
-        description: "The level at which the volume exists. Either `global` for cluster-wide, or `local` for machine level."
1500
+        description: |
1501
+          The level at which the volume exists. Either `global` for cluster-wide,
1502
+          or `local` for machine level.
1501 1503
         default: "local"
1502 1504
         x-nullable: false
1503 1505
         enum: ["local", "global"]
1504 1506
       Options:
1505 1507
         type: "object"
1506
-        description: "The driver specific options used when creating the volume."
1508
+        description: |
1509
+          The driver specific options used when creating the volume.
1507 1510
         additionalProperties:
1508 1511
           type: "string"
1509 1512
       UsageData:
... ...
@@ -1621,7 +1807,12 @@ definitions:
1621 1621
         type: "string"
1622 1622
         default: "default"
1623 1623
       Config:
1624
-        description: "List of IPAM configuration options, specified as a map: `{\"Subnet\": <CIDR>, \"IPRange\": <CIDR>, \"Gateway\": <IP address>, \"AuxAddress\": <device_name:IP address>}`"
1624
+        description: |
1625
+          List of IPAM configuration options, specified as a map:
1626
+
1627
+          ```
1628
+          {"Subnet": <CIDR>, "IPRange": <CIDR>, "Gateway": <IP address>, "AuxAddress": <device_name:IP address>}
1629
+          ```
1625 1630
         type: "array"
1626 1631
         items:
1627 1632
           type: "object"
... ...
@@ -1967,7 +2158,9 @@ definitions:
1967 1967
         x-nullable: false
1968 1968
         example: "tiborvass/sample-volume-plugin"
1969 1969
       Enabled:
1970
-        description: "True if the plugin is running. False if the plugin is not running, only installed."
1970
+        description:
1971
+          True if the plugin is running. False if the plugin is not running,
1972
+          only installed.
1971 1973
         type: "boolean"
1972 1974
         x-nullable: false
1973 1975
         example: true
... ...
@@ -2169,13 +2362,16 @@ definitions:
2169 2169
 
2170 2170
   ObjectVersion:
2171 2171
     description: |
2172
-      The version number of the object such as node, service, etc. This is needed to avoid conflicting writes.
2173
-      The client must send the version number along with the modified specification when updating these objects.
2174
-      This approach ensures safe concurrency and determinism in that the change on the object
2175
-      may not be applied if the version number has changed from the last read. In other words,
2176
-      if two update requests specify the same base version, only one of the requests can succeed.
2177
-      As a result, two separate update requests that happen at the same time will not
2178
-      unintentionally overwrite each other.
2172
+      The version number of the object such as node, service, etc. This is needed
2173
+      to avoid conflicting writes. The client must send the version number along
2174
+      with the modified specification when updating these objects.
2175
+
2176
+      This approach ensures safe concurrency and determinism in that the change
2177
+      on the object may not be applied if the version number has changed from the
2178
+      last read. In other words, if two update requests specify the same base
2179
+      version, only one of the requests can succeed. As a result, two separate
2180
+      update requests that happen at the same time will not unintentionally
2181
+      overwrite each other.
2179 2182
     type: "object"
2180 2183
     properties:
2181 2184
       Index:
... ...
@@ -2344,17 +2540,23 @@ definitions:
2344 2344
             Name: "vieux/sshfs:latest"
2345 2345
 
2346 2346
   TLSInfo:
2347
-    description: "Information about the issuer of leaf TLS certificates and the trusted root CA certificate"
2347
+    description: |
2348
+      Information about the issuer of leaf TLS certificates and the trusted root
2349
+      CA certificate.
2348 2350
     type: "object"
2349 2351
     properties:
2350 2352
       TrustRoot:
2351
-        description: "The root CA certificate(s) that are used to validate leaf TLS certificates"
2353
+        description: |
2354
+          The root CA certificate(s) that are used to validate leaf TLS
2355
+          certificates.
2352 2356
         type: "string"
2353 2357
       CertIssuerSubject:
2354
-        description: "The base64-url-safe-encoded raw subject bytes of the issuer"
2358
+        description:
2359
+          The base64-url-safe-encoded raw subject bytes of the issuer.
2355 2360
         type: "string"
2356 2361
       CertIssuerPublicKey:
2357
-        description: "The base64-url-safe-encoded raw public key bytes of the issuer"
2362
+        description: |
2363
+          The base64-url-safe-encoded raw public key bytes of the issuer.
2358 2364
         type: "string"
2359 2365
     example:
2360 2366
       TrustRoot: |
... ...
@@ -2450,7 +2652,9 @@ definitions:
2450 2450
         x-nullable: true
2451 2451
         properties:
2452 2452
           TaskHistoryRetentionLimit:
2453
-            description: "The number of historic tasks to keep per instance or node. If negative, never remove completed or failed tasks."
2453
+            description: |
2454
+              The number of historic tasks to keep per instance or node. If
2455
+              negative, never remove completed or failed tasks.
2454 2456
             type: "integer"
2455 2457
             format: "int64"
2456 2458
             example: 10
... ...
@@ -2464,26 +2668,34 @@ definitions:
2464 2464
             format: "uint64"
2465 2465
             example: 10000
2466 2466
           KeepOldSnapshots:
2467
-            description: "The number of snapshots to keep beyond the current snapshot."
2467
+            description: |
2468
+              The number of snapshots to keep beyond the current snapshot.
2468 2469
             type: "integer"
2469 2470
             format: "uint64"
2470 2471
           LogEntriesForSlowFollowers:
2471
-            description: "The number of log entries to keep around to sync up slow followers after a snapshot is created."
2472
+            description: |
2473
+              The number of log entries to keep around to sync up slow followers
2474
+              after a snapshot is created.
2472 2475
             type: "integer"
2473 2476
             format: "uint64"
2474 2477
             example: 500
2475 2478
           ElectionTick:
2476 2479
             description: |
2477
-              The number of ticks that a follower will wait for a message from the leader before becoming a candidate and starting an election. `ElectionTick` must be greater than `HeartbeatTick`.
2480
+              The number of ticks that a follower will wait for a message from
2481
+              the leader before becoming a candidate and starting an election.
2482
+              `ElectionTick` must be greater than `HeartbeatTick`.
2478 2483
 
2479
-              A tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.
2484
+              A tick currently defaults to one second, so these translate
2485
+              directly to seconds currently, but this is NOT guaranteed.
2480 2486
             type: "integer"
2481 2487
             example: 3
2482 2488
           HeartbeatTick:
2483 2489
             description: |
2484
-              The number of ticks between heartbeats. Every HeartbeatTick ticks, the leader will send a heartbeat to the followers.
2490
+              The number of ticks between heartbeats. Every HeartbeatTick ticks,
2491
+              the leader will send a heartbeat to the followers.
2485 2492
 
2486
-              A tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.
2493
+              A tick currently defaults to one second, so these translate
2494
+              directly to seconds currently, but this is NOT guaranteed.
2487 2495
             type: "integer"
2488 2496
             example: 1
2489 2497
       Dispatcher:
... ...
@@ -2492,7 +2704,8 @@ definitions:
2492 2492
         x-nullable: true
2493 2493
         properties:
2494 2494
           HeartbeatPeriod:
2495
-            description: "The delay for an agent to send a heartbeat to the dispatcher."
2495
+            description: |
2496
+              The delay for an agent to send a heartbeat to the dispatcher.
2496 2497
             type: "integer"
2497 2498
             format: "int64"
2498 2499
             example: 5000000000
... ...
@@ -2507,36 +2720,53 @@ definitions:
2507 2507
             format: "int64"
2508 2508
             example: 7776000000000000
2509 2509
           ExternalCAs:
2510
-            description: "Configuration for forwarding signing requests to an external certificate authority."
2510
+            description: |
2511
+              Configuration for forwarding signing requests to an external
2512
+              certificate authority.
2511 2513
             type: "array"
2512 2514
             items:
2513 2515
               type: "object"
2514 2516
               properties:
2515 2517
                 Protocol:
2516
-                  description: "Protocol for communication with the external CA (currently only `cfssl` is supported)."
2518
+                  description: |
2519
+                    Protocol for communication with the external CA (currently
2520
+                    only `cfssl` is supported).
2517 2521
                   type: "string"
2518 2522
                   enum:
2519 2523
                     - "cfssl"
2520 2524
                   default: "cfssl"
2521 2525
                 URL:
2522
-                  description: "URL where certificate signing requests should be sent."
2526
+                  description: |
2527
+                    URL where certificate signing requests should be sent.
2523 2528
                   type: "string"
2524 2529
                 Options:
2525
-                  description: "An object with key/value pairs that are interpreted as protocol-specific options for the external CA driver."
2530
+                  description: |
2531
+                    An object with key/value pairs that are interpreted as
2532
+                    protocol-specific options for the external CA driver.
2526 2533
                   type: "object"
2527 2534
                   additionalProperties:
2528 2535
                     type: "string"
2529 2536
                 CACert:
2530
-                  description: "The root CA certificate (in PEM format) this external CA uses to issue TLS certificates (assumed to be to the current swarm root CA certificate if not provided)."
2537
+                  description: |
2538
+                    The root CA certificate (in PEM format) this external CA uses
2539
+                    to issue TLS certificates (assumed to be to the current swarm
2540
+                    root CA certificate if not provided).
2531 2541
                   type: "string"
2532 2542
           SigningCACert:
2533
-            description: "The desired signing CA certificate for all swarm node TLS leaf certificates, in PEM format."
2543
+            description: |
2544
+              The desired signing CA certificate for all swarm node TLS leaf
2545
+              certificates, in PEM format.
2534 2546
             type: "string"
2535 2547
           SigningCAKey:
2536
-            description: "The desired signing CA key for all swarm node TLS leaf certificates, in PEM format."
2548
+            description: |
2549
+              The desired signing CA key for all swarm node TLS leaf certificates,
2550
+              in PEM format.
2537 2551
             type: "string"
2538 2552
           ForceRotate:
2539
-            description: "An integer whose purpose is to force swarm to generate a new signing CA certificate and key, if none have been specified in `SigningCACert` and `SigningCAKey`"
2553
+            description: |
2554
+              An integer whose purpose is to force swarm to generate a new
2555
+              signing CA certificate and key, if none have been specified in
2556
+              `SigningCACert` and `SigningCAKey`
2540 2557
             format: "uint64"
2541 2558
             type: "integer"
2542 2559
       EncryptionConfig:
... ...
@@ -2544,7 +2774,9 @@ definitions:
2544 2544
         type: "object"
2545 2545
         properties:
2546 2546
           AutoLockManagers:
2547
-            description: "If set, generate a key and use it to lock data stored on the managers."
2547
+            description: |
2548
+              If set, generate a key and use it to lock data stored on the
2549
+              managers.
2548 2550
             type: "boolean"
2549 2551
             example: false
2550 2552
       TaskDefaults:
... ...
@@ -2610,7 +2842,8 @@ definitions:
2610 2610
       TLSInfo:
2611 2611
         $ref: "#/definitions/TLSInfo"
2612 2612
       RootRotationInProgress:
2613
-        description: "Whether there is currently a root CA rotation in progress for the swarm"
2613
+        description: |
2614
+          Whether there is currently a root CA rotation in progress for the swarm
2614 2615
         type: "boolean"
2615 2616
         example: false
2616 2617
       DataPathPort:
... ...
@@ -2624,7 +2857,8 @@ definitions:
2624 2624
         example: 4789
2625 2625
       DefaultAddrPool:
2626 2626
         description: |
2627
-          Default Address Pool specifies default subnet pools for global scope networks.
2627
+          Default Address Pool specifies default subnet pools for global scope
2628
+          networks.
2628 2629
         type: "array"
2629 2630
         items:
2630 2631
           type: "string"
... ...
@@ -2632,7 +2866,8 @@ definitions:
2632 2632
           example: ["10.10.0.0/16", "20.20.0.0/16"]
2633 2633
       SubnetSize:
2634 2634
         description: |
2635
-          SubnetSize specifies the subnet size of the networks created from the default subnet pool
2635
+          SubnetSize specifies the subnet size of the networks created from the
2636
+          default subnet pool.
2636 2637
         type: "integer"
2637 2638
         format: "uint32"
2638 2639
         maximum: 29
... ...
@@ -2692,7 +2927,9 @@ definitions:
2692 2692
           PluginPrivilege:
2693 2693
             type: "array"
2694 2694
             items:
2695
-              description: "Describes a permission accepted by the user upon installing the plugin."
2695
+              description: |
2696
+                Describes a permission accepted by the user upon installing the
2697
+                plugin.
2696 2698
               type: "object"
2697 2699
               properties:
2698 2700
                 Name:
... ...
@@ -2734,10 +2971,13 @@ definitions:
2734 2734
             items:
2735 2735
               type: "string"
2736 2736
           Hostname:
2737
-            description: "The hostname to use for the container, as a valid RFC 1123 hostname."
2737
+            description: |
2738
+              The hostname to use for the container, as a valid
2739
+              [RFC 1123](https://tools.ietf.org/html/rfc1123) hostname.
2738 2740
             type: "string"
2739 2741
           Env:
2740
-            description: "A list of environment variables in the form `VAR=value`."
2742
+            description: |
2743
+              A list of environment variables in the form `VAR=value`.
2741 2744
             type: "array"
2742 2745
             items:
2743 2746
               type: "string"
... ...
@@ -2749,7 +2989,8 @@ definitions:
2749 2749
             type: "string"
2750 2750
           Groups:
2751 2751
             type: "array"
2752
-            description: "A list of additional groups that the container process will run as."
2752
+            description: |
2753
+              A list of additional groups that the container process will run as.
2753 2754
             items:
2754 2755
               type: "string"
2755 2756
           Privileges:
... ...
@@ -2765,37 +3006,43 @@ definitions:
2765 2765
                     example: "0bt9dmxjvjiqermk6xrop3ekq"
2766 2766
                     description: |
2767 2767
                       Load credential spec from a Swarm Config with the given ID.
2768
-                      The specified config must also be present in the Configs field with the Runtime property set.
2768
+                      The specified config must also be present in the Configs
2769
+                      field with the Runtime property set.
2769 2770
 
2770 2771
                       <p><br /></p>
2771 2772
 
2772 2773
 
2773
-                      > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`, and `CredentialSpec.Config` are mutually exclusive.
2774
+                      > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`,
2775
+                      > and `CredentialSpec.Config` are mutually exclusive.
2774 2776
                   File:
2775 2777
                     type: "string"
2776 2778
                     example: "spec.json"
2777 2779
                     description: |
2778
-                      Load credential spec from this file. The file is read by the daemon, and must be present in the
2779
-                      `CredentialSpecs` subdirectory in the docker data directory, which defaults to
2780
-                      `C:\ProgramData\Docker\` on Windows.
2780
+                      Load credential spec from this file. The file is read by
2781
+                      the daemon, and must be present in the `CredentialSpecs`
2782
+                      subdirectory in the docker data directory, which defaults
2783
+                      to `C:\ProgramData\Docker\` on Windows.
2781 2784
 
2782
-                      For example, specifying `spec.json` loads `C:\ProgramData\Docker\CredentialSpecs\spec.json`.
2785
+                      For example, specifying `spec.json` loads
2786
+                      `C:\ProgramData\Docker\CredentialSpecs\spec.json`.
2783 2787
 
2784 2788
                       <p><br /></p>
2785 2789
 
2786
-                      > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`, and `CredentialSpec.Config` are mutually exclusive.
2790
+                      > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`,
2791
+                      > and `CredentialSpec.Config` are mutually exclusive.
2787 2792
                   Registry:
2788 2793
                     type: "string"
2789 2794
                     description: |
2790
-                      Load credential spec from this value in the Windows registry. The specified registry value must be
2791
-                      located in:
2795
+                      Load credential spec from this value in the Windows
2796
+                      registry. The specified registry value must be located in:
2792 2797
 
2793 2798
                       `HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Containers\CredentialSpecs`
2794 2799
 
2795 2800
                       <p><br /></p>
2796 2801
 
2797 2802
 
2798
-                      > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`, and `CredentialSpec.Config` are mutually exclusive.
2803
+                      > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`,
2804
+                      > and `CredentialSpec.Config` are mutually exclusive.
2799 2805
               SELinuxContext:
2800 2806
                 type: "object"
2801 2807
                 description: "SELinux labels of the container"
... ...
@@ -2825,7 +3072,9 @@ definitions:
2825 2825
             description: "Mount the container's root filesystem as read only."
2826 2826
             type: "boolean"
2827 2827
           Mounts:
2828
-            description: "Specification for mounts to be added to containers created as part of the service."
2828
+            description: |
2829
+              Specification for mounts to be added to containers created as part
2830
+              of the service.
2829 2831
             type: "array"
2830 2832
             items:
2831 2833
               $ref: "#/definitions/Mount"
... ...
@@ -2833,7 +3082,9 @@ definitions:
2833 2833
             description: "Signal to stop the container."
2834 2834
             type: "string"
2835 2835
           StopGracePeriod:
2836
-            description: "Amount of time to wait for the container to terminate before forcefully killing it."
2836
+            description: |
2837
+              Amount of time to wait for the container to terminate before
2838
+              forcefully killing it.
2837 2839
             type: "integer"
2838 2840
             format: "int64"
2839 2841
           HealthCheck:
... ...
@@ -2850,7 +3101,9 @@ definitions:
2850 2850
             items:
2851 2851
               type: "string"
2852 2852
           DNSConfig:
2853
-            description: "Specification for DNS related configurations in resolver configuration file (`resolv.conf`)."
2853
+            description: |
2854
+              Specification for DNS related configurations in resolver configuration
2855
+              file (`resolv.conf`).
2854 2856
             type: "object"
2855 2857
             properties:
2856 2858
               Nameservers:
... ...
@@ -2864,22 +3117,28 @@ definitions:
2864 2864
                 items:
2865 2865
                   type: "string"
2866 2866
               Options:
2867
-                description: "A list of internal resolver variables to be modified (e.g., `debug`, `ndots:3`, etc.)."
2867
+                description: |
2868
+                  A list of internal resolver variables to be modified (e.g.,
2869
+                  `debug`, `ndots:3`, etc.).
2868 2870
                 type: "array"
2869 2871
                 items:
2870 2872
                   type: "string"
2871 2873
           Secrets:
2872
-            description: "Secrets contains references to zero or more secrets that will be exposed to the service."
2874
+            description: |
2875
+              Secrets contains references to zero or more secrets that will be
2876
+              exposed to the service.
2873 2877
             type: "array"
2874 2878
             items:
2875 2879
               type: "object"
2876 2880
               properties:
2877 2881
                 File:
2878
-                  description: "File represents a specific target that is backed by a file."
2882
+                  description: |
2883
+                    File represents a specific target that is backed by a file.
2879 2884
                   type: "object"
2880 2885
                   properties:
2881 2886
                     Name:
2882
-                      description: "Name represents the final filename in the filesystem."
2887
+                      description: |
2888
+                        Name represents the final filename in the filesystem.
2883 2889
                       type: "string"
2884 2890
                     UID:
2885 2891
                       description: "UID represents the file UID."
... ...
@@ -2892,15 +3151,20 @@ definitions:
2892 2892
                       type: "integer"
2893 2893
                       format: "uint32"
2894 2894
                 SecretID:
2895
-                  description: "SecretID represents the ID of the specific secret that we're referencing."
2895
+                  description: |
2896
+                    SecretID represents the ID of the specific secret that we're
2897
+                    referencing.
2896 2898
                   type: "string"
2897 2899
                 SecretName:
2898 2900
                   description: |
2899
-                    SecretName is the name of the secret that this references, but this is just provided for
2900
-                    lookup/display purposes. The secret in the reference will be identified by its ID.
2901
+                    SecretName is the name of the secret that this references,
2902
+                    but this is just provided for lookup/display purposes. The
2903
+                    secret in the reference will be identified by its ID.
2901 2904
                   type: "string"
2902 2905
           Configs:
2903
-            description: "Configs contains references to zero or more configs that will be exposed to the service."
2906
+            description: |
2907
+              Configs contains references to zero or more configs that will be
2908
+              exposed to the service.
2904 2909
             type: "array"
2905 2910
             items:
2906 2911
               type: "object"
... ...
@@ -2915,7 +3179,8 @@ definitions:
2915 2915
                   type: "object"
2916 2916
                   properties:
2917 2917
                     Name:
2918
-                      description: "Name represents the final filename in the filesystem."
2918
+                      description: |
2919
+                        Name represents the final filename in the filesystem.
2919 2920
                       type: "string"
2920 2921
                     UID:
2921 2922
                       description: "UID represents the file UID."
... ...
@@ -2929,29 +3194,39 @@ definitions:
2929 2929
                       format: "uint32"
2930 2930
                 Runtime:
2931 2931
                   description: |
2932
-                    Runtime represents a target that is not mounted into the container but is used by the task
2932
+                    Runtime represents a target that is not mounted into the
2933
+                    container but is used by the task
2933 2934
 
2934 2935
                     <p><br /><p>
2935 2936
 
2936
-                    > **Note**: `Configs.File` and `Configs.Runtime` are mutually exclusive
2937
+                    > **Note**: `Configs.File` and `Configs.Runtime` are mutually
2938
+                    > exclusive
2937 2939
                   type: "object"
2938 2940
                 ConfigID:
2939
-                  description: "ConfigID represents the ID of the specific config that we're referencing."
2941
+                  description: |
2942
+                    ConfigID represents the ID of the specific config that we're
2943
+                    referencing.
2940 2944
                   type: "string"
2941 2945
                 ConfigName:
2942 2946
                   description: |
2943
-                    ConfigName is the name of the config that this references, but this is just provided for
2944
-                    lookup/display purposes. The config in the reference will be identified by its ID.
2947
+                    ConfigName is the name of the config that this references,
2948
+                    but this is just provided for lookup/display purposes. The
2949
+                    config in the reference will be identified by its ID.
2945 2950
                   type: "string"
2946 2951
           Isolation:
2947 2952
             type: "string"
2948
-            description: "Isolation technology of the containers running the service. (Windows only)"
2953
+            description: |
2954
+              Isolation technology of the containers running the service.
2955
+              (Windows only)
2949 2956
             enum:
2950 2957
               - "default"
2951 2958
               - "process"
2952 2959
               - "hyperv"
2953 2960
           Init:
2954
-            description: "Run an init inside the container that forwards signals and reaps processes. This field is omitted if empty, and the default (as configured on the daemon) is used."
2961
+            description: |
2962
+              Run an init inside the container that forwards signals and reaps
2963
+              processes. This field is omitted if empty, and the default (as
2964
+              configured on the daemon) is used.
2955 2965
             type: "boolean"
2956 2966
             x-nullable: true
2957 2967
           Sysctls:
... ...
@@ -2983,7 +3258,9 @@ definitions:
2983 2983
             description: "ID of the container represented by this task"
2984 2984
             type: "string"
2985 2985
       Resources:
2986
-        description: "Resource requirements which apply to each individual container created as part of the service."
2986
+        description: |
2987
+          Resource requirements which apply to each individual container created
2988
+          as part of the service.
2987 2989
         type: "object"
2988 2990
         properties:
2989 2991
           Limits:
... ...
@@ -2993,7 +3270,9 @@ definitions:
2993 2993
             description: "Define resources reservation."
2994 2994
             $ref: "#/definitions/ResourceObject"
2995 2995
       RestartPolicy:
2996
-        description: "Specification for the restart policy which applies to containers created as part of this service."
2996
+        description: |
2997
+          Specification for the restart policy which applies to containers
2998
+          created as part of this service.
2997 2999
         type: "object"
2998 3000
         properties:
2999 3001
           Condition:
... ...
@@ -3008,12 +3287,16 @@ definitions:
3008 3008
             type: "integer"
3009 3009
             format: "int64"
3010 3010
           MaxAttempts:
3011
-            description: "Maximum attempts to restart a given container before giving up (default value is 0, which is ignored)."
3011
+            description: |
3012
+              Maximum attempts to restart a given container before giving up
3013
+              (default value is 0, which is ignored).
3012 3014
             type: "integer"
3013 3015
             format: "int64"
3014 3016
             default: 0
3015 3017
           Window:
3016
-            description: "Windows is the time window used to evaluate the restart policy (default value is 0, which is unbounded)."
3018
+            description: |
3019
+              Windows is the time window used to evaluate the restart policy
3020
+              (default value is 0, which is unbounded).
3017 3021
             type: "integer"
3018 3022
             format: "int64"
3019 3023
             default: 0
... ...
@@ -3052,7 +3335,10 @@ definitions:
3052 3052
               - "node.platform.os==linux"
3053 3053
               - "node.platform.arch==x86_64"
3054 3054
           Preferences:
3055
-            description: "Preferences provide a way to make the scheduler aware of factors such as topology. They are provided in order from highest to lowest precedence."
3055
+            description: |
3056
+              Preferences provide a way to make the scheduler aware of factors
3057
+              such as topology. They are provided in order from highest to
3058
+              lowest precedence.
3056 3059
             type: "array"
3057 3060
             items:
3058 3061
               type: "object"
... ...
@@ -3061,7 +3347,8 @@ definitions:
3061 3061
                   type: "object"
3062 3062
                   properties:
3063 3063
                     SpreadDescriptor:
3064
-                      description: "label descriptor, such as engine.labels.az"
3064
+                      description: |
3065
+                        label descriptor, such as `engine.labels.az`.
3065 3066
                       type: "string"
3066 3067
             example:
3067 3068
               - Spread:
... ...
@@ -3069,7 +3356,9 @@ definitions:
3069 3069
               - Spread:
3070 3070
                   SpreadDescriptor: "node.labels.rack"
3071 3071
           MaxReplicas:
3072
-            description: "Maximum number of replicas for per node (default value is 0, which is unlimited)"
3072
+            description: |
3073
+              Maximum number of replicas for per node (default value is 0, which
3074
+              is unlimited)
3073 3075
             type: "integer"
3074 3076
             format: "int64"
3075 3077
             default: 0
... ...
@@ -3083,10 +3372,13 @@ definitions:
3083 3083
             items:
3084 3084
               $ref: "#/definitions/Platform"
3085 3085
       ForceUpdate:
3086
-        description: "A counter that triggers an update even if no relevant parameters have been changed."
3086
+        description: |
3087
+          A counter that triggers an update even if no relevant parameters have
3088
+          been changed.
3087 3089
         type: "integer"
3088 3090
       Runtime:
3089
-        description: "Runtime is the type of runtime specified for the task executor."
3091
+        description: |
3092
+          Runtime is the type of runtime specified for the task executor.
3090 3093
         type: "string"
3091 3094
       Networks:
3092 3095
         description: "Specifies which networks the service should attach to."
... ...
@@ -3094,7 +3386,10 @@ definitions:
3094 3094
         items:
3095 3095
           $ref: "#/definitions/NetworkAttachmentConfig"
3096 3096
       LogDriver:
3097
-        description: "Specifies the log driver to use for tasks created from this spec. If not present, the default one for the swarm will be used, finally falling back to the engine default if not specified."
3097
+        description: |
3098
+          Specifies the log driver to use for tasks created from this spec. If
3099
+          not present, the default one for the swarm will be used, finally
3100
+          falling back to the engine default if not specified.
3098 3101
         type: "object"
3099 3102
         properties:
3100 3103
           Name:
... ...
@@ -3277,7 +3572,9 @@ definitions:
3277 3277
         type: "object"
3278 3278
         properties:
3279 3279
           Parallelism:
3280
-            description: "Maximum number of tasks to be updated in one iteration (0 means unlimited parallelism)."
3280
+            description: |
3281
+              Maximum number of tasks to be updated in one iteration (0 means
3282
+              unlimited parallelism).
3281 3283
             type: "integer"
3282 3284
             format: "int64"
3283 3285
           Delay:
... ...
@@ -3285,22 +3582,32 @@ definitions:
3285 3285
             type: "integer"
3286 3286
             format: "int64"
3287 3287
           FailureAction:
3288
-            description: "Action to take if an updated task fails to run, or stops running during the update."
3288
+            description: |
3289
+              Action to take if an updated task fails to run, or stops running
3290
+              during the update.
3289 3291
             type: "string"
3290 3292
             enum:
3291 3293
               - "continue"
3292 3294
               - "pause"
3293 3295
               - "rollback"
3294 3296
           Monitor:
3295
-            description: "Amount of time to monitor each updated task for failures, in nanoseconds."
3297
+            description: |
3298
+              Amount of time to monitor each updated task for failures, in
3299
+              nanoseconds.
3296 3300
             type: "integer"
3297 3301
             format: "int64"
3298 3302
           MaxFailureRatio:
3299
-            description: "The fraction of tasks that may fail during an update before the failure action is invoked, specified as a floating point number between 0 and 1."
3303
+            description: |
3304
+              The fraction of tasks that may fail during an update before the
3305
+              failure action is invoked, specified as a floating point number
3306
+              between 0 and 1.
3300 3307
             type: "number"
3301 3308
             default: 0
3302 3309
           Order:
3303
-            description: "The order of operations when rolling out an updated task. Either the old task is shut down before the new task is started, or the new task is started before the old task is shut down."
3310
+            description: |
3311
+              The order of operations when rolling out an updated task. Either
3312
+              the old task is shut down before the new task is started, or the
3313
+              new task is started before the old task is shut down.
3304 3314
             type: "string"
3305 3315
             enum:
3306 3316
               - "stop-first"
... ...
@@ -3310,29 +3617,42 @@ definitions:
3310 3310
         type: "object"
3311 3311
         properties:
3312 3312
           Parallelism:
3313
-            description: "Maximum number of tasks to be rolled back in one iteration (0 means unlimited parallelism)."
3313
+            description: |
3314
+              Maximum number of tasks to be rolled back in one iteration (0 means
3315
+              unlimited parallelism).
3314 3316
             type: "integer"
3315 3317
             format: "int64"
3316 3318
           Delay:
3317
-            description: "Amount of time between rollback iterations, in nanoseconds."
3319
+            description: |
3320
+              Amount of time between rollback iterations, in nanoseconds.
3318 3321
             type: "integer"
3319 3322
             format: "int64"
3320 3323
           FailureAction:
3321
-            description: "Action to take if an rolled back task fails to run, or stops running during the rollback."
3324
+            description: |
3325
+              Action to take if an rolled back task fails to run, or stops
3326
+              running during the rollback.
3322 3327
             type: "string"
3323 3328
             enum:
3324 3329
               - "continue"
3325 3330
               - "pause"
3326 3331
           Monitor:
3327
-            description: "Amount of time to monitor each rolled back task for failures, in nanoseconds."
3332
+            description: |
3333
+              Amount of time to monitor each rolled back task for failures, in
3334
+              nanoseconds.
3328 3335
             type: "integer"
3329 3336
             format: "int64"
3330 3337
           MaxFailureRatio:
3331
-            description: "The fraction of tasks that may fail during a rollback before the failure action is invoked, specified as a floating point number between 0 and 1."
3338
+            description: |
3339
+              The fraction of tasks that may fail during a rollback before the
3340
+              failure action is invoked, specified as a floating point number
3341
+              between 0 and 1.
3332 3342
             type: "number"
3333 3343
             default: 0
3334 3344
           Order:
3335
-            description: "The order of operations when rolling back a task. Either the old task is shut down before the new task is started, or the new task is started before the old task is shut down."
3345
+            description: |
3346
+              The order of operations when rolling back a task. Either the old
3347
+              task is shut down before the new task is started, or the new task
3348
+              is started before the old task is shut down.
3336 3349
             type: "string"
3337 3350
             enum:
3338 3351
               - "stop-first"
... ...
@@ -3395,7 +3715,9 @@ definitions:
3395 3395
           - "dnsrr"
3396 3396
         default: "vip"
3397 3397
       Ports:
3398
-        description: "List of exposed ports that this service is accessible on from the outside. Ports can only be provided if `vip` resolution mode is used."
3398
+        description: |
3399
+          List of exposed ports that this service is accessible on from the
3400
+          outside. Ports can only be provided if `vip` resolution mode is used.
3399 3401
         type: "array"
3400 3402
         items:
3401 3403
           $ref: "#/definitions/EndpointPortConfig"
... ...
@@ -3647,7 +3969,9 @@ definitions:
3647 3647
         type: "string"
3648 3648
         example: ""
3649 3649
       Driver:
3650
-        description: "Name of the secrets driver used to fetch the secret's value from an external secret store"
3650
+        description: |
3651
+          Name of the secrets driver used to fetch the secret's value from an
3652
+          external secret store.
3651 3653
         $ref: "#/definitions/Driver"
3652 3654
       Templating:
3653 3655
         description: |
... ...
@@ -3752,7 +4076,8 @@ definitions:
3752 3752
         type: "boolean"
3753 3753
         example: false
3754 3754
       OOMKilled:
3755
-        description: "Whether this container has been killed because it ran out of memory."
3755
+        description: |
3756
+          Whether this container has been killed because it ran out of memory.
3756 3757
         type: "boolean"
3757 3758
         example: false
3758 3759
       Dead:
... ...
@@ -3907,15 +4232,20 @@ definitions:
3907 3907
         type: "boolean"
3908 3908
         example: true
3909 3909
       CpuCfsPeriod:
3910
-        description: "Indicates if CPU CFS(Completely Fair Scheduler) period is supported by the host."
3910
+        description: |
3911
+          Indicates if CPU CFS(Completely Fair Scheduler) period is supported by
3912
+          the host.
3911 3913
         type: "boolean"
3912 3914
         example: true
3913 3915
       CpuCfsQuota:
3914
-        description: "Indicates if CPU CFS(Completely Fair Scheduler) quota is supported by the host."
3916
+        description: |
3917
+          Indicates if CPU CFS(Completely Fair Scheduler) quota is supported by
3918
+          the host.
3915 3919
         type: "boolean"
3916 3920
         example: true
3917 3921
       CPUShares:
3918
-        description: "Indicates if CPU Shares limiting is supported by the host."
3922
+        description: |
3923
+          Indicates if CPU Shares limiting is supported by the host.
3919 3924
         type: "boolean"
3920 3925
         example: true
3921 3926
       CPUSet:
... ...
@@ -3945,7 +4275,9 @@ definitions:
3945 3945
         type: "boolean"
3946 3946
         example: true
3947 3947
       Debug:
3948
-        description: "Indicates if the daemon is running in debug-mode / with debug-level logging enabled."
3948
+        description: |
3949
+          Indicates if the daemon is running in debug-mode / with debug-level
3950
+          logging enabled.
3949 3951
         type: "boolean"
3950 3952
         example: true
3951 3953
       NFd:
... ...
@@ -4579,19 +4911,23 @@ definitions:
4579 4579
         type: "string"
4580 4580
 
4581 4581
   NetworkAttachmentConfig:
4582
-    description: "Specifies how a service should be attached to a particular network."
4582
+    description: |
4583
+      Specifies how a service should be attached to a particular network.
4583 4584
     type: "object"
4584 4585
     properties:
4585 4586
       Target:
4586
-        description: "The target network for attachment. Must be a network name or ID."
4587
+        description: |
4588
+          The target network for attachment. Must be a network name or ID.
4587 4589
         type: "string"
4588 4590
       Aliases:
4589
-        description: "Discoverable alternate names for the service on this network."
4591
+        description: |
4592
+          Discoverable alternate names for the service on this network.
4590 4593
         type: "array"
4591 4594
         items:
4592 4595
           type: "string"
4593 4596
       DriverOpts:
4594
-        description: "Driver attachment options for the network target"
4597
+        description: |
4598
+          Driver attachment options for the network target.
4595 4599
         type: "object"
4596 4600
         additionalProperties:
4597 4601
           type: "string"
... ...
@@ -4601,32 +4937,42 @@ paths:
4601 4601
     get:
4602 4602
       summary: "List containers"
4603 4603
       description: |
4604
-        Returns a list of containers. For details on the format, see [the inspect endpoint](#operation/ContainerInspect).
4604
+        Returns a list of containers. For details on the format, see the
4605
+        [inspect endpoint](#operation/ContainerInspect).
4605 4606
 
4606
-        Note that it uses a different, smaller representation of a container than inspecting a single container. For example,
4607
-        the list of linked containers is not propagated .
4607
+        Note that it uses a different, smaller representation of a container
4608
+        than inspecting a single container. For example, the list of linked
4609
+        containers is not propagated .
4608 4610
       operationId: "ContainerList"
4609 4611
       produces:
4610 4612
         - "application/json"
4611 4613
       parameters:
4612 4614
         - name: "all"
4613 4615
           in: "query"
4614
-          description: "Return all containers. By default, only running containers are shown"
4616
+          description: |
4617
+            Return all containers. By default, only running containers are shown.
4615 4618
           type: "boolean"
4616 4619
           default: false
4617 4620
         - name: "limit"
4618 4621
           in: "query"
4619
-          description: "Return this number of most recently created containers, including non-running ones."
4622
+          description: |
4623
+            Return this number of most recently created containers, including
4624
+            non-running ones.
4620 4625
           type: "integer"
4621 4626
         - name: "size"
4622 4627
           in: "query"
4623
-          description: "Return the size of container as fields `SizeRw` and `SizeRootFs`."
4628
+          description: |
4629
+            Return the size of container as fields `SizeRw` and `SizeRootFs`.
4624 4630
           type: "boolean"
4625 4631
           default: false
4626 4632
         - name: "filters"
4627 4633
           in: "query"
4628 4634
           description: |
4629
-            Filters to process on the container list, encoded as JSON (a `map[string][]string`). For example, `{"status": ["paused"]}` will only return paused containers. Available filters:
4635
+            Filters to process on the container list, encoded as JSON (a
4636
+            `map[string][]string`). For example, `{"status": ["paused"]}` will
4637
+            only return paused containers.
4638
+
4639
+            Available filters:
4630 4640
 
4631 4641
             - `ancestor`=(`<image-name>[:<tag>]`, `<image id>`, or `<image@digest>`)
4632 4642
             - `before`=(`<container id>` or `<container name>`)
... ...
@@ -4797,7 +5143,9 @@ paths:
4797 4797
       parameters:
4798 4798
         - name: "name"
4799 4799
           in: "query"
4800
-          description: "Assign the specified name to the container. Must match `/?[a-zA-Z0-9][a-zA-Z0-9_.-]+`."
4800
+          description: |
4801
+            Assign the specified name to the container. Must match
4802
+            `/?[a-zA-Z0-9][a-zA-Z0-9_.-]+`.
4801 4803
           type: "string"
4802 4804
           pattern: "^/?[a-zA-Z0-9][a-zA-Z0-9_.-]+$"
4803 4805
         - name: "body"
... ...
@@ -4811,14 +5159,7 @@ paths:
4811 4811
                   HostConfig:
4812 4812
                     $ref: "#/definitions/HostConfig"
4813 4813
                   NetworkingConfig:
4814
-                    description: "This container's networking configuration."
4815
-                    type: "object"
4816
-                    properties:
4817
-                      EndpointsConfig:
4818
-                        description: "A mapping of network name to endpoint configuration for that network."
4819
-                        type: "object"
4820
-                        additionalProperties:
4821
-                          $ref: "#/definitions/EndpointSettings"
4814
+                    $ref: "#/definitions/NetworkingConfig"
4822 4815
             example:
4823 4816
               Hostname: ""
4824 4817
               Domainname: ""
... ...
@@ -4880,6 +5221,14 @@ paths:
4880 4880
                   - {}
4881 4881
                 BlkioDeviceWriteIOps:
4882 4882
                   - {}
4883
+                DeviceRequests:
4884
+                  - Driver: "nvidia"
4885
+                    Count: -1
4886
+                    DeviceIDs": ["0", "1", "GPU-fef8089b-4820-abfc-e83e-94318197576e"]
4887
+                    Capabilities: [["gpu", "nvidia", "compute"]]
4888
+                    Options:
4889
+                      property1: "string"
4890
+                      property2: "string"
4883 4891
                 MemorySwappiness: 60
4884 4892
                 OomKillDisable: false
4885 4893
                 OomScoreAdj: 500
... ...
@@ -5014,7 +5363,7 @@ paths:
5014 5014
                 x-nullable: true
5015 5015
                 $ref: "#/definitions/ContainerState"
5016 5016
               Image:
5017
-                description: "The container's image"
5017
+                description: "The container's image ID"
5018 5018
                 type: "string"
5019 5019
               ResolvConfPath:
5020 5020
                 type: "string"
... ...
@@ -5052,7 +5401,9 @@ paths:
5052 5052
               GraphDriver:
5053 5053
                 $ref: "#/definitions/GraphDriverData"
5054 5054
               SizeRw:
5055
-                description: "The size of files that have been created or changed by this container."
5055
+                description: |
5056
+                  The size of files that have been created or changed by this
5057
+                  container.
5056 5058
                 type: "integer"
5057 5059
                 format: "int64"
5058 5060
               SizeRootFs:
... ...
@@ -5131,6 +5482,14 @@ paths:
5131 5131
                 CpuRealtimePeriod: 1000000
5132 5132
                 CpuRealtimeRuntime: 10000
5133 5133
                 Devices: []
5134
+                DeviceRequests:
5135
+                  - Driver: "nvidia"
5136
+                    Count: -1
5137
+                    DeviceIDs": ["0", "1", "GPU-fef8089b-4820-abfc-e83e-94318197576e"]
5138
+                    Capabilities: [["gpu", "nvidia", "compute"]]
5139
+                    Options:
5140
+                      property1: "string"
5141
+                      property2: "string"
5134 5142
                 IpcMode: ""
5135 5143
                 LxcConf: []
5136 5144
                 Memory: 0
... ...
@@ -5247,7 +5606,9 @@ paths:
5247 5247
   /containers/{id}/top:
5248 5248
     get:
5249 5249
       summary: "List processes running inside a container"
5250
-      description: "On Unix systems, this is done by running the `ps` command. This endpoint is not supported on Windows."
5250
+      description: |
5251
+        On Unix systems, this is done by running the `ps` command. This endpoint
5252
+        is not supported on Windows.
5251 5253
       operationId: "ContainerTop"
5252 5254
       responses:
5253 5255
         200:
... ...
@@ -5263,7 +5624,9 @@ paths:
5263 5263
                 items:
5264 5264
                   type: "string"
5265 5265
               Processes:
5266
-                description: "Each process running in the container, where each is process is an array of values corresponding to the titles"
5266
+                description: |
5267
+                  Each process running in the container, where each is process
5268
+                  is an array of values corresponding to the titles.
5267 5269
                 type: "array"
5268 5270
                 items:
5269 5271
                   type: "array"
... ...
@@ -5328,15 +5691,16 @@ paths:
5328 5328
       description: |
5329 5329
         Get `stdout` and `stderr` logs from a container.
5330 5330
 
5331
-        Note: This endpoint works only for containers with the `json-file` or `journald` logging driver.
5331
+        Note: This endpoint works only for containers with the `json-file` or
5332
+        `journald` logging driver.
5332 5333
       operationId: "ContainerLogs"
5333 5334
       responses:
5334 5335
         200:
5335 5336
           description: |
5336
-                  logs returned as a stream in response body.
5337
-                  For the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).
5338
-                  Note that unlike the attach endpoint, the logs endpoint does not upgrade the connection and does not
5339
-                  set Content-Type.
5337
+            logs returned as a stream in response body.
5338
+            For the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).
5339
+            Note that unlike the attach endpoint, the logs endpoint does not
5340
+            upgrade the connection and does not set Content-Type.
5340 5341
           schema:
5341 5342
             type: "string"
5342 5343
             format: "binary"
... ...
@@ -5389,7 +5753,9 @@ paths:
5389 5389
           default: false
5390 5390
         - name: "tail"
5391 5391
           in: "query"
5392
-          description: "Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines."
5392
+          description: |
5393
+            Only return this number of log lines from the end of the logs.
5394
+            Specify as an integer or `all` to output all log lines.
5393 5395
           type: "string"
5394 5396
           default: "all"
5395 5397
       tags: ["Container"]
... ...
@@ -5495,6 +5861,16 @@ paths:
5495 5495
         If either `precpu_stats.online_cpus` or `cpu_stats.online_cpus` is
5496 5496
         nil then for compatibility with older daemons the length of the
5497 5497
         corresponding `cpu_usage.percpu_usage` array should be used.
5498
+
5499
+        To calculate the values shown by the `stats` command of the docker cli tool
5500
+        the following formulas can be used:
5501
+        * used_memory = `memory_stats.usage - memory_stats.stats.cache`
5502
+        * available_memory = `memory_stats.limit`
5503
+        * Memory usage % = `(used_memory / available_memory) * 100.0`
5504
+        * cpu_delta = `cpu_stats.cpu_usage.total_usage - precpu_stats.cpu_usage.total_usage`
5505
+        * system_cpu_delta = `cpu_stats.system_cpu_usage - precpu_stats.system_cpu_usage`
5506
+        * number_cpus = `lenght(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
5507
+        * CPU usage % = `(cpu_delta / system_cpu_delta) * number_cpus * 100.0`
5498 5508
       operationId: "ContainerStats"
5499 5509
       produces: ["application/json"]
5500 5510
       responses:
... ...
@@ -5613,7 +5989,9 @@ paths:
5613 5613
           type: "string"
5614 5614
         - name: "stream"
5615 5615
           in: "query"
5616
-          description: "Stream the output. If false, the stats will be output once and then it will disconnect."
5616
+          description: |
5617
+            Stream the output. If false, the stats will be output once and then
5618
+            it will disconnect.
5617 5619
           type: "boolean"
5618 5620
           default: true
5619 5621
       tags: ["Container"]
... ...
@@ -5648,11 +6026,11 @@ paths:
5648 5648
           type: "string"
5649 5649
         - name: "h"
5650 5650
           in: "query"
5651
-          description: "Height of the tty session in characters"
5651
+          description: "Height of the TTY session in characters"
5652 5652
           type: "integer"
5653 5653
         - name: "w"
5654 5654
           in: "query"
5655
-          description: "Width of the tty session in characters"
5655
+          description: "Width of the TTY session in characters"
5656 5656
           type: "integer"
5657 5657
       tags: ["Container"]
5658 5658
   /containers/{id}/start:
... ...
@@ -5683,7 +6061,10 @@ paths:
5683 5683
           type: "string"
5684 5684
         - name: "detachKeys"
5685 5685
           in: "query"
5686
-          description: "Override the key sequence for detaching a container. Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`."
5686
+          description: |
5687
+            Override the key sequence for detaching a container. Format is a
5688
+            single character `[a-Z]` or `ctrl-<value>` where `<value>` is one
5689
+            of: `a-z`, `@`, `^`, `[`, `,` or `_`.
5687 5690
           type: "string"
5688 5691
       tags: ["Container"]
5689 5692
   /containers/{id}/stop:
... ...
@@ -5749,7 +6130,9 @@ paths:
5749 5749
   /containers/{id}/kill:
5750 5750
     post:
5751 5751
       summary: "Kill a container"
5752
-      description: "Send a POSIX signal to a container, defaulting to killing to the container."
5752
+      description: |
5753
+        Send a POSIX signal to a container, defaulting to killing to the
5754
+        container.
5753 5755
       operationId: "ContainerKill"
5754 5756
       responses:
5755 5757
         204:
... ...
@@ -5787,7 +6170,9 @@ paths:
5787 5787
   /containers/{id}/update:
5788 5788
     post:
5789 5789
       summary: "Update a container"
5790
-      description: "Change various configuration options of a container without having to recreate it."
5790
+      description: |
5791
+        Change various configuration options of a container without having to
5792
+        recreate it.
5791 5793
       operationId: "ContainerUpdate"
5792 5794
       consumes: ["application/json"]
5793 5795
       produces: ["application/json"]
... ...
@@ -5887,7 +6272,10 @@ paths:
5887 5887
       description: |
5888 5888
         Use the freezer cgroup to suspend all processes in a container.
5889 5889
 
5890
-        Traditionally, when suspending a process the `SIGSTOP` signal is used, which is observable by the process being suspended. With the freezer cgroup the process is unaware, and unable to capture, that it is being suspended, and subsequently resumed.
5890
+        Traditionally, when suspending a process the `SIGSTOP` signal is used,
5891
+        which is observable by the process being suspended. With the freezer
5892
+        cgroup the process is unaware, and unable to capture, that it is being
5893
+        suspended, and subsequently resumed.
5891 5894
       operationId: "ContainerPause"
5892 5895
       responses:
5893 5896
         204:
... ...
@@ -5940,15 +6328,20 @@ paths:
5940 5940
     post:
5941 5941
       summary: "Attach to a container"
5942 5942
       description: |
5943
-        Attach to a container to read its output or send it input. You can attach to the same container multiple times and you can reattach to containers that have been detached.
5943
+        Attach to a container to read its output or send it input. You can attach
5944
+        to the same container multiple times and you can reattach to containers
5945
+        that have been detached.
5944 5946
 
5945
-        Either the `stream` or `logs` parameter must be `true` for this endpoint to do anything.
5947
+        Either the `stream` or `logs` parameter must be `true` for this endpoint
5948
+        to do anything.
5946 5949
 
5947
-        See [the documentation for the `docker attach` command](https://docs.docker.com/engine/reference/commandline/attach/) for more details.
5950
+        See the [documentation for the `docker attach` command](https://docs.docker.com/engine/reference/commandline/attach/)
5951
+        for more details.
5948 5952
 
5949 5953
         ### Hijacking
5950 5954
 
5951
-        This endpoint hijacks the HTTP connection to transport `stdin`, `stdout`, and `stderr` on the same socket.
5955
+        This endpoint hijacks the HTTP connection to transport `stdin`, `stdout`,
5956
+        and `stderr` on the same socket.
5952 5957
 
5953 5958
         This is the response from the daemon for an attach request:
5954 5959
 
... ...
@@ -5959,9 +6352,11 @@ paths:
5959 5959
         [STREAM]
5960 5960
         ```
5961 5961
 
5962
-        After the headers and two new lines, the TCP connection can now be used for raw, bidirectional communication between the client and server.
5962
+        After the headers and two new lines, the TCP connection can now be used
5963
+        for raw, bidirectional communication between the client and server.
5963 5964
 
5964
-        To hint potential proxies about connection hijacking, the Docker client can also optionally send connection upgrade headers.
5965
+        To hint potential proxies about connection hijacking, the Docker client
5966
+        can also optionally send connection upgrade headers.
5965 5967
 
5966 5968
         For example, the client sends this request to upgrade the connection:
5967 5969
 
... ...
@@ -5971,7 +6366,8 @@ paths:
5971 5971
         Connection: Upgrade
5972 5972
         ```
5973 5973
 
5974
-        The Docker daemon will respond with a `101 UPGRADED` response, and will similarly follow with the raw stream:
5974
+        The Docker daemon will respond with a `101 UPGRADED` response, and will
5975
+        similarly follow with the raw stream:
5975 5976
 
5976 5977
         ```
5977 5978
         HTTP/1.1 101 UPGRADED
... ...
@@ -5984,9 +6380,14 @@ paths:
5984 5984
 
5985 5985
         ### Stream format
5986 5986
 
5987
-        When the TTY setting is disabled in [`POST /containers/create`](#operation/ContainerCreate), the stream over the hijacked connected is multiplexed to separate out `stdout` and `stderr`. The stream consists of a series of frames, each containing a header and a payload.
5987
+        When the TTY setting is disabled in [`POST /containers/create`](#operation/ContainerCreate),
5988
+        the stream over the hijacked connected is multiplexed to separate out
5989
+        `stdout` and `stderr`. The stream consists of a series of frames, each
5990
+        containing a header and a payload.
5988 5991
 
5989
-        The header contains the information which the stream writes (`stdout` or `stderr`). It also contains the size of the associated frame encoded in the last four bytes (`uint32`).
5992
+        The header contains the information which the stream writes (`stdout` or
5993
+        `stderr`). It also contains the size of the associated frame encoded in
5994
+        the last four bytes (`uint32`).
5990 5995
 
5991 5996
         It is encoded on the first eight bytes like this:
5992 5997
 
... ...
@@ -6000,9 +6401,11 @@ paths:
6000 6000
         - 1: `stdout`
6001 6001
         - 2: `stderr`
6002 6002
 
6003
-        `SIZE1, SIZE2, SIZE3, SIZE4` are the four bytes of the `uint32` size encoded as big endian.
6003
+        `SIZE1, SIZE2, SIZE3, SIZE4` are the four bytes of the `uint32` size
6004
+        encoded as big endian.
6004 6005
 
6005
-        Following the header is the payload, which is the specified number of bytes of `STREAM_TYPE`.
6006
+        Following the header is the payload, which is the specified number of
6007
+        bytes of `STREAM_TYPE`.
6006 6008
 
6007 6009
         The simplest way to implement this protocol is the following:
6008 6010
 
... ...
@@ -6014,7 +6417,10 @@ paths:
6014 6014
 
6015 6015
         ### Stream format when using a TTY
6016 6016
 
6017
-        When the TTY setting is enabled in [`POST /containers/create`](#operation/ContainerCreate), the stream is not multiplexed. The data exchanged over the hijacked connection is simply the raw data from the process PTY and client's `stdin`.
6017
+        When the TTY setting is enabled in [`POST /containers/create`](#operation/ContainerCreate),
6018
+        the stream is not multiplexed. The data exchanged over the hijacked
6019
+        connection is simply the raw data from the process PTY and client's
6020
+        `stdin`.
6018 6021
 
6019 6022
       operationId: "ContainerAttach"
6020 6023
       produces:
... ...
@@ -6047,21 +6453,28 @@ paths:
6047 6047
           type: "string"
6048 6048
         - name: "detachKeys"
6049 6049
           in: "query"
6050
-          description: "Override the key sequence for detaching a container.Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`."
6050
+          description: |
6051
+            Override the key sequence for detaching a container.Format is a single
6052
+            character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`,
6053
+            `@`, `^`, `[`, `,` or `_`.
6051 6054
           type: "string"
6052 6055
         - name: "logs"
6053 6056
           in: "query"
6054 6057
           description: |
6055 6058
             Replay previous logs from the container.
6056 6059
 
6057
-            This is useful for attaching to a container that has started and you want to output everything since the container started.
6060
+            This is useful for attaching to a container that has started and you
6061
+            want to output everything since the container started.
6058 6062
 
6059
-            If `stream` is also enabled, once all the previous output has been returned, it will seamlessly transition into streaming current output.
6063
+            If `stream` is also enabled, once all the previous output has been
6064
+            returned, it will seamlessly transition into streaming current
6065
+            output.
6060 6066
           type: "boolean"
6061 6067
           default: false
6062 6068
         - name: "stream"
6063 6069
           in: "query"
6064
-          description: "Stream attached streams from the time the request was made onwards"
6070
+          description: |
6071
+            Stream attached streams from the time the request was made onwards.
6065 6072
           type: "boolean"
6066 6073
           default: false
6067 6074
         - name: "stdin"
... ...
@@ -6112,7 +6525,10 @@ paths:
6112 6112
           type: "string"
6113 6113
         - name: "detachKeys"
6114 6114
           in: "query"
6115
-          description: "Override the key sequence for detaching a container.Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,`, or `_`."
6115
+          description: |
6116
+            Override the key sequence for detaching a container.Format is a single
6117
+            character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`,
6118
+            `@`, `^`, `[`, `,`, or `_`.
6116 6119
           type: "string"
6117 6120
         - name: "logs"
6118 6121
           in: "query"
... ...
@@ -6185,7 +6601,9 @@ paths:
6185 6185
           type: "string"
6186 6186
         - name: "condition"
6187 6187
           in: "query"
6188
-          description: "Wait until a container state reaches the given condition, either 'not-running' (default), 'next-exit', or 'removed'."
6188
+          description: |
6189
+            Wait until a container state reaches the given condition, either
6190
+            'not-running' (default), 'next-exit', or 'removed'.
6189 6191
           type: "string"
6190 6192
           default: "not-running"
6191 6193
       tags: ["Container"]
... ...
@@ -6213,7 +6631,9 @@ paths:
6213 6213
             $ref: "#/definitions/ErrorResponse"
6214 6214
           examples:
6215 6215
             application/json:
6216
-              message: "You cannot remove a running container: c2ada9df5af8. Stop the container before attempting removal or force remove"
6216
+              message: |
6217
+                You cannot remove a running container: c2ada9df5af8. Stop the
6218
+                container before attempting removal or force remove
6217 6219
         500:
6218 6220
           description: "server error"
6219 6221
           schema:
... ...
@@ -6243,7 +6663,10 @@ paths:
6243 6243
   /containers/{id}/archive:
6244 6244
     head:
6245 6245
       summary: "Get information about files in a container"
6246
-      description: "A response header `X-Docker-Container-Path-Stat` is return containing a base64 - encoded JSON object with some filesystem header information about the path."
6246
+      description: |
6247
+        A response header `X-Docker-Container-Path-Stat` is returned, containing
6248
+        a base64 - encoded JSON object with some filesystem header information
6249
+        about the path.
6247 6250
       operationId: "ContainerArchiveInfo"
6248 6251
       responses:
6249 6252
         200:
... ...
@@ -6251,7 +6674,9 @@ paths:
6251 6251
           headers:
6252 6252
             X-Docker-Container-Path-Stat:
6253 6253
               type: "string"
6254
-              description: "A base64 - encoded JSON object with some filesystem header information about the path"
6254
+              description: |
6255
+                A base64 - encoded JSON object with some filesystem header
6256
+                information about the path
6255 6257
         400:
6256 6258
           description: "Bad parameter"
6257 6259
           schema:
... ...
@@ -6260,7 +6685,10 @@ paths:
6260 6260
               - type: "object"
6261 6261
                 properties:
6262 6262
                   message:
6263
-                    description: "The error message. Either \"must specify path parameter\" (path cannot be empty) or \"not a directory\" (path was asserted to be a directory but exists as a file)."
6263
+                    description: |
6264
+                      The error message. Either "must specify path parameter"
6265
+                      (path cannot be empty) or "not a directory" (path was
6266
+                      asserted to be a directory but exists as a file).
6264 6267
                     type: "string"
6265 6268
                     x-nullable: false
6266 6269
         404:
... ...
@@ -6302,7 +6730,10 @@ paths:
6302 6302
               - type: "object"
6303 6303
                 properties:
6304 6304
                   message:
6305
-                    description: "The error message. Either \"must specify path parameter\" (path cannot be empty) or \"not a directory\" (path was asserted to be a directory but exists as a file)."
6305
+                    description: |
6306
+                      The error message. Either "must specify path parameter"
6307
+                      (path cannot be empty) or "not a directory" (path was
6308
+                      asserted to be a directory but exists as a file).
6306 6309
                     type: "string"
6307 6310
                     x-nullable: false
6308 6311
         404:
... ...
@@ -6368,16 +6799,24 @@ paths:
6368 6368
           type: "string"
6369 6369
         - name: "noOverwriteDirNonDir"
6370 6370
           in: "query"
6371
-          description: "If “1”, “true”, or “True” then it will be an error if unpacking the given content would cause an existing directory to be replaced with a non-directory and vice versa."
6371
+          description: |
6372
+            If `1`, `true`, or `True` then it will be an error if unpacking the
6373
+            given content would cause an existing directory to be replaced with
6374
+            a non-directory and vice versa.
6372 6375
           type: "string"
6373 6376
         - name: "copyUIDGID"
6374 6377
           in: "query"
6375
-          description: "If “1”, “true”, then it will copy UID/GID maps to the dest file or dir"
6378
+          description: |
6379
+            If `1`, `true`, then it will copy UID/GID maps to the dest file or
6380
+            dir
6376 6381
           type: "string"
6377 6382
         - name: "inputStream"
6378 6383
           in: "body"
6379 6384
           required: true
6380
-          description: "The input stream must be a tar archive compressed with one of the following algorithms: identity (no compression), gzip, bzip2, xz."
6385
+          description: |
6386
+            The input stream must be a tar archive compressed with one of the
6387
+            following algorithms: `identity` (no compression), `gzip`, `bzip2`,
6388
+            or `xz`.
6381 6389
           schema:
6382 6390
             type: "string"
6383 6391
             format: "binary"
... ...
@@ -6475,7 +6914,10 @@ paths:
6475 6475
         - name: "filters"
6476 6476
           in: "query"
6477 6477
           description: |
6478
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters:
6478
+            A JSON encoded value of the filters (a `map[string][]string`) to
6479
+            process on the images list.
6480
+
6481
+            Available filters:
6479 6482
 
6480 6483
             - `before`=(`<image-name>[:<tag>]`,  `<image id>` or `<image@digest>`)
6481 6484
             - `dangling=true`
... ...
@@ -6691,7 +7133,11 @@ paths:
6691 6691
           in: "query"
6692 6692
           type: "string"
6693 6693
           description: |
6694
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the list of build cache objects. Available filters:
6694
+            A JSON encoded value of the filters (a `map[string][]string`) to
6695
+            process on the list of build cache objects.
6696
+
6697
+            Available filters:
6698
+
6695 6699
             - `until=<duration>`: duration relative to daemon's time, during which build cache was not used, in Go's duration format (e.g., '24h')
6696 6700
             - `id=<id>`
6697 6701
             - `parent=<id>`
... ...
@@ -6771,7 +7217,11 @@ paths:
6771 6771
           required: false
6772 6772
         - name: "X-Registry-Auth"
6773 6773
           in: "header"
6774
-          description: "A base64url-encoded auth configuration. [See the authentication section for details.](#section/Authentication)"
6774
+          description: |
6775
+            A base64url-encoded auth configuration.
6776
+
6777
+            Refer to the [authentication section](#section/Authentication) for
6778
+            details.
6775 6779
           type: "string"
6776 6780
         - name: "platform"
6777 6781
           in: "query"
... ...
@@ -6970,7 +7420,9 @@ paths:
6970 6970
       description: |
6971 6971
         Push an image to a registry.
6972 6972
 
6973
-        If you wish to push an image on to a private registry, that image must already have a tag which references the registry. For example, `registry.example.com/myimage:latest`.
6973
+        If you wish to push an image on to a private registry, that image must
6974
+        already have a tag which references the registry. For example,
6975
+        `registry.example.com/myimage:latest`.
6974 6976
 
6975 6977
         The push is cancelled if the HTTP connection is closed.
6976 6978
       operationId: "ImagePush"
... ...
@@ -6999,7 +7451,11 @@ paths:
6999 6999
           type: "string"
7000 7000
         - name: "X-Registry-Auth"
7001 7001
           in: "header"
7002
-          description: "A base64url-encoded auth configuration. [See the authentication section for details.](#section/Authentication)"
7002
+          description: |
7003
+            A base64url-encoded auth configuration.
7004
+
7005
+            Refer to the [authentication section](#section/Authentication) for
7006
+            details.
7003 7007
           type: "string"
7004 7008
           required: true
7005 7009
       tags: ["Image"]
... ...
@@ -7203,7 +7659,9 @@ paths:
7203 7203
   /auth:
7204 7204
     post:
7205 7205
       summary: "Check auth configuration"
7206
-      description: "Validate credentials for a registry and, if available, get an identity token for accessing the registry without password."
7206
+      description: |
7207
+        Validate credentials for a registry and, if available, get an identity
7208
+        token for accessing the registry without password.
7207 7209
       operationId: "SystemAuth"
7208 7210
       consumes: ["application/json"]
7209 7211
       produces: ["application/json"]
... ...
@@ -7714,11 +8172,16 @@ paths:
7714 7714
     get:
7715 7715
       summary: "Export several images"
7716 7716
       description: |
7717
-        Get a tarball containing all images and metadata for several image repositories.
7717
+        Get a tarball containing all images and metadata for several image
7718
+        repositories.
7718 7719
 
7719
-        For each value of the `names` parameter: if it is a specific name and tag (e.g. `ubuntu:latest`), then only that image (and its parents) are returned; if it is an image ID, similarly only that image (and its parents) are returned and there would be no names referenced in the 'repositories' file for this image ID.
7720
+        For each value of the `names` parameter: if it is a specific name and
7721
+        tag (e.g. `ubuntu:latest`), then only that image (and its parents) are
7722
+        returned; if it is an image ID, similarly only that image (and its parents)
7723
+        are returned and there would be no names referenced in the 'repositories'
7724
+        file for this image ID.
7720 7725
 
7721
-        For details on the format, see [the export image endpoint](#operation/ImageGet).
7726
+        For details on the format, see the [export image endpoint](#operation/ImageGet).
7722 7727
       operationId: "ImageGetAll"
7723 7728
       produces:
7724 7729
         - "application/x-tar"
... ...
@@ -7746,7 +8209,7 @@ paths:
7746 7746
       description: |
7747 7747
         Load a set of images and tags into a repository.
7748 7748
 
7749
-        For details on the format, see [the export image endpoint](#operation/ImageGet).
7749
+        For details on the format, see the [export image endpoint](#operation/ImageGet).
7750 7750
       operationId: "ImageLoad"
7751 7751
       consumes:
7752 7752
         - "application/x-tar"
... ...
@@ -7819,12 +8282,16 @@ paths:
7819 7819
                 description: "Attach to `stderr` of the exec command."
7820 7820
               DetachKeys:
7821 7821
                 type: "string"
7822
-                description: "Override the key sequence for detaching a container. Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`."
7822
+                description: |
7823
+                  Override the key sequence for detaching a container. Format is
7824
+                  a single character `[a-Z]` or `ctrl-<value>` where `<value>`
7825
+                  is one of: `a-z`, `@`, `^`, `[`, `,` or `_`.
7823 7826
               Tty:
7824 7827
                 type: "boolean"
7825 7828
                 description: "Allocate a pseudo-TTY."
7826 7829
               Env:
7827
-                description: "A list of environment variables in the form `[\"VAR=value\", ...]`."
7830
+                description: |
7831
+                  A list of environment variables in the form `["VAR=value", ...]`.
7828 7832
                 type: "array"
7829 7833
                 items:
7830 7834
                   type: "string"
... ...
@@ -7839,10 +8306,14 @@ paths:
7839 7839
                 default: false
7840 7840
               User:
7841 7841
                 type: "string"
7842
-                description: "The user, and optionally, group to run the exec process inside the container. Format is one of: `user`, `user:group`, `uid`, or `uid:gid`."
7842
+                description: |
7843
+                  The user, and optionally, group to run the exec process inside
7844
+                  the container. Format is one of: `user`, `user:group`, `uid`,
7845
+                  or `uid:gid`.
7843 7846
               WorkingDir:
7844 7847
                 type: "string"
7845
-                description: "The working directory for the exec process inside the container."
7848
+                description: |
7849
+                  The working directory for the exec process inside the container.
7846 7850
             example:
7847 7851
               AttachStdin: false
7848 7852
               AttachStdout: true
... ...
@@ -7864,7 +8335,10 @@ paths:
7864 7864
   /exec/{id}/start:
7865 7865
     post:
7866 7866
       summary: "Start an exec instance"
7867
-      description: "Starts a previously set up exec instance. If detach is true, this endpoint returns immediately after starting the command. Otherwise, it sets up an interactive session with the command."
7867
+      description: |
7868
+        Starts a previously set up exec instance. If detach is true, this endpoint
7869
+        returns immediately after starting the command. Otherwise, it sets up an
7870
+        interactive session with the command.
7868 7871
       operationId: "ExecStart"
7869 7872
       consumes:
7870 7873
         - "application/json"
... ...
@@ -7905,7 +8379,9 @@ paths:
7905 7905
   /exec/{id}/resize:
7906 7906
     post:
7907 7907
       summary: "Resize an exec instance"
7908
-      description: "Resize the TTY session used by an exec instance. This endpoint only works if `tty` was specified as part of creating and starting the exec instance."
7908
+      description: |
7909
+        Resize the TTY session used by an exec instance. This endpoint only works
7910
+        if `tty` was specified as part of creating and starting the exec instance.
7909 7911
       operationId: "ExecResize"
7910 7912
       responses:
7911 7913
         201:
... ...
@@ -8025,7 +8501,8 @@ paths:
8025 8025
               Warnings:
8026 8026
                 type: "array"
8027 8027
                 x-nullable: false
8028
-                description: "Warnings that occurred when fetching the list of volumes"
8028
+                description: |
8029
+                  Warnings that occurred when fetching the list of volumes.
8029 8030
                 items:
8030 8031
                   type: "string"
8031 8032
 
... ...
@@ -8094,7 +8571,8 @@ paths:
8094 8094
             title: "VolumeConfig"
8095 8095
             properties:
8096 8096
               Name:
8097
-                description: "The new volume's name. If not specified, Docker generates a name."
8097
+                description: |
8098
+                  The new volume's name. If not specified, Docker generates a name.
8098 8099
                 type: "string"
8099 8100
                 x-nullable: false
8100 8101
               Driver:
... ...
@@ -8103,7 +8581,9 @@ paths:
8103 8103
                 default: "local"
8104 8104
                 x-nullable: false
8105 8105
               DriverOpts:
8106
-                description: "A mapping of driver options and values. These options are passed directly to the driver and are driver specific."
8106
+                description: |
8107
+                  A mapping of driver options and values. These options are
8108
+                  passed directly to the driver and are driver specific.
8107 8109
                 type: "object"
8108 8110
                 additionalProperties:
8109 8111
                   type: "string"
... ...
@@ -8217,10 +8697,12 @@ paths:
8217 8217
     get:
8218 8218
       summary: "List networks"
8219 8219
       description: |
8220
-        Returns a list of networks. For details on the format, see [the network inspect endpoint](#operation/NetworkInspect).
8220
+        Returns a list of networks. For details on the format, see the
8221
+        [network inspect endpoint](#operation/NetworkInspect).
8221 8222
 
8222
-        Note that it uses a different, smaller representation of a network than inspecting a single network. For example,
8223
-        the list of containers attached to the network is not propagated in API versions 1.28 and up.
8223
+        Note that it uses a different, smaller representation of a network than
8224
+        inspecting a single network. For example, the list of containers attached
8225
+        to the network is not propagated in API versions 1.28 and up.
8224 8226
       operationId: "NetworkList"
8225 8227
       produces:
8226 8228
         - "application/json"
... ...
@@ -8290,7 +8772,10 @@ paths:
8290 8290
         - name: "filters"
8291 8291
           in: "query"
8292 8292
           description: |
8293
-            JSON encoded value of the filters (a `map[string][]string`) to process on the networks list. Available filters:
8293
+            JSON encoded value of the filters (a `map[string][]string`) to process
8294
+            on the networks list.
8295
+
8296
+            Available filters:
8294 8297
 
8295 8298
             - `dangling=<boolean>` When set to `true` (or `1`), returns all
8296 8299
                networks that are not in use by a container. When set to `false`
... ...
@@ -8415,7 +8900,14 @@ paths:
8415 8415
                 description: "The network's name."
8416 8416
                 type: "string"
8417 8417
               CheckDuplicate:
8418
-                description: "Check for networks with duplicate names. Since Network is primarily keyed based on a random ID and not on the name, and network name is strictly a user-friendly alias to the network which is uniquely identified using ID, there is no guaranteed way to check for duplicates. CheckDuplicate is there to provide a best effort checking of any networks which has the same name but it is not guaranteed to catch all name collisions."
8418
+                description: |
8419
+                  Check for networks with duplicate names. Since Network is
8420
+                  primarily keyed based on a random ID and not on the name, and
8421
+                  network name is strictly a user-friendly alias to the network
8422
+                  which is uniquely identified using ID, there is no guaranteed
8423
+                  way to check for duplicates. CheckDuplicate is there to provide
8424
+                  a best effort checking of any networks which has the same name
8425
+                  but it is not guaranteed to catch all name collisions.
8419 8426
                 type: "boolean"
8420 8427
               Driver:
8421 8428
                 description: "Name of the network driver plugin to use."
... ...
@@ -8425,10 +8917,14 @@ paths:
8425 8425
                 description: "Restrict external access to the network."
8426 8426
                 type: "boolean"
8427 8427
               Attachable:
8428
-                description: "Globally scoped network is manually attachable by regular containers from workers in swarm mode."
8428
+                description: |
8429
+                  Globally scoped network is manually attachable by regular
8430
+                  containers from workers in swarm mode.
8429 8431
                 type: "boolean"
8430 8432
               Ingress:
8431
-                description: "Ingress network is the network which provides the routing-mesh in swarm mode."
8433
+                description: |
8434
+                  Ingress network is the network which provides the routing-mesh
8435
+                  in swarm mode.
8432 8436
                 type: "boolean"
8433 8437
               IPAM:
8434 8438
                 description: "Optional custom IP scheme for the network."
... ...
@@ -8557,10 +9053,12 @@ paths:
8557 8557
             properties:
8558 8558
               Container:
8559 8559
                 type: "string"
8560
-                description: "The ID or name of the container to disconnect from the network."
8560
+                description: |
8561
+                  The ID or name of the container to disconnect from the network.
8561 8562
               Force:
8562 8563
                 type: "boolean"
8563
-                description: "Force the container to disconnect from the network."
8564
+                description: |
8565
+                  Force the container to disconnect from the network.
8564 8566
       tags: ["Network"]
8565 8567
   /networks/prune:
8566 8568
     post:
... ...
@@ -8617,7 +9115,10 @@ paths:
8617 8617
           in: "query"
8618 8618
           type: "string"
8619 8619
           description: |
8620
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the plugin list. Available filters:
8620
+            A JSON encoded value of the filters (a `map[string][]string`) to
8621
+            process on the plugin list.
8622
+
8623
+            Available filters:
8621 8624
 
8622 8625
             - `capability=<capability name>`
8623 8626
             - `enable=<true>|<false>`
... ...
@@ -8633,7 +9134,9 @@ paths:
8633 8633
           schema:
8634 8634
             type: "array"
8635 8635
             items:
8636
-              description: "Describes a permission the user has to accept upon installing the plugin."
8636
+              description: |
8637
+                Describes a permission the user has to accept upon installing
8638
+                the plugin.
8637 8639
               type: "object"
8638 8640
               title: "PluginPrivilegeItem"
8639 8641
               properties:
... ...
@@ -8665,7 +9168,9 @@ paths:
8665 8665
       parameters:
8666 8666
         - name: "remote"
8667 8667
           in: "query"
8668
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8668
+          description: |
8669
+            The name of the plugin. The `:latest` tag is optional, and is the
8670
+            default if omitted.
8669 8671
           required: true
8670 8672
           type: "string"
8671 8673
       tags:
... ...
@@ -8676,7 +9181,8 @@ paths:
8676 8676
       summary: "Install a plugin"
8677 8677
       operationId: "PluginPull"
8678 8678
       description: |
8679
-        Pulls and installs a plugin. After the plugin is installed, it can be enabled using the [`POST /plugins/{name}/enable` endpoint](#operation/PostPluginsEnable).
8679
+        Pulls and installs a plugin. After the plugin is installed, it can be
8680
+        enabled using the [`POST /plugins/{name}/enable` endpoint](#operation/PostPluginsEnable).
8680 8681
       produces:
8681 8682
         - "application/json"
8682 8683
       responses:
... ...
@@ -8705,14 +9211,21 @@ paths:
8705 8705
           type: "string"
8706 8706
         - name: "X-Registry-Auth"
8707 8707
           in: "header"
8708
-          description: "A base64url-encoded auth configuration to use when pulling a plugin from a registry. [See the authentication section for details.](#section/Authentication)"
8708
+          description: |
8709
+            A base64url-encoded auth configuration to use when pulling a plugin
8710
+            from a registry.
8711
+
8712
+            Refer to the [authentication section](#section/Authentication) for
8713
+            details.
8709 8714
           type: "string"
8710 8715
         - name: "body"
8711 8716
           in: "body"
8712 8717
           schema:
8713 8718
             type: "array"
8714 8719
             items:
8715
-              description: "Describes a permission accepted by the user upon installing the plugin."
8720
+              description: |
8721
+                Describes a permission accepted by the user upon installing the
8722
+                plugin.
8716 8723
               type: "object"
8717 8724
               properties:
8718 8725
                 Name:
... ...
@@ -8757,7 +9270,9 @@ paths:
8757 8757
       parameters:
8758 8758
         - name: "name"
8759 8759
           in: "path"
8760
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8760
+          description: |
8761
+            The name of the plugin. The `:latest` tag is optional, and is the
8762
+            default if omitted.
8761 8763
           required: true
8762 8764
           type: "string"
8763 8765
       tags: ["Plugin"]
... ...
@@ -8781,12 +9296,16 @@ paths:
8781 8781
       parameters:
8782 8782
         - name: "name"
8783 8783
           in: "path"
8784
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8784
+          description: |
8785
+            The name of the plugin. The `:latest` tag is optional, and is the
8786
+            default if omitted.
8785 8787
           required: true
8786 8788
           type: "string"
8787 8789
         - name: "force"
8788 8790
           in: "query"
8789
-          description: "Disable the plugin before removing. This may result in issues if the plugin is in use by a container."
8791
+          description: |
8792
+            Disable the plugin before removing. This may result in issues if the
8793
+            plugin is in use by a container.
8790 8794
           type: "boolean"
8791 8795
           default: false
8792 8796
       tags: ["Plugin"]
... ...
@@ -8808,7 +9327,9 @@ paths:
8808 8808
       parameters:
8809 8809
         - name: "name"
8810 8810
           in: "path"
8811
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8811
+          description: |
8812
+            The name of the plugin. The `:latest` tag is optional, and is the
8813
+            default if omitted.
8812 8814
           required: true
8813 8815
           type: "string"
8814 8816
         - name: "timeout"
... ...
@@ -8835,7 +9356,9 @@ paths:
8835 8835
       parameters:
8836 8836
         - name: "name"
8837 8837
           in: "path"
8838
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8838
+          description: |
8839
+            The name of the plugin. The `:latest` tag is optional, and is the
8840
+            default if omitted.
8839 8841
           required: true
8840 8842
           type: "string"
8841 8843
       tags: ["Plugin"]
... ...
@@ -8857,7 +9380,9 @@ paths:
8857 8857
       parameters:
8858 8858
         - name: "name"
8859 8859
           in: "path"
8860
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8860
+          description: |
8861
+            The name of the plugin. The `:latest` tag is optional, and is the
8862
+            default if omitted.
8861 8863
           required: true
8862 8864
           type: "string"
8863 8865
         - name: "remote"
... ...
@@ -8870,14 +9395,21 @@ paths:
8870 8870
           type: "string"
8871 8871
         - name: "X-Registry-Auth"
8872 8872
           in: "header"
8873
-          description: "A base64url-encoded auth configuration to use when pulling a plugin from a registry. [See the authentication section for details.](#section/Authentication)"
8873
+          description: |
8874
+            A base64url-encoded auth configuration to use when pulling a plugin
8875
+            from a registry.
8876
+
8877
+            Refer to the [authentication section](#section/Authentication) for
8878
+            details.
8874 8879
           type: "string"
8875 8880
         - name: "body"
8876 8881
           in: "body"
8877 8882
           schema:
8878 8883
             type: "array"
8879 8884
             items:
8880
-              description: "Describes a permission accepted by the user upon installing the plugin."
8885
+              description: |
8886
+                Describes a permission accepted by the user upon installing the
8887
+                plugin.
8881 8888
               type: "object"
8882 8889
               properties:
8883 8890
                 Name:
... ...
@@ -8918,7 +9450,9 @@ paths:
8918 8918
       parameters:
8919 8919
         - name: "name"
8920 8920
           in: "query"
8921
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8921
+          description: |
8922
+            The name of the plugin. The `:latest` tag is optional, and is the
8923
+            default if omitted.
8922 8924
           required: true
8923 8925
           type: "string"
8924 8926
         - name: "tarContext"
... ...
@@ -8937,7 +9471,9 @@ paths:
8937 8937
       parameters:
8938 8938
         - name: "name"
8939 8939
           in: "path"
8940
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8940
+          description: |
8941
+            The name of the plugin. The `:latest` tag is optional, and is the
8942
+            default if omitted.
8941 8943
           required: true
8942 8944
           type: "string"
8943 8945
       responses:
... ...
@@ -8961,7 +9497,9 @@ paths:
8961 8961
       parameters:
8962 8962
         - name: "name"
8963 8963
           in: "path"
8964
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8964
+          description: |
8965
+            The name of the plugin. The `:latest` tag is optional, and is the
8966
+            default if omitted.
8965 8967
           required: true
8966 8968
           type: "string"
8967 8969
         - name: "body"
... ...
@@ -9110,7 +9648,9 @@ paths:
9110 9110
             $ref: "#/definitions/NodeSpec"
9111 9111
         - name: "version"
9112 9112
           in: "query"
9113
-          description: "The version number of the node object being updated. This is required to avoid conflicting writes."
9113
+          description: |
9114
+            The version number of the node object being updated. This is required
9115
+            to avoid conflicting writes.
9114 9116
           type: "integer"
9115 9117
           format: "int64"
9116 9118
           required: true
... ...
@@ -9171,20 +9711,35 @@ paths:
9171 9171
             type: "object"
9172 9172
             properties:
9173 9173
               ListenAddr:
9174
-                description: "Listen address used for inter-manager communication, as well as determining the networking interface used for the VXLAN Tunnel Endpoint (VTEP). This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the default swarm listening port is used."
9174
+                description: |
9175
+                  Listen address used for inter-manager communication, as well
9176
+                  as determining the networking interface used for the VXLAN
9177
+                  Tunnel Endpoint (VTEP). This can either be an address/port
9178
+                  combination in the form `192.168.1.1:4567`, or an interface
9179
+                  followed by a port number, like `eth0:4567`. If the port number
9180
+                  is omitted, the default swarm listening port is used.
9175 9181
                 type: "string"
9176 9182
               AdvertiseAddr:
9177
-                description: "Externally reachable address advertised to other nodes. This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the port number from the listen address is used. If `AdvertiseAddr` is not specified, it will be automatically detected when possible."
9183
+                description: |
9184
+                  Externally reachable address advertised to other nodes. This
9185
+                  can either be an address/port combination in the form
9186
+                  `192.168.1.1:4567`, or an interface followed by a port number,
9187
+                  like `eth0:4567`. If the port number is omitted, the port
9188
+                  number from the listen address is used. If `AdvertiseAddr` is
9189
+                  not specified, it will be automatically detected when possible.
9178 9190
                 type: "string"
9179 9191
               DataPathAddr:
9180 9192
                 description: |
9181
-                  Address or interface to use for data path traffic (format: `<ip|interface>`), for example,  `192.168.1.1`,
9182
-                  or an interface, like `eth0`. If `DataPathAddr` is unspecified, the same address as `AdvertiseAddr`
9183
-                  is used.
9184
-
9185
-                  The `DataPathAddr` specifies the address that global scope network drivers will publish towards other
9186
-                  nodes in order to reach the containers running on this node. Using this parameter it is possible to
9187
-                  separate the container data traffic from the management traffic of the cluster.
9193
+                  Address or interface to use for data path traffic (format:
9194
+                  `<ip|interface>`), for example,  `192.168.1.1`, or an interface,
9195
+                  like `eth0`. If `DataPathAddr` is unspecified, the same address
9196
+                  as `AdvertiseAddr` is used.
9197
+
9198
+                  The `DataPathAddr` specifies the address that global scope
9199
+                  network drivers will publish towards other  nodes in order to
9200
+                  reach the containers running on this node. Using this parameter
9201
+                  it is possible to separate the container data traffic from the
9202
+                  management traffic of the cluster.
9188 9203
                 type: "string"
9189 9204
               DataPathPort:
9190 9205
                 description: |
... ...
@@ -9195,7 +9750,8 @@ paths:
9195 9195
                 format: "uint32"
9196 9196
               DefaultAddrPool:
9197 9197
                 description: |
9198
-                  Default Address Pool specifies default subnet pools for global scope networks.
9198
+                  Default Address Pool specifies default subnet pools for global
9199
+                  scope networks.
9199 9200
                 type: "array"
9200 9201
                 items:
9201 9202
                   type: "string"
... ...
@@ -9205,7 +9761,8 @@ paths:
9205 9205
                 type: "boolean"
9206 9206
               SubnetSize:
9207 9207
                 description: |
9208
-                  SubnetSize specifies the subnet size of the networks created from the default subnet pool
9208
+                  SubnetSize specifies the subnet size of the networks created
9209
+                  from the default subnet pool.
9209 9210
                 type: "integer"
9210 9211
                 format: "uint32"
9211 9212
               Spec:
... ...
@@ -9252,24 +9809,37 @@ paths:
9252 9252
             type: "object"
9253 9253
             properties:
9254 9254
               ListenAddr:
9255
-                description: "Listen address used for inter-manager communication if the node gets promoted to manager, as well as determining the networking interface used for the VXLAN Tunnel Endpoint (VTEP)."
9255
+                description: |
9256
+                  Listen address used for inter-manager communication if the node
9257
+                  gets promoted to manager, as well as determining the networking
9258
+                  interface used for the VXLAN Tunnel Endpoint (VTEP).
9256 9259
                 type: "string"
9257 9260
               AdvertiseAddr:
9258
-                description: "Externally reachable address advertised to other nodes. This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the port number from the listen address is used. If `AdvertiseAddr` is not specified, it will be automatically detected when possible."
9261
+                description: |
9262
+                  Externally reachable address advertised to other nodes. This
9263
+                  can either be an address/port combination in the form
9264
+                  `192.168.1.1:4567`, or an interface followed by a port number,
9265
+                  like `eth0:4567`. If the port number is omitted, the port
9266
+                  number from the listen address is used. If `AdvertiseAddr` is
9267
+                  not specified, it will be automatically detected when possible.
9259 9268
                 type: "string"
9260 9269
               DataPathAddr:
9261 9270
                 description: |
9262
-                  Address or interface to use for data path traffic (format: `<ip|interface>`), for example,  `192.168.1.1`,
9263
-                  or an interface, like `eth0`. If `DataPathAddr` is unspecified, the same address as `AdvertiseAddr`
9264
-                  is used.
9271
+                  Address or interface to use for data path traffic (format:
9272
+                  `<ip|interface>`), for example,  `192.168.1.1`, or an interface,
9273
+                  like `eth0`. If `DataPathAddr` is unspecified, the same addres
9274
+                  as `AdvertiseAddr` is used.
9265 9275
 
9266
-                  The `DataPathAddr` specifies the address that global scope network drivers will publish towards other
9267
-                  nodes in order to reach the containers running on this node. Using this parameter it is possible to
9268
-                  separate the container data traffic from the management traffic of the cluster.
9276
+                  The `DataPathAddr` specifies the address that global scope
9277
+                  network drivers will publish towards other nodes in order to
9278
+                  reach the containers running on this node. Using this parameter
9279
+                  it is possible to separate the container data traffic from the
9280
+                  management traffic of the cluster.
9269 9281
 
9270 9282
                 type: "string"
9271 9283
               RemoteAddrs:
9272
-                description: "Addresses of manager nodes already participating in the swarm."
9284
+                description: |
9285
+                  Addresses of manager nodes already participating in the swarm.
9273 9286
                 type: "array"
9274 9287
                 items:
9275 9288
                   type: "string"
... ...
@@ -9300,7 +9870,9 @@ paths:
9300 9300
             $ref: "#/definitions/ErrorResponse"
9301 9301
       parameters:
9302 9302
         - name: "force"
9303
-          description: "Force leave swarm, even if this is the last manager or that it will break the cluster."
9303
+          description: |
9304
+            Force leave swarm, even if this is the last manager or that it will
9305
+            break the cluster.
9304 9306
           in: "query"
9305 9307
           type: "boolean"
9306 9308
           default: false
... ...
@@ -9332,7 +9904,9 @@ paths:
9332 9332
             $ref: "#/definitions/SwarmSpec"
9333 9333
         - name: "version"
9334 9334
           in: "query"
9335
-          description: "The version number of the swarm object being updated. This is required to avoid conflicting writes."
9335
+          description: |
9336
+            The version number of the swarm object being updated. This is
9337
+            required to avoid conflicting writes.
9336 9338
           type: "integer"
9337 9339
           format: "int64"
9338 9340
           required: true
... ...
@@ -9435,7 +10009,10 @@ paths:
9435 9435
           in: "query"
9436 9436
           type: "string"
9437 9437
           description: |
9438
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the services list. Available filters:
9438
+            A JSON encoded value of the filters (a `map[string][]string`) to
9439
+            process on the services list.
9440
+
9441
+            Available filters:
9439 9442
 
9440 9443
             - `id=<service id>`
9441 9444
             - `label=<service label>`
... ...
@@ -9563,7 +10140,12 @@ paths:
9563 9563
                     foo: "bar"
9564 9564
         - name: "X-Registry-Auth"
9565 9565
           in: "header"
9566
-          description: "A base64url-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)"
9566
+          description: |
9567
+            A base64url-encoded auth configuration for pulling from private
9568
+            registries.
9569
+
9570
+            Refer to the [authentication section](#section/Authentication) for
9571
+            details.
9567 9572
           type: "string"
9568 9573
       tags: ["Service"]
9569 9574
   /services/{id}:
... ...
@@ -9699,10 +10281,12 @@ paths:
9699 9699
 
9700 9700
         - name: "version"
9701 9701
           in: "query"
9702
-          description: "The version number of the service object being updated.
9703
-          This is required to avoid conflicting writes.
9704
-          This version number should be the value as currently set on the service *before* the update.
9705
-          You can find the current version by calling `GET /services/{id}`"
9702
+          description: |
9703
+            The version number of the service object being updated. This is
9704
+            required to avoid conflicting writes.
9705
+            This version number should be the value as currently set on the
9706
+            service *before* the update. You can find the current version by
9707
+            calling `GET /services/{id}`
9706 9708
           required: true
9707 9709
           type: "integer"
9708 9710
         - name: "registryAuthFrom"
... ...
@@ -9722,7 +10306,12 @@ paths:
9722 9722
           type: "string"
9723 9723
         - name: "X-Registry-Auth"
9724 9724
           in: "header"
9725
-          description: "A base64url-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)"
9725
+          description: |
9726
+            A base64url-encoded auth configuration for pulling from private
9727
+            registries.
9728
+
9729
+            Refer to the [authentication section](#section/Authentication) for
9730
+            details.
9726 9731
           type: "string"
9727 9732
 
9728 9733
       tags: ["Service"]
... ...
@@ -9730,9 +10319,11 @@ paths:
9730 9730
     get:
9731 9731
       summary: "Get service logs"
9732 9732
       description: |
9733
-        Get `stdout` and `stderr` logs from a service. See also [`/containers/{id}/logs`](#operation/ContainerLogs).
9733
+        Get `stdout` and `stderr` logs from a service. See also
9734
+        [`/containers/{id}/logs`](#operation/ContainerLogs).
9734 9735
 
9735
-        **Note**: This endpoint works only for services with the `local`, `json-file` or `journald` logging drivers.
9736
+        **Note**: This endpoint works only for services with the `local`,
9737
+        `json-file` or `journald` logging drivers.
9736 9738
       operationId: "ServiceLogs"
9737 9739
       responses:
9738 9740
         200:
... ...
@@ -9793,7 +10384,9 @@ paths:
9793 9793
           default: false
9794 9794
         - name: "tail"
9795 9795
           in: "query"
9796
-          description: "Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines."
9796
+          description: |
9797
+            Only return this number of log lines from the end of the logs.
9798
+            Specify as an integer or `all` to output all log lines.
9797 9799
           type: "string"
9798 9800
           default: "all"
9799 9801
       tags: ["Service"]
... ...
@@ -9934,7 +10527,10 @@ paths:
9934 9934
           in: "query"
9935 9935
           type: "string"
9936 9936
           description: |
9937
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the tasks list. Available filters:
9937
+            A JSON encoded value of the filters (a `map[string][]string`) to
9938
+            process on the tasks list.
9939
+
9940
+            Available filters:
9938 9941
 
9939 9942
             - `desired-state=(running | shutdown | accepted)`
9940 9943
             - `id=<task id>`
... ...
@@ -9977,9 +10573,11 @@ paths:
9977 9977
     get:
9978 9978
       summary: "Get task logs"
9979 9979
       description: |
9980
-        Get `stdout` and `stderr` logs from a task. See also [`/containers/{id}/logs`](#operation/ContainerLogs).
9980
+        Get `stdout` and `stderr` logs from a task.
9981
+        See also [`/containers/{id}/logs`](#operation/ContainerLogs).
9981 9982
 
9982
-        **Note**: This endpoint works only for services with the `local`, `json-file` or `journald` logging drivers.
9983
+        **Note**: This endpoint works only for services with the `local`,
9984
+        `json-file` or `journald` logging drivers.
9983 9985
       operationId: "TaskLogs"
9984 9986
       responses:
9985 9987
         200:
... ...
@@ -10040,7 +10638,9 @@ paths:
10040 10040
           default: false
10041 10041
         - name: "tail"
10042 10042
           in: "query"
10043
-          description: "Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines."
10043
+          description: |
10044
+            Only return this number of log lines from the end of the logs.
10045
+            Specify as an integer or `all` to output all log lines.
10044 10046
           type: "string"
10045 10047
           default: "all"
10046 10048
       tags: ["Task"]
... ...
@@ -10094,7 +10694,10 @@ paths:
10094 10094
           in: "query"
10095 10095
           type: "string"
10096 10096
           description: |
10097
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the secrets list. Available filters:
10097
+            A JSON encoded value of the filters (a `map[string][]string`) to
10098
+            process on the secrets list.
10099
+
10100
+            Available filters:
10098 10101
 
10099 10102
             - `id=<secret id>`
10100 10103
             - `label=<key> or label=<key>=value`
... ...
@@ -10251,10 +10854,15 @@ paths:
10251 10251
           in: "body"
10252 10252
           schema:
10253 10253
             $ref: "#/definitions/SecretSpec"
10254
-          description: "The spec of the secret to update. Currently, only the Labels field can be updated. All other fields must remain unchanged from the [SecretInspect endpoint](#operation/SecretInspect) response values."
10254
+          description: |
10255
+            The spec of the secret to update. Currently, only the Labels field
10256
+            can be updated. All other fields must remain unchanged from the
10257
+            [SecretInspect endpoint](#operation/SecretInspect) response values.
10255 10258
         - name: "version"
10256 10259
           in: "query"
10257
-          description: "The version number of the secret object being updated. This is required to avoid conflicting writes."
10260
+          description: |
10261
+            The version number of the secret object being updated. This is
10262
+            required to avoid conflicting writes.
10258 10263
           type: "integer"
10259 10264
           format: "int64"
10260 10265
           required: true
... ...
@@ -10293,7 +10901,10 @@ paths:
10293 10293
           in: "query"
10294 10294
           type: "string"
10295 10295
           description: |
10296
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the configs list. Available filters:
10296
+            A JSON encoded value of the filters (a `map[string][]string`) to
10297
+            process on the configs list.
10298
+
10299
+            Available filters:
10297 10300
 
10298 10301
             - `id=<config id>`
10299 10302
             - `label=<key> or label=<key>=value`
... ...
@@ -10437,10 +11048,15 @@ paths:
10437 10437
           in: "body"
10438 10438
           schema:
10439 10439
             $ref: "#/definitions/ConfigSpec"
10440
-          description: "The spec of the config to update. Currently, only the Labels field can be updated. All other fields must remain unchanged from the [ConfigInspect endpoint](#operation/ConfigInspect) response values."
10440
+          description: |
10441
+            The spec of the config to update. Currently, only the Labels field
10442
+            can be updated. All other fields must remain unchanged from the
10443
+            [ConfigInspect endpoint](#operation/ConfigInspect) response values.
10441 10444
         - name: "version"
10442 10445
           in: "query"
10443
-          description: "The version number of the config object being updated. This is required to avoid conflicting writes."
10446
+          description: |
10447
+            The version number of the config object being updated. This is
10448
+            required to avoid conflicting writes.
10444 10449
           type: "integer"
10445 10450
           format: "int64"
10446 10451
           required: true
... ...
@@ -10448,7 +11064,8 @@ paths:
10448 10448
   /distribution/{name}/json:
10449 10449
     get:
10450 10450
       summary: "Get image information from the registry"
10451
-      description: "Return image digest and platform information by contacting the registry."
10451
+      description: |
10452
+        Return image digest and platform information by contacting the registry.
10452 10453
       operationId: "DistributionInspect"
10453 10454
       produces:
10454 10455
         - "application/json"
... ...
@@ -10463,7 +11080,8 @@ paths:
10463 10463
             properties:
10464 10464
               Descriptor:
10465 10465
                 type: "object"
10466
-                description: "A descriptor struct containing digest, media type, and size"
10466
+                description: |
10467
+                  A descriptor struct containing digest, media type, and size.
10467 10468
                 properties:
10468 10469
                   MediaType:
10469 10470
                     type: "string"
... ...
@@ -10478,7 +11096,8 @@ paths:
10478 10478
                       type: "string"
10479 10479
               Platforms:
10480 10480
                 type: "array"
10481
-                description: "An array containing all platforms supported by the image"
10481
+                description: |
10482
+                  An array containing all platforms supported by the image.
10482 10483
                 items:
10483 10484
                   type: "object"
10484 10485
                   properties:
... ...
@@ -10537,11 +11156,13 @@ paths:
10537 10537
     post:
10538 10538
       summary: "Initialize interactive session"
10539 10539
       description: |
10540
-        Start a new interactive session with a server. Session allows server to call back to the client for advanced capabilities.
10540
+        Start a new interactive session with a server. Session allows server to
10541
+        call back to the client for advanced capabilities.
10541 10542
 
10542 10543
         ### Hijacking
10543 10544
 
10544
-        This endpoint hijacks the HTTP connection to HTTP2 transport that allows the client to expose gPRC services on that connection.
10545
+        This endpoint hijacks the HTTP connection to HTTP2 transport that allows
10546
+        the client to expose gPRC services on that connection.
10545 10547
 
10546 10548
         For example, the client sends this request to upgrade the connection:
10547 10549
 
... ...
@@ -10551,7 +11172,8 @@ paths:
10551 10551
         Connection: Upgrade
10552 10552
         ```
10553 10553
 
10554
-        The Docker daemon will respond with a `101 UPGRADED` response follow with the raw stream:
10554
+        The Docker daemon responds with a `101 UPGRADED` response follow with
10555
+        the raw stream:
10555 10556
 
10556 10557
         ```
10557 10558
         HTTP/1.1 101 UPGRADED
... ...
@@ -11,7 +11,9 @@ package container // import "github.com/docker/docker/api/types/container"
11 11
 // swagger:model ContainerTopOKBody
12 12
 type ContainerTopOKBody struct {
13 13
 
14
-	// Each process running in the container, where each is process is an array of values corresponding to the titles
14
+	// Each process running in the container, where each is process
15
+	// is an array of values corresponding to the titles.
16
+	//
15 17
 	// Required: true
16 18
 	Processes [][]string `json:"Processes"`
17 19
 
... ...
@@ -27,10 +27,13 @@ type Volume struct {
27 27
 	Name string `json:"Name"`
28 28
 
29 29
 	// The driver specific options used when creating the volume.
30
+	//
30 31
 	// Required: true
31 32
 	Options map[string]string `json:"Options"`
32 33
 
33
-	// The level at which the volume exists. Either `global` for cluster-wide, or `local` for machine level.
34
+	// The level at which the volume exists. Either `global` for cluster-wide,
35
+	// or `local` for machine level.
36
+	//
34 37
 	// Required: true
35 38
 	Scope string `json:"Scope"`
36 39
 
... ...
@@ -15,7 +15,9 @@ type VolumeCreateBody struct {
15 15
 	// Required: true
16 16
 	Driver string `json:"Driver"`
17 17
 
18
-	// A mapping of driver options and values. These options are passed directly to the driver and are driver specific.
18
+	// A mapping of driver options and values. These options are
19
+	// passed directly to the driver and are driver specific.
20
+	//
19 21
 	// Required: true
20 22
 	DriverOpts map[string]string `json:"DriverOpts"`
21 23
 
... ...
@@ -24,6 +26,7 @@ type VolumeCreateBody struct {
24 24
 	Labels map[string]string `json:"Labels"`
25 25
 
26 26
 	// The new volume's name. If not specified, Docker generates a name.
27
+	//
27 28
 	// Required: true
28 29
 	Name string `json:"Name"`
29 30
 }
... ...
@@ -17,7 +17,8 @@ type VolumeListOKBody struct {
17 17
 	// Required: true
18 18
 	Volumes []*types.Volume `json:"Volumes"`
19 19
 
20
-	// Warnings that occurred when fetching the list of volumes
20
+	// Warnings that occurred when fetching the list of volumes.
21
+	//
21 22
 	// Required: true
22 23
 	Warnings []string `json:"Warnings"`
23 24
 }
... ...
@@ -26,13 +26,19 @@ info:
26 26
   x-logo:
27 27
     url: "https://docs.docker.com/images/logo-docker-main.png"
28 28
   description: |
29
-    The Engine API is an HTTP API served by Docker Engine. It is the API the Docker client uses to communicate with the Engine, so everything the Docker client can do can be done with the API.
29
+    The Engine API is an HTTP API served by Docker Engine. It is the API the
30
+    Docker client uses to communicate with the Engine, so everything the Docker
31
+    client can do can be done with the API.
30 32
 
31
-    Most of the client's commands map directly to API endpoints (e.g. `docker ps` is `GET /containers/json`). The notable exception is running containers, which consists of several API calls.
33
+    Most of the client's commands map directly to API endpoints (e.g. `docker ps`
34
+    is `GET /containers/json`). The notable exception is running containers,
35
+    which consists of several API calls.
32 36
 
33 37
     # Errors
34 38
 
35
-    The API uses standard HTTP status codes to indicate the success or failure of the API call. The body of the response will be JSON in the following format:
39
+    The API uses standard HTTP status codes to indicate the success or failure
40
+    of the API call. The body of the response will be JSON in the following
41
+    format:
36 42
 
37 43
     ```
38 44
     {
... ...
@@ -65,7 +71,11 @@ info:
65 65
 
66 66
     # Authentication
67 67
 
68
-    Authentication for registries is handled client side. The client has to send authentication details to various endpoints that need to communicate with registries, such as `POST /images/(name)/push`. These are sent as `X-Registry-Auth` header as a Base64 encoded (JSON) string with the following structure:
68
+    Authentication for registries is handled client side. The client has to send
69
+    authentication details to various endpoints that need to communicate with
70
+    registries, such as `POST /images/(name)/push`. These are sent as
71
+    `X-Registry-Auth` header as a [base64url encoded](https://tools.ietf.org/html/rfc4648#section-5)
72
+    (JSON) string with the following structure:
69 73
 
70 74
     ```
71 75
     {
... ...
@@ -76,9 +86,11 @@ info:
76 76
     }
77 77
     ```
78 78
 
79
-    The `serveraddress` is a domain/IP without a protocol. Throughout this structure, double quotes are required.
79
+    The `serveraddress` is a domain/IP without a protocol. Throughout this
80
+    structure, double quotes are required.
80 81
 
81
-    If you have already got an identity token from the [`/auth` endpoint](#operation/SystemAuth), you can just pass this instead of credentials:
82
+    If you have already got an identity token from the [`/auth` endpoint](#operation/SystemAuth),
83
+    you can just pass this instead of credentials:
82 84
 
83 85
     ```
84 86
     {
... ...
@@ -104,7 +116,9 @@ tags:
104 104
   - name: "Network"
105 105
     x-displayName: "Networks"
106 106
     description: |
107
-      Networks are user-defined networks that containers can be attached to. See the [networking documentation](https://docs.docker.com/engine/userguide/networking/) for more information.
107
+      Networks are user-defined networks that containers can be attached to.
108
+      See the [networking documentation](https://docs.docker.com/network/)
109
+      for more information.
108 110
   - name: "Volume"
109 111
     x-displayName: "Volumes"
110 112
     description: |
... ...
@@ -112,34 +126,46 @@ tags:
112 112
   - name: "Exec"
113 113
     x-displayName: "Exec"
114 114
     description: |
115
-      Run new commands inside running containers. See the [command-line reference](https://docs.docker.com/engine/reference/commandline/exec/) for more information.
115
+      Run new commands inside running containers. Refer to the
116
+      [command-line reference](https://docs.docker.com/engine/reference/commandline/exec/)
117
+      for more information.
118
+
119
+      To exec a command in a container, you first need to create an exec instance,
120
+      then start it. These two API endpoints are wrapped up in a single command-line
121
+      command, `docker exec`.
116 122
 
117
-      To exec a command in a container, you first need to create an exec instance, then start it. These two API endpoints are wrapped up in a single command-line command, `docker exec`.
118 123
   # Swarm things
119 124
   - name: "Swarm"
120 125
     x-displayName: "Swarm"
121 126
     description: |
122
-      Engines can be clustered together in a swarm. See [the swarm mode documentation](https://docs.docker.com/engine/swarm/) for more information.
127
+      Engines can be clustered together in a swarm. Refer to the
128
+      [swarm mode documentation](https://docs.docker.com/engine/swarm/)
129
+      for more information.
123 130
   - name: "Node"
124 131
     x-displayName: "Nodes"
125 132
     description: |
126
-      Nodes are instances of the Engine participating in a swarm. Swarm mode must be enabled for these endpoints to work.
133
+      Nodes are instances of the Engine participating in a swarm. Swarm mode
134
+      must be enabled for these endpoints to work.
127 135
   - name: "Service"
128 136
     x-displayName: "Services"
129 137
     description: |
130
-      Services are the definitions of tasks to run on a swarm. Swarm mode must be enabled for these endpoints to work.
138
+      Services are the definitions of tasks to run on a swarm. Swarm mode must
139
+      be enabled for these endpoints to work.
131 140
   - name: "Task"
132 141
     x-displayName: "Tasks"
133 142
     description: |
134
-      A task is a container running on a swarm. It is the atomic scheduling unit of swarm. Swarm mode must be enabled for these endpoints to work.
143
+      A task is a container running on a swarm. It is the atomic scheduling unit
144
+      of swarm. Swarm mode must be enabled for these endpoints to work.
135 145
   - name: "Secret"
136 146
     x-displayName: "Secrets"
137 147
     description: |
138
-      Secrets are sensitive data that can be used by services. Swarm mode must be enabled for these endpoints to work.
148
+      Secrets are sensitive data that can be used by services. Swarm mode must
149
+      be enabled for these endpoints to work.
139 150
   - name: "Config"
140 151
     x-displayName: "Configs"
141 152
     description: |
142
-      Configs are application configurations that can be used by services. Swarm mode must be enabled for these endpoints to work.
153
+      Configs are application configurations that can be used by services. Swarm
154
+      mode must be enabled for these endpoints to work.
143 155
   # System things
144 156
   - name: "Plugin"
145 157
     x-displayName: "Plugins"
... ...
@@ -302,9 +328,11 @@ definitions:
302 302
 
303 303
   RestartPolicy:
304 304
     description: |
305
-      The behavior to apply when the container exits. The default is not to restart.
305
+      The behavior to apply when the container exits. The default is not to
306
+      restart.
306 307
 
307
-      An ever increasing delay (double the previous delay, starting at 100ms) is added before each restart to prevent flooding the server.
308
+      An ever increasing delay (double the previous delay, starting at 100ms) is
309
+      added before each restart to prevent flooding the server.
308 310
     type: "object"
309 311
     properties:
310 312
       Name:
... ...
@@ -321,7 +349,8 @@ definitions:
321 321
           - "on-failure"
322 322
       MaximumRetryCount:
323 323
         type: "integer"
324
-        description: "If `on-failure` is used, the number of times to retry before giving up"
324
+        description: |
325
+          If `on-failure` is used, the number of times to retry before giving up.
325 326
 
326 327
   Resources:
327 328
     description: "A container's resources (cgroups config, ulimits, etc)"
... ...
@@ -329,7 +358,9 @@ definitions:
329 329
     properties:
330 330
       # Applicable to all platforms
331 331
       CpuShares:
332
-        description: "An integer value representing this container's relative CPU weight versus other containers."
332
+        description: |
333
+          An integer value representing this container's relative CPU weight
334
+          versus other containers.
333 335
         type: "integer"
334 336
       Memory:
335 337
         description: "Memory limit in bytes."
... ...
@@ -338,7 +369,11 @@ definitions:
338 338
         default: 0
339 339
       # Applicable to UNIX platforms
340 340
       CgroupParent:
341
-        description: "Path to `cgroups` under which the container's `cgroup` is created. If the path is not absolute, the path is considered to be relative to the `cgroups` path of the init process. Cgroups are created if they do not already exist."
341
+        description: |
342
+          Path to `cgroups` under which the container's `cgroup` is created. If
343
+          the path is not absolute, the path is considered to be relative to the
344
+          `cgroups` path of the init process. Cgroups are created if they do not
345
+          already exist.
342 346
         type: "string"
343 347
       BlkioWeight:
344 348
         description: "Block IO weight (relative weight)."
... ...
@@ -347,7 +382,11 @@ definitions:
347 347
         maximum: 1000
348 348
       BlkioWeightDevice:
349 349
         description: |
350
-          Block IO weight (relative device weight) in the form `[{"Path": "device_path", "Weight": weight}]`.
350
+          Block IO weight (relative device weight) in the form:
351
+
352
+          ```
353
+          [{"Path": "device_path", "Weight": weight}]
354
+          ```
351 355
         type: "array"
352 356
         items:
353 357
           type: "object"
... ...
@@ -359,25 +398,41 @@ definitions:
359 359
               minimum: 0
360 360
       BlkioDeviceReadBps:
361 361
         description: |
362
-          Limit read rate (bytes per second) from a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
362
+          Limit read rate (bytes per second) from a device, in the form:
363
+
364
+          ```
365
+          [{"Path": "device_path", "Rate": rate}]
366
+          ```
363 367
         type: "array"
364 368
         items:
365 369
           $ref: "#/definitions/ThrottleDevice"
366 370
       BlkioDeviceWriteBps:
367 371
         description: |
368
-          Limit write rate (bytes per second) to a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
372
+          Limit write rate (bytes per second) to a device, in the form:
373
+
374
+          ```
375
+          [{"Path": "device_path", "Rate": rate}]
376
+          ```
369 377
         type: "array"
370 378
         items:
371 379
           $ref: "#/definitions/ThrottleDevice"
372 380
       BlkioDeviceReadIOps:
373 381
         description: |
374
-          Limit read rate (IO per second) from a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
382
+          Limit read rate (IO per second) from a device, in the form:
383
+
384
+          ```
385
+          [{"Path": "device_path", "Rate": rate}]
386
+          ```
375 387
         type: "array"
376 388
         items:
377 389
           $ref: "#/definitions/ThrottleDevice"
378 390
       BlkioDeviceWriteIOps:
379 391
         description: |
380
-          Limit write rate (IO per second) to a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
392
+          Limit write rate (IO per second) to a device, in the form:
393
+
394
+          ```
395
+          [{"Path": "device_path", "Rate": rate}]
396
+          ```
381 397
         type: "array"
382 398
         items:
383 399
           $ref: "#/definitions/ThrottleDevice"
... ...
@@ -386,23 +441,31 @@ definitions:
386 386
         type: "integer"
387 387
         format: "int64"
388 388
       CpuQuota:
389
-        description: "Microseconds of CPU time that the container can get in a CPU period."
389
+        description: |
390
+          Microseconds of CPU time that the container can get in a CPU period.
390 391
         type: "integer"
391 392
         format: "int64"
392 393
       CpuRealtimePeriod:
393
-        description: "The length of a CPU real-time period in microseconds. Set to 0 to allocate no time allocated to real-time tasks."
394
+        description: |
395
+          The length of a CPU real-time period in microseconds. Set to 0 to
396
+          allocate no time allocated to real-time tasks.
394 397
         type: "integer"
395 398
         format: "int64"
396 399
       CpuRealtimeRuntime:
397
-        description: "The length of a CPU real-time runtime in microseconds. Set to 0 to allocate no time allocated to real-time tasks."
400
+        description: |
401
+          The length of a CPU real-time runtime in microseconds. Set to 0 to
402
+          allocate no time allocated to real-time tasks.
398 403
         type: "integer"
399 404
         format: "int64"
400 405
       CpusetCpus:
401
-        description: "CPUs in which to allow execution (e.g., `0-3`, `0,1`)"
406
+        description: |
407
+          CPUs in which to allow execution (e.g., `0-3`, `0,1`).
402 408
         type: "string"
403 409
         example: "0-3"
404 410
       CpusetMems:
405
-        description: "Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only effective on NUMA systems."
411
+        description: |
412
+          Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only
413
+          effective on NUMA systems.
406 414
         type: "string"
407 415
       Devices:
408 416
         description: "A list of devices to add to the container."
... ...
@@ -423,16 +486,21 @@ definitions:
423 423
         description: "Kernel memory limit in bytes."
424 424
         type: "integer"
425 425
         format: "int64"
426
+        example: 209715200
426 427
       MemoryReservation:
427 428
         description: "Memory soft limit in bytes."
428 429
         type: "integer"
429 430
         format: "int64"
430 431
       MemorySwap:
431
-        description: "Total memory limit (memory + swap). Set as `-1` to enable unlimited swap."
432
+        description: |
433
+          Total memory limit (memory + swap). Set as `-1` to enable unlimited
434
+          swap.
432 435
         type: "integer"
433 436
         format: "int64"
434 437
       MemorySwappiness:
435
-        description: "Tune a container's memory swappiness behavior. Accepts an integer between 0 and 100."
438
+        description: |
439
+          Tune a container's memory swappiness behavior. Accepts an integer
440
+          between 0 and 100.
436 441
         type: "integer"
437 442
         format: "int64"
438 443
         minimum: 0
... ...
@@ -445,16 +513,25 @@ definitions:
445 445
         description: "Disable OOM Killer for the container."
446 446
         type: "boolean"
447 447
       Init:
448
-        description: "Run an init inside the container that forwards signals and reaps processes. This field is omitted if empty, and the default (as configured on the daemon) is used."
448
+        description: |
449
+          Run an init inside the container that forwards signals and reaps
450
+          processes. This field is omitted if empty, and the default (as
451
+          configured on the daemon) is used.
449 452
         type: "boolean"
450 453
         x-nullable: true
451 454
       PidsLimit:
452
-        description: "Tune a container's pids limit. Set -1 for unlimited."
455
+        description: |
456
+          Tune a container's PIDs limit. Set `0` or `-1` for unlimited, or `null`
457
+          to not change.
453 458
         type: "integer"
454 459
         format: "int64"
455 460
       Ulimits:
456 461
         description: |
457
-          A list of resource limits to set in the container. For example: `{"Name": "nofile", "Soft": 1024, "Hard": 2048}`"
462
+          A list of resource limits to set in the container. For example:
463
+
464
+          ```
465
+          {"Name": "nofile", "Soft": 1024, "Hard": 2048}
466
+          ```
458 467
         type: "array"
459 468
         items:
460 469
           type: "object"
... ...
@@ -473,14 +550,18 @@ definitions:
473 473
         description: |
474 474
           The number of usable CPUs (Windows only).
475 475
 
476
-          On Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last.
476
+          On Windows Server containers, the processor resource controls are
477
+          mutually exclusive. The order of precedence is `CPUCount` first, then
478
+          `CPUShares`, and `CPUPercent` last.
477 479
         type: "integer"
478 480
         format: "int64"
479 481
       CpuPercent:
480 482
         description: |
481 483
           The usable percentage of the available CPUs (Windows only).
482 484
 
483
-          On Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last.
485
+          On Windows Server containers, the processor resource controls are
486
+          mutually exclusive. The order of precedence is `CPUCount` first, then
487
+          `CPUShares`, and `CPUPercent` last.
484 488
         type: "integer"
485 489
         format: "int64"
486 490
       IOMaximumIOps:
... ...
@@ -488,12 +569,16 @@ definitions:
488 488
         type: "integer"
489 489
         format: "int64"
490 490
       IOMaximumBandwidth:
491
-        description: "Maximum IO in bytes per second for the container system drive (Windows only)"
491
+        description: |
492
+          Maximum IO in bytes per second for the container system drive
493
+          (Windows only).
492 494
         type: "integer"
493 495
         format: "int64"
494 496
 
495 497
   ResourceObject:
496
-    description: "An object describing the resources which can be advertised by a node and requested by a task"
498
+    description: |
499
+      An object describing the resources which can be advertised by a node and
500
+      requested by a task.
497 501
     type: "object"
498 502
     properties:
499 503
       NanoCPUs:
... ...
@@ -508,7 +593,9 @@ definitions:
508 508
         $ref: "#/definitions/GenericResources"
509 509
 
510 510
   GenericResources:
511
-    description: "User-defined resources can be either Integer resources (e.g, `SSD=3`) or String resources (e.g, `GPU=UUID1`)"
511
+    description: |
512
+      User-defined resources can be either Integer resources (e.g, `SSD=3`) or
513
+      String resources (e.g, `GPU=UUID1`).
512 514
     type: "array"
513 515
     items:
514 516
       type: "object"
... ...
@@ -555,17 +642,91 @@ definitions:
555 555
         items:
556 556
           type: "string"
557 557
       Interval:
558
-        description: "The time to wait between checks in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means inherit."
558
+        description: |
559
+          The time to wait between checks in nanoseconds. It should be 0 or at
560
+          least 1000000 (1 ms). 0 means inherit.
559 561
         type: "integer"
560 562
       Timeout:
561
-        description: "The time to wait before considering the check to have hung. It should be 0 or at least 1000000 (1 ms). 0 means inherit."
563
+        description: |
564
+          The time to wait before considering the check to have hung. It should
565
+          be 0 or at least 1000000 (1 ms). 0 means inherit.
562 566
         type: "integer"
563 567
       Retries:
564
-        description: "The number of consecutive failures needed to consider a container as unhealthy. 0 means inherit."
568
+        description: |
569
+          The number of consecutive failures needed to consider a container as
570
+          unhealthy. 0 means inherit.
565 571
         type: "integer"
566 572
       StartPeriod:
567
-        description: "Start period for the container to initialize before starting health-retries countdown in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means inherit."
573
+        description: |
574
+          Start period for the container to initialize before starting
575
+          health-retries countdown in nanoseconds. It should be 0 or at least
576
+          1000000 (1 ms). 0 means inherit.
577
+        type: "integer"
578
+
579
+  Health:
580
+    description: |
581
+      Health stores information about the container's healthcheck results.
582
+    type: "object"
583
+    properties:
584
+      Status:
585
+        description: |
586
+          Status is one of `none`, `starting`, `healthy` or `unhealthy`
587
+
588
+          - "none"      Indicates there is no healthcheck
589
+          - "starting"  Starting indicates that the container is not yet ready
590
+          - "healthy"   Healthy indicates that the container is running correctly
591
+          - "unhealthy" Unhealthy indicates that the container has a problem
592
+        type: "string"
593
+        enum:
594
+          - "none"
595
+          - "starting"
596
+          - "healthy"
597
+          - "unhealthy"
598
+        example: "healthy"
599
+      FailingStreak:
600
+        description: "FailingStreak is the number of consecutive failures"
601
+        type: "integer"
602
+        example: 0
603
+      Log:
604
+        type: "array"
605
+        description: |
606
+          Log contains the last few results (oldest first)
607
+        items:
608
+          x-nullable: true
609
+          $ref: "#/definitions/HealthcheckResult"
610
+
611
+  HealthcheckResult:
612
+    description: |
613
+      HealthcheckResult stores information about a single run of a healthcheck probe
614
+    type: "object"
615
+    properties:
616
+      Start:
617
+        description: |
618
+          Date and time at which this check started in
619
+          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
620
+        type: "string"
621
+        format: "date-time"
622
+        example: "2020-01-04T10:44:24.496525531Z"
623
+      End:
624
+        description: |
625
+          Date and time at which this check ended in
626
+          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
627
+        type: "string"
628
+        format: "dateTime"
629
+        example: "2020-01-04T10:45:21.364524523Z"
630
+      ExitCode:
631
+        description: |
632
+          ExitCode meanings:
633
+
634
+          - `0` healthy
635
+          - `1` unhealthy
636
+          - `2` reserved (considered unhealthy)
637
+          - other values: error running probe
568 638
         type: "integer"
639
+        example: 0
640
+      Output:
641
+        description: "Output from last check"
642
+        type: "string"
569 643
 
570 644
   HostConfig:
571 645
     description: "Container configuration that depends on the host we are running on"
... ...
@@ -577,12 +738,44 @@ definitions:
577 577
           Binds:
578 578
             type: "array"
579 579
             description: |
580
-              A list of volume bindings for this container. Each volume binding is a string in one of these forms:
581
-
582
-              - `host-src:container-dest` to bind-mount a host path into the container. Both `host-src`, and `container-dest` must be an _absolute_ path.
583
-              - `host-src:container-dest:ro` to make the bind mount read-only inside the container. Both `host-src`, and `container-dest` must be an _absolute_ path.
584
-              - `volume-name:container-dest` to bind-mount a volume managed by a volume driver into the container. `container-dest` must be an _absolute_ path.
585
-              - `volume-name:container-dest:ro` to mount the volume read-only inside the container.  `container-dest` must be an _absolute_ path.
580
+              A list of volume bindings for this container. Each volume binding
581
+              is a string in one of these forms:
582
+
583
+              - `host-src:container-dest[:options]` to bind-mount a host path
584
+                into the container. Both `host-src`, and `container-dest` must
585
+                be an _absolute_ path.
586
+              - `volume-name:container-dest[:options]` to bind-mount a volume
587
+                managed by a volume driver into the container. `container-dest`
588
+                must be an _absolute_ path.
589
+
590
+              `options` is an optional, comma-delimited list of:
591
+
592
+              - `nocopy` disables automatic copying of data from the container
593
+                path to the volume. The `nocopy` flag only applies to named volumes.
594
+              - `[ro|rw]` mounts a volume read-only or read-write, respectively.
595
+                If omitted or set to `rw`, volumes are mounted read-write.
596
+              - `[z|Z]` applies SELinux labels to allow or deny multiple containers
597
+                to read and write to the same volume.
598
+                  - `z`: a _shared_ content label is applied to the content. This
599
+                    label indicates that multiple containers can share the volume
600
+                    content, for both reading and writing.
601
+                  - `Z`: a _private unshared_ label is applied to the content.
602
+                    This label indicates that only the current container can use
603
+                    a private volume. Labeling systems such as SELinux require
604
+                    proper labels to be placed on volume content that is mounted
605
+                    into a container. Without a label, the security system can
606
+                    prevent a container's processes from using the content. By
607
+                    default, the labels set by the host operating system are not
608
+                    modified.
609
+              - `[[r]shared|[r]slave|[r]private]` specifies mount
610
+                [propagation behavior](https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt).
611
+                This only applies to bind-mounted volumes, not internal volumes
612
+                or named volumes. Mount propagation requires the source mount
613
+                point (the location where the source directory is mounted in the
614
+                host operating system) to have the correct propagation properties.
615
+                For shared volumes, the source mount point must be set to `shared`.
616
+                For slave volumes, the mount must be set to either `shared` or
617
+                `slave`.
586 618
             items:
587 619
               type: "string"
588 620
           ContainerIDFile:
... ...
@@ -610,25 +803,33 @@ definitions:
610 610
                   type: "string"
611 611
           NetworkMode:
612 612
             type: "string"
613
-            description: "Network mode to use for this container. Supported standard values are: `bridge`, `host`, `none`, and `container:<name|id>`. Any other value is taken
614
-              as a custom network's name to which this container should connect to."
613
+            description: |
614
+              Network mode to use for this container. Supported standard values
615
+              are: `bridge`, `host`, `none`, and `container:<name|id>`. Any
616
+              other value is taken as a custom network's name to which this
617
+              container should connect to.
615 618
           PortBindings:
616 619
             $ref: "#/definitions/PortMap"
617 620
           RestartPolicy:
618 621
             $ref: "#/definitions/RestartPolicy"
619 622
           AutoRemove:
620 623
             type: "boolean"
621
-            description: "Automatically remove the container when the container's process exits. This has no effect if `RestartPolicy` is set."
624
+            description: |
625
+              Automatically remove the container when the container's process
626
+              exits. This has no effect if `RestartPolicy` is set.
622 627
           VolumeDriver:
623 628
             type: "string"
624 629
             description: "Driver that this container uses to mount volumes."
625 630
           VolumesFrom:
626 631
             type: "array"
627
-            description: "A list of volumes to inherit from another container, specified in the form `<container name>[:<ro|rw>]`."
632
+            description: |
633
+              A list of volumes to inherit from another container, specified in
634
+              the form `<container name>[:<ro|rw>]`.
628 635
             items:
629 636
               type: "string"
630 637
           Mounts:
631
-            description: "Specification for mounts to be added to the container."
638
+            description: |
639
+              Specification for mounts to be added to the container.
632 640
             type: "array"
633 641
             items:
634 642
               $ref: "#/definitions/Mount"
... ...
@@ -636,12 +837,16 @@ definitions:
636 636
           # Applicable to UNIX platforms
637 637
           CapAdd:
638 638
             type: "array"
639
-            description: "A list of kernel capabilities to add to the container."
639
+            description: |
640
+              A list of kernel capabilities to add to the container. Conflicts
641
+              with option 'Capabilities'.
640 642
             items:
641 643
               type: "string"
642 644
           CapDrop:
643 645
             type: "array"
644
-            description: "A list of kernel capabilities to drop from the container."
646
+            description: |
647
+              A list of kernel capabilities to drop from the container. Conflicts
648
+              with option 'Capabilities'.
645 649
             items:
646 650
               type: "string"
647 651
           Dns:
... ...
@@ -662,43 +867,49 @@ definitions:
662 662
           ExtraHosts:
663 663
             type: "array"
664 664
             description: |
665
-              A list of hostnames/IP mappings to add to the container's `/etc/hosts` file. Specified in the form `["hostname:IP"]`.
665
+              A list of hostnames/IP mappings to add to the container's `/etc/hosts`
666
+              file. Specified in the form `["hostname:IP"]`.
666 667
             items:
667 668
               type: "string"
668 669
           GroupAdd:
669 670
             type: "array"
670
-            description: "A list of additional groups that the container process will run as."
671
+            description: |
672
+              A list of additional groups that the container process will run as.
671 673
             items:
672 674
               type: "string"
673 675
           IpcMode:
674 676
             type: "string"
675 677
             description: |
676
-                    IPC sharing mode for the container. Possible values are:
678
+              IPC sharing mode for the container. Possible values are:
677 679
 
678
-                    - `"none"`: own private IPC namespace, with /dev/shm not mounted
679
-                    - `"private"`: own private IPC namespace
680
-                    - `"shareable"`: own private IPC namespace, with a possibility to share it with other containers
681
-                    - `"container:<name|id>"`: join another (shareable) container's IPC namespace
682
-                    - `"host"`: use the host system's IPC namespace
680
+              - `"none"`: own private IPC namespace, with /dev/shm not mounted
681
+              - `"private"`: own private IPC namespace
682
+              - `"shareable"`: own private IPC namespace, with a possibility to share it with other containers
683
+              - `"container:<name|id>"`: join another (shareable) container's IPC namespace
684
+              - `"host"`: use the host system's IPC namespace
683 685
 
684
-                    If not specified, daemon default is used, which can either be `"private"`
685
-                    or `"shareable"`, depending on daemon version and configuration.
686
+              If not specified, daemon default is used, which can either be `"private"`
687
+              or `"shareable"`, depending on daemon version and configuration.
686 688
           Cgroup:
687 689
             type: "string"
688 690
             description: "Cgroup to use for the container."
689 691
           Links:
690 692
             type: "array"
691
-            description: "A list of links for the container in the form `container_name:alias`."
693
+            description: |
694
+              A list of links for the container in the form `container_name:alias`.
692 695
             items:
693 696
               type: "string"
694 697
           OomScoreAdj:
695 698
             type: "integer"
696
-            description: "An integer value containing the score given to the container in order to tune OOM killer preferences."
699
+            description: |
700
+              An integer value containing the score given to the container in
701
+              order to tune OOM killer preferences.
697 702
             example: 500
698 703
           PidMode:
699 704
             type: "string"
700 705
             description: |
701
-              Set the PID (Process) Namespace mode for the container. It can be either:
706
+              Set the PID (Process) Namespace mode for the container. It can be
707
+              either:
702 708
 
703 709
               - `"container:<name|id>"`: joins another container's PID namespace
704 710
               - `"host"`: use the host's PID namespace inside the container
... ...
@@ -711,11 +922,13 @@ definitions:
711 711
               Allocates an ephemeral host port for all of a container's
712 712
               exposed ports.
713 713
 
714
-              Ports are de-allocated when the container stops and allocated when the container starts.
715
-              The allocated port might be changed when restarting the container.
714
+              Ports are de-allocated when the container stops and allocated when
715
+              the container starts. The allocated port might be changed when
716
+              restarting the container.
716 717
 
717
-              The port is selected from the ephemeral port range that depends on the kernel.
718
-              For example, on Linux the range is defined by `/proc/sys/net/ipv4/ip_local_port_range`.
718
+              The port is selected from the ephemeral port range that depends on
719
+              the kernel. For example, on Linux the range is defined by
720
+              `/proc/sys/net/ipv4/ip_local_port_range`.
719 721
           ReadonlyRootfs:
720 722
             type: "boolean"
721 723
             description: "Mount the container's root filesystem as read only."
... ...
@@ -734,7 +947,12 @@ definitions:
734 734
           Tmpfs:
735 735
             type: "object"
736 736
             description: |
737
-              A map of container directories which should be replaced by tmpfs mounts, and their corresponding mount options. For example: `{ "/run": "rw,noexec,nosuid,size=65536k" }`.
737
+              A map of container directories which should be replaced by tmpfs
738
+              mounts, and their corresponding mount options. For example:
739
+
740
+              ```
741
+              { "/run": "rw,noexec,nosuid,size=65536k" }
742
+              ```
738 743
             additionalProperties:
739 744
               type: "string"
740 745
           UTSMode:
... ...
@@ -742,15 +960,23 @@ definitions:
742 742
             description: "UTS namespace to use for the container."
743 743
           UsernsMode:
744 744
             type: "string"
745
-            description: "Sets the usernamespace mode for the container when usernamespace remapping option is enabled."
745
+            description: |
746
+              Sets the usernamespace mode for the container when usernamespace
747
+              remapping option is enabled.
746 748
           ShmSize:
747 749
             type: "integer"
748
-            description: "Size of `/dev/shm` in bytes. If omitted, the system uses 64MB."
750
+            description: |
751
+              Size of `/dev/shm` in bytes. If omitted, the system uses 64MB.
749 752
             minimum: 0
750 753
           Sysctls:
751 754
             type: "object"
752 755
             description: |
753
-              A list of kernel parameters (sysctls) to set in the container. For example: `{"net.ipv4.ip_forward": "1"}`
756
+              A list of kernel parameters (sysctls) to set in the container.
757
+              For example:
758
+
759
+              ```
760
+              {"net.ipv4.ip_forward": "1"}
761
+              ```
754 762
             additionalProperties:
755 763
               type: "string"
756 764
           Runtime:
... ...
@@ -759,7 +985,8 @@ definitions:
759 759
           # Applicable to Windows
760 760
           ConsoleSize:
761 761
             type: "array"
762
-            description: "Initial console size, as an `[height, width]` array. (Windows only)"
762
+            description: |
763
+              Initial console size, as an `[height, width]` array. (Windows only)
763 764
             minItems: 2
764 765
             maxItems: 2
765 766
             items:
... ...
@@ -767,19 +994,24 @@ definitions:
767 767
               minimum: 0
768 768
           Isolation:
769 769
             type: "string"
770
-            description: "Isolation technology of the container. (Windows only)"
770
+            description: |
771
+              Isolation technology of the container. (Windows only)
771 772
             enum:
772 773
               - "default"
773 774
               - "process"
774 775
               - "hyperv"
775 776
           MaskedPaths:
776 777
             type: "array"
777
-            description: "The list of paths to be masked inside the container (this overrides the default set of paths)"
778
+            description: |
779
+              The list of paths to be masked inside the container (this overrides
780
+              the default set of paths).
778 781
             items:
779 782
               type: "string"
780 783
           ReadonlyPaths:
781 784
             type: "array"
782
-            description: "The list of paths to be set as read-only inside the container (this overrides the default set of paths)"
785
+            description: |
786
+              The list of paths to be set as read-only inside the container
787
+              (this overrides the default set of paths).
783 788
             items:
784 789
               type: "string"
785 790
 
... ...
@@ -820,7 +1052,8 @@ definitions:
820 820
             - {}
821 821
           default: {}
822 822
       Tty:
823
-        description: "Attach standard streams to a TTY, including `stdin` if it is not closed."
823
+        description: |
824
+          Attach standard streams to a TTY, including `stdin` if it is not closed.
824 825
         type: "boolean"
825 826
         default: false
826 827
       OpenStdin:
... ...
@@ -833,12 +1066,15 @@ definitions:
833 833
         default: false
834 834
       Env:
835 835
         description: |
836
-          A list of environment variables to set inside the container in the form `["VAR=value", ...]`. A variable without `=` is removed from the environment, rather than to have an empty value.
836
+          A list of environment variables to set inside the container in the
837
+          form `["VAR=value", ...]`. A variable without `=` is removed from the
838
+          environment, rather than to have an empty value.
837 839
         type: "array"
838 840
         items:
839 841
           type: "string"
840 842
       Cmd:
841
-        description: "Command to run specified as a string or an array of strings."
843
+        description: |
844
+          Command to run specified as a string or an array of strings.
842 845
         type: "array"
843 846
         items:
844 847
           type: "string"
... ...
@@ -848,10 +1084,13 @@ definitions:
848 848
         description: "Command is already escaped (Windows only)"
849 849
         type: "boolean"
850 850
       Image:
851
-        description: "The name of the image to use when creating the container"
851
+        description: |
852
+          The name of the image to use when creating the container/
852 853
         type: "string"
853 854
       Volumes:
854
-        description: "An object mapping mount point paths inside the container to empty objects."
855
+        description: |
856
+          An object mapping mount point paths inside the container to empty
857
+          objects.
855 858
         type: "object"
856 859
         additionalProperties:
857 860
           type: "object"
... ...
@@ -865,7 +1104,9 @@ definitions:
865 865
         description: |
866 866
           The entry point for the container as a string or an array of strings.
867 867
 
868
-          If the array consists of exactly one empty string (`[""]`) then the entry point is reset to system default (i.e., the entry point used by docker when there is no `ENTRYPOINT` instruction in the `Dockerfile`).
868
+          If the array consists of exactly one empty string (`[""]`) then the
869
+          entry point is reset to system default (i.e., the entry point used by
870
+          docker when there is no `ENTRYPOINT` instruction in the `Dockerfile`).
869 871
         type: "array"
870 872
         items:
871 873
           type: "string"
... ...
@@ -876,7 +1117,8 @@ definitions:
876 876
         description: "MAC address of the container."
877 877
         type: "string"
878 878
       OnBuild:
879
-        description: "`ONBUILD` metadata that were defined in the image's `Dockerfile`."
879
+        description: |
880
+          `ONBUILD` metadata that were defined in the image's `Dockerfile`.
880 881
         type: "array"
881 882
         items:
882 883
           type: "string"
... ...
@@ -886,7 +1128,8 @@ definitions:
886 886
         additionalProperties:
887 887
           type: "string"
888 888
       StopSignal:
889
-        description: "Signal to stop a container as a string or unsigned integer."
889
+        description: |
890
+          Signal to stop a container as a string or unsigned integer.
890 891
         type: "string"
891 892
         default: "SIGTERM"
892 893
       StopTimeout:
... ...
@@ -894,11 +1137,48 @@ definitions:
894 894
         type: "integer"
895 895
         default: 10
896 896
       Shell:
897
-        description: "Shell for when `RUN`, `CMD`, and `ENTRYPOINT` uses a shell."
897
+        description: |
898
+          Shell for when `RUN`, `CMD`, and `ENTRYPOINT` uses a shell.
898 899
         type: "array"
899 900
         items:
900 901
           type: "string"
901 902
 
903
+  NetworkingConfig:
904
+    description: |
905
+      NetworkingConfig represents the container's networking configuration for
906
+      each of its interfaces.
907
+      It is used for the networking configs specified in the `docker create`
908
+      and `docker network connect` commands.
909
+    type: "object"
910
+    properties:
911
+      EndpointsConfig:
912
+        description: |
913
+          A mapping of network name to endpoint configuration for that network.
914
+        type: "object"
915
+        additionalProperties:
916
+          $ref: "#/definitions/EndpointSettings"
917
+    example:
918
+      # putting an example here, instead of using the example values from
919
+      # /definitions/EndpointSettings, because containers/create currently
920
+      # does not support attaching to multiple networks, so the example request
921
+      # would be confusing if it showed that multiple networks can be contained
922
+      # in the EndpointsConfig.
923
+      # TODO remove once we support multiple networks on container create (see https://github.com/moby/moby/blob/07e6b843594e061f82baa5fa23c2ff7d536c2a05/daemon/create.go#L323)
924
+      EndpointsConfig:
925
+        isolated_nw:
926
+          IPAMConfig:
927
+            IPv4Address: "172.20.30.33"
928
+            IPv6Address: "2001:db8:abcd::3033"
929
+            LinkLocalIPs:
930
+              - "169.254.34.68"
931
+              - "fe80::3468"
932
+          Links:
933
+            - "container_1"
934
+            - "container_2"
935
+          Aliases:
936
+            - "server_x"
937
+            - "server_y"
938
+
902 939
   NetworkSettings:
903 940
     description: "NetworkSettings exposes the network settings in the API"
904 941
     type: "object"
... ...
@@ -1341,13 +1621,16 @@ definitions:
1341 1341
           type: "string"
1342 1342
       Scope:
1343 1343
         type: "string"
1344
-        description: "The level at which the volume exists. Either `global` for cluster-wide, or `local` for machine level."
1344
+        description: |
1345
+          The level at which the volume exists. Either `global` for cluster-wide,
1346
+          or `local` for machine level.
1345 1347
         default: "local"
1346 1348
         x-nullable: false
1347 1349
         enum: ["local", "global"]
1348 1350
       Options:
1349 1351
         type: "object"
1350
-        description: "The driver specific options used when creating the volume."
1352
+        description: |
1353
+          The driver specific options used when creating the volume.
1351 1354
         additionalProperties:
1352 1355
           type: "string"
1353 1356
       UsageData:
... ...
@@ -1465,7 +1748,12 @@ definitions:
1465 1465
         type: "string"
1466 1466
         default: "default"
1467 1467
       Config:
1468
-        description: "List of IPAM configuration options, specified as a map: `{\"Subnet\": <CIDR>, \"IPRange\": <CIDR>, \"Gateway\": <IP address>, \"AuxAddress\": <device_name:IP address>}`"
1468
+        description: |
1469
+          List of IPAM configuration options, specified as a map:
1470
+
1471
+          ```
1472
+          {"Subnet": <CIDR>, "IPRange": <CIDR>, "Gateway": <IP address>, "AuxAddress": <device_name:IP address>}
1473
+          ```
1469 1474
         type: "array"
1470 1475
         items:
1471 1476
           type: "object"
... ...
@@ -1811,7 +2099,9 @@ definitions:
1811 1811
         x-nullable: false
1812 1812
         example: "tiborvass/sample-volume-plugin"
1813 1813
       Enabled:
1814
-        description: "True if the plugin is running. False if the plugin is not running, only installed."
1814
+        description:
1815
+          True if the plugin is running. False if the plugin is not running,
1816
+          only installed.
1815 1817
         type: "boolean"
1816 1818
         x-nullable: false
1817 1819
         example: true
... ...
@@ -2013,13 +2303,16 @@ definitions:
2013 2013
 
2014 2014
   ObjectVersion:
2015 2015
     description: |
2016
-      The version number of the object such as node, service, etc. This is needed to avoid conflicting writes.
2017
-      The client must send the version number along with the modified specification when updating these objects.
2018
-      This approach ensures safe concurrency and determinism in that the change on the object
2019
-      may not be applied if the version number has changed from the last read. In other words,
2020
-      if two update requests specify the same base version, only one of the requests can succeed.
2021
-      As a result, two separate update requests that happen at the same time will not
2022
-      unintentionally overwrite each other.
2016
+      The version number of the object such as node, service, etc. This is needed
2017
+      to avoid conflicting writes. The client must send the version number along
2018
+      with the modified specification when updating these objects.
2019
+
2020
+      This approach ensures safe concurrency and determinism in that the change
2021
+      on the object may not be applied if the version number has changed from the
2022
+      last read. In other words, if two update requests specify the same base
2023
+      version, only one of the requests can succeed. As a result, two separate
2024
+      update requests that happen at the same time will not unintentionally
2025
+      overwrite each other.
2023 2026
     type: "object"
2024 2027
     properties:
2025 2028
       Index:
... ...
@@ -2188,17 +2481,23 @@ definitions:
2188 2188
             Name: "vieux/sshfs:latest"
2189 2189
 
2190 2190
   TLSInfo:
2191
-    description: "Information about the issuer of leaf TLS certificates and the trusted root CA certificate"
2191
+    description: |
2192
+      Information about the issuer of leaf TLS certificates and the trusted root
2193
+      CA certificate.
2192 2194
     type: "object"
2193 2195
     properties:
2194 2196
       TrustRoot:
2195
-        description: "The root CA certificate(s) that are used to validate leaf TLS certificates"
2197
+        description: |
2198
+          The root CA certificate(s) that are used to validate leaf TLS
2199
+          certificates.
2196 2200
         type: "string"
2197 2201
       CertIssuerSubject:
2198
-        description: "The base64-url-safe-encoded raw subject bytes of the issuer"
2202
+        description:
2203
+          The base64-url-safe-encoded raw subject bytes of the issuer.
2199 2204
         type: "string"
2200 2205
       CertIssuerPublicKey:
2201
-        description: "The base64-url-safe-encoded raw public key bytes of the issuer"
2206
+        description: |
2207
+          The base64-url-safe-encoded raw public key bytes of the issuer.
2202 2208
         type: "string"
2203 2209
     example:
2204 2210
       TrustRoot: |
... ...
@@ -2294,7 +2593,9 @@ definitions:
2294 2294
         x-nullable: true
2295 2295
         properties:
2296 2296
           TaskHistoryRetentionLimit:
2297
-            description: "The number of historic tasks to keep per instance or node. If negative, never remove completed or failed tasks."
2297
+            description: |
2298
+              The number of historic tasks to keep per instance or node. If
2299
+              negative, never remove completed or failed tasks.
2298 2300
             type: "integer"
2299 2301
             format: "int64"
2300 2302
             example: 10
... ...
@@ -2308,26 +2609,34 @@ definitions:
2308 2308
             format: "uint64"
2309 2309
             example: 10000
2310 2310
           KeepOldSnapshots:
2311
-            description: "The number of snapshots to keep beyond the current snapshot."
2311
+            description: |
2312
+              The number of snapshots to keep beyond the current snapshot.
2312 2313
             type: "integer"
2313 2314
             format: "uint64"
2314 2315
           LogEntriesForSlowFollowers:
2315
-            description: "The number of log entries to keep around to sync up slow followers after a snapshot is created."
2316
+            description: |
2317
+              The number of log entries to keep around to sync up slow followers
2318
+              after a snapshot is created.
2316 2319
             type: "integer"
2317 2320
             format: "uint64"
2318 2321
             example: 500
2319 2322
           ElectionTick:
2320 2323
             description: |
2321
-              The number of ticks that a follower will wait for a message from the leader before becoming a candidate and starting an election. `ElectionTick` must be greater than `HeartbeatTick`.
2324
+              The number of ticks that a follower will wait for a message from
2325
+              the leader before becoming a candidate and starting an election.
2326
+              `ElectionTick` must be greater than `HeartbeatTick`.
2322 2327
 
2323
-              A tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.
2328
+              A tick currently defaults to one second, so these translate
2329
+              directly to seconds currently, but this is NOT guaranteed.
2324 2330
             type: "integer"
2325 2331
             example: 3
2326 2332
           HeartbeatTick:
2327 2333
             description: |
2328
-              The number of ticks between heartbeats. Every HeartbeatTick ticks, the leader will send a heartbeat to the followers.
2334
+              The number of ticks between heartbeats. Every HeartbeatTick ticks,
2335
+              the leader will send a heartbeat to the followers.
2329 2336
 
2330
-              A tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.
2337
+              A tick currently defaults to one second, so these translate
2338
+              directly to seconds currently, but this is NOT guaranteed.
2331 2339
             type: "integer"
2332 2340
             example: 1
2333 2341
       Dispatcher:
... ...
@@ -2336,7 +2645,8 @@ definitions:
2336 2336
         x-nullable: true
2337 2337
         properties:
2338 2338
           HeartbeatPeriod:
2339
-            description: "The delay for an agent to send a heartbeat to the dispatcher."
2339
+            description: |
2340
+              The delay for an agent to send a heartbeat to the dispatcher.
2340 2341
             type: "integer"
2341 2342
             format: "int64"
2342 2343
             example: 5000000000
... ...
@@ -2351,36 +2661,53 @@ definitions:
2351 2351
             format: "int64"
2352 2352
             example: 7776000000000000
2353 2353
           ExternalCAs:
2354
-            description: "Configuration for forwarding signing requests to an external certificate authority."
2354
+            description: |
2355
+              Configuration for forwarding signing requests to an external
2356
+              certificate authority.
2355 2357
             type: "array"
2356 2358
             items:
2357 2359
               type: "object"
2358 2360
               properties:
2359 2361
                 Protocol:
2360
-                  description: "Protocol for communication with the external CA (currently only `cfssl` is supported)."
2362
+                  description: |
2363
+                    Protocol for communication with the external CA (currently
2364
+                    only `cfssl` is supported).
2361 2365
                   type: "string"
2362 2366
                   enum:
2363 2367
                     - "cfssl"
2364 2368
                   default: "cfssl"
2365 2369
                 URL:
2366
-                  description: "URL where certificate signing requests should be sent."
2370
+                  description: |
2371
+                    URL where certificate signing requests should be sent.
2367 2372
                   type: "string"
2368 2373
                 Options:
2369
-                  description: "An object with key/value pairs that are interpreted as protocol-specific options for the external CA driver."
2374
+                  description: |
2375
+                    An object with key/value pairs that are interpreted as
2376
+                    protocol-specific options for the external CA driver.
2370 2377
                   type: "object"
2371 2378
                   additionalProperties:
2372 2379
                     type: "string"
2373 2380
                 CACert:
2374
-                  description: "The root CA certificate (in PEM format) this external CA uses to issue TLS certificates (assumed to be to the current swarm root CA certificate if not provided)."
2381
+                  description: |
2382
+                    The root CA certificate (in PEM format) this external CA uses
2383
+                    to issue TLS certificates (assumed to be to the current swarm
2384
+                    root CA certificate if not provided).
2375 2385
                   type: "string"
2376 2386
           SigningCACert:
2377
-            description: "The desired signing CA certificate for all swarm node TLS leaf certificates, in PEM format."
2387
+            description: |
2388
+              The desired signing CA certificate for all swarm node TLS leaf
2389
+              certificates, in PEM format.
2378 2390
             type: "string"
2379 2391
           SigningCAKey:
2380
-            description: "The desired signing CA key for all swarm node TLS leaf certificates, in PEM format."
2392
+            description: |
2393
+              The desired signing CA key for all swarm node TLS leaf certificates,
2394
+              in PEM format.
2381 2395
             type: "string"
2382 2396
           ForceRotate:
2383
-            description: "An integer whose purpose is to force swarm to generate a new signing CA certificate and key, if none have been specified in `SigningCACert` and `SigningCAKey`"
2397
+            description: |
2398
+              An integer whose purpose is to force swarm to generate a new
2399
+              signing CA certificate and key, if none have been specified in
2400
+              `SigningCACert` and `SigningCAKey`
2384 2401
             format: "uint64"
2385 2402
             type: "integer"
2386 2403
       EncryptionConfig:
... ...
@@ -2388,7 +2715,9 @@ definitions:
2388 2388
         type: "object"
2389 2389
         properties:
2390 2390
           AutoLockManagers:
2391
-            description: "If set, generate a key and use it to lock data stored on the managers."
2391
+            description: |
2392
+              If set, generate a key and use it to lock data stored on the
2393
+              managers.
2392 2394
             type: "boolean"
2393 2395
             example: false
2394 2396
       TaskDefaults:
... ...
@@ -2454,12 +2783,14 @@ definitions:
2454 2454
       TLSInfo:
2455 2455
         $ref: "#/definitions/TLSInfo"
2456 2456
       RootRotationInProgress:
2457
-        description: "Whether there is currently a root CA rotation in progress for the swarm"
2457
+        description: |
2458
+          Whether there is currently a root CA rotation in progress for the swarm
2458 2459
         type: "boolean"
2459 2460
         example: false
2460 2461
       DefaultAddrPool:
2461 2462
         description: |
2462
-          Default Address Pool specifies default subnet pools for global scope networks.
2463
+          Default Address Pool specifies default subnet pools for global scope
2464
+          networks.
2463 2465
         type: "array"
2464 2466
         items:
2465 2467
           type: "string"
... ...
@@ -2467,7 +2798,8 @@ definitions:
2467 2467
           example: ["10.10.0.0/16", "20.20.0.0/16"]
2468 2468
       SubnetSize:
2469 2469
         description: |
2470
-          SubnetSize specifies the subnet size of the networks created from the default subnet pool
2470
+          SubnetSize specifies the subnet size of the networks created from the
2471
+          default subnet pool.
2471 2472
         type: "integer"
2472 2473
         format: "uint32"
2473 2474
         maximum: 29
... ...
@@ -2527,7 +2859,9 @@ definitions:
2527 2527
           PluginPrivilege:
2528 2528
             type: "array"
2529 2529
             items:
2530
-              description: "Describes a permission accepted by the user upon installing the plugin."
2530
+              description: |
2531
+                Describes a permission accepted by the user upon installing the
2532
+                plugin.
2531 2533
               type: "object"
2532 2534
               properties:
2533 2535
                 Name:
... ...
@@ -2569,10 +2903,13 @@ definitions:
2569 2569
             items:
2570 2570
               type: "string"
2571 2571
           Hostname:
2572
-            description: "The hostname to use for the container, as a valid RFC 1123 hostname."
2572
+            description: |
2573
+              The hostname to use for the container, as a valid
2574
+              [RFC 1123](https://tools.ietf.org/html/rfc1123) hostname.
2573 2575
             type: "string"
2574 2576
           Env:
2575
-            description: "A list of environment variables in the form `VAR=value`."
2577
+            description: |
2578
+              A list of environment variables in the form `VAR=value`.
2576 2579
             type: "array"
2577 2580
             items:
2578 2581
               type: "string"
... ...
@@ -2584,7 +2921,8 @@ definitions:
2584 2584
             type: "string"
2585 2585
           Groups:
2586 2586
             type: "array"
2587
-            description: "A list of additional groups that the container process will run as."
2587
+            description: |
2588
+              A list of additional groups that the container process will run as.
2588 2589
             items:
2589 2590
               type: "string"
2590 2591
           Privileges:
... ...
@@ -2597,28 +2935,33 @@ definitions:
2597 2597
                 properties:
2598 2598
                   File:
2599 2599
                     type: "string"
2600
+                    example: "spec.json"
2600 2601
                     description: |
2601
-                      Load credential spec from this file. The file is read by the daemon, and must be present in the
2602
-                      `CredentialSpecs` subdirectory in the docker data directory, which defaults to
2603
-                      `C:\ProgramData\Docker\` on Windows.
2602
+                      Load credential spec from this file. The file is read by
2603
+                      the daemon, and must be present in the `CredentialSpecs`
2604
+                      subdirectory in the docker data directory, which defaults
2605
+                      to `C:\ProgramData\Docker\` on Windows.
2604 2606
 
2605
-                      For example, specifying `spec.json` loads `C:\ProgramData\Docker\CredentialSpecs\spec.json`.
2607
+                      For example, specifying `spec.json` loads
2608
+                      `C:\ProgramData\Docker\CredentialSpecs\spec.json`.
2606 2609
 
2607 2610
                       <p><br /></p>
2608 2611
 
2609
-                      > **Note**: `CredentialSpec.File` and `CredentialSpec.Registry` are mutually exclusive.
2612
+                      > **Note**: `CredentialSpec.File` and `CredentialSpec.Registry`
2613
+                      > are mutually exclusive.
2610 2614
                   Registry:
2611 2615
                     type: "string"
2612 2616
                     description: |
2613
-                      Load credential spec from this value in the Windows registry. The specified registry value must be
2614
-                      located in:
2617
+                      Load credential spec from this value in the Windows
2618
+                      registry. The specified registry value must be located in:
2615 2619
 
2616 2620
                       `HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Containers\CredentialSpecs`
2617 2621
 
2618 2622
                       <p><br /></p>
2619 2623
 
2620 2624
 
2621
-                      > **Note**: `CredentialSpec.File` and `CredentialSpec.Registry` are mutually exclusive.
2625
+                      > **Note**: `CredentialSpec.File` and `CredentialSpec.Registry`
2626
+                      > are mutually exclusive.
2622 2627
               SELinuxContext:
2623 2628
                 type: "object"
2624 2629
                 description: "SELinux labels of the container"
... ...
@@ -2648,7 +2991,9 @@ definitions:
2648 2648
             description: "Mount the container's root filesystem as read only."
2649 2649
             type: "boolean"
2650 2650
           Mounts:
2651
-            description: "Specification for mounts to be added to containers created as part of the service."
2651
+            description: |
2652
+              Specification for mounts to be added to containers created as part
2653
+              of the service.
2652 2654
             type: "array"
2653 2655
             items:
2654 2656
               $ref: "#/definitions/Mount"
... ...
@@ -2656,7 +3001,9 @@ definitions:
2656 2656
             description: "Signal to stop the container."
2657 2657
             type: "string"
2658 2658
           StopGracePeriod:
2659
-            description: "Amount of time to wait for the container to terminate before forcefully killing it."
2659
+            description: |
2660
+              Amount of time to wait for the container to terminate before
2661
+              forcefully killing it.
2660 2662
             type: "integer"
2661 2663
             format: "int64"
2662 2664
           HealthCheck:
... ...
@@ -2673,7 +3020,9 @@ definitions:
2673 2673
             items:
2674 2674
               type: "string"
2675 2675
           DNSConfig:
2676
-            description: "Specification for DNS related configurations in resolver configuration file (`resolv.conf`)."
2676
+            description: |
2677
+              Specification for DNS related configurations in resolver configuration
2678
+              file (`resolv.conf`).
2677 2679
             type: "object"
2678 2680
             properties:
2679 2681
               Nameservers:
... ...
@@ -2687,22 +3036,28 @@ definitions:
2687 2687
                 items:
2688 2688
                   type: "string"
2689 2689
               Options:
2690
-                description: "A list of internal resolver variables to be modified (e.g., `debug`, `ndots:3`, etc.)."
2690
+                description: |
2691
+                  A list of internal resolver variables to be modified (e.g.,
2692
+                  `debug`, `ndots:3`, etc.).
2691 2693
                 type: "array"
2692 2694
                 items:
2693 2695
                   type: "string"
2694 2696
           Secrets:
2695
-            description: "Secrets contains references to zero or more secrets that will be exposed to the service."
2697
+            description: |
2698
+              Secrets contains references to zero or more secrets that will be
2699
+              exposed to the service.
2696 2700
             type: "array"
2697 2701
             items:
2698 2702
               type: "object"
2699 2703
               properties:
2700 2704
                 File:
2701
-                  description: "File represents a specific target that is backed by a file."
2705
+                  description: |
2706
+                    File represents a specific target that is backed by a file.
2702 2707
                   type: "object"
2703 2708
                   properties:
2704 2709
                     Name:
2705
-                      description: "Name represents the final filename in the filesystem."
2710
+                      description: |
2711
+                        Name represents the final filename in the filesystem.
2706 2712
                       type: "string"
2707 2713
                     UID:
2708 2714
                       description: "UID represents the file UID."
... ...
@@ -2715,25 +3070,32 @@ definitions:
2715 2715
                       type: "integer"
2716 2716
                       format: "uint32"
2717 2717
                 SecretID:
2718
-                  description: "SecretID represents the ID of the specific secret that we're referencing."
2718
+                  description: |
2719
+                    SecretID represents the ID of the specific secret that we're
2720
+                    referencing.
2719 2721
                   type: "string"
2720 2722
                 SecretName:
2721 2723
                   description: |
2722
-                    SecretName is the name of the secret that this references, but this is just provided for
2723
-                    lookup/display purposes. The secret in the reference will be identified by its ID.
2724
+                    SecretName is the name of the secret that this references,
2725
+                    but this is just provided for lookup/display purposes. The
2726
+                    secret in the reference will be identified by its ID.
2724 2727
                   type: "string"
2725 2728
           Configs:
2726
-            description: "Configs contains references to zero or more configs that will be exposed to the service."
2729
+            description: |
2730
+              Configs contains references to zero or more configs that will be
2731
+              exposed to the service.
2727 2732
             type: "array"
2728 2733
             items:
2729 2734
               type: "object"
2730 2735
               properties:
2731 2736
                 File:
2732
-                  description: "File represents a specific target that is backed by a file."
2737
+                  description: |
2738
+                    File represents a specific target that is backed by a file.
2733 2739
                   type: "object"
2734 2740
                   properties:
2735 2741
                     Name:
2736
-                      description: "Name represents the final filename in the filesystem."
2742
+                      description: |
2743
+                        Name represents the final filename in the filesystem.
2737 2744
                       type: "string"
2738 2745
                     UID:
2739 2746
                       description: "UID represents the file UID."
... ...
@@ -2746,22 +3108,30 @@ definitions:
2746 2746
                       type: "integer"
2747 2747
                       format: "uint32"
2748 2748
                 ConfigID:
2749
-                  description: "ConfigID represents the ID of the specific config that we're referencing."
2749
+                  description: |
2750
+                    ConfigID represents the ID of the specific config that we're
2751
+                    referencing.
2750 2752
                   type: "string"
2751 2753
                 ConfigName:
2752 2754
                   description: |
2753
-                    ConfigName is the name of the config that this references, but this is just provided for
2754
-                    lookup/display purposes. The config in the reference will be identified by its ID.
2755
+                    ConfigName is the name of the config that this references,
2756
+                    but this is just provided for lookup/display purposes. The
2757
+                    config in the reference will be identified by its ID.
2755 2758
                   type: "string"
2756 2759
           Isolation:
2757 2760
             type: "string"
2758
-            description: "Isolation technology of the containers running the service. (Windows only)"
2761
+            description: |
2762
+              Isolation technology of the containers running the service.
2763
+              (Windows only)
2759 2764
             enum:
2760 2765
               - "default"
2761 2766
               - "process"
2762 2767
               - "hyperv"
2763 2768
           Init:
2764
-            description: "Run an init inside the container that forwards signals and reaps processes. This field is omitted if empty, and the default (as configured on the daemon) is used."
2769
+            description: |
2770
+              Run an init inside the container that forwards signals and reaps
2771
+              processes. This field is omitted if empty, and the default (as
2772
+              configured on the daemon) is used.
2765 2773
             type: "boolean"
2766 2774
             x-nullable: true
2767 2775
       NetworkAttachmentSpec:
... ...
@@ -2781,7 +3151,9 @@ definitions:
2781 2781
             description: "ID of the container represented by this task"
2782 2782
             type: "string"
2783 2783
       Resources:
2784
-        description: "Resource requirements which apply to each individual container created as part of the service."
2784
+        description: |
2785
+          Resource requirements which apply to each individual container created
2786
+          as part of the service.
2785 2787
         type: "object"
2786 2788
         properties:
2787 2789
           Limits:
... ...
@@ -2791,7 +3163,9 @@ definitions:
2791 2791
             description: "Define resources reservation."
2792 2792
             $ref: "#/definitions/ResourceObject"
2793 2793
       RestartPolicy:
2794
-        description: "Specification for the restart policy which applies to containers created as part of this service."
2794
+        description: |
2795
+          Specification for the restart policy which applies to containers
2796
+          created as part of this service.
2795 2797
         type: "object"
2796 2798
         properties:
2797 2799
           Condition:
... ...
@@ -2806,12 +3180,16 @@ definitions:
2806 2806
             type: "integer"
2807 2807
             format: "int64"
2808 2808
           MaxAttempts:
2809
-            description: "Maximum attempts to restart a given container before giving up (default value is 0, which is ignored)."
2809
+            description: |
2810
+              Maximum attempts to restart a given container before giving up
2811
+              (default value is 0, which is ignored).
2810 2812
             type: "integer"
2811 2813
             format: "int64"
2812 2814
             default: 0
2813 2815
           Window:
2814
-            description: "Windows is the time window used to evaluate the restart policy (default value is 0, which is unbounded)."
2816
+            description: |
2817
+              Windows is the time window used to evaluate the restart policy
2818
+              (default value is 0, which is unbounded).
2815 2819
             type: "integer"
2816 2820
             format: "int64"
2817 2821
             default: 0
... ...
@@ -2819,7 +3197,25 @@ definitions:
2819 2819
         type: "object"
2820 2820
         properties:
2821 2821
           Constraints:
2822
-            description: "An array of constraints."
2822
+            description: |
2823
+              An array of constraint expressions to limit the set of nodes where
2824
+              a task can be scheduled. Constraint expressions can either use a
2825
+              _match_ (`==`) or _exclude_ (`!=`) rule. Multiple constraints find
2826
+              nodes that satisfy every expression (AND match). Constraints can
2827
+              match node or Docker Engine labels as follows:
2828
+
2829
+              node attribute       | matches                        | example
2830
+              ---------------------|--------------------------------|-----------------------------------------------
2831
+              `node.id`            | Node ID                        | `node.id==2ivku8v2gvtg4`
2832
+              `node.hostname`      | Node hostname                  | `node.hostname!=node-2`
2833
+              `node.role`          | Node role (`manager`/`worker`) | `node.role==manager`
2834
+              `node.labels`        | User-defined node labels       | `node.labels.security==high`
2835
+              `engine.labels`      | Docker Engine's labels         | `engine.labels.operatingsystem==ubuntu-14.04`
2836
+
2837
+              `engine.labels` apply to Docker Engine labels like operating system,
2838
+              drivers, etc. Swarm administrators add `node.labels` for operational
2839
+              purposes by using the [`node update endpoint`](#operation/NodeUpdate).
2840
+
2823 2841
             type: "array"
2824 2842
             items:
2825 2843
               type: "string"
... ...
@@ -2828,7 +3224,10 @@ definitions:
2828 2828
               - "node.role!=manager"
2829 2829
               - "node.labels.type==production"
2830 2830
           Preferences:
2831
-            description: "Preferences provide a way to make the scheduler aware of factors such as topology. They are provided in order from highest to lowest precedence."
2831
+            description: |
2832
+              Preferences provide a way to make the scheduler aware of factors
2833
+              such as topology. They are provided in order from highest to
2834
+              lowest precedence.
2832 2835
             type: "array"
2833 2836
             items:
2834 2837
               type: "object"
... ...
@@ -2837,7 +3236,8 @@ definitions:
2837 2837
                   type: "object"
2838 2838
                   properties:
2839 2839
                     SpreadDescriptor:
2840
-                      description: "label descriptor, such as engine.labels.az"
2840
+                      description: |
2841
+                        label descriptor, such as `engine.labels.az`.
2841 2842
                       type: "string"
2842 2843
             example:
2843 2844
               - Spread:
... ...
@@ -2854,24 +3254,24 @@ definitions:
2854 2854
             items:
2855 2855
               $ref: "#/definitions/Platform"
2856 2856
       ForceUpdate:
2857
-        description: "A counter that triggers an update even if no relevant parameters have been changed."
2857
+        description: |
2858
+          A counter that triggers an update even if no relevant parameters have
2859
+          been changed.
2858 2860
         type: "integer"
2859 2861
       Runtime:
2860
-        description: "Runtime is the type of runtime specified for the task executor."
2862
+        description: |
2863
+          Runtime is the type of runtime specified for the task executor.
2861 2864
         type: "string"
2862 2865
       Networks:
2866
+        description: "Specifies which networks the service should attach to."
2863 2867
         type: "array"
2864 2868
         items:
2865
-          type: "object"
2866
-          properties:
2867
-            Target:
2868
-              type: "string"
2869
-            Aliases:
2870
-              type: "array"
2871
-              items:
2872
-                type: "string"
2869
+          $ref: "#/definitions/NetworkAttachmentConfig"
2873 2870
       LogDriver:
2874
-        description: "Specifies the log driver to use for tasks created from this spec. If not present, the default one for the swarm will be used, finally falling back to the engine default if not specified."
2871
+        description: |
2872
+          Specifies the log driver to use for tasks created from this spec. If
2873
+          not present, the default one for the swarm will be used, finally
2874
+          falling back to the engine default if not specified.
2875 2875
         type: "object"
2876 2876
         properties:
2877 2877
           Name:
... ...
@@ -3054,7 +3454,9 @@ definitions:
3054 3054
         type: "object"
3055 3055
         properties:
3056 3056
           Parallelism:
3057
-            description: "Maximum number of tasks to be updated in one iteration (0 means unlimited parallelism)."
3057
+            description: |
3058
+              Maximum number of tasks to be updated in one iteration (0 means
3059
+              unlimited parallelism).
3058 3060
             type: "integer"
3059 3061
             format: "int64"
3060 3062
           Delay:
... ...
@@ -3062,22 +3464,32 @@ definitions:
3062 3062
             type: "integer"
3063 3063
             format: "int64"
3064 3064
           FailureAction:
3065
-            description: "Action to take if an updated task fails to run, or stops running during the update."
3065
+            description: |
3066
+              Action to take if an updated task fails to run, or stops running
3067
+              during the update.
3066 3068
             type: "string"
3067 3069
             enum:
3068 3070
               - "continue"
3069 3071
               - "pause"
3070 3072
               - "rollback"
3071 3073
           Monitor:
3072
-            description: "Amount of time to monitor each updated task for failures, in nanoseconds."
3074
+            description: |
3075
+              Amount of time to monitor each updated task for failures, in
3076
+              nanoseconds.
3073 3077
             type: "integer"
3074 3078
             format: "int64"
3075 3079
           MaxFailureRatio:
3076
-            description: "The fraction of tasks that may fail during an update before the failure action is invoked, specified as a floating point number between 0 and 1."
3080
+            description: |
3081
+              The fraction of tasks that may fail during an update before the
3082
+              failure action is invoked, specified as a floating point number
3083
+              between 0 and 1.
3077 3084
             type: "number"
3078 3085
             default: 0
3079 3086
           Order:
3080
-            description: "The order of operations when rolling out an updated task. Either the old task is shut down before the new task is started, or the new task is started before the old task is shut down."
3087
+            description: |
3088
+              The order of operations when rolling out an updated task. Either
3089
+              the old task is shut down before the new task is started, or the
3090
+              new task is started before the old task is shut down.
3081 3091
             type: "string"
3082 3092
             enum:
3083 3093
               - "stop-first"
... ...
@@ -3087,45 +3499,52 @@ definitions:
3087 3087
         type: "object"
3088 3088
         properties:
3089 3089
           Parallelism:
3090
-            description: "Maximum number of tasks to be rolled back in one iteration (0 means unlimited parallelism)."
3090
+            description: |
3091
+              Maximum number of tasks to be rolled back in one iteration (0 means
3092
+              unlimited parallelism).
3091 3093
             type: "integer"
3092 3094
             format: "int64"
3093 3095
           Delay:
3094
-            description: "Amount of time between rollback iterations, in nanoseconds."
3096
+            description: |
3097
+              Amount of time between rollback iterations, in nanoseconds.
3095 3098
             type: "integer"
3096 3099
             format: "int64"
3097 3100
           FailureAction:
3098
-            description: "Action to take if an rolled back task fails to run, or stops running during the rollback."
3101
+            description: |
3102
+              Action to take if an rolled back task fails to run, or stops
3103
+              running during the rollback.
3099 3104
             type: "string"
3100 3105
             enum:
3101 3106
               - "continue"
3102 3107
               - "pause"
3103 3108
           Monitor:
3104
-            description: "Amount of time to monitor each rolled back task for failures, in nanoseconds."
3109
+            description: |
3110
+              Amount of time to monitor each rolled back task for failures, in
3111
+              nanoseconds.
3105 3112
             type: "integer"
3106 3113
             format: "int64"
3107 3114
           MaxFailureRatio:
3108
-            description: "The fraction of tasks that may fail during a rollback before the failure action is invoked, specified as a floating point number between 0 and 1."
3115
+            description: |
3116
+              The fraction of tasks that may fail during a rollback before the
3117
+              failure action is invoked, specified as a floating point number
3118
+              between 0 and 1.
3109 3119
             type: "number"
3110 3120
             default: 0
3111 3121
           Order:
3112
-            description: "The order of operations when rolling back a task. Either the old task is shut down before the new task is started, or the new task is started before the old task is shut down."
3122
+            description: |
3123
+              The order of operations when rolling back a task. Either the old
3124
+              task is shut down before the new task is started, or the new task
3125
+              is started before the old task is shut down.
3113 3126
             type: "string"
3114 3127
             enum:
3115 3128
               - "stop-first"
3116 3129
               - "start-first"
3117 3130
       Networks:
3118
-        description: "Array of network names or IDs to attach the service to."
3131
+        description: "Specifies which networks the service should attach to."
3119 3132
         type: "array"
3120 3133
         items:
3121
-          type: "object"
3122
-          properties:
3123
-            Target:
3124
-              type: "string"
3125
-            Aliases:
3126
-              type: "array"
3127
-              items:
3128
-                type: "string"
3134
+          $ref: "#/definitions/NetworkAttachmentConfig"
3135
+
3129 3136
       EndpointSpec:
3130 3137
         $ref: "#/definitions/EndpointSpec"
3131 3138
 
... ...
@@ -3152,7 +3571,7 @@ definitions:
3152 3152
 
3153 3153
           <p><br /></p>
3154 3154
 
3155
-          - "ingress" makes the target port accessible on on every node,
3155
+          - "ingress" makes the target port accessible on every node,
3156 3156
             regardless of whether there is a task for the service running on
3157 3157
             that node or not.
3158 3158
           - "host" bypasses the routing mesh and publish the port directly on
... ...
@@ -3170,15 +3589,17 @@ definitions:
3170 3170
     type: "object"
3171 3171
     properties:
3172 3172
       Mode:
3173
-        description: "The mode of resolution to use for internal load balancing
3174
-      between tasks."
3173
+        description: |
3174
+          The mode of resolution to use for internal load balancing between tasks.
3175 3175
         type: "string"
3176 3176
         enum:
3177 3177
           - "vip"
3178 3178
           - "dnsrr"
3179 3179
         default: "vip"
3180 3180
       Ports:
3181
-        description: "List of exposed ports that this service is accessible on from the outside. Ports can only be provided if `vip` resolution mode is used."
3181
+        description: |
3182
+          List of exposed ports that this service is accessible on from the
3183
+          outside. Ports can only be provided if `vip` resolution mode is used.
3182 3184
         type: "array"
3183 3185
         items:
3184 3186
           $ref: "#/definitions/EndpointPortConfig"
... ...
@@ -3422,7 +3843,7 @@ definitions:
3422 3422
           com.example.some-other-label: "some-other-value"
3423 3423
       Data:
3424 3424
         description: |
3425
-          Base64-url-safe-encoded ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-3.2))
3425
+          Base64-url-safe-encoded ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-5))
3426 3426
           data to store as secret.
3427 3427
 
3428 3428
           This field is only used to _create_ a secret, and is not returned by
... ...
@@ -3430,7 +3851,9 @@ definitions:
3430 3430
         type: "string"
3431 3431
         example: ""
3432 3432
       Driver:
3433
-        description: "Name of the secrets driver used to fetch the secret's value from an external secret store"
3433
+        description: |
3434
+          Name of the secrets driver used to fetch the secret's value from an
3435
+          external secret store.
3434 3436
         $ref: "#/definitions/Driver"
3435 3437
       Templating:
3436 3438
         description: |
... ...
@@ -3472,7 +3895,7 @@ definitions:
3472 3472
           type: "string"
3473 3473
       Data:
3474 3474
         description: |
3475
-          Base64-url-safe-encoded ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-3.2))
3475
+          Base64-url-safe-encoded ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-5))
3476 3476
           config data.
3477 3477
         type: "string"
3478 3478
       Templating:
... ...
@@ -3499,6 +3922,71 @@ definitions:
3499 3499
       Spec:
3500 3500
         $ref: "#/definitions/ConfigSpec"
3501 3501
 
3502
+  ContainerState:
3503
+    description: |
3504
+      ContainerState stores container's running state. It's part of ContainerJSONBase
3505
+      and will be returned by the "inspect" command.
3506
+    type: "object"
3507
+    properties:
3508
+      Status:
3509
+        description: |
3510
+          String representation of the container state. Can be one of "created",
3511
+          "running", "paused", "restarting", "removing", "exited", or "dead".
3512
+        type: "string"
3513
+        enum: ["created", "running", "paused", "restarting", "removing", "exited", "dead"]
3514
+        example: "running"
3515
+      Running:
3516
+        description: |
3517
+          Whether this container is running.
3518
+
3519
+          Note that a running container can be _paused_. The `Running` and `Paused`
3520
+          booleans are not mutually exclusive:
3521
+
3522
+          When pausing a container (on Linux), the freezer cgroup is used to suspend
3523
+          all processes in the container. Freezing the process requires the process to
3524
+          be running. As a result, paused containers are both `Running` _and_ `Paused`.
3525
+
3526
+          Use the `Status` field instead to determine if a container's state is "running".
3527
+        type: "boolean"
3528
+        example: true
3529
+      Paused:
3530
+        description: "Whether this container is paused."
3531
+        type: "boolean"
3532
+        example: false
3533
+      Restarting:
3534
+        description: "Whether this container is restarting."
3535
+        type: "boolean"
3536
+        example: false
3537
+      OOMKilled:
3538
+        description: |
3539
+          Whether this container has been killed because it ran out of memory.
3540
+        type: "boolean"
3541
+        example: false
3542
+      Dead:
3543
+        type: "boolean"
3544
+        example: false
3545
+      Pid:
3546
+        description: "The process ID of this container"
3547
+        type: "integer"
3548
+        example: 1234
3549
+      ExitCode:
3550
+        description: "The last exit code of this container"
3551
+        type: "integer"
3552
+        example: 0
3553
+      Error:
3554
+        type: "string"
3555
+      StartedAt:
3556
+        description: "The time when this container was last started."
3557
+        type: "string"
3558
+        example: "2020-01-06T09:06:59.461876391Z"
3559
+      FinishedAt:
3560
+        description: "The time when this container last exited."
3561
+        type: "string"
3562
+        example: "2020-01-06T09:07:59.461876391Z"
3563
+      Health:
3564
+        x-nullable: true
3565
+        $ref: "#/definitions/Health"
3566
+
3502 3567
   SystemInfo:
3503 3568
     type: "object"
3504 3569
     properties:
... ...
@@ -3626,15 +4114,20 @@ definitions:
3626 3626
         type: "boolean"
3627 3627
         example: true
3628 3628
       CpuCfsPeriod:
3629
-        description: "Indicates if CPU CFS(Completely Fair Scheduler) period is supported by the host."
3629
+        description: |
3630
+          Indicates if CPU CFS(Completely Fair Scheduler) period is supported by
3631
+          the host.
3630 3632
         type: "boolean"
3631 3633
         example: true
3632 3634
       CpuCfsQuota:
3633
-        description: "Indicates if CPU CFS(Completely Fair Scheduler) quota is supported by the host."
3635
+        description: |
3636
+          Indicates if CPU CFS(Completely Fair Scheduler) quota is supported by
3637
+          the host.
3634 3638
         type: "boolean"
3635 3639
         example: true
3636 3640
       CPUShares:
3637
-        description: "Indicates if CPU Shares limiting is supported by the host."
3641
+        description: |
3642
+          Indicates if CPU Shares limiting is supported by the host.
3638 3643
         type: "boolean"
3639 3644
         example: true
3640 3645
       CPUSet:
... ...
@@ -3660,7 +4153,9 @@ definitions:
3660 3660
         type: "boolean"
3661 3661
         example: true
3662 3662
       Debug:
3663
-        description: "Indicates if the daemon is running in debug-mode / with debug-level logging enabled."
3663
+        description: |
3664
+          Indicates if the daemon is running in debug-mode / with debug-level
3665
+          logging enabled.
3664 3666
         type: "boolean"
3665 3667
         example: true
3666 3668
       NFd:
... ...
@@ -4292,37 +4787,69 @@ definitions:
4292 4292
           IP address and ports at which this node can be reached.
4293 4293
         type: "string"
4294 4294
 
4295
+  NetworkAttachmentConfig:
4296
+    description: |
4297
+      Specifies how a service should be attached to a particular network.
4298
+    type: "object"
4299
+    properties:
4300
+      Target:
4301
+        description: |
4302
+          The target network for attachment. Must be a network name or ID.
4303
+        type: "string"
4304
+      Aliases:
4305
+        description: |
4306
+          Discoverable alternate names for the service on this network.
4307
+        type: "array"
4308
+        items:
4309
+          type: "string"
4310
+      DriverOpts:
4311
+        description: |
4312
+          Driver attachment options for the network target.
4313
+        type: "object"
4314
+        additionalProperties:
4315
+          type: "string"
4316
+
4295 4317
 paths:
4296 4318
   /containers/json:
4297 4319
     get:
4298 4320
       summary: "List containers"
4299 4321
       description: |
4300
-        Returns a list of containers. For details on the format, see [the inspect endpoint](#operation/ContainerInspect).
4322
+        Returns a list of containers. For details on the format, see the
4323
+        [inspect endpoint](#operation/ContainerInspect).
4301 4324
 
4302
-        Note that it uses a different, smaller representation of a container than inspecting a single container. For example,
4303
-        the list of linked containers is not propagated .
4325
+        Note that it uses a different, smaller representation of a container
4326
+        than inspecting a single container. For example, the list of linked
4327
+        containers is not propagated .
4304 4328
       operationId: "ContainerList"
4305 4329
       produces:
4306 4330
         - "application/json"
4307 4331
       parameters:
4308 4332
         - name: "all"
4309 4333
           in: "query"
4310
-          description: "Return all containers. By default, only running containers are shown"
4334
+          description: |
4335
+            Return all containers. By default, only running containers are shown.
4311 4336
           type: "boolean"
4312 4337
           default: false
4313 4338
         - name: "limit"
4314 4339
           in: "query"
4315
-          description: "Return this number of most recently created containers, including non-running ones."
4340
+          description: |
4341
+            Return this number of most recently created containers, including
4342
+            non-running ones.
4316 4343
           type: "integer"
4317 4344
         - name: "size"
4318 4345
           in: "query"
4319
-          description: "Return the size of container as fields `SizeRw` and `SizeRootFs`."
4346
+          description: |
4347
+            Return the size of container as fields `SizeRw` and `SizeRootFs`.
4320 4348
           type: "boolean"
4321 4349
           default: false
4322 4350
         - name: "filters"
4323 4351
           in: "query"
4324 4352
           description: |
4325
-            Filters to process on the container list, encoded as JSON (a `map[string][]string`). For example, `{"status": ["paused"]}` will only return paused containers. Available filters:
4353
+            Filters to process on the container list, encoded as JSON (a
4354
+            `map[string][]string`). For example, `{"status": ["paused"]}` will
4355
+            only return paused containers.
4356
+
4357
+            Available filters:
4326 4358
 
4327 4359
             - `ancestor`=(`<image-name>[:<tag>]`, `<image id>`, or `<image@digest>`)
4328 4360
             - `before`=(`<container id>` or `<container name>`)
... ...
@@ -4493,9 +5020,11 @@ paths:
4493 4493
       parameters:
4494 4494
         - name: "name"
4495 4495
           in: "query"
4496
-          description: "Assign the specified name to the container. Must match `/?[a-zA-Z0-9_-]+`."
4496
+          description: |
4497
+            Assign the specified name to the container. Must match
4498
+            `/?[a-zA-Z0-9][a-zA-Z0-9_.-]+`.
4497 4499
           type: "string"
4498
-          pattern: "/?[a-zA-Z0-9_-]+"
4500
+          pattern: "^/?[a-zA-Z0-9][a-zA-Z0-9_.-]+$"
4499 4501
         - name: "body"
4500 4502
           in: "body"
4501 4503
           description: "Container to create"
... ...
@@ -4507,14 +5036,7 @@ paths:
4507 4507
                   HostConfig:
4508 4508
                     $ref: "#/definitions/HostConfig"
4509 4509
                   NetworkingConfig:
4510
-                    description: "This container's networking configuration."
4511
-                    type: "object"
4512
-                    properties:
4513
-                      EndpointsConfig:
4514
-                        description: "A mapping of network name to endpoint configuration for that network."
4515
-                        type: "object"
4516
-                        additionalProperties:
4517
-                          $ref: "#/definitions/EndpointSettings"
4510
+                    $ref: "#/definitions/NetworkingConfig"
4518 4511
             example:
4519 4512
               Hostname: ""
4520 4513
               Domainname: ""
... ...
@@ -4707,54 +5229,10 @@ paths:
4707 4707
                 items:
4708 4708
                   type: "string"
4709 4709
               State:
4710
-                description: "The state of the container."
4711
-                type: "object"
4712
-                properties:
4713
-                  Status:
4714
-                    description: |
4715
-                      The status of the container. For example, `"running"` or `"exited"`.
4716
-                    type: "string"
4717
-                    enum: ["created", "running", "paused", "restarting", "removing", "exited", "dead"]
4718
-                  Running:
4719
-                    description: |
4720
-                      Whether this container is running.
4721
-
4722
-                      Note that a running container can be _paused_. The `Running` and `Paused`
4723
-                      booleans are not mutually exclusive:
4724
-
4725
-                      When pausing a container (on Linux), the cgroups freezer is used to suspend
4726
-                      all processes in the container. Freezing the process requires the process to
4727
-                      be running. As a result, paused containers are both `Running` _and_ `Paused`.
4728
-
4729
-                      Use the `Status` field instead to determine if a container's state is "running".
4730
-                    type: "boolean"
4731
-                  Paused:
4732
-                    description: "Whether this container is paused."
4733
-                    type: "boolean"
4734
-                  Restarting:
4735
-                    description: "Whether this container is restarting."
4736
-                    type: "boolean"
4737
-                  OOMKilled:
4738
-                    description: "Whether this container has been killed because it ran out of memory."
4739
-                    type: "boolean"
4740
-                  Dead:
4741
-                    type: "boolean"
4742
-                  Pid:
4743
-                    description: "The process ID of this container"
4744
-                    type: "integer"
4745
-                  ExitCode:
4746
-                    description: "The last exit code of this container"
4747
-                    type: "integer"
4748
-                  Error:
4749
-                    type: "string"
4750
-                  StartedAt:
4751
-                    description: "The time when this container was last started."
4752
-                    type: "string"
4753
-                  FinishedAt:
4754
-                    description: "The time when this container last exited."
4755
-                    type: "string"
4710
+                x-nullable: true
4711
+                $ref: "#/definitions/ContainerState"
4756 4712
               Image:
4757
-                description: "The container's image"
4713
+                description: "The container's image ID"
4758 4714
                 type: "string"
4759 4715
               ResolvConfPath:
4760 4716
                 type: "string"
... ...
@@ -4790,7 +5268,9 @@ paths:
4790 4790
               GraphDriver:
4791 4791
                 $ref: "#/definitions/GraphDriverData"
4792 4792
               SizeRw:
4793
-                description: "The size of files that have been created or changed by this container."
4793
+                description: |
4794
+                  The size of files that have been created or changed by this
4795
+                  container.
4794 4796
                 type: "integer"
4795 4797
                 format: "int64"
4796 4798
               SizeRootFs:
... ...
@@ -4822,6 +5302,8 @@ paths:
4822 4822
                 Domainname: ""
4823 4823
                 Env:
4824 4824
                   - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
4825
+                Healthcheck:
4826
+                  Test: ["CMD-SHELL", "exit 0"]
4825 4827
                 Hostname: "ba033ac44011"
4826 4828
                 Image: "ubuntu"
4827 4829
                 Labels:
... ...
@@ -4933,6 +5415,14 @@ paths:
4933 4933
                 Error: ""
4934 4934
                 ExitCode: 9
4935 4935
                 FinishedAt: "2015-01-06T15:47:32.080254511Z"
4936
+                Health:
4937
+                  Status: "healthy"
4938
+                  FailingStreak: 0
4939
+                  Log:
4940
+                    - Start: "2019-12-22T10:59:05.6385933Z"
4941
+                      End: "2019-12-22T10:59:05.8078452Z"
4942
+                      ExitCode: 0
4943
+                      Output: ""
4936 4944
                 OOMKilled: false
4937 4945
                 Dead: false
4938 4946
                 Paused: false
... ...
@@ -4975,7 +5465,9 @@ paths:
4975 4975
   /containers/{id}/top:
4976 4976
     get:
4977 4977
       summary: "List processes running inside a container"
4978
-      description: "On Unix systems, this is done by running the `ps` command. This endpoint is not supported on Windows."
4978
+      description: |
4979
+        On Unix systems, this is done by running the `ps` command. This endpoint
4980
+        is not supported on Windows.
4979 4981
       operationId: "ContainerTop"
4980 4982
       responses:
4981 4983
         200:
... ...
@@ -4991,7 +5483,9 @@ paths:
4991 4991
                 items:
4992 4992
                   type: "string"
4993 4993
               Processes:
4994
-                description: "Each process running in the container, where each is process is an array of values corresponding to the titles"
4994
+                description: |
4995
+                  Each process running in the container, where each is process
4996
+                  is an array of values corresponding to the titles.
4995 4997
                 type: "array"
4996 4998
                 items:
4997 4999
                   type: "array"
... ...
@@ -5056,7 +5550,8 @@ paths:
5056 5056
       description: |
5057 5057
         Get `stdout` and `stderr` logs from a container.
5058 5058
 
5059
-        Note: This endpoint works only for containers with the `json-file` or `journald` logging driver.
5059
+        Note: This endpoint works only for containers with the `json-file` or
5060
+        `journald` logging driver.
5060 5061
       operationId: "ContainerLogs"
5061 5062
       responses:
5062 5063
         101:
... ...
@@ -5120,7 +5615,9 @@ paths:
5120 5120
           default: false
5121 5121
         - name: "tail"
5122 5122
           in: "query"
5123
-          description: "Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines."
5123
+          description: |
5124
+            Only return this number of log lines from the end of the logs.
5125
+            Specify as an integer or `all` to output all log lines.
5124 5126
           type: "string"
5125 5127
           default: "all"
5126 5128
       tags: ["Container"]
... ...
@@ -5226,6 +5723,16 @@ paths:
5226 5226
         If either `precpu_stats.online_cpus` or `cpu_stats.online_cpus` is
5227 5227
         nil then for compatibility with older daemons the length of the
5228 5228
         corresponding `cpu_usage.percpu_usage` array should be used.
5229
+
5230
+        To calculate the values shown by the `stats` command of the docker cli tool
5231
+        the following formulas can be used:
5232
+        * used_memory = `memory_stats.usage - memory_stats.stats.cache`
5233
+        * available_memory = `memory_stats.limit`
5234
+        * Memory usage % = `(used_memory / available_memory) * 100.0`
5235
+        * cpu_delta = `cpu_stats.cpu_usage.total_usage - precpu_stats.cpu_usage.total_usage`
5236
+        * system_cpu_delta = `cpu_stats.system_cpu_usage - precpu_stats.system_cpu_usage`
5237
+        * number_cpus = `lenght(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
5238
+        * CPU usage % = `(cpu_delta / system_cpu_delta) * number_cpus * 100.0`
5229 5239
       operationId: "ContainerStats"
5230 5240
       produces: ["application/json"]
5231 5241
       responses:
... ...
@@ -5344,7 +5851,9 @@ paths:
5344 5344
           type: "string"
5345 5345
         - name: "stream"
5346 5346
           in: "query"
5347
-          description: "Stream the output. If false, the stats will be output once and then it will disconnect."
5347
+          description: |
5348
+            Stream the output. If false, the stats will be output once and then
5349
+            it will disconnect.
5348 5350
           type: "boolean"
5349 5351
           default: true
5350 5352
       tags: ["Container"]
... ...
@@ -5379,11 +5888,11 @@ paths:
5379 5379
           type: "string"
5380 5380
         - name: "h"
5381 5381
           in: "query"
5382
-          description: "Height of the tty session in characters"
5382
+          description: "Height of the TTY session in characters"
5383 5383
           type: "integer"
5384 5384
         - name: "w"
5385 5385
           in: "query"
5386
-          description: "Width of the tty session in characters"
5386
+          description: "Width of the TTY session in characters"
5387 5387
           type: "integer"
5388 5388
       tags: ["Container"]
5389 5389
   /containers/{id}/start:
... ...
@@ -5395,8 +5904,6 @@ paths:
5395 5395
           description: "no error"
5396 5396
         304:
5397 5397
           description: "container already started"
5398
-          schema:
5399
-            $ref: "#/definitions/ErrorResponse"
5400 5398
         404:
5401 5399
           description: "no such container"
5402 5400
           schema:
... ...
@@ -5416,7 +5923,10 @@ paths:
5416 5416
           type: "string"
5417 5417
         - name: "detachKeys"
5418 5418
           in: "query"
5419
-          description: "Override the key sequence for detaching a container. Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`."
5419
+          description: |
5420
+            Override the key sequence for detaching a container. Format is a
5421
+            single character `[a-Z]` or `ctrl-<value>` where `<value>` is one
5422
+            of: `a-z`, `@`, `^`, `[`, `,` or `_`.
5420 5423
           type: "string"
5421 5424
       tags: ["Container"]
5422 5425
   /containers/{id}/stop:
... ...
@@ -5428,8 +5938,6 @@ paths:
5428 5428
           description: "no error"
5429 5429
         304:
5430 5430
           description: "container already stopped"
5431
-          schema:
5432
-            $ref: "#/definitions/ErrorResponse"
5433 5431
         404:
5434 5432
           description: "no such container"
5435 5433
           schema:
... ...
@@ -5484,7 +5992,9 @@ paths:
5484 5484
   /containers/{id}/kill:
5485 5485
     post:
5486 5486
       summary: "Kill a container"
5487
-      description: "Send a POSIX signal to a container, defaulting to killing to the container."
5487
+      description: |
5488
+        Send a POSIX signal to a container, defaulting to killing to the
5489
+        container.
5488 5490
       operationId: "ContainerKill"
5489 5491
       responses:
5490 5492
         204:
... ...
@@ -5522,7 +6032,9 @@ paths:
5522 5522
   /containers/{id}/update:
5523 5523
     post:
5524 5524
       summary: "Update a container"
5525
-      description: "Change various configuration options of a container without having to recreate it."
5525
+      description: |
5526
+        Change various configuration options of a container without having to
5527
+        recreate it.
5526 5528
       operationId: "ContainerUpdate"
5527 5529
       consumes: ["application/json"]
5528 5530
       produces: ["application/json"]
... ...
@@ -5620,9 +6132,12 @@ paths:
5620 5620
     post:
5621 5621
       summary: "Pause a container"
5622 5622
       description: |
5623
-        Use the cgroups freezer to suspend all processes in a container.
5623
+        Use the freezer cgroup to suspend all processes in a container.
5624 5624
 
5625
-        Traditionally, when suspending a process the `SIGSTOP` signal is used, which is observable by the process being suspended. With the cgroups freezer the process is unaware, and unable to capture, that it is being suspended, and subsequently resumed.
5625
+        Traditionally, when suspending a process the `SIGSTOP` signal is used,
5626
+        which is observable by the process being suspended. With the freezer
5627
+        cgroup the process is unaware, and unable to capture, that it is being
5628
+        suspended, and subsequently resumed.
5626 5629
       operationId: "ContainerPause"
5627 5630
       responses:
5628 5631
         204:
... ...
@@ -5675,15 +6190,20 @@ paths:
5675 5675
     post:
5676 5676
       summary: "Attach to a container"
5677 5677
       description: |
5678
-        Attach to a container to read its output or send it input. You can attach to the same container multiple times and you can reattach to containers that have been detached.
5678
+        Attach to a container to read its output or send it input. You can attach
5679
+        to the same container multiple times and you can reattach to containers
5680
+        that have been detached.
5679 5681
 
5680
-        Either the `stream` or `logs` parameter must be `true` for this endpoint to do anything.
5682
+        Either the `stream` or `logs` parameter must be `true` for this endpoint
5683
+        to do anything.
5681 5684
 
5682
-        See [the documentation for the `docker attach` command](https://docs.docker.com/engine/reference/commandline/attach/) for more details.
5685
+        See the [documentation for the `docker attach` command](https://docs.docker.com/engine/reference/commandline/attach/)
5686
+        for more details.
5683 5687
 
5684 5688
         ### Hijacking
5685 5689
 
5686
-        This endpoint hijacks the HTTP connection to transport `stdin`, `stdout`, and `stderr` on the same socket.
5690
+        This endpoint hijacks the HTTP connection to transport `stdin`, `stdout`,
5691
+        and `stderr` on the same socket.
5687 5692
 
5688 5693
         This is the response from the daemon for an attach request:
5689 5694
 
... ...
@@ -5694,9 +6214,11 @@ paths:
5694 5694
         [STREAM]
5695 5695
         ```
5696 5696
 
5697
-        After the headers and two new lines, the TCP connection can now be used for raw, bidirectional communication between the client and server.
5697
+        After the headers and two new lines, the TCP connection can now be used
5698
+        for raw, bidirectional communication between the client and server.
5698 5699
 
5699
-        To hint potential proxies about connection hijacking, the Docker client can also optionally send connection upgrade headers.
5700
+        To hint potential proxies about connection hijacking, the Docker client
5701
+        can also optionally send connection upgrade headers.
5700 5702
 
5701 5703
         For example, the client sends this request to upgrade the connection:
5702 5704
 
... ...
@@ -5706,7 +6228,8 @@ paths:
5706 5706
         Connection: Upgrade
5707 5707
         ```
5708 5708
 
5709
-        The Docker daemon will respond with a `101 UPGRADED` response, and will similarly follow with the raw stream:
5709
+        The Docker daemon will respond with a `101 UPGRADED` response, and will
5710
+        similarly follow with the raw stream:
5710 5711
 
5711 5712
         ```
5712 5713
         HTTP/1.1 101 UPGRADED
... ...
@@ -5719,9 +6242,14 @@ paths:
5719 5719
 
5720 5720
         ### Stream format
5721 5721
 
5722
-        When the TTY setting is disabled in [`POST /containers/create`](#operation/ContainerCreate), the stream over the hijacked connected is multiplexed to separate out `stdout` and `stderr`. The stream consists of a series of frames, each containing a header and a payload.
5722
+        When the TTY setting is disabled in [`POST /containers/create`](#operation/ContainerCreate),
5723
+        the stream over the hijacked connected is multiplexed to separate out
5724
+        `stdout` and `stderr`. The stream consists of a series of frames, each
5725
+        containing a header and a payload.
5723 5726
 
5724
-        The header contains the information which the stream writes (`stdout` or `stderr`). It also contains the size of the associated frame encoded in the last four bytes (`uint32`).
5727
+        The header contains the information which the stream writes (`stdout` or
5728
+        `stderr`). It also contains the size of the associated frame encoded in
5729
+        the last four bytes (`uint32`).
5725 5730
 
5726 5731
         It is encoded on the first eight bytes like this:
5727 5732
 
... ...
@@ -5735,9 +6263,11 @@ paths:
5735 5735
         - 1: `stdout`
5736 5736
         - 2: `stderr`
5737 5737
 
5738
-        `SIZE1, SIZE2, SIZE3, SIZE4` are the four bytes of the `uint32` size encoded as big endian.
5738
+        `SIZE1, SIZE2, SIZE3, SIZE4` are the four bytes of the `uint32` size
5739
+        encoded as big endian.
5739 5740
 
5740
-        Following the header is the payload, which is the specified number of bytes of `STREAM_TYPE`.
5741
+        Following the header is the payload, which is the specified number of
5742
+        bytes of `STREAM_TYPE`.
5741 5743
 
5742 5744
         The simplest way to implement this protocol is the following:
5743 5745
 
... ...
@@ -5749,7 +6279,10 @@ paths:
5749 5749
 
5750 5750
         ### Stream format when using a TTY
5751 5751
 
5752
-        When the TTY setting is enabled in [`POST /containers/create`](#operation/ContainerCreate), the stream is not multiplexed. The data exchanged over the hijacked connection is simply the raw data from the process PTY and client's `stdin`.
5752
+        When the TTY setting is enabled in [`POST /containers/create`](#operation/ContainerCreate),
5753
+        the stream is not multiplexed. The data exchanged over the hijacked
5754
+        connection is simply the raw data from the process PTY and client's
5755
+        `stdin`.
5753 5756
 
5754 5757
       operationId: "ContainerAttach"
5755 5758
       produces:
... ...
@@ -5782,21 +6315,28 @@ paths:
5782 5782
           type: "string"
5783 5783
         - name: "detachKeys"
5784 5784
           in: "query"
5785
-          description: "Override the key sequence for detaching a container.Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`."
5785
+          description: |
5786
+            Override the key sequence for detaching a container.Format is a single
5787
+            character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`,
5788
+            `@`, `^`, `[`, `,` or `_`.
5786 5789
           type: "string"
5787 5790
         - name: "logs"
5788 5791
           in: "query"
5789 5792
           description: |
5790 5793
             Replay previous logs from the container.
5791 5794
 
5792
-            This is useful for attaching to a container that has started and you want to output everything since the container started.
5795
+            This is useful for attaching to a container that has started and you
5796
+            want to output everything since the container started.
5793 5797
 
5794
-            If `stream` is also enabled, once all the previous output has been returned, it will seamlessly transition into streaming current output.
5798
+            If `stream` is also enabled, once all the previous output has been
5799
+            returned, it will seamlessly transition into streaming current
5800
+            output.
5795 5801
           type: "boolean"
5796 5802
           default: false
5797 5803
         - name: "stream"
5798 5804
           in: "query"
5799
-          description: "Stream attached streams from the time the request was made onwards"
5805
+          description: |
5806
+            Stream attached streams from the time the request was made onwards.
5800 5807
           type: "boolean"
5801 5808
           default: false
5802 5809
         - name: "stdin"
... ...
@@ -5847,7 +6387,10 @@ paths:
5847 5847
           type: "string"
5848 5848
         - name: "detachKeys"
5849 5849
           in: "query"
5850
-          description: "Override the key sequence for detaching a container.Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,`, or `_`."
5850
+          description: |
5851
+            Override the key sequence for detaching a container.Format is a single
5852
+            character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`,
5853
+            `@`, `^`, `[`, `,`, or `_`.
5851 5854
           type: "string"
5852 5855
         - name: "logs"
5853 5856
           in: "query"
... ...
@@ -5920,7 +6463,9 @@ paths:
5920 5920
           type: "string"
5921 5921
         - name: "condition"
5922 5922
           in: "query"
5923
-          description: "Wait until a container state reaches the given condition, either 'not-running' (default), 'next-exit', or 'removed'."
5923
+          description: |
5924
+            Wait until a container state reaches the given condition, either
5925
+            'not-running' (default), 'next-exit', or 'removed'.
5924 5926
           type: "string"
5925 5927
           default: "not-running"
5926 5928
       tags: ["Container"]
... ...
@@ -5948,7 +6493,9 @@ paths:
5948 5948
             $ref: "#/definitions/ErrorResponse"
5949 5949
           examples:
5950 5950
             application/json:
5951
-              message: "You cannot remove a running container: c2ada9df5af8. Stop the container before attempting removal or force remove"
5951
+              message: |
5952
+                You cannot remove a running container: c2ada9df5af8. Stop the
5953
+                container before attempting removal or force remove
5952 5954
         500:
5953 5955
           description: "server error"
5954 5956
           schema:
... ...
@@ -5978,7 +6525,10 @@ paths:
5978 5978
   /containers/{id}/archive:
5979 5979
     head:
5980 5980
       summary: "Get information about files in a container"
5981
-      description: "A response header `X-Docker-Container-Path-Stat` is return containing a base64 - encoded JSON object with some filesystem header information about the path."
5981
+      description: |
5982
+        A response header `X-Docker-Container-Path-Stat` is returned, containing
5983
+        a base64 - encoded JSON object with some filesystem header information
5984
+        about the path.
5982 5985
       operationId: "ContainerArchiveInfo"
5983 5986
       responses:
5984 5987
         200:
... ...
@@ -5986,7 +6536,9 @@ paths:
5986 5986
           headers:
5987 5987
             X-Docker-Container-Path-Stat:
5988 5988
               type: "string"
5989
-              description: "A base64 - encoded JSON object with some filesystem header information about the path"
5989
+              description: |
5990
+                A base64 - encoded JSON object with some filesystem header
5991
+                information about the path
5990 5992
         400:
5991 5993
           description: "Bad parameter"
5992 5994
           schema:
... ...
@@ -5995,7 +6547,10 @@ paths:
5995 5995
               - type: "object"
5996 5996
                 properties:
5997 5997
                   message:
5998
-                    description: "The error message. Either \"must specify path parameter\" (path cannot be empty) or \"not a directory\" (path was asserted to be a directory but exists as a file)."
5998
+                    description: |
5999
+                      The error message. Either "must specify path parameter"
6000
+                      (path cannot be empty) or "not a directory" (path was
6001
+                      asserted to be a directory but exists as a file).
5999 6002
                     type: "string"
6000 6003
                     x-nullable: false
6001 6004
         404:
... ...
@@ -6037,7 +6592,10 @@ paths:
6037 6037
               - type: "object"
6038 6038
                 properties:
6039 6039
                   message:
6040
-                    description: "The error message. Either \"must specify path parameter\" (path cannot be empty) or \"not a directory\" (path was asserted to be a directory but exists as a file)."
6040
+                    description: |
6041
+                      The error message. Either "must specify path parameter"
6042
+                      (path cannot be empty) or "not a directory" (path was
6043
+                      asserted to be a directory but exists as a file).
6041 6044
                     type: "string"
6042 6045
                     x-nullable: false
6043 6046
         404:
... ...
@@ -6103,16 +6661,24 @@ paths:
6103 6103
           type: "string"
6104 6104
         - name: "noOverwriteDirNonDir"
6105 6105
           in: "query"
6106
-          description: "If “1”, “true”, or “True” then it will be an error if unpacking the given content would cause an existing directory to be replaced with a non-directory and vice versa."
6106
+          description: |
6107
+            If `1`, `true`, or `True` then it will be an error if unpacking the
6108
+            given content would cause an existing directory to be replaced with
6109
+            a non-directory and vice versa.
6107 6110
           type: "string"
6108 6111
         - name: "copyUIDGID"
6109 6112
           in: "query"
6110
-          description: "If “1”, “true”, then it will copy UID/GID maps to the dest file or dir"
6113
+          description: |
6114
+            If `1`, `true`, then it will copy UID/GID maps to the dest file or
6115
+            dir
6111 6116
           type: "string"
6112 6117
         - name: "inputStream"
6113 6118
           in: "body"
6114 6119
           required: true
6115
-          description: "The input stream must be a tar archive compressed with one of the following algorithms: identity (no compression), gzip, bzip2, xz."
6120
+          description: |
6121
+            The input stream must be a tar archive compressed with one of the
6122
+            following algorithms: `identity` (no compression), `gzip`, `bzip2`,
6123
+            or `xz`.
6116 6124
           schema:
6117 6125
             type: "string"
6118 6126
             format: "binary"
... ...
@@ -6210,7 +6776,10 @@ paths:
6210 6210
         - name: "filters"
6211 6211
           in: "query"
6212 6212
           description: |
6213
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters:
6213
+            A JSON encoded value of the filters (a `map[string][]string`) to
6214
+            process on the images list.
6215
+
6216
+            Available filters:
6214 6217
 
6215 6218
             - `before`=(`<image-name>[:<tag>]`,  `<image id>` or `<image@digest>`)
6216 6219
             - `dangling=true`
... ...
@@ -6345,10 +6914,11 @@ paths:
6345 6345
           type: "string"
6346 6346
         - name: "networkmode"
6347 6347
           in: "query"
6348
-          description: "Sets the networking mode for the run commands during
6349
-        build. Supported standard values are: `bridge`, `host`, `none`, and
6350
-        `container:<name|id>`. Any other value is taken as a custom network's
6351
-        name to which this container should connect to."
6348
+          description: |
6349
+            Sets the networking mode for the run commands during build. Supported
6350
+            standard values are: `bridge`, `host`, `none`, and `container:<name|id>`.
6351
+            Any other value is taken as a custom network's name or ID to which this
6352
+            container should connect to.
6352 6353
           type: "string"
6353 6354
         - name: "Content-type"
6354 6355
           in: "header"
... ...
@@ -6420,7 +6990,11 @@ paths:
6420 6420
           in: "query"
6421 6421
           type: "string"
6422 6422
           description: |
6423
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the list of build cache objects. Available filters:
6423
+            A JSON encoded value of the filters (a `map[string][]string`) to
6424
+            process on the list of build cache objects.
6425
+
6426
+            Available filters:
6427
+
6424 6428
             - `until=<duration>`: duration relative to daemon's time, during which build cache was not used, in Go's duration format (e.g., '24h')
6425 6429
             - `id=<id>`
6426 6430
             - `parent=<id>`
... ...
@@ -6488,6 +7062,10 @@ paths:
6488 6488
           in: "query"
6489 6489
           description: "Tag or digest. If empty when pulling an image, this causes all tags for the given image to be pulled."
6490 6490
           type: "string"
6491
+        - name: "message"
6492
+          in: "query"
6493
+          description: "Set commit message for imported image."
6494
+          type: "string"
6491 6495
         - name: "inputImage"
6492 6496
           in: "body"
6493 6497
           description: "Image content if the value `-` has been specified in fromSrc query parameter"
... ...
@@ -6496,7 +7074,11 @@ paths:
6496 6496
           required: false
6497 6497
         - name: "X-Registry-Auth"
6498 6498
           in: "header"
6499
-          description: "A base64-encoded auth configuration. [See the authentication section for details.](#section/Authentication)"
6499
+          description: |
6500
+            A base64url-encoded auth configuration.
6501
+
6502
+            Refer to the [authentication section](#section/Authentication) for
6503
+            details.
6500 6504
           type: "string"
6501 6505
         - name: "platform"
6502 6506
           in: "query"
... ...
@@ -6695,7 +7277,9 @@ paths:
6695 6695
       description: |
6696 6696
         Push an image to a registry.
6697 6697
 
6698
-        If you wish to push an image on to a private registry, that image must already have a tag which references the registry. For example, `registry.example.com/myimage:latest`.
6698
+        If you wish to push an image on to a private registry, that image must
6699
+        already have a tag which references the registry. For example,
6700
+        `registry.example.com/myimage:latest`.
6699 6701
 
6700 6702
         The push is cancelled if the HTTP connection is closed.
6701 6703
       operationId: "ImagePush"
... ...
@@ -6724,7 +7308,11 @@ paths:
6724 6724
           type: "string"
6725 6725
         - name: "X-Registry-Auth"
6726 6726
           in: "header"
6727
-          description: "A base64-encoded auth configuration. [See the authentication section for details.](#section/Authentication)"
6727
+          description: |
6728
+            A base64url-encoded auth configuration.
6729
+
6730
+            Refer to the [authentication section](#section/Authentication) for
6731
+            details.
6728 6732
           type: "string"
6729 6733
           required: true
6730 6734
       tags: ["Image"]
... ...
@@ -6928,7 +7516,9 @@ paths:
6928 6928
   /auth:
6929 6929
     post:
6930 6930
       summary: "Check auth configuration"
6931
-      description: "Validate credentials for a registry and, if available, get an identity token for accessing the registry without password."
6931
+      description: |
6932
+        Validate credentials for a registry and, if available, get an identity
6933
+        token for accessing the registry without password.
6932 6934
       operationId: "SystemAuth"
6933 6935
       consumes: ["application/json"]
6934 6936
       produces: ["application/json"]
... ...
@@ -7394,11 +7984,16 @@ paths:
7394 7394
     get:
7395 7395
       summary: "Export several images"
7396 7396
       description: |
7397
-        Get a tarball containing all images and metadata for several image repositories.
7397
+        Get a tarball containing all images and metadata for several image
7398
+        repositories.
7398 7399
 
7399
-        For each value of the `names` parameter: if it is a specific name and tag (e.g. `ubuntu:latest`), then only that image (and its parents) are returned; if it is an image ID, similarly only that image (and its parents) are returned and there would be no names referenced in the 'repositories' file for this image ID.
7400
+        For each value of the `names` parameter: if it is a specific name and
7401
+        tag (e.g. `ubuntu:latest`), then only that image (and its parents) are
7402
+        returned; if it is an image ID, similarly only that image (and its parents)
7403
+        are returned and there would be no names referenced in the 'repositories'
7404
+        file for this image ID.
7400 7405
 
7401
-        For details on the format, see [the export image endpoint](#operation/ImageGet).
7406
+        For details on the format, see the [export image endpoint](#operation/ImageGet).
7402 7407
       operationId: "ImageGetAll"
7403 7408
       produces:
7404 7409
         - "application/x-tar"
... ...
@@ -7426,7 +8021,7 @@ paths:
7426 7426
       description: |
7427 7427
         Load a set of images and tags into a repository.
7428 7428
 
7429
-        For details on the format, see [the export image endpoint](#operation/ImageGet).
7429
+        For details on the format, see the [export image endpoint](#operation/ImageGet).
7430 7430
       operationId: "ImageLoad"
7431 7431
       consumes:
7432 7432
         - "application/x-tar"
... ...
@@ -7499,12 +8094,16 @@ paths:
7499 7499
                 description: "Attach to `stderr` of the exec command."
7500 7500
               DetachKeys:
7501 7501
                 type: "string"
7502
-                description: "Override the key sequence for detaching a container. Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`."
7502
+                description: |
7503
+                  Override the key sequence for detaching a container. Format is
7504
+                  a single character `[a-Z]` or `ctrl-<value>` where `<value>`
7505
+                  is one of: `a-z`, `@`, `^`, `[`, `,` or `_`.
7503 7506
               Tty:
7504 7507
                 type: "boolean"
7505 7508
                 description: "Allocate a pseudo-TTY."
7506 7509
               Env:
7507
-                description: "A list of environment variables in the form `[\"VAR=value\", ...]`."
7510
+                description: |
7511
+                  A list of environment variables in the form `["VAR=value", ...]`.
7508 7512
                 type: "array"
7509 7513
                 items:
7510 7514
                   type: "string"
... ...
@@ -7519,10 +8118,14 @@ paths:
7519 7519
                 default: false
7520 7520
               User:
7521 7521
                 type: "string"
7522
-                description: "The user, and optionally, group to run the exec process inside the container. Format is one of: `user`, `user:group`, `uid`, or `uid:gid`."
7522
+                description: |
7523
+                  The user, and optionally, group to run the exec process inside
7524
+                  the container. Format is one of: `user`, `user:group`, `uid`,
7525
+                  or `uid:gid`.
7523 7526
               WorkingDir:
7524 7527
                 type: "string"
7525
-                description: "The working directory for the exec process inside the container."
7528
+                description: |
7529
+                  The working directory for the exec process inside the container.
7526 7530
             example:
7527 7531
               AttachStdin: false
7528 7532
               AttachStdout: true
... ...
@@ -7544,7 +8147,10 @@ paths:
7544 7544
   /exec/{id}/start:
7545 7545
     post:
7546 7546
       summary: "Start an exec instance"
7547
-      description: "Starts a previously set up exec instance. If detach is true, this endpoint returns immediately after starting the command. Otherwise, it sets up an interactive session with the command."
7547
+      description: |
7548
+        Starts a previously set up exec instance. If detach is true, this endpoint
7549
+        returns immediately after starting the command. Otherwise, it sets up an
7550
+        interactive session with the command.
7548 7551
       operationId: "ExecStart"
7549 7552
       consumes:
7550 7553
         - "application/json"
... ...
@@ -7585,7 +8191,9 @@ paths:
7585 7585
   /exec/{id}/resize:
7586 7586
     post:
7587 7587
       summary: "Resize an exec instance"
7588
-      description: "Resize the TTY session used by an exec instance. This endpoint only works if `tty` was specified as part of creating and starting the exec instance."
7588
+      description: |
7589
+        Resize the TTY session used by an exec instance. This endpoint only works
7590
+        if `tty` was specified as part of creating and starting the exec instance.
7589 7591
       operationId: "ExecResize"
7590 7592
       responses:
7591 7593
         201:
... ...
@@ -7705,7 +8313,8 @@ paths:
7705 7705
               Warnings:
7706 7706
                 type: "array"
7707 7707
                 x-nullable: false
7708
-                description: "Warnings that occurred when fetching the list of volumes"
7708
+                description: |
7709
+                  Warnings that occurred when fetching the list of volumes.
7709 7710
                 items:
7710 7711
                   type: "string"
7711 7712
 
... ...
@@ -7774,7 +8383,8 @@ paths:
7774 7774
             title: "VolumeConfig"
7775 7775
             properties:
7776 7776
               Name:
7777
-                description: "The new volume's name. If not specified, Docker generates a name."
7777
+                description: |
7778
+                  The new volume's name. If not specified, Docker generates a name.
7778 7779
                 type: "string"
7779 7780
                 x-nullable: false
7780 7781
               Driver:
... ...
@@ -7783,7 +8393,9 @@ paths:
7783 7783
                 default: "local"
7784 7784
                 x-nullable: false
7785 7785
               DriverOpts:
7786
-                description: "A mapping of driver options and values. These options are passed directly to the driver and are driver specific."
7786
+                description: |
7787
+                  A mapping of driver options and values. These options are
7788
+                  passed directly to the driver and are driver specific.
7787 7789
                 type: "object"
7788 7790
                 additionalProperties:
7789 7791
                   type: "string"
... ...
@@ -7897,10 +8509,12 @@ paths:
7897 7897
     get:
7898 7898
       summary: "List networks"
7899 7899
       description: |
7900
-        Returns a list of networks. For details on the format, see [the network inspect endpoint](#operation/NetworkInspect).
7900
+        Returns a list of networks. For details on the format, see the
7901
+        [network inspect endpoint](#operation/NetworkInspect).
7901 7902
 
7902
-        Note that it uses a different, smaller representation of a network than inspecting a single network. For example,
7903
-        the list of containers attached to the network is not propagated in API versions 1.28 and up.
7903
+        Note that it uses a different, smaller representation of a network than
7904
+        inspecting a single network. For example, the list of containers attached
7905
+        to the network is not propagated in API versions 1.28 and up.
7904 7906
       operationId: "NetworkList"
7905 7907
       produces:
7906 7908
         - "application/json"
... ...
@@ -7970,7 +8584,10 @@ paths:
7970 7970
         - name: "filters"
7971 7971
           in: "query"
7972 7972
           description: |
7973
-            JSON encoded value of the filters (a `map[string][]string`) to process on the networks list. Available filters:
7973
+            JSON encoded value of the filters (a `map[string][]string`) to process
7974
+            on the networks list.
7975
+
7976
+            Available filters:
7974 7977
 
7975 7978
             - `driver=<driver-name>` Matches a network's driver.
7976 7979
             - `id=<network-id>` Matches all or part of a network ID.
... ...
@@ -8091,7 +8708,14 @@ paths:
8091 8091
                 description: "The network's name."
8092 8092
                 type: "string"
8093 8093
               CheckDuplicate:
8094
-                description: "Check for networks with duplicate names. Since Network is primarily keyed based on a random ID and not on the name, and network name is strictly a user-friendly alias to the network which is uniquely identified using ID, there is no guaranteed way to check for duplicates. CheckDuplicate is there to provide a best effort checking of any networks which has the same name but it is not guaranteed to catch all name collisions."
8094
+                description: |
8095
+                  Check for networks with duplicate names. Since Network is
8096
+                  primarily keyed based on a random ID and not on the name, and
8097
+                  network name is strictly a user-friendly alias to the network
8098
+                  which is uniquely identified using ID, there is no guaranteed
8099
+                  way to check for duplicates. CheckDuplicate is there to provide
8100
+                  a best effort checking of any networks which has the same name
8101
+                  but it is not guaranteed to catch all name collisions.
8095 8102
                 type: "boolean"
8096 8103
               Driver:
8097 8104
                 description: "Name of the network driver plugin to use."
... ...
@@ -8101,10 +8725,14 @@ paths:
8101 8101
                 description: "Restrict external access to the network."
8102 8102
                 type: "boolean"
8103 8103
               Attachable:
8104
-                description: "Globally scoped network is manually attachable by regular containers from workers in swarm mode."
8104
+                description: |
8105
+                  Globally scoped network is manually attachable by regular
8106
+                  containers from workers in swarm mode.
8105 8107
                 type: "boolean"
8106 8108
               Ingress:
8107
-                description: "Ingress network is the network which provides the routing-mesh in swarm mode."
8109
+                description: |
8110
+                  Ingress network is the network which provides the routing-mesh
8111
+                  in swarm mode.
8108 8112
                 type: "boolean"
8109 8113
               IPAM:
8110 8114
                 description: "Optional custom IP scheme for the network."
... ...
@@ -8233,10 +8861,12 @@ paths:
8233 8233
             properties:
8234 8234
               Container:
8235 8235
                 type: "string"
8236
-                description: "The ID or name of the container to disconnect from the network."
8236
+                description: |
8237
+                  The ID or name of the container to disconnect from the network.
8237 8238
               Force:
8238 8239
                 type: "boolean"
8239
-                description: "Force the container to disconnect from the network."
8240
+                description: |
8241
+                  Force the container to disconnect from the network.
8240 8242
       tags: ["Network"]
8241 8243
   /networks/prune:
8242 8244
     post:
... ...
@@ -8293,7 +8923,10 @@ paths:
8293 8293
           in: "query"
8294 8294
           type: "string"
8295 8295
           description: |
8296
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the plugin list. Available filters:
8296
+            A JSON encoded value of the filters (a `map[string][]string`) to
8297
+            process on the plugin list.
8298
+
8299
+            Available filters:
8297 8300
 
8298 8301
             - `capability=<capability name>`
8299 8302
             - `enable=<true>|<false>`
... ...
@@ -8309,7 +8942,9 @@ paths:
8309 8309
           schema:
8310 8310
             type: "array"
8311 8311
             items:
8312
-              description: "Describes a permission the user has to accept upon installing the plugin."
8312
+              description: |
8313
+                Describes a permission the user has to accept upon installing
8314
+                the plugin.
8313 8315
               type: "object"
8314 8316
               title: "PluginPrivilegeItem"
8315 8317
               properties:
... ...
@@ -8341,7 +8976,9 @@ paths:
8341 8341
       parameters:
8342 8342
         - name: "remote"
8343 8343
           in: "query"
8344
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8344
+          description: |
8345
+            The name of the plugin. The `:latest` tag is optional, and is the
8346
+            default if omitted.
8345 8347
           required: true
8346 8348
           type: "string"
8347 8349
       tags:
... ...
@@ -8352,7 +8989,8 @@ paths:
8352 8352
       summary: "Install a plugin"
8353 8353
       operationId: "PluginPull"
8354 8354
       description: |
8355
-        Pulls and installs a plugin. After the plugin is installed, it can be enabled using the [`POST /plugins/{name}/enable` endpoint](#operation/PostPluginsEnable).
8355
+        Pulls and installs a plugin. After the plugin is installed, it can be
8356
+        enabled using the [`POST /plugins/{name}/enable` endpoint](#operation/PostPluginsEnable).
8356 8357
       produces:
8357 8358
         - "application/json"
8358 8359
       responses:
... ...
@@ -8381,14 +9019,21 @@ paths:
8381 8381
           type: "string"
8382 8382
         - name: "X-Registry-Auth"
8383 8383
           in: "header"
8384
-          description: "A base64-encoded auth configuration to use when pulling a plugin from a registry. [See the authentication section for details.](#section/Authentication)"
8384
+          description: |
8385
+            A base64url-encoded auth configuration to use when pulling a plugin
8386
+            from a registry.
8387
+
8388
+            Refer to the [authentication section](#section/Authentication) for
8389
+            details.
8385 8390
           type: "string"
8386 8391
         - name: "body"
8387 8392
           in: "body"
8388 8393
           schema:
8389 8394
             type: "array"
8390 8395
             items:
8391
-              description: "Describes a permission accepted by the user upon installing the plugin."
8396
+              description: |
8397
+                Describes a permission accepted by the user upon installing the
8398
+                plugin.
8392 8399
               type: "object"
8393 8400
               properties:
8394 8401
                 Name:
... ...
@@ -8433,7 +9078,9 @@ paths:
8433 8433
       parameters:
8434 8434
         - name: "name"
8435 8435
           in: "path"
8436
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8436
+          description: |
8437
+            The name of the plugin. The `:latest` tag is optional, and is the
8438
+            default if omitted.
8437 8439
           required: true
8438 8440
           type: "string"
8439 8441
       tags: ["Plugin"]
... ...
@@ -8457,12 +9104,16 @@ paths:
8457 8457
       parameters:
8458 8458
         - name: "name"
8459 8459
           in: "path"
8460
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8460
+          description: |
8461
+            The name of the plugin. The `:latest` tag is optional, and is the
8462
+            default if omitted.
8461 8463
           required: true
8462 8464
           type: "string"
8463 8465
         - name: "force"
8464 8466
           in: "query"
8465
-          description: "Disable the plugin before removing. This may result in issues if the plugin is in use by a container."
8467
+          description: |
8468
+            Disable the plugin before removing. This may result in issues if the
8469
+            plugin is in use by a container.
8466 8470
           type: "boolean"
8467 8471
           default: false
8468 8472
       tags: ["Plugin"]
... ...
@@ -8484,7 +9135,9 @@ paths:
8484 8484
       parameters:
8485 8485
         - name: "name"
8486 8486
           in: "path"
8487
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8487
+          description: |
8488
+            The name of the plugin. The `:latest` tag is optional, and is the
8489
+            default if omitted.
8488 8490
           required: true
8489 8491
           type: "string"
8490 8492
         - name: "timeout"
... ...
@@ -8511,7 +9164,9 @@ paths:
8511 8511
       parameters:
8512 8512
         - name: "name"
8513 8513
           in: "path"
8514
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8514
+          description: |
8515
+            The name of the plugin. The `:latest` tag is optional, and is the
8516
+            default if omitted.
8515 8517
           required: true
8516 8518
           type: "string"
8517 8519
       tags: ["Plugin"]
... ...
@@ -8533,7 +9188,9 @@ paths:
8533 8533
       parameters:
8534 8534
         - name: "name"
8535 8535
           in: "path"
8536
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8536
+          description: |
8537
+            The name of the plugin. The `:latest` tag is optional, and is the
8538
+            default if omitted.
8537 8539
           required: true
8538 8540
           type: "string"
8539 8541
         - name: "remote"
... ...
@@ -8546,14 +9203,21 @@ paths:
8546 8546
           type: "string"
8547 8547
         - name: "X-Registry-Auth"
8548 8548
           in: "header"
8549
-          description: "A base64-encoded auth configuration to use when pulling a plugin from a registry. [See the authentication section for details.](#section/Authentication)"
8549
+          description: |
8550
+            A base64url-encoded auth configuration to use when pulling a plugin
8551
+            from a registry.
8552
+
8553
+            Refer to the [authentication section](#section/Authentication) for
8554
+            details.
8550 8555
           type: "string"
8551 8556
         - name: "body"
8552 8557
           in: "body"
8553 8558
           schema:
8554 8559
             type: "array"
8555 8560
             items:
8556
-              description: "Describes a permission accepted by the user upon installing the plugin."
8561
+              description: |
8562
+                Describes a permission accepted by the user upon installing the
8563
+                plugin.
8557 8564
               type: "object"
8558 8565
               properties:
8559 8566
                 Name:
... ...
@@ -8594,7 +9258,9 @@ paths:
8594 8594
       parameters:
8595 8595
         - name: "name"
8596 8596
           in: "query"
8597
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8597
+          description: |
8598
+            The name of the plugin. The `:latest` tag is optional, and is the
8599
+            default if omitted.
8598 8600
           required: true
8599 8601
           type: "string"
8600 8602
         - name: "tarContext"
... ...
@@ -8613,7 +9279,9 @@ paths:
8613 8613
       parameters:
8614 8614
         - name: "name"
8615 8615
           in: "path"
8616
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8616
+          description: |
8617
+            The name of the plugin. The `:latest` tag is optional, and is the
8618
+            default if omitted.
8617 8619
           required: true
8618 8620
           type: "string"
8619 8621
       responses:
... ...
@@ -8637,7 +9305,9 @@ paths:
8637 8637
       parameters:
8638 8638
         - name: "name"
8639 8639
           in: "path"
8640
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8640
+          description: |
8641
+            The name of the plugin. The `:latest` tag is optional, and is the
8642
+            default if omitted.
8641 8643
           required: true
8642 8644
           type: "string"
8643 8645
         - name: "body"
... ...
@@ -8785,7 +9455,9 @@ paths:
8785 8785
             $ref: "#/definitions/NodeSpec"
8786 8786
         - name: "version"
8787 8787
           in: "query"
8788
-          description: "The version number of the node object being updated. This is required to avoid conflicting writes."
8788
+          description: |
8789
+            The version number of the node object being updated. This is required
8790
+            to avoid conflicting writes.
8789 8791
           type: "integer"
8790 8792
           format: "int64"
8791 8793
           required: true
... ...
@@ -8846,24 +9518,40 @@ paths:
8846 8846
             type: "object"
8847 8847
             properties:
8848 8848
               ListenAddr:
8849
-                description: "Listen address used for inter-manager communication, as well as determining the networking interface used for the VXLAN Tunnel Endpoint (VTEP). This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the default swarm listening port is used."
8849
+                description: |
8850
+                  Listen address used for inter-manager communication, as well
8851
+                  as determining the networking interface used for the VXLAN
8852
+                  Tunnel Endpoint (VTEP). This can either be an address/port
8853
+                  combination in the form `192.168.1.1:4567`, or an interface
8854
+                  followed by a port number, like `eth0:4567`. If the port number
8855
+                  is omitted, the default swarm listening port is used.
8850 8856
                 type: "string"
8851 8857
               AdvertiseAddr:
8852
-                description: "Externally reachable address advertised to other nodes. This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the port number from the listen address is used. If `AdvertiseAddr` is not specified, it will be automatically detected when possible."
8858
+                description: |
8859
+                  Externally reachable address advertised to other nodes. This
8860
+                  can either be an address/port combination in the form
8861
+                  `192.168.1.1:4567`, or an interface followed by a port number,
8862
+                  like `eth0:4567`. If the port number is omitted, the port
8863
+                  number from the listen address is used. If `AdvertiseAddr` is
8864
+                  not specified, it will be automatically detected when possible.
8853 8865
                 type: "string"
8854 8866
               DataPathAddr:
8855 8867
                 description: |
8856
-                  Address or interface to use for data path traffic (format: `<ip|interface>`), for example,  `192.168.1.1`,
8857
-                  or an interface, like `eth0`. If `DataPathAddr` is unspecified, the same address as `AdvertiseAddr`
8858
-                  is used.
8859
-
8860
-                  The `DataPathAddr` specifies the address that global scope network drivers will publish towards other
8861
-                  nodes in order to reach the containers running on this node. Using this parameter it is possible to
8862
-                  separate the container data traffic from the management traffic of the cluster.
8868
+                  Address or interface to use for data path traffic (format:
8869
+                  `<ip|interface>`), for example,  `192.168.1.1`, or an interface,
8870
+                  like `eth0`. If `DataPathAddr` is unspecified, the same address
8871
+                  as `AdvertiseAddr` is used.
8872
+
8873
+                  The `DataPathAddr` specifies the address that global scope
8874
+                  network drivers will publish towards other  nodes in order to
8875
+                  reach the containers running on this node. Using this parameter
8876
+                  it is possible to separate the container data traffic from the
8877
+                  management traffic of the cluster.
8863 8878
                 type: "string"
8864 8879
               DefaultAddrPool:
8865 8880
                 description: |
8866
-                  Default Address Pool specifies default subnet pools for global scope networks.
8881
+                  Default Address Pool specifies default subnet pools for global
8882
+                  scope networks.
8867 8883
                 type: "array"
8868 8884
                 items:
8869 8885
                   type: "string"
... ...
@@ -8873,7 +9561,8 @@ paths:
8873 8873
                 type: "boolean"
8874 8874
               SubnetSize:
8875 8875
                 description: |
8876
-                  SubnetSize specifies the subnet size of the networks created from the default subnet pool
8876
+                  SubnetSize specifies the subnet size of the networks created
8877
+                  from the default subnet pool.
8877 8878
                 type: "integer"
8878 8879
                 format: "uint32"
8879 8880
               Spec:
... ...
@@ -8919,24 +9608,37 @@ paths:
8919 8919
             type: "object"
8920 8920
             properties:
8921 8921
               ListenAddr:
8922
-                description: "Listen address used for inter-manager communication if the node gets promoted to manager, as well as determining the networking interface used for the VXLAN Tunnel Endpoint (VTEP)."
8922
+                description: |
8923
+                  Listen address used for inter-manager communication if the node
8924
+                  gets promoted to manager, as well as determining the networking
8925
+                  interface used for the VXLAN Tunnel Endpoint (VTEP).
8923 8926
                 type: "string"
8924 8927
               AdvertiseAddr:
8925
-                description: "Externally reachable address advertised to other nodes. This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the port number from the listen address is used. If `AdvertiseAddr` is not specified, it will be automatically detected when possible."
8928
+                description: |
8929
+                  Externally reachable address advertised to other nodes. This
8930
+                  can either be an address/port combination in the form
8931
+                  `192.168.1.1:4567`, or an interface followed by a port number,
8932
+                  like `eth0:4567`. If the port number is omitted, the port
8933
+                  number from the listen address is used. If `AdvertiseAddr` is
8934
+                  not specified, it will be automatically detected when possible.
8926 8935
                 type: "string"
8927 8936
               DataPathAddr:
8928 8937
                 description: |
8929
-                  Address or interface to use for data path traffic (format: `<ip|interface>`), for example,  `192.168.1.1`,
8930
-                  or an interface, like `eth0`. If `DataPathAddr` is unspecified, the same address as `AdvertiseAddr`
8931
-                  is used.
8938
+                  Address or interface to use for data path traffic (format:
8939
+                  `<ip|interface>`), for example,  `192.168.1.1`, or an interface,
8940
+                  like `eth0`. If `DataPathAddr` is unspecified, the same addres
8941
+                  as `AdvertiseAddr` is used.
8932 8942
 
8933
-                  The `DataPathAddr` specifies the address that global scope network drivers will publish towards other
8934
-                  nodes in order to reach the containers running on this node. Using this parameter it is possible to
8935
-                  separate the container data traffic from the management traffic of the cluster.
8943
+                  The `DataPathAddr` specifies the address that global scope
8944
+                  network drivers will publish towards other nodes in order to
8945
+                  reach the containers running on this node. Using this parameter
8946
+                  it is possible to separate the container data traffic from the
8947
+                  management traffic of the cluster.
8936 8948
 
8937 8949
                 type: "string"
8938 8950
               RemoteAddrs:
8939
-                description: "Addresses of manager nodes already participating in the swarm."
8951
+                description: |
8952
+                  Addresses of manager nodes already participating in the swarm.
8940 8953
                 type: "array"
8941 8954
                 items:
8942 8955
                   type: "string"
... ...
@@ -8967,7 +9669,9 @@ paths:
8967 8967
             $ref: "#/definitions/ErrorResponse"
8968 8968
       parameters:
8969 8969
         - name: "force"
8970
-          description: "Force leave swarm, even if this is the last manager or that it will break the cluster."
8970
+          description: |
8971
+            Force leave swarm, even if this is the last manager or that it will
8972
+            break the cluster.
8971 8973
           in: "query"
8972 8974
           type: "boolean"
8973 8975
           default: false
... ...
@@ -8999,7 +9703,9 @@ paths:
8999 8999
             $ref: "#/definitions/SwarmSpec"
9000 9000
         - name: "version"
9001 9001
           in: "query"
9002
-          description: "The version number of the swarm object being updated. This is required to avoid conflicting writes."
9002
+          description: |
9003
+            The version number of the swarm object being updated. This is
9004
+            required to avoid conflicting writes.
9003 9005
           type: "integer"
9004 9006
           format: "int64"
9005 9007
           required: true
... ...
@@ -9102,7 +9808,10 @@ paths:
9102 9102
           in: "query"
9103 9103
           type: "string"
9104 9104
           description: |
9105
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the services list. Available filters:
9105
+            A JSON encoded value of the filters (a `map[string][]string`) to
9106
+            process on the services list.
9107
+
9108
+            Available filters:
9106 9109
 
9107 9110
             - `id=<service id>`
9108 9111
             - `label=<service label>`
... ...
@@ -9230,7 +9939,12 @@ paths:
9230 9230
                     foo: "bar"
9231 9231
         - name: "X-Registry-Auth"
9232 9232
           in: "header"
9233
-          description: "A base64-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)"
9233
+          description: |
9234
+            A base64url-encoded auth configuration for pulling from private
9235
+            registries.
9236
+
9237
+            Refer to the [authentication section](#section/Authentication) for
9238
+            details.
9234 9239
           type: "string"
9235 9240
       tags: ["Service"]
9236 9241
   /services/{id}:
... ...
@@ -9366,28 +10080,37 @@ paths:
9366 9366
 
9367 9367
         - name: "version"
9368 9368
           in: "query"
9369
-          description: "The version number of the service object being updated.
9370
-          This is required to avoid conflicting writes.
9371
-          This version number should be the value as currently set on the service *before* the update.
9372
-          You can find the current version by calling `GET /services/{id}`"
9369
+          description: |
9370
+            The version number of the service object being updated. This is
9371
+            required to avoid conflicting writes.
9372
+            This version number should be the value as currently set on the
9373
+            service *before* the update. You can find the current version by
9374
+            calling `GET /services/{id}`
9373 9375
           required: true
9374 9376
           type: "integer"
9375 9377
         - name: "registryAuthFrom"
9376 9378
           in: "query"
9379
+          description: |
9380
+            If the `X-Registry-Auth` header is not specified, this parameter
9381
+            indicates where to find registry authorization credentials.
9377 9382
           type: "string"
9378
-          description: "If the X-Registry-Auth header is not specified, this
9379
-  parameter indicates where to find registry authorization credentials. The
9380
-  valid values are `spec` and `previous-spec`."
9383
+          enum: ["spec", "previous-spec"]
9381 9384
           default: "spec"
9382 9385
         - name: "rollback"
9383 9386
           in: "query"
9387
+          description: |
9388
+            Set to this parameter to `previous` to cause a server-side rollback
9389
+            to the previous service spec. The supplied spec will be ignored in
9390
+            this case.
9384 9391
           type: "string"
9385
-          description: "Set to this parameter to `previous` to cause a
9386
-  server-side rollback to the previous service spec. The supplied spec will be
9387
-  ignored in this case."
9388 9392
         - name: "X-Registry-Auth"
9389 9393
           in: "header"
9390
-          description: "A base64-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)"
9394
+          description: |
9395
+            A base64url-encoded auth configuration for pulling from private
9396
+            registries.
9397
+
9398
+            Refer to the [authentication section](#section/Authentication) for
9399
+            details.
9391 9400
           type: "string"
9392 9401
 
9393 9402
       tags: ["Service"]
... ...
@@ -9395,9 +10118,11 @@ paths:
9395 9395
     get:
9396 9396
       summary: "Get service logs"
9397 9397
       description: |
9398
-        Get `stdout` and `stderr` logs from a service.
9398
+        Get `stdout` and `stderr` logs from a service. See also
9399
+        [`/containers/{id}/logs`](#operation/ContainerLogs).
9399 9400
 
9400
-        **Note**: This endpoint works only for services with the `json-file` or `journald` logging drivers.
9401
+        **Note**: This endpoint works only for services with the `json-file` or
9402
+        `journald` logging drivers.
9401 9403
       operationId: "ServiceLogs"
9402 9404
       produces:
9403 9405
         - "application/vnd.docker.raw-stream"
... ...
@@ -9468,7 +10193,9 @@ paths:
9468 9468
           default: false
9469 9469
         - name: "tail"
9470 9470
           in: "query"
9471
-          description: "Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines."
9471
+          description: |
9472
+            Only return this number of log lines from the end of the logs.
9473
+            Specify as an integer or `all` to output all log lines.
9472 9474
           type: "string"
9473 9475
           default: "all"
9474 9476
       tags: ["Service"]
... ...
@@ -9609,7 +10336,10 @@ paths:
9609 9609
           in: "query"
9610 9610
           type: "string"
9611 9611
           description: |
9612
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the tasks list. Available filters:
9612
+            A JSON encoded value of the filters (a `map[string][]string`) to
9613
+            process on the tasks list.
9614
+
9615
+            Available filters:
9613 9616
 
9614 9617
             - `desired-state=(running | shutdown | accepted)`
9615 9618
             - `id=<task id>`
... ...
@@ -9653,8 +10383,10 @@ paths:
9653 9653
       summary: "Get task logs"
9654 9654
       description: |
9655 9655
         Get `stdout` and `stderr` logs from a task.
9656
+        See also [`/containers/{id}/logs`](#operation/ContainerLogs).
9656 9657
 
9657
-        **Note**: This endpoint works only for services with the `json-file` or `journald` logging drivers.
9658
+        **Note**: This endpoint works only for services with the `json-file` or
9659
+        `journald` logging drivers.
9658 9660
       operationId: "TaskLogs"
9659 9661
       produces:
9660 9662
         - "application/vnd.docker.raw-stream"
... ...
@@ -9725,9 +10457,12 @@ paths:
9725 9725
           default: false
9726 9726
         - name: "tail"
9727 9727
           in: "query"
9728
-          description: "Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines."
9728
+          description: |
9729
+            Only return this number of log lines from the end of the logs.
9730
+            Specify as an integer or `all` to output all log lines.
9729 9731
           type: "string"
9730 9732
           default: "all"
9733
+      tags: ["Task"]
9731 9734
   /secrets:
9732 9735
     get:
9733 9736
       summary: "List secrets"
... ...
@@ -9778,7 +10513,10 @@ paths:
9778 9778
           in: "query"
9779 9779
           type: "string"
9780 9780
           description: |
9781
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the secrets list. Available filters:
9781
+            A JSON encoded value of the filters (a `map[string][]string`) to
9782
+            process on the secrets list.
9783
+
9784
+            Available filters:
9782 9785
 
9783 9786
             - `id=<secret id>`
9784 9787
             - `label=<key> or label=<key>=value`
... ...
@@ -9935,10 +10673,15 @@ paths:
9935 9935
           in: "body"
9936 9936
           schema:
9937 9937
             $ref: "#/definitions/SecretSpec"
9938
-          description: "The spec of the secret to update. Currently, only the Labels field can be updated. All other fields must remain unchanged from the [SecretInspect endpoint](#operation/SecretInspect) response values."
9938
+          description: |
9939
+            The spec of the secret to update. Currently, only the Labels field
9940
+            can be updated. All other fields must remain unchanged from the
9941
+            [SecretInspect endpoint](#operation/SecretInspect) response values.
9939 9942
         - name: "version"
9940 9943
           in: "query"
9941
-          description: "The version number of the secret object being updated. This is required to avoid conflicting writes."
9944
+          description: |
9945
+            The version number of the secret object being updated. This is
9946
+            required to avoid conflicting writes.
9942 9947
           type: "integer"
9943 9948
           format: "int64"
9944 9949
           required: true
... ...
@@ -9977,7 +10720,10 @@ paths:
9977 9977
           in: "query"
9978 9978
           type: "string"
9979 9979
           description: |
9980
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the configs list. Available filters:
9980
+            A JSON encoded value of the filters (a `map[string][]string`) to
9981
+            process on the configs list.
9982
+
9983
+            Available filters:
9981 9984
 
9982 9985
             - `id=<config id>`
9983 9986
             - `label=<key> or label=<key>=value`
... ...
@@ -10121,10 +10867,15 @@ paths:
10121 10121
           in: "body"
10122 10122
           schema:
10123 10123
             $ref: "#/definitions/ConfigSpec"
10124
-          description: "The spec of the config to update. Currently, only the Labels field can be updated. All other fields must remain unchanged from the [ConfigInspect endpoint](#operation/ConfigInspect) response values."
10124
+          description: |
10125
+            The spec of the config to update. Currently, only the Labels field
10126
+            can be updated. All other fields must remain unchanged from the
10127
+            [ConfigInspect endpoint](#operation/ConfigInspect) response values.
10125 10128
         - name: "version"
10126 10129
           in: "query"
10127
-          description: "The version number of the config object being updated. This is required to avoid conflicting writes."
10130
+          description: |
10131
+            The version number of the config object being updated. This is
10132
+            required to avoid conflicting writes.
10128 10133
           type: "integer"
10129 10134
           format: "int64"
10130 10135
           required: true
... ...
@@ -10132,7 +10883,8 @@ paths:
10132 10132
   /distribution/{name}/json:
10133 10133
     get:
10134 10134
       summary: "Get image information from the registry"
10135
-      description: "Return image digest and platform information by contacting the registry."
10135
+      description: |
10136
+        Return image digest and platform information by contacting the registry.
10136 10137
       operationId: "DistributionInspect"
10137 10138
       produces:
10138 10139
         - "application/json"
... ...
@@ -10147,7 +10899,8 @@ paths:
10147 10147
             properties:
10148 10148
               Descriptor:
10149 10149
                 type: "object"
10150
-                description: "A descriptor struct containing digest, media type, and size"
10150
+                description: |
10151
+                  A descriptor struct containing digest, media type, and size.
10151 10152
                 properties:
10152 10153
                   MediaType:
10153 10154
                     type: "string"
... ...
@@ -10162,7 +10915,8 @@ paths:
10162 10162
                       type: "string"
10163 10163
               Platforms:
10164 10164
                 type: "array"
10165
-                description: "An array containing all platforms supported by the image"
10165
+                description: |
10166
+                  An array containing all platforms supported by the image.
10166 10167
                 items:
10167 10168
                   type: "object"
10168 10169
                   properties:
... ...
@@ -10221,14 +10975,16 @@ paths:
10221 10221
     post:
10222 10222
       summary: "Initialize interactive session"
10223 10223
       description: |
10224
-        Start a new interactive session with a server. Session allows server to call back to the client for advanced capabilities.
10224
+        Start a new interactive session with a server. Session allows server to
10225
+        call back to the client for advanced capabilities.
10225 10226
 
10226 10227
         > **Note**: This endpoint is *experimental* and only available if the daemon is started with experimental
10227 10228
         > features enabled. The specifications for this endpoint may still change in a future version of the API.
10228 10229
 
10229 10230
         ### Hijacking
10230 10231
 
10231
-        This endpoint hijacks the HTTP connection to HTTP2 transport that allows the client to expose gPRC services on that connection.
10232
+        This endpoint hijacks the HTTP connection to HTTP2 transport that allows
10233
+        the client to expose gPRC services on that connection.
10232 10234
 
10233 10235
         For example, the client sends this request to upgrade the connection:
10234 10236
 
... ...
@@ -10238,7 +10994,8 @@ paths:
10238 10238
         Connection: Upgrade
10239 10239
         ```
10240 10240
 
10241
-        The Docker daemon will respond with a `101 UPGRADED` response follow with the raw stream:
10241
+        The Docker daemon responds with a `101 UPGRADED` response follow with
10242
+        the raw stream:
10242 10243
 
10243 10244
         ```
10244 10245
         HTTP/1.1 101 UPGRADED
... ...
@@ -26,13 +26,19 @@ info:
26 26
   x-logo:
27 27
     url: "https://docs.docker.com/images/logo-docker-main.png"
28 28
   description: |
29
-    The Engine API is an HTTP API served by Docker Engine. It is the API the Docker client uses to communicate with the Engine, so everything the Docker client can do can be done with the API.
29
+    The Engine API is an HTTP API served by Docker Engine. It is the API the
30
+    Docker client uses to communicate with the Engine, so everything the Docker
31
+    client can do can be done with the API.
30 32
 
31
-    Most of the client's commands map directly to API endpoints (e.g. `docker ps` is `GET /containers/json`). The notable exception is running containers, which consists of several API calls.
33
+    Most of the client's commands map directly to API endpoints (e.g. `docker ps`
34
+    is `GET /containers/json`). The notable exception is running containers,
35
+    which consists of several API calls.
32 36
 
33 37
     # Errors
34 38
 
35
-    The API uses standard HTTP status codes to indicate the success or failure of the API call. The body of the response will be JSON in the following format:
39
+    The API uses standard HTTP status codes to indicate the success or failure
40
+    of the API call. The body of the response will be JSON in the following
41
+    format:
36 42
 
37 43
     ```
38 44
     {
... ...
@@ -65,7 +71,11 @@ info:
65 65
 
66 66
     # Authentication
67 67
 
68
-    Authentication for registries is handled client side. The client has to send authentication details to various endpoints that need to communicate with registries, such as `POST /images/(name)/push`. These are sent as `X-Registry-Auth` header as a Base64 encoded (JSON) string with the following structure:
68
+    Authentication for registries is handled client side. The client has to send
69
+    authentication details to various endpoints that need to communicate with
70
+    registries, such as `POST /images/(name)/push`. These are sent as
71
+    `X-Registry-Auth` header as a [base64url encoded](https://tools.ietf.org/html/rfc4648#section-5)
72
+    (JSON) string with the following structure:
69 73
 
70 74
     ```
71 75
     {
... ...
@@ -76,9 +86,11 @@ info:
76 76
     }
77 77
     ```
78 78
 
79
-    The `serveraddress` is a domain/IP without a protocol. Throughout this structure, double quotes are required.
79
+    The `serveraddress` is a domain/IP without a protocol. Throughout this
80
+    structure, double quotes are required.
80 81
 
81
-    If you have already got an identity token from the [`/auth` endpoint](#operation/SystemAuth), you can just pass this instead of credentials:
82
+    If you have already got an identity token from the [`/auth` endpoint](#operation/SystemAuth),
83
+    you can just pass this instead of credentials:
82 84
 
83 85
     ```
84 86
     {
... ...
@@ -104,7 +116,9 @@ tags:
104 104
   - name: "Network"
105 105
     x-displayName: "Networks"
106 106
     description: |
107
-      Networks are user-defined networks that containers can be attached to. See the [networking documentation](https://docs.docker.com/engine/userguide/networking/) for more information.
107
+      Networks are user-defined networks that containers can be attached to.
108
+      See the [networking documentation](https://docs.docker.com/network/)
109
+      for more information.
108 110
   - name: "Volume"
109 111
     x-displayName: "Volumes"
110 112
     description: |
... ...
@@ -112,34 +126,46 @@ tags:
112 112
   - name: "Exec"
113 113
     x-displayName: "Exec"
114 114
     description: |
115
-      Run new commands inside running containers. See the [command-line reference](https://docs.docker.com/engine/reference/commandline/exec/) for more information.
115
+      Run new commands inside running containers. Refer to the
116
+      [command-line reference](https://docs.docker.com/engine/reference/commandline/exec/)
117
+      for more information.
118
+
119
+      To exec a command in a container, you first need to create an exec instance,
120
+      then start it. These two API endpoints are wrapped up in a single command-line
121
+      command, `docker exec`.
116 122
 
117
-      To exec a command in a container, you first need to create an exec instance, then start it. These two API endpoints are wrapped up in a single command-line command, `docker exec`.
118 123
   # Swarm things
119 124
   - name: "Swarm"
120 125
     x-displayName: "Swarm"
121 126
     description: |
122
-      Engines can be clustered together in a swarm. See [the swarm mode documentation](https://docs.docker.com/engine/swarm/) for more information.
127
+      Engines can be clustered together in a swarm. Refer to the
128
+      [swarm mode documentation](https://docs.docker.com/engine/swarm/)
129
+      for more information.
123 130
   - name: "Node"
124 131
     x-displayName: "Nodes"
125 132
     description: |
126
-      Nodes are instances of the Engine participating in a swarm. Swarm mode must be enabled for these endpoints to work.
133
+      Nodes are instances of the Engine participating in a swarm. Swarm mode
134
+      must be enabled for these endpoints to work.
127 135
   - name: "Service"
128 136
     x-displayName: "Services"
129 137
     description: |
130
-      Services are the definitions of tasks to run on a swarm. Swarm mode must be enabled for these endpoints to work.
138
+      Services are the definitions of tasks to run on a swarm. Swarm mode must
139
+      be enabled for these endpoints to work.
131 140
   - name: "Task"
132 141
     x-displayName: "Tasks"
133 142
     description: |
134
-      A task is a container running on a swarm. It is the atomic scheduling unit of swarm. Swarm mode must be enabled for these endpoints to work.
143
+      A task is a container running on a swarm. It is the atomic scheduling unit
144
+      of swarm. Swarm mode must be enabled for these endpoints to work.
135 145
   - name: "Secret"
136 146
     x-displayName: "Secrets"
137 147
     description: |
138
-      Secrets are sensitive data that can be used by services. Swarm mode must be enabled for these endpoints to work.
148
+      Secrets are sensitive data that can be used by services. Swarm mode must
149
+      be enabled for these endpoints to work.
139 150
   - name: "Config"
140 151
     x-displayName: "Configs"
141 152
     description: |
142
-      Configs are application configurations that can be used by services. Swarm mode must be enabled for these endpoints to work.
153
+      Configs are application configurations that can be used by services. Swarm
154
+      mode must be enabled for these endpoints to work.
143 155
   # System things
144 156
   - name: "Plugin"
145 157
     x-displayName: "Plugins"
... ...
@@ -345,9 +371,11 @@ definitions:
345 345
 
346 346
   RestartPolicy:
347 347
     description: |
348
-      The behavior to apply when the container exits. The default is not to restart.
348
+      The behavior to apply when the container exits. The default is not to
349
+      restart.
349 350
 
350
-      An ever increasing delay (double the previous delay, starting at 100ms) is added before each restart to prevent flooding the server.
351
+      An ever increasing delay (double the previous delay, starting at 100ms) is
352
+      added before each restart to prevent flooding the server.
351 353
     type: "object"
352 354
     properties:
353 355
       Name:
... ...
@@ -364,7 +392,8 @@ definitions:
364 364
           - "on-failure"
365 365
       MaximumRetryCount:
366 366
         type: "integer"
367
-        description: "If `on-failure` is used, the number of times to retry before giving up"
367
+        description: |
368
+          If `on-failure` is used, the number of times to retry before giving up.
368 369
 
369 370
   Resources:
370 371
     description: "A container's resources (cgroups config, ulimits, etc)"
... ...
@@ -372,7 +401,9 @@ definitions:
372 372
     properties:
373 373
       # Applicable to all platforms
374 374
       CpuShares:
375
-        description: "An integer value representing this container's relative CPU weight versus other containers."
375
+        description: |
376
+          An integer value representing this container's relative CPU weight
377
+          versus other containers.
376 378
         type: "integer"
377 379
       Memory:
378 380
         description: "Memory limit in bytes."
... ...
@@ -381,7 +412,11 @@ definitions:
381 381
         default: 0
382 382
       # Applicable to UNIX platforms
383 383
       CgroupParent:
384
-        description: "Path to `cgroups` under which the container's `cgroup` is created. If the path is not absolute, the path is considered to be relative to the `cgroups` path of the init process. Cgroups are created if they do not already exist."
384
+        description: |
385
+          Path to `cgroups` under which the container's `cgroup` is created. If
386
+          the path is not absolute, the path is considered to be relative to the
387
+          `cgroups` path of the init process. Cgroups are created if they do not
388
+          already exist.
385 389
         type: "string"
386 390
       BlkioWeight:
387 391
         description: "Block IO weight (relative weight)."
... ...
@@ -390,7 +425,11 @@ definitions:
390 390
         maximum: 1000
391 391
       BlkioWeightDevice:
392 392
         description: |
393
-          Block IO weight (relative device weight) in the form `[{"Path": "device_path", "Weight": weight}]`.
393
+          Block IO weight (relative device weight) in the form:
394
+
395
+          ```
396
+          [{"Path": "device_path", "Weight": weight}]
397
+          ```
394 398
         type: "array"
395 399
         items:
396 400
           type: "object"
... ...
@@ -402,25 +441,41 @@ definitions:
402 402
               minimum: 0
403 403
       BlkioDeviceReadBps:
404 404
         description: |
405
-          Limit read rate (bytes per second) from a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
405
+          Limit read rate (bytes per second) from a device, in the form:
406
+
407
+          ```
408
+          [{"Path": "device_path", "Rate": rate}]
409
+          ```
406 410
         type: "array"
407 411
         items:
408 412
           $ref: "#/definitions/ThrottleDevice"
409 413
       BlkioDeviceWriteBps:
410 414
         description: |
411
-          Limit write rate (bytes per second) to a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
415
+          Limit write rate (bytes per second) to a device, in the form:
416
+
417
+          ```
418
+          [{"Path": "device_path", "Rate": rate}]
419
+          ```
412 420
         type: "array"
413 421
         items:
414 422
           $ref: "#/definitions/ThrottleDevice"
415 423
       BlkioDeviceReadIOps:
416 424
         description: |
417
-          Limit read rate (IO per second) from a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
425
+          Limit read rate (IO per second) from a device, in the form:
426
+
427
+          ```
428
+          [{"Path": "device_path", "Rate": rate}]
429
+          ```
418 430
         type: "array"
419 431
         items:
420 432
           $ref: "#/definitions/ThrottleDevice"
421 433
       BlkioDeviceWriteIOps:
422 434
         description: |
423
-          Limit write rate (IO per second) to a device, in the form `[{"Path": "device_path", "Rate": rate}]`.
435
+          Limit write rate (IO per second) to a device, in the form:
436
+
437
+          ```
438
+          [{"Path": "device_path", "Rate": rate}]
439
+          ```
424 440
         type: "array"
425 441
         items:
426 442
           $ref: "#/definitions/ThrottleDevice"
... ...
@@ -429,23 +484,31 @@ definitions:
429 429
         type: "integer"
430 430
         format: "int64"
431 431
       CpuQuota:
432
-        description: "Microseconds of CPU time that the container can get in a CPU period."
432
+        description: |
433
+          Microseconds of CPU time that the container can get in a CPU period.
433 434
         type: "integer"
434 435
         format: "int64"
435 436
       CpuRealtimePeriod:
436
-        description: "The length of a CPU real-time period in microseconds. Set to 0 to allocate no time allocated to real-time tasks."
437
+        description: |
438
+          The length of a CPU real-time period in microseconds. Set to 0 to
439
+          allocate no time allocated to real-time tasks.
437 440
         type: "integer"
438 441
         format: "int64"
439 442
       CpuRealtimeRuntime:
440
-        description: "The length of a CPU real-time runtime in microseconds. Set to 0 to allocate no time allocated to real-time tasks."
443
+        description: |
444
+          The length of a CPU real-time runtime in microseconds. Set to 0 to
445
+          allocate no time allocated to real-time tasks.
441 446
         type: "integer"
442 447
         format: "int64"
443 448
       CpusetCpus:
444
-        description: "CPUs in which to allow execution (e.g., `0-3`, `0,1`)"
449
+        description: |
450
+          CPUs in which to allow execution (e.g., `0-3`, `0,1`).
445 451
         type: "string"
446 452
         example: "0-3"
447 453
       CpusetMems:
448
-        description: "Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only effective on NUMA systems."
454
+        description: |
455
+          Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only
456
+          effective on NUMA systems.
449 457
         type: "string"
450 458
       Devices:
451 459
         description: "A list of devices to add to the container."
... ...
@@ -459,7 +522,8 @@ definitions:
459 459
           type: "string"
460 460
           example: "c 13:* rwm"
461 461
       DeviceRequests:
462
-        description: "a list of requests for devices to be sent to device drivers"
462
+        description: |
463
+          A list of requests for devices to be sent to device drivers.
463 464
         type: "array"
464 465
         items:
465 466
           $ref: "#/definitions/DeviceRequest"
... ...
@@ -477,11 +541,15 @@ definitions:
477 477
         type: "integer"
478 478
         format: "int64"
479 479
       MemorySwap:
480
-        description: "Total memory limit (memory + swap). Set as `-1` to enable unlimited swap."
480
+        description: |
481
+          Total memory limit (memory + swap). Set as `-1` to enable unlimited
482
+          swap.
481 483
         type: "integer"
482 484
         format: "int64"
483 485
       MemorySwappiness:
484
-        description: "Tune a container's memory swappiness behavior. Accepts an integer between 0 and 100."
486
+        description: |
487
+          Tune a container's memory swappiness behavior. Accepts an integer
488
+          between 0 and 100.
485 489
         type: "integer"
486 490
         format: "int64"
487 491
         minimum: 0
... ...
@@ -494,18 +562,26 @@ definitions:
494 494
         description: "Disable OOM Killer for the container."
495 495
         type: "boolean"
496 496
       Init:
497
-        description: "Run an init inside the container that forwards signals and reaps processes. This field is omitted if empty, and the default (as configured on the daemon) is used."
497
+        description: |
498
+          Run an init inside the container that forwards signals and reaps
499
+          processes. This field is omitted if empty, and the default (as
500
+          configured on the daemon) is used.
498 501
         type: "boolean"
499 502
         x-nullable: true
500 503
       PidsLimit:
501 504
         description: |
502
-          Tune a container's PIDs limit. Set `0` or `-1` for unlimited, or `null` to not change.
505
+          Tune a container's PIDs limit. Set `0` or `-1` for unlimited, or `null`
506
+          to not change.
503 507
         type: "integer"
504 508
         format: "int64"
505 509
         x-nullable: true
506 510
       Ulimits:
507 511
         description: |
508
-          A list of resource limits to set in the container. For example: `{"Name": "nofile", "Soft": 1024, "Hard": 2048}`"
512
+          A list of resource limits to set in the container. For example:
513
+
514
+          ```
515
+          {"Name": "nofile", "Soft": 1024, "Hard": 2048}
516
+          ```
509 517
         type: "array"
510 518
         items:
511 519
           type: "object"
... ...
@@ -524,14 +600,18 @@ definitions:
524 524
         description: |
525 525
           The number of usable CPUs (Windows only).
526 526
 
527
-          On Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last.
527
+          On Windows Server containers, the processor resource controls are
528
+          mutually exclusive. The order of precedence is `CPUCount` first, then
529
+          `CPUShares`, and `CPUPercent` last.
528 530
         type: "integer"
529 531
         format: "int64"
530 532
       CpuPercent:
531 533
         description: |
532 534
           The usable percentage of the available CPUs (Windows only).
533 535
 
534
-          On Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last.
536
+          On Windows Server containers, the processor resource controls are
537
+          mutually exclusive. The order of precedence is `CPUCount` first, then
538
+          `CPUShares`, and `CPUPercent` last.
535 539
         type: "integer"
536 540
         format: "int64"
537 541
       IOMaximumIOps:
... ...
@@ -539,12 +619,16 @@ definitions:
539 539
         type: "integer"
540 540
         format: "int64"
541 541
       IOMaximumBandwidth:
542
-        description: "Maximum IO in bytes per second for the container system drive (Windows only)"
542
+        description: |
543
+          Maximum IO in bytes per second for the container system drive
544
+          (Windows only).
543 545
         type: "integer"
544 546
         format: "int64"
545 547
 
546 548
   ResourceObject:
547
-    description: "An object describing the resources which can be advertised by a node and requested by a task"
549
+    description: |
550
+      An object describing the resources which can be advertised by a node and
551
+      requested by a task.
548 552
     type: "object"
549 553
     properties:
550 554
       NanoCPUs:
... ...
@@ -559,7 +643,9 @@ definitions:
559 559
         $ref: "#/definitions/GenericResources"
560 560
 
561 561
   GenericResources:
562
-    description: "User-defined resources can be either Integer resources (e.g, `SSD=3`) or String resources (e.g, `GPU=UUID1`)"
562
+    description: |
563
+      User-defined resources can be either Integer resources (e.g, `SSD=3`) or
564
+      String resources (e.g, `GPU=UUID1`).
563 565
     type: "array"
564 566
     items:
565 567
       type: "object"
... ...
@@ -606,16 +692,25 @@ definitions:
606 606
         items:
607 607
           type: "string"
608 608
       Interval:
609
-        description: "The time to wait between checks in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means inherit."
609
+        description: |
610
+          The time to wait between checks in nanoseconds. It should be 0 or at
611
+          least 1000000 (1 ms). 0 means inherit.
610 612
         type: "integer"
611 613
       Timeout:
612
-        description: "The time to wait before considering the check to have hung. It should be 0 or at least 1000000 (1 ms). 0 means inherit."
614
+        description: |
615
+          The time to wait before considering the check to have hung. It should
616
+          be 0 or at least 1000000 (1 ms). 0 means inherit.
613 617
         type: "integer"
614 618
       Retries:
615
-        description: "The number of consecutive failures needed to consider a container as unhealthy. 0 means inherit."
619
+        description: |
620
+          The number of consecutive failures needed to consider a container as
621
+          unhealthy. 0 means inherit.
616 622
         type: "integer"
617 623
       StartPeriod:
618
-        description: "Start period for the container to initialize before starting health-retries countdown in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means inherit."
624
+        description: |
625
+          Start period for the container to initialize before starting
626
+          health-retries countdown in nanoseconds. It should be 0 or at least
627
+          1000000 (1 ms). 0 means inherit.
619 628
         type: "integer"
620 629
 
621 630
   Health:
... ...
@@ -758,25 +853,33 @@ definitions:
758 758
                   type: "string"
759 759
           NetworkMode:
760 760
             type: "string"
761
-            description: "Network mode to use for this container. Supported standard values are: `bridge`, `host`, `none`, and `container:<name|id>`. Any other value is taken
762
-              as a custom network's name to which this container should connect to."
761
+            description: |
762
+              Network mode to use for this container. Supported standard values
763
+              are: `bridge`, `host`, `none`, and `container:<name|id>`. Any
764
+              other value is taken as a custom network's name to which this
765
+              container should connect to.
763 766
           PortBindings:
764 767
             $ref: "#/definitions/PortMap"
765 768
           RestartPolicy:
766 769
             $ref: "#/definitions/RestartPolicy"
767 770
           AutoRemove:
768 771
             type: "boolean"
769
-            description: "Automatically remove the container when the container's process exits. This has no effect if `RestartPolicy` is set."
772
+            description: |
773
+              Automatically remove the container when the container's process
774
+              exits. This has no effect if `RestartPolicy` is set.
770 775
           VolumeDriver:
771 776
             type: "string"
772 777
             description: "Driver that this container uses to mount volumes."
773 778
           VolumesFrom:
774 779
             type: "array"
775
-            description: "A list of volumes to inherit from another container, specified in the form `<container name>[:<ro|rw>]`."
780
+            description: |
781
+              A list of volumes to inherit from another container, specified in
782
+              the form `<container name>[:<ro|rw>]`.
776 783
             items:
777 784
               type: "string"
778 785
           Mounts:
779
-            description: "Specification for mounts to be added to the container."
786
+            description: |
787
+              Specification for mounts to be added to the container.
780 788
             type: "array"
781 789
             items:
782 790
               $ref: "#/definitions/Mount"
... ...
@@ -785,19 +888,24 @@ definitions:
785 785
           Capabilities:
786 786
             type: "array"
787 787
             description: |
788
-              A list of kernel capabilities to be available for container (this overrides the default set).
788
+              A list of kernel capabilities to be available for container (this
789
+              overrides the default set).
789 790
 
790 791
               Conflicts with options 'CapAdd' and 'CapDrop'"
791 792
             items:
792 793
               type: "string"
793 794
           CapAdd:
794 795
             type: "array"
795
-            description: "A list of kernel capabilities to add to the container. Conflicts with option 'Capabilities'"
796
+            description: |
797
+              A list of kernel capabilities to add to the container. Conflicts
798
+              with option 'Capabilities'.
796 799
             items:
797 800
               type: "string"
798 801
           CapDrop:
799 802
             type: "array"
800
-            description: "A list of kernel capabilities to drop from the container. Conflicts with option 'Capabilities'"
803
+            description: |
804
+              A list of kernel capabilities to drop from the container. Conflicts
805
+              with option 'Capabilities'.
801 806
             items:
802 807
               type: "string"
803 808
           Dns:
... ...
@@ -818,43 +926,49 @@ definitions:
818 818
           ExtraHosts:
819 819
             type: "array"
820 820
             description: |
821
-              A list of hostnames/IP mappings to add to the container's `/etc/hosts` file. Specified in the form `["hostname:IP"]`.
821
+              A list of hostnames/IP mappings to add to the container's `/etc/hosts`
822
+              file. Specified in the form `["hostname:IP"]`.
822 823
             items:
823 824
               type: "string"
824 825
           GroupAdd:
825 826
             type: "array"
826
-            description: "A list of additional groups that the container process will run as."
827
+            description: |
828
+              A list of additional groups that the container process will run as.
827 829
             items:
828 830
               type: "string"
829 831
           IpcMode:
830 832
             type: "string"
831 833
             description: |
832
-                    IPC sharing mode for the container. Possible values are:
834
+              IPC sharing mode for the container. Possible values are:
833 835
 
834
-                    - `"none"`: own private IPC namespace, with /dev/shm not mounted
835
-                    - `"private"`: own private IPC namespace
836
-                    - `"shareable"`: own private IPC namespace, with a possibility to share it with other containers
837
-                    - `"container:<name|id>"`: join another (shareable) container's IPC namespace
838
-                    - `"host"`: use the host system's IPC namespace
836
+              - `"none"`: own private IPC namespace, with /dev/shm not mounted
837
+              - `"private"`: own private IPC namespace
838
+              - `"shareable"`: own private IPC namespace, with a possibility to share it with other containers
839
+              - `"container:<name|id>"`: join another (shareable) container's IPC namespace
840
+              - `"host"`: use the host system's IPC namespace
839 841
 
840
-                    If not specified, daemon default is used, which can either be `"private"`
841
-                    or `"shareable"`, depending on daemon version and configuration.
842
+              If not specified, daemon default is used, which can either be `"private"`
843
+              or `"shareable"`, depending on daemon version and configuration.
842 844
           Cgroup:
843 845
             type: "string"
844 846
             description: "Cgroup to use for the container."
845 847
           Links:
846 848
             type: "array"
847
-            description: "A list of links for the container in the form `container_name:alias`."
849
+            description: |
850
+              A list of links for the container in the form `container_name:alias`.
848 851
             items:
849 852
               type: "string"
850 853
           OomScoreAdj:
851 854
             type: "integer"
852
-            description: "An integer value containing the score given to the container in order to tune OOM killer preferences."
855
+            description: |
856
+              An integer value containing the score given to the container in
857
+              order to tune OOM killer preferences.
853 858
             example: 500
854 859
           PidMode:
855 860
             type: "string"
856 861
             description: |
857
-              Set the PID (Process) Namespace mode for the container. It can be either:
862
+              Set the PID (Process) Namespace mode for the container. It can be
863
+              either:
858 864
 
859 865
               - `"container:<name|id>"`: joins another container's PID namespace
860 866
               - `"host"`: use the host's PID namespace inside the container
... ...
@@ -867,11 +981,13 @@ definitions:
867 867
               Allocates an ephemeral host port for all of a container's
868 868
               exposed ports.
869 869
 
870
-              Ports are de-allocated when the container stops and allocated when the container starts.
871
-              The allocated port might be changed when restarting the container.
870
+              Ports are de-allocated when the container stops and allocated when
871
+              the container starts. The allocated port might be changed when
872
+              restarting the container.
872 873
 
873
-              The port is selected from the ephemeral port range that depends on the kernel.
874
-              For example, on Linux the range is defined by `/proc/sys/net/ipv4/ip_local_port_range`.
874
+              The port is selected from the ephemeral port range that depends on
875
+              the kernel. For example, on Linux the range is defined by
876
+              `/proc/sys/net/ipv4/ip_local_port_range`.
875 877
           ReadonlyRootfs:
876 878
             type: "boolean"
877 879
             description: "Mount the container's root filesystem as read only."
... ...
@@ -890,7 +1006,12 @@ definitions:
890 890
           Tmpfs:
891 891
             type: "object"
892 892
             description: |
893
-              A map of container directories which should be replaced by tmpfs mounts, and their corresponding mount options. For example: `{ "/run": "rw,noexec,nosuid,size=65536k" }`.
893
+              A map of container directories which should be replaced by tmpfs
894
+              mounts, and their corresponding mount options. For example:
895
+
896
+              ```
897
+              { "/run": "rw,noexec,nosuid,size=65536k" }
898
+              ```
894 899
             additionalProperties:
895 900
               type: "string"
896 901
           UTSMode:
... ...
@@ -898,15 +1019,23 @@ definitions:
898 898
             description: "UTS namespace to use for the container."
899 899
           UsernsMode:
900 900
             type: "string"
901
-            description: "Sets the usernamespace mode for the container when usernamespace remapping option is enabled."
901
+            description: |
902
+              Sets the usernamespace mode for the container when usernamespace
903
+              remapping option is enabled.
902 904
           ShmSize:
903 905
             type: "integer"
904
-            description: "Size of `/dev/shm` in bytes. If omitted, the system uses 64MB."
906
+            description: |
907
+              Size of `/dev/shm` in bytes. If omitted, the system uses 64MB.
905 908
             minimum: 0
906 909
           Sysctls:
907 910
             type: "object"
908 911
             description: |
909
-              A list of kernel parameters (sysctls) to set in the container. For example: `{"net.ipv4.ip_forward": "1"}`
912
+              A list of kernel parameters (sysctls) to set in the container.
913
+              For example:
914
+
915
+              ```
916
+              {"net.ipv4.ip_forward": "1"}
917
+              ```
910 918
             additionalProperties:
911 919
               type: "string"
912 920
           Runtime:
... ...
@@ -915,7 +1044,8 @@ definitions:
915 915
           # Applicable to Windows
916 916
           ConsoleSize:
917 917
             type: "array"
918
-            description: "Initial console size, as an `[height, width]` array. (Windows only)"
918
+            description: |
919
+              Initial console size, as an `[height, width]` array. (Windows only)
919 920
             minItems: 2
920 921
             maxItems: 2
921 922
             items:
... ...
@@ -923,19 +1053,24 @@ definitions:
923 923
               minimum: 0
924 924
           Isolation:
925 925
             type: "string"
926
-            description: "Isolation technology of the container. (Windows only)"
926
+            description: |
927
+              Isolation technology of the container. (Windows only)
927 928
             enum:
928 929
               - "default"
929 930
               - "process"
930 931
               - "hyperv"
931 932
           MaskedPaths:
932 933
             type: "array"
933
-            description: "The list of paths to be masked inside the container (this overrides the default set of paths)"
934
+            description: |
935
+              The list of paths to be masked inside the container (this overrides
936
+              the default set of paths).
934 937
             items:
935 938
               type: "string"
936 939
           ReadonlyPaths:
937 940
             type: "array"
938
-            description: "The list of paths to be set as read-only inside the container (this overrides the default set of paths)"
941
+            description: |
942
+              The list of paths to be set as read-only inside the container
943
+              (this overrides the default set of paths).
939 944
             items:
940 945
               type: "string"
941 946
 
... ...
@@ -976,7 +1111,8 @@ definitions:
976 976
             - {}
977 977
           default: {}
978 978
       Tty:
979
-        description: "Attach standard streams to a TTY, including `stdin` if it is not closed."
979
+        description: |
980
+          Attach standard streams to a TTY, including `stdin` if it is not closed.
980 981
         type: "boolean"
981 982
         default: false
982 983
       OpenStdin:
... ...
@@ -989,12 +1125,15 @@ definitions:
989 989
         default: false
990 990
       Env:
991 991
         description: |
992
-          A list of environment variables to set inside the container in the form `["VAR=value", ...]`. A variable without `=` is removed from the environment, rather than to have an empty value.
992
+          A list of environment variables to set inside the container in the
993
+          form `["VAR=value", ...]`. A variable without `=` is removed from the
994
+          environment, rather than to have an empty value.
993 995
         type: "array"
994 996
         items:
995 997
           type: "string"
996 998
       Cmd:
997
-        description: "Command to run specified as a string or an array of strings."
999
+        description: |
1000
+          Command to run specified as a string or an array of strings.
998 1001
         type: "array"
999 1002
         items:
1000 1003
           type: "string"
... ...
@@ -1004,10 +1143,13 @@ definitions:
1004 1004
         description: "Command is already escaped (Windows only)"
1005 1005
         type: "boolean"
1006 1006
       Image:
1007
-        description: "The name of the image to use when creating the container"
1007
+        description: |
1008
+          The name of the image to use when creating the container/
1008 1009
         type: "string"
1009 1010
       Volumes:
1010
-        description: "An object mapping mount point paths inside the container to empty objects."
1011
+        description: |
1012
+          An object mapping mount point paths inside the container to empty
1013
+          objects.
1011 1014
         type: "object"
1012 1015
         additionalProperties:
1013 1016
           type: "object"
... ...
@@ -1021,7 +1163,9 @@ definitions:
1021 1021
         description: |
1022 1022
           The entry point for the container as a string or an array of strings.
1023 1023
 
1024
-          If the array consists of exactly one empty string (`[""]`) then the entry point is reset to system default (i.e., the entry point used by docker when there is no `ENTRYPOINT` instruction in the `Dockerfile`).
1024
+          If the array consists of exactly one empty string (`[""]`) then the
1025
+          entry point is reset to system default (i.e., the entry point used by
1026
+          docker when there is no `ENTRYPOINT` instruction in the `Dockerfile`).
1025 1027
         type: "array"
1026 1028
         items:
1027 1029
           type: "string"
... ...
@@ -1032,7 +1176,8 @@ definitions:
1032 1032
         description: "MAC address of the container."
1033 1033
         type: "string"
1034 1034
       OnBuild:
1035
-        description: "`ONBUILD` metadata that were defined in the image's `Dockerfile`."
1035
+        description: |
1036
+          `ONBUILD` metadata that were defined in the image's `Dockerfile`.
1036 1037
         type: "array"
1037 1038
         items:
1038 1039
           type: "string"
... ...
@@ -1042,7 +1187,8 @@ definitions:
1042 1042
         additionalProperties:
1043 1043
           type: "string"
1044 1044
       StopSignal:
1045
-        description: "Signal to stop a container as a string or unsigned integer."
1045
+        description: |
1046
+          Signal to stop a container as a string or unsigned integer.
1046 1047
         type: "string"
1047 1048
         default: "SIGTERM"
1048 1049
       StopTimeout:
... ...
@@ -1050,11 +1196,48 @@ definitions:
1050 1050
         type: "integer"
1051 1051
         default: 10
1052 1052
       Shell:
1053
-        description: "Shell for when `RUN`, `CMD`, and `ENTRYPOINT` uses a shell."
1053
+        description: |
1054
+          Shell for when `RUN`, `CMD`, and `ENTRYPOINT` uses a shell.
1054 1055
         type: "array"
1055 1056
         items:
1056 1057
           type: "string"
1057 1058
 
1059
+  NetworkingConfig:
1060
+    description: |
1061
+      NetworkingConfig represents the container's networking configuration for
1062
+      each of its interfaces.
1063
+      It is used for the networking configs specified in the `docker create`
1064
+      and `docker network connect` commands.
1065
+    type: "object"
1066
+    properties:
1067
+      EndpointsConfig:
1068
+        description: |
1069
+          A mapping of network name to endpoint configuration for that network.
1070
+        type: "object"
1071
+        additionalProperties:
1072
+          $ref: "#/definitions/EndpointSettings"
1073
+    example:
1074
+      # putting an example here, instead of using the example values from
1075
+      # /definitions/EndpointSettings, because containers/create currently
1076
+      # does not support attaching to multiple networks, so the example request
1077
+      # would be confusing if it showed that multiple networks can be contained
1078
+      # in the EndpointsConfig.
1079
+      # TODO remove once we support multiple networks on container create (see https://github.com/moby/moby/blob/07e6b843594e061f82baa5fa23c2ff7d536c2a05/daemon/create.go#L323)
1080
+      EndpointsConfig:
1081
+        isolated_nw:
1082
+          IPAMConfig:
1083
+            IPv4Address: "172.20.30.33"
1084
+            IPv6Address: "2001:db8:abcd::3033"
1085
+            LinkLocalIPs:
1086
+              - "169.254.34.68"
1087
+              - "fe80::3468"
1088
+          Links:
1089
+            - "container_1"
1090
+            - "container_2"
1091
+          Aliases:
1092
+            - "server_x"
1093
+            - "server_y"
1094
+
1058 1095
   NetworkSettings:
1059 1096
     description: "NetworkSettings exposes the network settings in the API"
1060 1097
     type: "object"
... ...
@@ -1497,13 +1680,16 @@ definitions:
1497 1497
           type: "string"
1498 1498
       Scope:
1499 1499
         type: "string"
1500
-        description: "The level at which the volume exists. Either `global` for cluster-wide, or `local` for machine level."
1500
+        description: |
1501
+          The level at which the volume exists. Either `global` for cluster-wide,
1502
+          or `local` for machine level.
1501 1503
         default: "local"
1502 1504
         x-nullable: false
1503 1505
         enum: ["local", "global"]
1504 1506
       Options:
1505 1507
         type: "object"
1506
-        description: "The driver specific options used when creating the volume."
1508
+        description: |
1509
+          The driver specific options used when creating the volume.
1507 1510
         additionalProperties:
1508 1511
           type: "string"
1509 1512
       UsageData:
... ...
@@ -1621,7 +1807,12 @@ definitions:
1621 1621
         type: "string"
1622 1622
         default: "default"
1623 1623
       Config:
1624
-        description: "List of IPAM configuration options, specified as a map: `{\"Subnet\": <CIDR>, \"IPRange\": <CIDR>, \"Gateway\": <IP address>, \"AuxAddress\": <device_name:IP address>}`"
1624
+        description: |
1625
+          List of IPAM configuration options, specified as a map:
1626
+
1627
+          ```
1628
+          {"Subnet": <CIDR>, "IPRange": <CIDR>, "Gateway": <IP address>, "AuxAddress": <device_name:IP address>}
1629
+          ```
1625 1630
         type: "array"
1626 1631
         items:
1627 1632
           type: "object"
... ...
@@ -1967,7 +2158,9 @@ definitions:
1967 1967
         x-nullable: false
1968 1968
         example: "tiborvass/sample-volume-plugin"
1969 1969
       Enabled:
1970
-        description: "True if the plugin is running. False if the plugin is not running, only installed."
1970
+        description:
1971
+          True if the plugin is running. False if the plugin is not running,
1972
+          only installed.
1971 1973
         type: "boolean"
1972 1974
         x-nullable: false
1973 1975
         example: true
... ...
@@ -2169,13 +2362,16 @@ definitions:
2169 2169
 
2170 2170
   ObjectVersion:
2171 2171
     description: |
2172
-      The version number of the object such as node, service, etc. This is needed to avoid conflicting writes.
2173
-      The client must send the version number along with the modified specification when updating these objects.
2174
-      This approach ensures safe concurrency and determinism in that the change on the object
2175
-      may not be applied if the version number has changed from the last read. In other words,
2176
-      if two update requests specify the same base version, only one of the requests can succeed.
2177
-      As a result, two separate update requests that happen at the same time will not
2178
-      unintentionally overwrite each other.
2172
+      The version number of the object such as node, service, etc. This is needed
2173
+      to avoid conflicting writes. The client must send the version number along
2174
+      with the modified specification when updating these objects.
2175
+
2176
+      This approach ensures safe concurrency and determinism in that the change
2177
+      on the object may not be applied if the version number has changed from the
2178
+      last read. In other words, if two update requests specify the same base
2179
+      version, only one of the requests can succeed. As a result, two separate
2180
+      update requests that happen at the same time will not unintentionally
2181
+      overwrite each other.
2179 2182
     type: "object"
2180 2183
     properties:
2181 2184
       Index:
... ...
@@ -2344,17 +2540,23 @@ definitions:
2344 2344
             Name: "vieux/sshfs:latest"
2345 2345
 
2346 2346
   TLSInfo:
2347
-    description: "Information about the issuer of leaf TLS certificates and the trusted root CA certificate"
2347
+    description: |
2348
+      Information about the issuer of leaf TLS certificates and the trusted root
2349
+      CA certificate.
2348 2350
     type: "object"
2349 2351
     properties:
2350 2352
       TrustRoot:
2351
-        description: "The root CA certificate(s) that are used to validate leaf TLS certificates"
2353
+        description: |
2354
+          The root CA certificate(s) that are used to validate leaf TLS
2355
+          certificates.
2352 2356
         type: "string"
2353 2357
       CertIssuerSubject:
2354
-        description: "The base64-url-safe-encoded raw subject bytes of the issuer"
2358
+        description:
2359
+          The base64-url-safe-encoded raw subject bytes of the issuer.
2355 2360
         type: "string"
2356 2361
       CertIssuerPublicKey:
2357
-        description: "The base64-url-safe-encoded raw public key bytes of the issuer"
2362
+        description: |
2363
+          The base64-url-safe-encoded raw public key bytes of the issuer.
2358 2364
         type: "string"
2359 2365
     example:
2360 2366
       TrustRoot: |
... ...
@@ -2450,7 +2652,9 @@ definitions:
2450 2450
         x-nullable: true
2451 2451
         properties:
2452 2452
           TaskHistoryRetentionLimit:
2453
-            description: "The number of historic tasks to keep per instance or node. If negative, never remove completed or failed tasks."
2453
+            description: |
2454
+              The number of historic tasks to keep per instance or node. If
2455
+              negative, never remove completed or failed tasks.
2454 2456
             type: "integer"
2455 2457
             format: "int64"
2456 2458
             example: 10
... ...
@@ -2464,26 +2668,34 @@ definitions:
2464 2464
             format: "uint64"
2465 2465
             example: 10000
2466 2466
           KeepOldSnapshots:
2467
-            description: "The number of snapshots to keep beyond the current snapshot."
2467
+            description: |
2468
+              The number of snapshots to keep beyond the current snapshot.
2468 2469
             type: "integer"
2469 2470
             format: "uint64"
2470 2471
           LogEntriesForSlowFollowers:
2471
-            description: "The number of log entries to keep around to sync up slow followers after a snapshot is created."
2472
+            description: |
2473
+              The number of log entries to keep around to sync up slow followers
2474
+              after a snapshot is created.
2472 2475
             type: "integer"
2473 2476
             format: "uint64"
2474 2477
             example: 500
2475 2478
           ElectionTick:
2476 2479
             description: |
2477
-              The number of ticks that a follower will wait for a message from the leader before becoming a candidate and starting an election. `ElectionTick` must be greater than `HeartbeatTick`.
2480
+              The number of ticks that a follower will wait for a message from
2481
+              the leader before becoming a candidate and starting an election.
2482
+              `ElectionTick` must be greater than `HeartbeatTick`.
2478 2483
 
2479
-              A tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.
2484
+              A tick currently defaults to one second, so these translate
2485
+              directly to seconds currently, but this is NOT guaranteed.
2480 2486
             type: "integer"
2481 2487
             example: 3
2482 2488
           HeartbeatTick:
2483 2489
             description: |
2484
-              The number of ticks between heartbeats. Every HeartbeatTick ticks, the leader will send a heartbeat to the followers.
2490
+              The number of ticks between heartbeats. Every HeartbeatTick ticks,
2491
+              the leader will send a heartbeat to the followers.
2485 2492
 
2486
-              A tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.
2493
+              A tick currently defaults to one second, so these translate
2494
+              directly to seconds currently, but this is NOT guaranteed.
2487 2495
             type: "integer"
2488 2496
             example: 1
2489 2497
       Dispatcher:
... ...
@@ -2492,7 +2704,8 @@ definitions:
2492 2492
         x-nullable: true
2493 2493
         properties:
2494 2494
           HeartbeatPeriod:
2495
-            description: "The delay for an agent to send a heartbeat to the dispatcher."
2495
+            description: |
2496
+              The delay for an agent to send a heartbeat to the dispatcher.
2496 2497
             type: "integer"
2497 2498
             format: "int64"
2498 2499
             example: 5000000000
... ...
@@ -2507,36 +2720,53 @@ definitions:
2507 2507
             format: "int64"
2508 2508
             example: 7776000000000000
2509 2509
           ExternalCAs:
2510
-            description: "Configuration for forwarding signing requests to an external certificate authority."
2510
+            description: |
2511
+              Configuration for forwarding signing requests to an external
2512
+              certificate authority.
2511 2513
             type: "array"
2512 2514
             items:
2513 2515
               type: "object"
2514 2516
               properties:
2515 2517
                 Protocol:
2516
-                  description: "Protocol for communication with the external CA (currently only `cfssl` is supported)."
2518
+                  description: |
2519
+                    Protocol for communication with the external CA (currently
2520
+                    only `cfssl` is supported).
2517 2521
                   type: "string"
2518 2522
                   enum:
2519 2523
                     - "cfssl"
2520 2524
                   default: "cfssl"
2521 2525
                 URL:
2522
-                  description: "URL where certificate signing requests should be sent."
2526
+                  description: |
2527
+                    URL where certificate signing requests should be sent.
2523 2528
                   type: "string"
2524 2529
                 Options:
2525
-                  description: "An object with key/value pairs that are interpreted as protocol-specific options for the external CA driver."
2530
+                  description: |
2531
+                    An object with key/value pairs that are interpreted as
2532
+                    protocol-specific options for the external CA driver.
2526 2533
                   type: "object"
2527 2534
                   additionalProperties:
2528 2535
                     type: "string"
2529 2536
                 CACert:
2530
-                  description: "The root CA certificate (in PEM format) this external CA uses to issue TLS certificates (assumed to be to the current swarm root CA certificate if not provided)."
2537
+                  description: |
2538
+                    The root CA certificate (in PEM format) this external CA uses
2539
+                    to issue TLS certificates (assumed to be to the current swarm
2540
+                    root CA certificate if not provided).
2531 2541
                   type: "string"
2532 2542
           SigningCACert:
2533
-            description: "The desired signing CA certificate for all swarm node TLS leaf certificates, in PEM format."
2543
+            description: |
2544
+              The desired signing CA certificate for all swarm node TLS leaf
2545
+              certificates, in PEM format.
2534 2546
             type: "string"
2535 2547
           SigningCAKey:
2536
-            description: "The desired signing CA key for all swarm node TLS leaf certificates, in PEM format."
2548
+            description: |
2549
+              The desired signing CA key for all swarm node TLS leaf certificates,
2550
+              in PEM format.
2537 2551
             type: "string"
2538 2552
           ForceRotate:
2539
-            description: "An integer whose purpose is to force swarm to generate a new signing CA certificate and key, if none have been specified in `SigningCACert` and `SigningCAKey`"
2553
+            description: |
2554
+              An integer whose purpose is to force swarm to generate a new
2555
+              signing CA certificate and key, if none have been specified in
2556
+              `SigningCACert` and `SigningCAKey`
2540 2557
             format: "uint64"
2541 2558
             type: "integer"
2542 2559
       EncryptionConfig:
... ...
@@ -2544,7 +2774,9 @@ definitions:
2544 2544
         type: "object"
2545 2545
         properties:
2546 2546
           AutoLockManagers:
2547
-            description: "If set, generate a key and use it to lock data stored on the managers."
2547
+            description: |
2548
+              If set, generate a key and use it to lock data stored on the
2549
+              managers.
2548 2550
             type: "boolean"
2549 2551
             example: false
2550 2552
       TaskDefaults:
... ...
@@ -2610,7 +2842,8 @@ definitions:
2610 2610
       TLSInfo:
2611 2611
         $ref: "#/definitions/TLSInfo"
2612 2612
       RootRotationInProgress:
2613
-        description: "Whether there is currently a root CA rotation in progress for the swarm"
2613
+        description: |
2614
+          Whether there is currently a root CA rotation in progress for the swarm
2614 2615
         type: "boolean"
2615 2616
         example: false
2616 2617
       DataPathPort:
... ...
@@ -2624,7 +2857,8 @@ definitions:
2624 2624
         example: 4789
2625 2625
       DefaultAddrPool:
2626 2626
         description: |
2627
-          Default Address Pool specifies default subnet pools for global scope networks.
2627
+          Default Address Pool specifies default subnet pools for global scope
2628
+          networks.
2628 2629
         type: "array"
2629 2630
         items:
2630 2631
           type: "string"
... ...
@@ -2632,7 +2866,8 @@ definitions:
2632 2632
           example: ["10.10.0.0/16", "20.20.0.0/16"]
2633 2633
       SubnetSize:
2634 2634
         description: |
2635
-          SubnetSize specifies the subnet size of the networks created from the default subnet pool
2635
+          SubnetSize specifies the subnet size of the networks created from the
2636
+          default subnet pool.
2636 2637
         type: "integer"
2637 2638
         format: "uint32"
2638 2639
         maximum: 29
... ...
@@ -2692,7 +2927,9 @@ definitions:
2692 2692
           PluginPrivilege:
2693 2693
             type: "array"
2694 2694
             items:
2695
-              description: "Describes a permission accepted by the user upon installing the plugin."
2695
+              description: |
2696
+                Describes a permission accepted by the user upon installing the
2697
+                plugin.
2696 2698
               type: "object"
2697 2699
               properties:
2698 2700
                 Name:
... ...
@@ -2734,10 +2971,13 @@ definitions:
2734 2734
             items:
2735 2735
               type: "string"
2736 2736
           Hostname:
2737
-            description: "The hostname to use for the container, as a valid RFC 1123 hostname."
2737
+            description: |
2738
+              The hostname to use for the container, as a valid
2739
+              [RFC 1123](https://tools.ietf.org/html/rfc1123) hostname.
2738 2740
             type: "string"
2739 2741
           Env:
2740
-            description: "A list of environment variables in the form `VAR=value`."
2742
+            description: |
2743
+              A list of environment variables in the form `VAR=value`.
2741 2744
             type: "array"
2742 2745
             items:
2743 2746
               type: "string"
... ...
@@ -2749,7 +2989,8 @@ definitions:
2749 2749
             type: "string"
2750 2750
           Groups:
2751 2751
             type: "array"
2752
-            description: "A list of additional groups that the container process will run as."
2752
+            description: |
2753
+              A list of additional groups that the container process will run as.
2753 2754
             items:
2754 2755
               type: "string"
2755 2756
           Privileges:
... ...
@@ -2765,37 +3006,43 @@ definitions:
2765 2765
                     example: "0bt9dmxjvjiqermk6xrop3ekq"
2766 2766
                     description: |
2767 2767
                       Load credential spec from a Swarm Config with the given ID.
2768
-                      The specified config must also be present in the Configs field with the Runtime property set.
2768
+                      The specified config must also be present in the Configs
2769
+                      field with the Runtime property set.
2769 2770
 
2770 2771
                       <p><br /></p>
2771 2772
 
2772 2773
 
2773
-                      > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`, and `CredentialSpec.Config` are mutually exclusive.
2774
+                      > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`,
2775
+                      > and `CredentialSpec.Config` are mutually exclusive.
2774 2776
                   File:
2775 2777
                     type: "string"
2776 2778
                     example: "spec.json"
2777 2779
                     description: |
2778
-                      Load credential spec from this file. The file is read by the daemon, and must be present in the
2779
-                      `CredentialSpecs` subdirectory in the docker data directory, which defaults to
2780
-                      `C:\ProgramData\Docker\` on Windows.
2780
+                      Load credential spec from this file. The file is read by
2781
+                      the daemon, and must be present in the `CredentialSpecs`
2782
+                      subdirectory in the docker data directory, which defaults
2783
+                      to `C:\ProgramData\Docker\` on Windows.
2781 2784
 
2782
-                      For example, specifying `spec.json` loads `C:\ProgramData\Docker\CredentialSpecs\spec.json`.
2785
+                      For example, specifying `spec.json` loads
2786
+                      `C:\ProgramData\Docker\CredentialSpecs\spec.json`.
2783 2787
 
2784 2788
                       <p><br /></p>
2785 2789
 
2786
-                      > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`, and `CredentialSpec.Config` are mutually exclusive.
2790
+                      > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`,
2791
+                      > and `CredentialSpec.Config` are mutually exclusive.
2787 2792
                   Registry:
2788 2793
                     type: "string"
2789 2794
                     description: |
2790
-                      Load credential spec from this value in the Windows registry. The specified registry value must be
2791
-                      located in:
2795
+                      Load credential spec from this value in the Windows
2796
+                      registry. The specified registry value must be located in:
2792 2797
 
2793 2798
                       `HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Containers\CredentialSpecs`
2794 2799
 
2795 2800
                       <p><br /></p>
2796 2801
 
2797 2802
 
2798
-                      > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`, and `CredentialSpec.Config` are mutually exclusive.
2803
+                      > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`,
2804
+                      > and `CredentialSpec.Config` are mutually exclusive.
2799 2805
               SELinuxContext:
2800 2806
                 type: "object"
2801 2807
                 description: "SELinux labels of the container"
... ...
@@ -2825,7 +3072,9 @@ definitions:
2825 2825
             description: "Mount the container's root filesystem as read only."
2826 2826
             type: "boolean"
2827 2827
           Mounts:
2828
-            description: "Specification for mounts to be added to containers created as part of the service."
2828
+            description: |
2829
+              Specification for mounts to be added to containers created as part
2830
+              of the service.
2829 2831
             type: "array"
2830 2832
             items:
2831 2833
               $ref: "#/definitions/Mount"
... ...
@@ -2833,7 +3082,9 @@ definitions:
2833 2833
             description: "Signal to stop the container."
2834 2834
             type: "string"
2835 2835
           StopGracePeriod:
2836
-            description: "Amount of time to wait for the container to terminate before forcefully killing it."
2836
+            description: |
2837
+              Amount of time to wait for the container to terminate before
2838
+              forcefully killing it.
2837 2839
             type: "integer"
2838 2840
             format: "int64"
2839 2841
           HealthCheck:
... ...
@@ -2850,7 +3101,9 @@ definitions:
2850 2850
             items:
2851 2851
               type: "string"
2852 2852
           DNSConfig:
2853
-            description: "Specification for DNS related configurations in resolver configuration file (`resolv.conf`)."
2853
+            description: |
2854
+              Specification for DNS related configurations in resolver configuration
2855
+              file (`resolv.conf`).
2854 2856
             type: "object"
2855 2857
             properties:
2856 2858
               Nameservers:
... ...
@@ -2864,22 +3117,28 @@ definitions:
2864 2864
                 items:
2865 2865
                   type: "string"
2866 2866
               Options:
2867
-                description: "A list of internal resolver variables to be modified (e.g., `debug`, `ndots:3`, etc.)."
2867
+                description: |
2868
+                  A list of internal resolver variables to be modified (e.g.,
2869
+                  `debug`, `ndots:3`, etc.).
2868 2870
                 type: "array"
2869 2871
                 items:
2870 2872
                   type: "string"
2871 2873
           Secrets:
2872
-            description: "Secrets contains references to zero or more secrets that will be exposed to the service."
2874
+            description: |
2875
+              Secrets contains references to zero or more secrets that will be
2876
+              exposed to the service.
2873 2877
             type: "array"
2874 2878
             items:
2875 2879
               type: "object"
2876 2880
               properties:
2877 2881
                 File:
2878
-                  description: "File represents a specific target that is backed by a file."
2882
+                  description: |
2883
+                    File represents a specific target that is backed by a file.
2879 2884
                   type: "object"
2880 2885
                   properties:
2881 2886
                     Name:
2882
-                      description: "Name represents the final filename in the filesystem."
2887
+                      description: |
2888
+                        Name represents the final filename in the filesystem.
2883 2889
                       type: "string"
2884 2890
                     UID:
2885 2891
                       description: "UID represents the file UID."
... ...
@@ -2892,15 +3151,20 @@ definitions:
2892 2892
                       type: "integer"
2893 2893
                       format: "uint32"
2894 2894
                 SecretID:
2895
-                  description: "SecretID represents the ID of the specific secret that we're referencing."
2895
+                  description: |
2896
+                    SecretID represents the ID of the specific secret that we're
2897
+                    referencing.
2896 2898
                   type: "string"
2897 2899
                 SecretName:
2898 2900
                   description: |
2899
-                    SecretName is the name of the secret that this references, but this is just provided for
2900
-                    lookup/display purposes. The secret in the reference will be identified by its ID.
2901
+                    SecretName is the name of the secret that this references,
2902
+                    but this is just provided for lookup/display purposes. The
2903
+                    secret in the reference will be identified by its ID.
2901 2904
                   type: "string"
2902 2905
           Configs:
2903
-            description: "Configs contains references to zero or more configs that will be exposed to the service."
2906
+            description: |
2907
+              Configs contains references to zero or more configs that will be
2908
+              exposed to the service.
2904 2909
             type: "array"
2905 2910
             items:
2906 2911
               type: "object"
... ...
@@ -2915,7 +3179,8 @@ definitions:
2915 2915
                   type: "object"
2916 2916
                   properties:
2917 2917
                     Name:
2918
-                      description: "Name represents the final filename in the filesystem."
2918
+                      description: |
2919
+                        Name represents the final filename in the filesystem.
2919 2920
                       type: "string"
2920 2921
                     UID:
2921 2922
                       description: "UID represents the file UID."
... ...
@@ -2929,29 +3194,39 @@ definitions:
2929 2929
                       format: "uint32"
2930 2930
                 Runtime:
2931 2931
                   description: |
2932
-                    Runtime represents a target that is not mounted into the container but is used by the task
2932
+                    Runtime represents a target that is not mounted into the
2933
+                    container but is used by the task
2933 2934
 
2934 2935
                     <p><br /><p>
2935 2936
 
2936
-                    > **Note**: `Configs.File` and `Configs.Runtime` are mutually exclusive
2937
+                    > **Note**: `Configs.File` and `Configs.Runtime` are mutually
2938
+                    > exclusive
2937 2939
                   type: "object"
2938 2940
                 ConfigID:
2939
-                  description: "ConfigID represents the ID of the specific config that we're referencing."
2941
+                  description: |
2942
+                    ConfigID represents the ID of the specific config that we're
2943
+                    referencing.
2940 2944
                   type: "string"
2941 2945
                 ConfigName:
2942 2946
                   description: |
2943
-                    ConfigName is the name of the config that this references, but this is just provided for
2944
-                    lookup/display purposes. The config in the reference will be identified by its ID.
2947
+                    ConfigName is the name of the config that this references,
2948
+                    but this is just provided for lookup/display purposes. The
2949
+                    config in the reference will be identified by its ID.
2945 2950
                   type: "string"
2946 2951
           Isolation:
2947 2952
             type: "string"
2948
-            description: "Isolation technology of the containers running the service. (Windows only)"
2953
+            description: |
2954
+              Isolation technology of the containers running the service.
2955
+              (Windows only)
2949 2956
             enum:
2950 2957
               - "default"
2951 2958
               - "process"
2952 2959
               - "hyperv"
2953 2960
           Init:
2954
-            description: "Run an init inside the container that forwards signals and reaps processes. This field is omitted if empty, and the default (as configured on the daemon) is used."
2961
+            description: |
2962
+              Run an init inside the container that forwards signals and reaps
2963
+              processes. This field is omitted if empty, and the default (as
2964
+              configured on the daemon) is used.
2955 2965
             type: "boolean"
2956 2966
             x-nullable: true
2957 2967
           Sysctls:
... ...
@@ -2983,7 +3258,9 @@ definitions:
2983 2983
             description: "ID of the container represented by this task"
2984 2984
             type: "string"
2985 2985
       Resources:
2986
-        description: "Resource requirements which apply to each individual container created as part of the service."
2986
+        description: |
2987
+          Resource requirements which apply to each individual container created
2988
+          as part of the service.
2987 2989
         type: "object"
2988 2990
         properties:
2989 2991
           Limits:
... ...
@@ -2993,7 +3270,9 @@ definitions:
2993 2993
             description: "Define resources reservation."
2994 2994
             $ref: "#/definitions/ResourceObject"
2995 2995
       RestartPolicy:
2996
-        description: "Specification for the restart policy which applies to containers created as part of this service."
2996
+        description: |
2997
+          Specification for the restart policy which applies to containers
2998
+          created as part of this service.
2997 2999
         type: "object"
2998 3000
         properties:
2999 3001
           Condition:
... ...
@@ -3008,12 +3287,16 @@ definitions:
3008 3008
             type: "integer"
3009 3009
             format: "int64"
3010 3010
           MaxAttempts:
3011
-            description: "Maximum attempts to restart a given container before giving up (default value is 0, which is ignored)."
3011
+            description: |
3012
+              Maximum attempts to restart a given container before giving up
3013
+              (default value is 0, which is ignored).
3012 3014
             type: "integer"
3013 3015
             format: "int64"
3014 3016
             default: 0
3015 3017
           Window:
3016
-            description: "Windows is the time window used to evaluate the restart policy (default value is 0, which is unbounded)."
3018
+            description: |
3019
+              Windows is the time window used to evaluate the restart policy
3020
+              (default value is 0, which is unbounded).
3017 3021
             type: "integer"
3018 3022
             format: "int64"
3019 3023
             default: 0
... ...
@@ -3052,7 +3335,10 @@ definitions:
3052 3052
               - "node.platform.os==linux"
3053 3053
               - "node.platform.arch==x86_64"
3054 3054
           Preferences:
3055
-            description: "Preferences provide a way to make the scheduler aware of factors such as topology. They are provided in order from highest to lowest precedence."
3055
+            description: |
3056
+              Preferences provide a way to make the scheduler aware of factors
3057
+              such as topology. They are provided in order from highest to
3058
+              lowest precedence.
3056 3059
             type: "array"
3057 3060
             items:
3058 3061
               type: "object"
... ...
@@ -3061,7 +3347,8 @@ definitions:
3061 3061
                   type: "object"
3062 3062
                   properties:
3063 3063
                     SpreadDescriptor:
3064
-                      description: "label descriptor, such as engine.labels.az"
3064
+                      description: |
3065
+                        label descriptor, such as `engine.labels.az`.
3065 3066
                       type: "string"
3066 3067
             example:
3067 3068
               - Spread:
... ...
@@ -3069,7 +3356,9 @@ definitions:
3069 3069
               - Spread:
3070 3070
                   SpreadDescriptor: "node.labels.rack"
3071 3071
           MaxReplicas:
3072
-            description: "Maximum number of replicas for per node (default value is 0, which is unlimited)"
3072
+            description: |
3073
+              Maximum number of replicas for per node (default value is 0, which
3074
+              is unlimited)
3073 3075
             type: "integer"
3074 3076
             format: "int64"
3075 3077
             default: 0
... ...
@@ -3083,10 +3372,13 @@ definitions:
3083 3083
             items:
3084 3084
               $ref: "#/definitions/Platform"
3085 3085
       ForceUpdate:
3086
-        description: "A counter that triggers an update even if no relevant parameters have been changed."
3086
+        description: |
3087
+          A counter that triggers an update even if no relevant parameters have
3088
+          been changed.
3087 3089
         type: "integer"
3088 3090
       Runtime:
3089
-        description: "Runtime is the type of runtime specified for the task executor."
3091
+        description: |
3092
+          Runtime is the type of runtime specified for the task executor.
3090 3093
         type: "string"
3091 3094
       Networks:
3092 3095
         description: "Specifies which networks the service should attach to."
... ...
@@ -3094,7 +3386,10 @@ definitions:
3094 3094
         items:
3095 3095
           $ref: "#/definitions/NetworkAttachmentConfig"
3096 3096
       LogDriver:
3097
-        description: "Specifies the log driver to use for tasks created from this spec. If not present, the default one for the swarm will be used, finally falling back to the engine default if not specified."
3097
+        description: |
3098
+          Specifies the log driver to use for tasks created from this spec. If
3099
+          not present, the default one for the swarm will be used, finally
3100
+          falling back to the engine default if not specified.
3098 3101
         type: "object"
3099 3102
         properties:
3100 3103
           Name:
... ...
@@ -3277,7 +3572,9 @@ definitions:
3277 3277
         type: "object"
3278 3278
         properties:
3279 3279
           Parallelism:
3280
-            description: "Maximum number of tasks to be updated in one iteration (0 means unlimited parallelism)."
3280
+            description: |
3281
+              Maximum number of tasks to be updated in one iteration (0 means
3282
+              unlimited parallelism).
3281 3283
             type: "integer"
3282 3284
             format: "int64"
3283 3285
           Delay:
... ...
@@ -3285,22 +3582,32 @@ definitions:
3285 3285
             type: "integer"
3286 3286
             format: "int64"
3287 3287
           FailureAction:
3288
-            description: "Action to take if an updated task fails to run, or stops running during the update."
3288
+            description: |
3289
+              Action to take if an updated task fails to run, or stops running
3290
+              during the update.
3289 3291
             type: "string"
3290 3292
             enum:
3291 3293
               - "continue"
3292 3294
               - "pause"
3293 3295
               - "rollback"
3294 3296
           Monitor:
3295
-            description: "Amount of time to monitor each updated task for failures, in nanoseconds."
3297
+            description: |
3298
+              Amount of time to monitor each updated task for failures, in
3299
+              nanoseconds.
3296 3300
             type: "integer"
3297 3301
             format: "int64"
3298 3302
           MaxFailureRatio:
3299
-            description: "The fraction of tasks that may fail during an update before the failure action is invoked, specified as a floating point number between 0 and 1."
3303
+            description: |
3304
+              The fraction of tasks that may fail during an update before the
3305
+              failure action is invoked, specified as a floating point number
3306
+              between 0 and 1.
3300 3307
             type: "number"
3301 3308
             default: 0
3302 3309
           Order:
3303
-            description: "The order of operations when rolling out an updated task. Either the old task is shut down before the new task is started, or the new task is started before the old task is shut down."
3310
+            description: |
3311
+              The order of operations when rolling out an updated task. Either
3312
+              the old task is shut down before the new task is started, or the
3313
+              new task is started before the old task is shut down.
3304 3314
             type: "string"
3305 3315
             enum:
3306 3316
               - "stop-first"
... ...
@@ -3310,29 +3617,42 @@ definitions:
3310 3310
         type: "object"
3311 3311
         properties:
3312 3312
           Parallelism:
3313
-            description: "Maximum number of tasks to be rolled back in one iteration (0 means unlimited parallelism)."
3313
+            description: |
3314
+              Maximum number of tasks to be rolled back in one iteration (0 means
3315
+              unlimited parallelism).
3314 3316
             type: "integer"
3315 3317
             format: "int64"
3316 3318
           Delay:
3317
-            description: "Amount of time between rollback iterations, in nanoseconds."
3319
+            description: |
3320
+              Amount of time between rollback iterations, in nanoseconds.
3318 3321
             type: "integer"
3319 3322
             format: "int64"
3320 3323
           FailureAction:
3321
-            description: "Action to take if an rolled back task fails to run, or stops running during the rollback."
3324
+            description: |
3325
+              Action to take if an rolled back task fails to run, or stops
3326
+              running during the rollback.
3322 3327
             type: "string"
3323 3328
             enum:
3324 3329
               - "continue"
3325 3330
               - "pause"
3326 3331
           Monitor:
3327
-            description: "Amount of time to monitor each rolled back task for failures, in nanoseconds."
3332
+            description: |
3333
+              Amount of time to monitor each rolled back task for failures, in
3334
+              nanoseconds.
3328 3335
             type: "integer"
3329 3336
             format: "int64"
3330 3337
           MaxFailureRatio:
3331
-            description: "The fraction of tasks that may fail during a rollback before the failure action is invoked, specified as a floating point number between 0 and 1."
3338
+            description: |
3339
+              The fraction of tasks that may fail during a rollback before the
3340
+              failure action is invoked, specified as a floating point number
3341
+              between 0 and 1.
3332 3342
             type: "number"
3333 3343
             default: 0
3334 3344
           Order:
3335
-            description: "The order of operations when rolling back a task. Either the old task is shut down before the new task is started, or the new task is started before the old task is shut down."
3345
+            description: |
3346
+              The order of operations when rolling back a task. Either the old
3347
+              task is shut down before the new task is started, or the new task
3348
+              is started before the old task is shut down.
3336 3349
             type: "string"
3337 3350
             enum:
3338 3351
               - "stop-first"
... ...
@@ -3395,7 +3715,9 @@ definitions:
3395 3395
           - "dnsrr"
3396 3396
         default: "vip"
3397 3397
       Ports:
3398
-        description: "List of exposed ports that this service is accessible on from the outside. Ports can only be provided if `vip` resolution mode is used."
3398
+        description: |
3399
+          List of exposed ports that this service is accessible on from the
3400
+          outside. Ports can only be provided if `vip` resolution mode is used.
3399 3401
         type: "array"
3400 3402
         items:
3401 3403
           $ref: "#/definitions/EndpointPortConfig"
... ...
@@ -3639,7 +3961,7 @@ definitions:
3639 3639
           com.example.some-other-label: "some-other-value"
3640 3640
       Data:
3641 3641
         description: |
3642
-          Base64-url-safe-encoded ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-3.2))
3642
+          Base64-url-safe-encoded ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-5))
3643 3643
           data to store as secret.
3644 3644
 
3645 3645
           This field is only used to _create_ a secret, and is not returned by
... ...
@@ -3647,7 +3969,9 @@ definitions:
3647 3647
         type: "string"
3648 3648
         example: ""
3649 3649
       Driver:
3650
-        description: "Name of the secrets driver used to fetch the secret's value from an external secret store"
3650
+        description: |
3651
+          Name of the secrets driver used to fetch the secret's value from an
3652
+          external secret store.
3651 3653
         $ref: "#/definitions/Driver"
3652 3654
       Templating:
3653 3655
         description: |
... ...
@@ -3689,7 +4013,7 @@ definitions:
3689 3689
           type: "string"
3690 3690
       Data:
3691 3691
         description: |
3692
-          Base64-url-safe-encoded ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-3.2))
3692
+          Base64-url-safe-encoded ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-5))
3693 3693
           config data.
3694 3694
         type: "string"
3695 3695
       Templating:
... ...
@@ -3752,7 +4076,8 @@ definitions:
3752 3752
         type: "boolean"
3753 3753
         example: false
3754 3754
       OOMKilled:
3755
-        description: "Whether this container has been killed because it ran out of memory."
3755
+        description: |
3756
+          Whether this container has been killed because it ran out of memory.
3756 3757
         type: "boolean"
3757 3758
         example: false
3758 3759
       Dead:
... ...
@@ -3907,15 +4232,20 @@ definitions:
3907 3907
         type: "boolean"
3908 3908
         example: true
3909 3909
       CpuCfsPeriod:
3910
-        description: "Indicates if CPU CFS(Completely Fair Scheduler) period is supported by the host."
3910
+        description: |
3911
+          Indicates if CPU CFS(Completely Fair Scheduler) period is supported by
3912
+          the host.
3911 3913
         type: "boolean"
3912 3914
         example: true
3913 3915
       CpuCfsQuota:
3914
-        description: "Indicates if CPU CFS(Completely Fair Scheduler) quota is supported by the host."
3916
+        description: |
3917
+          Indicates if CPU CFS(Completely Fair Scheduler) quota is supported by
3918
+          the host.
3915 3919
         type: "boolean"
3916 3920
         example: true
3917 3921
       CPUShares:
3918
-        description: "Indicates if CPU Shares limiting is supported by the host."
3922
+        description: |
3923
+          Indicates if CPU Shares limiting is supported by the host.
3919 3924
         type: "boolean"
3920 3925
         example: true
3921 3926
       CPUSet:
... ...
@@ -3945,7 +4275,9 @@ definitions:
3945 3945
         type: "boolean"
3946 3946
         example: true
3947 3947
       Debug:
3948
-        description: "Indicates if the daemon is running in debug-mode / with debug-level logging enabled."
3948
+        description: |
3949
+          Indicates if the daemon is running in debug-mode / with debug-level
3950
+          logging enabled.
3949 3951
         type: "boolean"
3950 3952
         example: true
3951 3953
       NFd:
... ...
@@ -4579,19 +4911,23 @@ definitions:
4579 4579
         type: "string"
4580 4580
 
4581 4581
   NetworkAttachmentConfig:
4582
-    description: "Specifies how a service should be attached to a particular network."
4582
+    description: |
4583
+      Specifies how a service should be attached to a particular network.
4583 4584
     type: "object"
4584 4585
     properties:
4585 4586
       Target:
4586
-        description: "The target network for attachment. Must be a network name or ID."
4587
+        description: |
4588
+          The target network for attachment. Must be a network name or ID.
4587 4589
         type: "string"
4588 4590
       Aliases:
4589
-        description: "Discoverable alternate names for the service on this network."
4591
+        description: |
4592
+          Discoverable alternate names for the service on this network.
4590 4593
         type: "array"
4591 4594
         items:
4592 4595
           type: "string"
4593 4596
       DriverOpts:
4594
-        description: "Driver attachment options for the network target"
4597
+        description: |
4598
+          Driver attachment options for the network target.
4595 4599
         type: "object"
4596 4600
         additionalProperties:
4597 4601
           type: "string"
... ...
@@ -4601,32 +4937,42 @@ paths:
4601 4601
     get:
4602 4602
       summary: "List containers"
4603 4603
       description: |
4604
-        Returns a list of containers. For details on the format, see [the inspect endpoint](#operation/ContainerInspect).
4604
+        Returns a list of containers. For details on the format, see the
4605
+        [inspect endpoint](#operation/ContainerInspect).
4605 4606
 
4606
-        Note that it uses a different, smaller representation of a container than inspecting a single container. For example,
4607
-        the list of linked containers is not propagated .
4607
+        Note that it uses a different, smaller representation of a container
4608
+        than inspecting a single container. For example, the list of linked
4609
+        containers is not propagated .
4608 4610
       operationId: "ContainerList"
4609 4611
       produces:
4610 4612
         - "application/json"
4611 4613
       parameters:
4612 4614
         - name: "all"
4613 4615
           in: "query"
4614
-          description: "Return all containers. By default, only running containers are shown"
4616
+          description: |
4617
+            Return all containers. By default, only running containers are shown.
4615 4618
           type: "boolean"
4616 4619
           default: false
4617 4620
         - name: "limit"
4618 4621
           in: "query"
4619
-          description: "Return this number of most recently created containers, including non-running ones."
4622
+          description: |
4623
+            Return this number of most recently created containers, including
4624
+            non-running ones.
4620 4625
           type: "integer"
4621 4626
         - name: "size"
4622 4627
           in: "query"
4623
-          description: "Return the size of container as fields `SizeRw` and `SizeRootFs`."
4628
+          description: |
4629
+            Return the size of container as fields `SizeRw` and `SizeRootFs`.
4624 4630
           type: "boolean"
4625 4631
           default: false
4626 4632
         - name: "filters"
4627 4633
           in: "query"
4628 4634
           description: |
4629
-            Filters to process on the container list, encoded as JSON (a `map[string][]string`). For example, `{"status": ["paused"]}` will only return paused containers. Available filters:
4635
+            Filters to process on the container list, encoded as JSON (a
4636
+            `map[string][]string`). For example, `{"status": ["paused"]}` will
4637
+            only return paused containers.
4638
+
4639
+            Available filters:
4630 4640
 
4631 4641
             - `ancestor`=(`<image-name>[:<tag>]`, `<image id>`, or `<image@digest>`)
4632 4642
             - `before`=(`<container id>` or `<container name>`)
... ...
@@ -4797,7 +5143,9 @@ paths:
4797 4797
       parameters:
4798 4798
         - name: "name"
4799 4799
           in: "query"
4800
-          description: "Assign the specified name to the container. Must match `/?[a-zA-Z0-9][a-zA-Z0-9_.-]+`."
4800
+          description: |
4801
+            Assign the specified name to the container. Must match
4802
+            `/?[a-zA-Z0-9][a-zA-Z0-9_.-]+`.
4801 4803
           type: "string"
4802 4804
           pattern: "^/?[a-zA-Z0-9][a-zA-Z0-9_.-]+$"
4803 4805
         - name: "body"
... ...
@@ -4811,14 +5159,7 @@ paths:
4811 4811
                   HostConfig:
4812 4812
                     $ref: "#/definitions/HostConfig"
4813 4813
                   NetworkingConfig:
4814
-                    description: "This container's networking configuration."
4815
-                    type: "object"
4816
-                    properties:
4817
-                      EndpointsConfig:
4818
-                        description: "A mapping of network name to endpoint configuration for that network."
4819
-                        type: "object"
4820
-                        additionalProperties:
4821
-                          $ref: "#/definitions/EndpointSettings"
4814
+                    $ref: "#/definitions/NetworkingConfig"
4822 4815
             example:
4823 4816
               Hostname: ""
4824 4817
               Domainname: ""
... ...
@@ -4880,6 +5221,14 @@ paths:
4880 4880
                   - {}
4881 4881
                 BlkioDeviceWriteIOps:
4882 4882
                   - {}
4883
+                DeviceRequests:
4884
+                  - Driver: "nvidia"
4885
+                    Count: -1
4886
+                    DeviceIDs": ["0", "1", "GPU-fef8089b-4820-abfc-e83e-94318197576e"]
4887
+                    Capabilities: [["gpu", "nvidia", "compute"]]
4888
+                    Options:
4889
+                      property1: "string"
4890
+                      property2: "string"
4883 4891
                 MemorySwappiness: 60
4884 4892
                 OomKillDisable: false
4885 4893
                 OomScoreAdj: 500
... ...
@@ -5014,7 +5363,7 @@ paths:
5014 5014
                 x-nullable: true
5015 5015
                 $ref: "#/definitions/ContainerState"
5016 5016
               Image:
5017
-                description: "The container's image"
5017
+                description: "The container's image ID"
5018 5018
                 type: "string"
5019 5019
               ResolvConfPath:
5020 5020
                 type: "string"
... ...
@@ -5052,7 +5401,9 @@ paths:
5052 5052
               GraphDriver:
5053 5053
                 $ref: "#/definitions/GraphDriverData"
5054 5054
               SizeRw:
5055
-                description: "The size of files that have been created or changed by this container."
5055
+                description: |
5056
+                  The size of files that have been created or changed by this
5057
+                  container.
5056 5058
                 type: "integer"
5057 5059
                 format: "int64"
5058 5060
               SizeRootFs:
... ...
@@ -5131,6 +5482,14 @@ paths:
5131 5131
                 CpuRealtimePeriod: 1000000
5132 5132
                 CpuRealtimeRuntime: 10000
5133 5133
                 Devices: []
5134
+                DeviceRequests:
5135
+                  - Driver: "nvidia"
5136
+                    Count: -1
5137
+                    DeviceIDs": ["0", "1", "GPU-fef8089b-4820-abfc-e83e-94318197576e"]
5138
+                    Capabilities: [["gpu", "nvidia", "compute"]]
5139
+                    Options:
5140
+                      property1: "string"
5141
+                      property2: "string"
5134 5142
                 IpcMode: ""
5135 5143
                 LxcConf: []
5136 5144
                 Memory: 0
... ...
@@ -5247,7 +5606,9 @@ paths:
5247 5247
   /containers/{id}/top:
5248 5248
     get:
5249 5249
       summary: "List processes running inside a container"
5250
-      description: "On Unix systems, this is done by running the `ps` command. This endpoint is not supported on Windows."
5250
+      description: |
5251
+        On Unix systems, this is done by running the `ps` command. This endpoint
5252
+        is not supported on Windows.
5251 5253
       operationId: "ContainerTop"
5252 5254
       responses:
5253 5255
         200:
... ...
@@ -5263,7 +5624,9 @@ paths:
5263 5263
                 items:
5264 5264
                   type: "string"
5265 5265
               Processes:
5266
-                description: "Each process running in the container, where each is process is an array of values corresponding to the titles"
5266
+                description: |
5267
+                  Each process running in the container, where each is process
5268
+                  is an array of values corresponding to the titles.
5267 5269
                 type: "array"
5268 5270
                 items:
5269 5271
                   type: "array"
... ...
@@ -5328,15 +5691,16 @@ paths:
5328 5328
       description: |
5329 5329
         Get `stdout` and `stderr` logs from a container.
5330 5330
 
5331
-        Note: This endpoint works only for containers with the `json-file` or `journald` logging driver.
5331
+        Note: This endpoint works only for containers with the `json-file` or
5332
+        `journald` logging driver.
5332 5333
       operationId: "ContainerLogs"
5333 5334
       responses:
5334 5335
         200:
5335 5336
           description: |
5336
-                  logs returned as a stream in response body.
5337
-                  For the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).
5338
-                  Note that unlike the attach endpoint, the logs endpoint does not upgrade the connection and does not
5339
-                  set Content-Type.
5337
+            logs returned as a stream in response body.
5338
+            For the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).
5339
+            Note that unlike the attach endpoint, the logs endpoint does not
5340
+            upgrade the connection and does not set Content-Type.
5340 5341
           schema:
5341 5342
             type: "string"
5342 5343
             format: "binary"
... ...
@@ -5389,7 +5753,9 @@ paths:
5389 5389
           default: false
5390 5390
         - name: "tail"
5391 5391
           in: "query"
5392
-          description: "Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines."
5392
+          description: |
5393
+            Only return this number of log lines from the end of the logs.
5394
+            Specify as an integer or `all` to output all log lines.
5393 5395
           type: "string"
5394 5396
           default: "all"
5395 5397
       tags: ["Container"]
... ...
@@ -5495,6 +5861,16 @@ paths:
5495 5495
         If either `precpu_stats.online_cpus` or `cpu_stats.online_cpus` is
5496 5496
         nil then for compatibility with older daemons the length of the
5497 5497
         corresponding `cpu_usage.percpu_usage` array should be used.
5498
+
5499
+        To calculate the values shown by the `stats` command of the docker cli tool
5500
+        the following formulas can be used:
5501
+        * used_memory = `memory_stats.usage - memory_stats.stats.cache`
5502
+        * available_memory = `memory_stats.limit`
5503
+        * Memory usage % = `(used_memory / available_memory) * 100.0`
5504
+        * cpu_delta = `cpu_stats.cpu_usage.total_usage - precpu_stats.cpu_usage.total_usage`
5505
+        * system_cpu_delta = `cpu_stats.system_cpu_usage - precpu_stats.system_cpu_usage`
5506
+        * number_cpus = `lenght(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`
5507
+        * CPU usage % = `(cpu_delta / system_cpu_delta) * number_cpus * 100.0`
5498 5508
       operationId: "ContainerStats"
5499 5509
       produces: ["application/json"]
5500 5510
       responses:
... ...
@@ -5613,7 +5989,9 @@ paths:
5613 5613
           type: "string"
5614 5614
         - name: "stream"
5615 5615
           in: "query"
5616
-          description: "Stream the output. If false, the stats will be output once and then it will disconnect."
5616
+          description: |
5617
+            Stream the output. If false, the stats will be output once and then
5618
+            it will disconnect.
5617 5619
           type: "boolean"
5618 5620
           default: true
5619 5621
       tags: ["Container"]
... ...
@@ -5648,11 +6026,11 @@ paths:
5648 5648
           type: "string"
5649 5649
         - name: "h"
5650 5650
           in: "query"
5651
-          description: "Height of the tty session in characters"
5651
+          description: "Height of the TTY session in characters"
5652 5652
           type: "integer"
5653 5653
         - name: "w"
5654 5654
           in: "query"
5655
-          description: "Width of the tty session in characters"
5655
+          description: "Width of the TTY session in characters"
5656 5656
           type: "integer"
5657 5657
       tags: ["Container"]
5658 5658
   /containers/{id}/start:
... ...
@@ -5683,7 +6061,10 @@ paths:
5683 5683
           type: "string"
5684 5684
         - name: "detachKeys"
5685 5685
           in: "query"
5686
-          description: "Override the key sequence for detaching a container. Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`."
5686
+          description: |
5687
+            Override the key sequence for detaching a container. Format is a
5688
+            single character `[a-Z]` or `ctrl-<value>` where `<value>` is one
5689
+            of: `a-z`, `@`, `^`, `[`, `,` or `_`.
5687 5690
           type: "string"
5688 5691
       tags: ["Container"]
5689 5692
   /containers/{id}/stop:
... ...
@@ -5749,7 +6130,9 @@ paths:
5749 5749
   /containers/{id}/kill:
5750 5750
     post:
5751 5751
       summary: "Kill a container"
5752
-      description: "Send a POSIX signal to a container, defaulting to killing to the container."
5752
+      description: |
5753
+        Send a POSIX signal to a container, defaulting to killing to the
5754
+        container.
5753 5755
       operationId: "ContainerKill"
5754 5756
       responses:
5755 5757
         204:
... ...
@@ -5787,7 +6170,9 @@ paths:
5787 5787
   /containers/{id}/update:
5788 5788
     post:
5789 5789
       summary: "Update a container"
5790
-      description: "Change various configuration options of a container without having to recreate it."
5790
+      description: |
5791
+        Change various configuration options of a container without having to
5792
+        recreate it.
5791 5793
       operationId: "ContainerUpdate"
5792 5794
       consumes: ["application/json"]
5793 5795
       produces: ["application/json"]
... ...
@@ -5887,7 +6272,10 @@ paths:
5887 5887
       description: |
5888 5888
         Use the freezer cgroup to suspend all processes in a container.
5889 5889
 
5890
-        Traditionally, when suspending a process the `SIGSTOP` signal is used, which is observable by the process being suspended. With the freezer cgroup the process is unaware, and unable to capture, that it is being suspended, and subsequently resumed.
5890
+        Traditionally, when suspending a process the `SIGSTOP` signal is used,
5891
+        which is observable by the process being suspended. With the freezer
5892
+        cgroup the process is unaware, and unable to capture, that it is being
5893
+        suspended, and subsequently resumed.
5891 5894
       operationId: "ContainerPause"
5892 5895
       responses:
5893 5896
         204:
... ...
@@ -5940,15 +6328,20 @@ paths:
5940 5940
     post:
5941 5941
       summary: "Attach to a container"
5942 5942
       description: |
5943
-        Attach to a container to read its output or send it input. You can attach to the same container multiple times and you can reattach to containers that have been detached.
5943
+        Attach to a container to read its output or send it input. You can attach
5944
+        to the same container multiple times and you can reattach to containers
5945
+        that have been detached.
5944 5946
 
5945
-        Either the `stream` or `logs` parameter must be `true` for this endpoint to do anything.
5947
+        Either the `stream` or `logs` parameter must be `true` for this endpoint
5948
+        to do anything.
5946 5949
 
5947
-        See [the documentation for the `docker attach` command](https://docs.docker.com/engine/reference/commandline/attach/) for more details.
5950
+        See the [documentation for the `docker attach` command](https://docs.docker.com/engine/reference/commandline/attach/)
5951
+        for more details.
5948 5952
 
5949 5953
         ### Hijacking
5950 5954
 
5951
-        This endpoint hijacks the HTTP connection to transport `stdin`, `stdout`, and `stderr` on the same socket.
5955
+        This endpoint hijacks the HTTP connection to transport `stdin`, `stdout`,
5956
+        and `stderr` on the same socket.
5952 5957
 
5953 5958
         This is the response from the daemon for an attach request:
5954 5959
 
... ...
@@ -5959,9 +6352,11 @@ paths:
5959 5959
         [STREAM]
5960 5960
         ```
5961 5961
 
5962
-        After the headers and two new lines, the TCP connection can now be used for raw, bidirectional communication between the client and server.
5962
+        After the headers and two new lines, the TCP connection can now be used
5963
+        for raw, bidirectional communication between the client and server.
5963 5964
 
5964
-        To hint potential proxies about connection hijacking, the Docker client can also optionally send connection upgrade headers.
5965
+        To hint potential proxies about connection hijacking, the Docker client
5966
+        can also optionally send connection upgrade headers.
5965 5967
 
5966 5968
         For example, the client sends this request to upgrade the connection:
5967 5969
 
... ...
@@ -5971,7 +6366,8 @@ paths:
5971 5971
         Connection: Upgrade
5972 5972
         ```
5973 5973
 
5974
-        The Docker daemon will respond with a `101 UPGRADED` response, and will similarly follow with the raw stream:
5974
+        The Docker daemon will respond with a `101 UPGRADED` response, and will
5975
+        similarly follow with the raw stream:
5975 5976
 
5976 5977
         ```
5977 5978
         HTTP/1.1 101 UPGRADED
... ...
@@ -5984,9 +6380,14 @@ paths:
5984 5984
 
5985 5985
         ### Stream format
5986 5986
 
5987
-        When the TTY setting is disabled in [`POST /containers/create`](#operation/ContainerCreate), the stream over the hijacked connected is multiplexed to separate out `stdout` and `stderr`. The stream consists of a series of frames, each containing a header and a payload.
5987
+        When the TTY setting is disabled in [`POST /containers/create`](#operation/ContainerCreate),
5988
+        the stream over the hijacked connected is multiplexed to separate out
5989
+        `stdout` and `stderr`. The stream consists of a series of frames, each
5990
+        containing a header and a payload.
5988 5991
 
5989
-        The header contains the information which the stream writes (`stdout` or `stderr`). It also contains the size of the associated frame encoded in the last four bytes (`uint32`).
5992
+        The header contains the information which the stream writes (`stdout` or
5993
+        `stderr`). It also contains the size of the associated frame encoded in
5994
+        the last four bytes (`uint32`).
5990 5995
 
5991 5996
         It is encoded on the first eight bytes like this:
5992 5997
 
... ...
@@ -6000,9 +6401,11 @@ paths:
6000 6000
         - 1: `stdout`
6001 6001
         - 2: `stderr`
6002 6002
 
6003
-        `SIZE1, SIZE2, SIZE3, SIZE4` are the four bytes of the `uint32` size encoded as big endian.
6003
+        `SIZE1, SIZE2, SIZE3, SIZE4` are the four bytes of the `uint32` size
6004
+        encoded as big endian.
6004 6005
 
6005
-        Following the header is the payload, which is the specified number of bytes of `STREAM_TYPE`.
6006
+        Following the header is the payload, which is the specified number of
6007
+        bytes of `STREAM_TYPE`.
6006 6008
 
6007 6009
         The simplest way to implement this protocol is the following:
6008 6010
 
... ...
@@ -6014,7 +6417,10 @@ paths:
6014 6014
 
6015 6015
         ### Stream format when using a TTY
6016 6016
 
6017
-        When the TTY setting is enabled in [`POST /containers/create`](#operation/ContainerCreate), the stream is not multiplexed. The data exchanged over the hijacked connection is simply the raw data from the process PTY and client's `stdin`.
6017
+        When the TTY setting is enabled in [`POST /containers/create`](#operation/ContainerCreate),
6018
+        the stream is not multiplexed. The data exchanged over the hijacked
6019
+        connection is simply the raw data from the process PTY and client's
6020
+        `stdin`.
6018 6021
 
6019 6022
       operationId: "ContainerAttach"
6020 6023
       produces:
... ...
@@ -6047,21 +6453,28 @@ paths:
6047 6047
           type: "string"
6048 6048
         - name: "detachKeys"
6049 6049
           in: "query"
6050
-          description: "Override the key sequence for detaching a container.Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`."
6050
+          description: |
6051
+            Override the key sequence for detaching a container.Format is a single
6052
+            character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`,
6053
+            `@`, `^`, `[`, `,` or `_`.
6051 6054
           type: "string"
6052 6055
         - name: "logs"
6053 6056
           in: "query"
6054 6057
           description: |
6055 6058
             Replay previous logs from the container.
6056 6059
 
6057
-            This is useful for attaching to a container that has started and you want to output everything since the container started.
6060
+            This is useful for attaching to a container that has started and you
6061
+            want to output everything since the container started.
6058 6062
 
6059
-            If `stream` is also enabled, once all the previous output has been returned, it will seamlessly transition into streaming current output.
6063
+            If `stream` is also enabled, once all the previous output has been
6064
+            returned, it will seamlessly transition into streaming current
6065
+            output.
6060 6066
           type: "boolean"
6061 6067
           default: false
6062 6068
         - name: "stream"
6063 6069
           in: "query"
6064
-          description: "Stream attached streams from the time the request was made onwards"
6070
+          description: |
6071
+            Stream attached streams from the time the request was made onwards.
6065 6072
           type: "boolean"
6066 6073
           default: false
6067 6074
         - name: "stdin"
... ...
@@ -6112,7 +6525,10 @@ paths:
6112 6112
           type: "string"
6113 6113
         - name: "detachKeys"
6114 6114
           in: "query"
6115
-          description: "Override the key sequence for detaching a container.Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,`, or `_`."
6115
+          description: |
6116
+            Override the key sequence for detaching a container.Format is a single
6117
+            character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`,
6118
+            `@`, `^`, `[`, `,`, or `_`.
6116 6119
           type: "string"
6117 6120
         - name: "logs"
6118 6121
           in: "query"
... ...
@@ -6185,7 +6601,9 @@ paths:
6185 6185
           type: "string"
6186 6186
         - name: "condition"
6187 6187
           in: "query"
6188
-          description: "Wait until a container state reaches the given condition, either 'not-running' (default), 'next-exit', or 'removed'."
6188
+          description: |
6189
+            Wait until a container state reaches the given condition, either
6190
+            'not-running' (default), 'next-exit', or 'removed'.
6189 6191
           type: "string"
6190 6192
           default: "not-running"
6191 6193
       tags: ["Container"]
... ...
@@ -6213,7 +6631,9 @@ paths:
6213 6213
             $ref: "#/definitions/ErrorResponse"
6214 6214
           examples:
6215 6215
             application/json:
6216
-              message: "You cannot remove a running container: c2ada9df5af8. Stop the container before attempting removal or force remove"
6216
+              message: |
6217
+                You cannot remove a running container: c2ada9df5af8. Stop the
6218
+                container before attempting removal or force remove
6217 6219
         500:
6218 6220
           description: "server error"
6219 6221
           schema:
... ...
@@ -6243,7 +6663,10 @@ paths:
6243 6243
   /containers/{id}/archive:
6244 6244
     head:
6245 6245
       summary: "Get information about files in a container"
6246
-      description: "A response header `X-Docker-Container-Path-Stat` is return containing a base64 - encoded JSON object with some filesystem header information about the path."
6246
+      description: |
6247
+        A response header `X-Docker-Container-Path-Stat` is returned, containing
6248
+        a base64 - encoded JSON object with some filesystem header information
6249
+        about the path.
6247 6250
       operationId: "ContainerArchiveInfo"
6248 6251
       responses:
6249 6252
         200:
... ...
@@ -6251,7 +6674,9 @@ paths:
6251 6251
           headers:
6252 6252
             X-Docker-Container-Path-Stat:
6253 6253
               type: "string"
6254
-              description: "A base64 - encoded JSON object with some filesystem header information about the path"
6254
+              description: |
6255
+                A base64 - encoded JSON object with some filesystem header
6256
+                information about the path
6255 6257
         400:
6256 6258
           description: "Bad parameter"
6257 6259
           schema:
... ...
@@ -6260,7 +6685,10 @@ paths:
6260 6260
               - type: "object"
6261 6261
                 properties:
6262 6262
                   message:
6263
-                    description: "The error message. Either \"must specify path parameter\" (path cannot be empty) or \"not a directory\" (path was asserted to be a directory but exists as a file)."
6263
+                    description: |
6264
+                      The error message. Either "must specify path parameter"
6265
+                      (path cannot be empty) or "not a directory" (path was
6266
+                      asserted to be a directory but exists as a file).
6264 6267
                     type: "string"
6265 6268
                     x-nullable: false
6266 6269
         404:
... ...
@@ -6302,7 +6730,10 @@ paths:
6302 6302
               - type: "object"
6303 6303
                 properties:
6304 6304
                   message:
6305
-                    description: "The error message. Either \"must specify path parameter\" (path cannot be empty) or \"not a directory\" (path was asserted to be a directory but exists as a file)."
6305
+                    description: |
6306
+                      The error message. Either "must specify path parameter"
6307
+                      (path cannot be empty) or "not a directory" (path was
6308
+                      asserted to be a directory but exists as a file).
6306 6309
                     type: "string"
6307 6310
                     x-nullable: false
6308 6311
         404:
... ...
@@ -6368,16 +6799,24 @@ paths:
6368 6368
           type: "string"
6369 6369
         - name: "noOverwriteDirNonDir"
6370 6370
           in: "query"
6371
-          description: "If “1”, “true”, or “True” then it will be an error if unpacking the given content would cause an existing directory to be replaced with a non-directory and vice versa."
6371
+          description: |
6372
+            If `1`, `true`, or `True` then it will be an error if unpacking the
6373
+            given content would cause an existing directory to be replaced with
6374
+            a non-directory and vice versa.
6372 6375
           type: "string"
6373 6376
         - name: "copyUIDGID"
6374 6377
           in: "query"
6375
-          description: "If “1”, “true”, then it will copy UID/GID maps to the dest file or dir"
6378
+          description: |
6379
+            If `1`, `true`, then it will copy UID/GID maps to the dest file or
6380
+            dir
6376 6381
           type: "string"
6377 6382
         - name: "inputStream"
6378 6383
           in: "body"
6379 6384
           required: true
6380
-          description: "The input stream must be a tar archive compressed with one of the following algorithms: identity (no compression), gzip, bzip2, xz."
6385
+          description: |
6386
+            The input stream must be a tar archive compressed with one of the
6387
+            following algorithms: `identity` (no compression), `gzip`, `bzip2`,
6388
+            or `xz`.
6381 6389
           schema:
6382 6390
             type: "string"
6383 6391
             format: "binary"
... ...
@@ -6475,7 +6914,10 @@ paths:
6475 6475
         - name: "filters"
6476 6476
           in: "query"
6477 6477
           description: |
6478
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters:
6478
+            A JSON encoded value of the filters (a `map[string][]string`) to
6479
+            process on the images list.
6480
+
6481
+            Available filters:
6479 6482
 
6480 6483
             - `before`=(`<image-name>[:<tag>]`,  `<image id>` or `<image@digest>`)
6481 6484
             - `dangling=true`
... ...
@@ -6691,7 +7133,11 @@ paths:
6691 6691
           in: "query"
6692 6692
           type: "string"
6693 6693
           description: |
6694
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the list of build cache objects. Available filters:
6694
+            A JSON encoded value of the filters (a `map[string][]string`) to
6695
+            process on the list of build cache objects.
6696
+
6697
+            Available filters:
6698
+
6695 6699
             - `until=<duration>`: duration relative to daemon's time, during which build cache was not used, in Go's duration format (e.g., '24h')
6696 6700
             - `id=<id>`
6697 6701
             - `parent=<id>`
... ...
@@ -6771,7 +7217,11 @@ paths:
6771 6771
           required: false
6772 6772
         - name: "X-Registry-Auth"
6773 6773
           in: "header"
6774
-          description: "A base64-encoded auth configuration. [See the authentication section for details.](#section/Authentication)"
6774
+          description: |
6775
+            A base64url-encoded auth configuration.
6776
+
6777
+            Refer to the [authentication section](#section/Authentication) for
6778
+            details.
6775 6779
           type: "string"
6776 6780
         - name: "platform"
6777 6781
           in: "query"
... ...
@@ -6970,7 +7420,9 @@ paths:
6970 6970
       description: |
6971 6971
         Push an image to a registry.
6972 6972
 
6973
-        If you wish to push an image on to a private registry, that image must already have a tag which references the registry. For example, `registry.example.com/myimage:latest`.
6973
+        If you wish to push an image on to a private registry, that image must
6974
+        already have a tag which references the registry. For example,
6975
+        `registry.example.com/myimage:latest`.
6974 6976
 
6975 6977
         The push is cancelled if the HTTP connection is closed.
6976 6978
       operationId: "ImagePush"
... ...
@@ -6999,7 +7451,11 @@ paths:
6999 6999
           type: "string"
7000 7000
         - name: "X-Registry-Auth"
7001 7001
           in: "header"
7002
-          description: "A base64-encoded auth configuration. [See the authentication section for details.](#section/Authentication)"
7002
+          description: |
7003
+            A base64url-encoded auth configuration.
7004
+
7005
+            Refer to the [authentication section](#section/Authentication) for
7006
+            details.
7003 7007
           type: "string"
7004 7008
           required: true
7005 7009
       tags: ["Image"]
... ...
@@ -7203,7 +7659,9 @@ paths:
7203 7203
   /auth:
7204 7204
     post:
7205 7205
       summary: "Check auth configuration"
7206
-      description: "Validate credentials for a registry and, if available, get an identity token for accessing the registry without password."
7206
+      description: |
7207
+        Validate credentials for a registry and, if available, get an identity
7208
+        token for accessing the registry without password.
7207 7209
       operationId: "SystemAuth"
7208 7210
       consumes: ["application/json"]
7209 7211
       produces: ["application/json"]
... ...
@@ -7714,11 +8172,16 @@ paths:
7714 7714
     get:
7715 7715
       summary: "Export several images"
7716 7716
       description: |
7717
-        Get a tarball containing all images and metadata for several image repositories.
7717
+        Get a tarball containing all images and metadata for several image
7718
+        repositories.
7718 7719
 
7719
-        For each value of the `names` parameter: if it is a specific name and tag (e.g. `ubuntu:latest`), then only that image (and its parents) are returned; if it is an image ID, similarly only that image (and its parents) are returned and there would be no names referenced in the 'repositories' file for this image ID.
7720
+        For each value of the `names` parameter: if it is a specific name and
7721
+        tag (e.g. `ubuntu:latest`), then only that image (and its parents) are
7722
+        returned; if it is an image ID, similarly only that image (and its parents)
7723
+        are returned and there would be no names referenced in the 'repositories'
7724
+        file for this image ID.
7720 7725
 
7721
-        For details on the format, see [the export image endpoint](#operation/ImageGet).
7726
+        For details on the format, see the [export image endpoint](#operation/ImageGet).
7722 7727
       operationId: "ImageGetAll"
7723 7728
       produces:
7724 7729
         - "application/x-tar"
... ...
@@ -7746,7 +8209,7 @@ paths:
7746 7746
       description: |
7747 7747
         Load a set of images and tags into a repository.
7748 7748
 
7749
-        For details on the format, see [the export image endpoint](#operation/ImageGet).
7749
+        For details on the format, see the [export image endpoint](#operation/ImageGet).
7750 7750
       operationId: "ImageLoad"
7751 7751
       consumes:
7752 7752
         - "application/x-tar"
... ...
@@ -7819,12 +8282,16 @@ paths:
7819 7819
                 description: "Attach to `stderr` of the exec command."
7820 7820
               DetachKeys:
7821 7821
                 type: "string"
7822
-                description: "Override the key sequence for detaching a container. Format is a single character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`."
7822
+                description: |
7823
+                  Override the key sequence for detaching a container. Format is
7824
+                  a single character `[a-Z]` or `ctrl-<value>` where `<value>`
7825
+                  is one of: `a-z`, `@`, `^`, `[`, `,` or `_`.
7823 7826
               Tty:
7824 7827
                 type: "boolean"
7825 7828
                 description: "Allocate a pseudo-TTY."
7826 7829
               Env:
7827
-                description: "A list of environment variables in the form `[\"VAR=value\", ...]`."
7830
+                description: |
7831
+                  A list of environment variables in the form `["VAR=value", ...]`.
7828 7832
                 type: "array"
7829 7833
                 items:
7830 7834
                   type: "string"
... ...
@@ -7839,10 +8306,14 @@ paths:
7839 7839
                 default: false
7840 7840
               User:
7841 7841
                 type: "string"
7842
-                description: "The user, and optionally, group to run the exec process inside the container. Format is one of: `user`, `user:group`, `uid`, or `uid:gid`."
7842
+                description: |
7843
+                  The user, and optionally, group to run the exec process inside
7844
+                  the container. Format is one of: `user`, `user:group`, `uid`,
7845
+                  or `uid:gid`.
7843 7846
               WorkingDir:
7844 7847
                 type: "string"
7845
-                description: "The working directory for the exec process inside the container."
7848
+                description: |
7849
+                  The working directory for the exec process inside the container.
7846 7850
             example:
7847 7851
               AttachStdin: false
7848 7852
               AttachStdout: true
... ...
@@ -7864,7 +8335,10 @@ paths:
7864 7864
   /exec/{id}/start:
7865 7865
     post:
7866 7866
       summary: "Start an exec instance"
7867
-      description: "Starts a previously set up exec instance. If detach is true, this endpoint returns immediately after starting the command. Otherwise, it sets up an interactive session with the command."
7867
+      description: |
7868
+        Starts a previously set up exec instance. If detach is true, this endpoint
7869
+        returns immediately after starting the command. Otherwise, it sets up an
7870
+        interactive session with the command.
7868 7871
       operationId: "ExecStart"
7869 7872
       consumes:
7870 7873
         - "application/json"
... ...
@@ -7905,7 +8379,9 @@ paths:
7905 7905
   /exec/{id}/resize:
7906 7906
     post:
7907 7907
       summary: "Resize an exec instance"
7908
-      description: "Resize the TTY session used by an exec instance. This endpoint only works if `tty` was specified as part of creating and starting the exec instance."
7908
+      description: |
7909
+        Resize the TTY session used by an exec instance. This endpoint only works
7910
+        if `tty` was specified as part of creating and starting the exec instance.
7909 7911
       operationId: "ExecResize"
7910 7912
       responses:
7911 7913
         201:
... ...
@@ -8025,7 +8501,8 @@ paths:
8025 8025
               Warnings:
8026 8026
                 type: "array"
8027 8027
                 x-nullable: false
8028
-                description: "Warnings that occurred when fetching the list of volumes"
8028
+                description: |
8029
+                  Warnings that occurred when fetching the list of volumes.
8029 8030
                 items:
8030 8031
                   type: "string"
8031 8032
 
... ...
@@ -8094,7 +8571,8 @@ paths:
8094 8094
             title: "VolumeConfig"
8095 8095
             properties:
8096 8096
               Name:
8097
-                description: "The new volume's name. If not specified, Docker generates a name."
8097
+                description: |
8098
+                  The new volume's name. If not specified, Docker generates a name.
8098 8099
                 type: "string"
8099 8100
                 x-nullable: false
8100 8101
               Driver:
... ...
@@ -8103,7 +8581,9 @@ paths:
8103 8103
                 default: "local"
8104 8104
                 x-nullable: false
8105 8105
               DriverOpts:
8106
-                description: "A mapping of driver options and values. These options are passed directly to the driver and are driver specific."
8106
+                description: |
8107
+                  A mapping of driver options and values. These options are
8108
+                  passed directly to the driver and are driver specific.
8107 8109
                 type: "object"
8108 8110
                 additionalProperties:
8109 8111
                   type: "string"
... ...
@@ -8217,10 +8697,12 @@ paths:
8217 8217
     get:
8218 8218
       summary: "List networks"
8219 8219
       description: |
8220
-        Returns a list of networks. For details on the format, see [the network inspect endpoint](#operation/NetworkInspect).
8220
+        Returns a list of networks. For details on the format, see the
8221
+        [network inspect endpoint](#operation/NetworkInspect).
8221 8222
 
8222
-        Note that it uses a different, smaller representation of a network than inspecting a single network. For example,
8223
-        the list of containers attached to the network is not propagated in API versions 1.28 and up.
8223
+        Note that it uses a different, smaller representation of a network than
8224
+        inspecting a single network. For example, the list of containers attached
8225
+        to the network is not propagated in API versions 1.28 and up.
8224 8226
       operationId: "NetworkList"
8225 8227
       produces:
8226 8228
         - "application/json"
... ...
@@ -8290,7 +8772,10 @@ paths:
8290 8290
         - name: "filters"
8291 8291
           in: "query"
8292 8292
           description: |
8293
-            JSON encoded value of the filters (a `map[string][]string`) to process on the networks list. Available filters:
8293
+            JSON encoded value of the filters (a `map[string][]string`) to process
8294
+            on the networks list.
8295
+
8296
+            Available filters:
8294 8297
 
8295 8298
             - `dangling=<boolean>` When set to `true` (or `1`), returns all
8296 8299
                networks that are not in use by a container. When set to `false`
... ...
@@ -8415,7 +8900,14 @@ paths:
8415 8415
                 description: "The network's name."
8416 8416
                 type: "string"
8417 8417
               CheckDuplicate:
8418
-                description: "Check for networks with duplicate names. Since Network is primarily keyed based on a random ID and not on the name, and network name is strictly a user-friendly alias to the network which is uniquely identified using ID, there is no guaranteed way to check for duplicates. CheckDuplicate is there to provide a best effort checking of any networks which has the same name but it is not guaranteed to catch all name collisions."
8418
+                description: |
8419
+                  Check for networks with duplicate names. Since Network is
8420
+                  primarily keyed based on a random ID and not on the name, and
8421
+                  network name is strictly a user-friendly alias to the network
8422
+                  which is uniquely identified using ID, there is no guaranteed
8423
+                  way to check for duplicates. CheckDuplicate is there to provide
8424
+                  a best effort checking of any networks which has the same name
8425
+                  but it is not guaranteed to catch all name collisions.
8419 8426
                 type: "boolean"
8420 8427
               Driver:
8421 8428
                 description: "Name of the network driver plugin to use."
... ...
@@ -8425,10 +8917,14 @@ paths:
8425 8425
                 description: "Restrict external access to the network."
8426 8426
                 type: "boolean"
8427 8427
               Attachable:
8428
-                description: "Globally scoped network is manually attachable by regular containers from workers in swarm mode."
8428
+                description: |
8429
+                  Globally scoped network is manually attachable by regular
8430
+                  containers from workers in swarm mode.
8429 8431
                 type: "boolean"
8430 8432
               Ingress:
8431
-                description: "Ingress network is the network which provides the routing-mesh in swarm mode."
8433
+                description: |
8434
+                  Ingress network is the network which provides the routing-mesh
8435
+                  in swarm mode.
8432 8436
                 type: "boolean"
8433 8437
               IPAM:
8434 8438
                 description: "Optional custom IP scheme for the network."
... ...
@@ -8557,10 +9053,12 @@ paths:
8557 8557
             properties:
8558 8558
               Container:
8559 8559
                 type: "string"
8560
-                description: "The ID or name of the container to disconnect from the network."
8560
+                description: |
8561
+                  The ID or name of the container to disconnect from the network.
8561 8562
               Force:
8562 8563
                 type: "boolean"
8563
-                description: "Force the container to disconnect from the network."
8564
+                description: |
8565
+                  Force the container to disconnect from the network.
8564 8566
       tags: ["Network"]
8565 8567
   /networks/prune:
8566 8568
     post:
... ...
@@ -8617,7 +9115,10 @@ paths:
8617 8617
           in: "query"
8618 8618
           type: "string"
8619 8619
           description: |
8620
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the plugin list. Available filters:
8620
+            A JSON encoded value of the filters (a `map[string][]string`) to
8621
+            process on the plugin list.
8622
+
8623
+            Available filters:
8621 8624
 
8622 8625
             - `capability=<capability name>`
8623 8626
             - `enable=<true>|<false>`
... ...
@@ -8633,7 +9134,9 @@ paths:
8633 8633
           schema:
8634 8634
             type: "array"
8635 8635
             items:
8636
-              description: "Describes a permission the user has to accept upon installing the plugin."
8636
+              description: |
8637
+                Describes a permission the user has to accept upon installing
8638
+                the plugin.
8637 8639
               type: "object"
8638 8640
               title: "PluginPrivilegeItem"
8639 8641
               properties:
... ...
@@ -8665,7 +9168,9 @@ paths:
8665 8665
       parameters:
8666 8666
         - name: "remote"
8667 8667
           in: "query"
8668
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8668
+          description: |
8669
+            The name of the plugin. The `:latest` tag is optional, and is the
8670
+            default if omitted.
8669 8671
           required: true
8670 8672
           type: "string"
8671 8673
       tags:
... ...
@@ -8676,7 +9181,8 @@ paths:
8676 8676
       summary: "Install a plugin"
8677 8677
       operationId: "PluginPull"
8678 8678
       description: |
8679
-        Pulls and installs a plugin. After the plugin is installed, it can be enabled using the [`POST /plugins/{name}/enable` endpoint](#operation/PostPluginsEnable).
8679
+        Pulls and installs a plugin. After the plugin is installed, it can be
8680
+        enabled using the [`POST /plugins/{name}/enable` endpoint](#operation/PostPluginsEnable).
8680 8681
       produces:
8681 8682
         - "application/json"
8682 8683
       responses:
... ...
@@ -8705,14 +9211,21 @@ paths:
8705 8705
           type: "string"
8706 8706
         - name: "X-Registry-Auth"
8707 8707
           in: "header"
8708
-          description: "A base64-encoded auth configuration to use when pulling a plugin from a registry. [See the authentication section for details.](#section/Authentication)"
8708
+          description: |
8709
+            A base64url-encoded auth configuration to use when pulling a plugin
8710
+            from a registry.
8711
+
8712
+            Refer to the [authentication section](#section/Authentication) for
8713
+            details.
8709 8714
           type: "string"
8710 8715
         - name: "body"
8711 8716
           in: "body"
8712 8717
           schema:
8713 8718
             type: "array"
8714 8719
             items:
8715
-              description: "Describes a permission accepted by the user upon installing the plugin."
8720
+              description: |
8721
+                Describes a permission accepted by the user upon installing the
8722
+                plugin.
8716 8723
               type: "object"
8717 8724
               properties:
8718 8725
                 Name:
... ...
@@ -8757,7 +9270,9 @@ paths:
8757 8757
       parameters:
8758 8758
         - name: "name"
8759 8759
           in: "path"
8760
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8760
+          description: |
8761
+            The name of the plugin. The `:latest` tag is optional, and is the
8762
+            default if omitted.
8761 8763
           required: true
8762 8764
           type: "string"
8763 8765
       tags: ["Plugin"]
... ...
@@ -8781,12 +9296,16 @@ paths:
8781 8781
       parameters:
8782 8782
         - name: "name"
8783 8783
           in: "path"
8784
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8784
+          description: |
8785
+            The name of the plugin. The `:latest` tag is optional, and is the
8786
+            default if omitted.
8785 8787
           required: true
8786 8788
           type: "string"
8787 8789
         - name: "force"
8788 8790
           in: "query"
8789
-          description: "Disable the plugin before removing. This may result in issues if the plugin is in use by a container."
8791
+          description: |
8792
+            Disable the plugin before removing. This may result in issues if the
8793
+            plugin is in use by a container.
8790 8794
           type: "boolean"
8791 8795
           default: false
8792 8796
       tags: ["Plugin"]
... ...
@@ -8808,7 +9327,9 @@ paths:
8808 8808
       parameters:
8809 8809
         - name: "name"
8810 8810
           in: "path"
8811
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8811
+          description: |
8812
+            The name of the plugin. The `:latest` tag is optional, and is the
8813
+            default if omitted.
8812 8814
           required: true
8813 8815
           type: "string"
8814 8816
         - name: "timeout"
... ...
@@ -8835,7 +9356,9 @@ paths:
8835 8835
       parameters:
8836 8836
         - name: "name"
8837 8837
           in: "path"
8838
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8838
+          description: |
8839
+            The name of the plugin. The `:latest` tag is optional, and is the
8840
+            default if omitted.
8839 8841
           required: true
8840 8842
           type: "string"
8841 8843
       tags: ["Plugin"]
... ...
@@ -8857,7 +9380,9 @@ paths:
8857 8857
       parameters:
8858 8858
         - name: "name"
8859 8859
           in: "path"
8860
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8860
+          description: |
8861
+            The name of the plugin. The `:latest` tag is optional, and is the
8862
+            default if omitted.
8861 8863
           required: true
8862 8864
           type: "string"
8863 8865
         - name: "remote"
... ...
@@ -8870,14 +9395,21 @@ paths:
8870 8870
           type: "string"
8871 8871
         - name: "X-Registry-Auth"
8872 8872
           in: "header"
8873
-          description: "A base64-encoded auth configuration to use when pulling a plugin from a registry. [See the authentication section for details.](#section/Authentication)"
8873
+          description: |
8874
+            A base64url-encoded auth configuration to use when pulling a plugin
8875
+            from a registry.
8876
+
8877
+            Refer to the [authentication section](#section/Authentication) for
8878
+            details.
8874 8879
           type: "string"
8875 8880
         - name: "body"
8876 8881
           in: "body"
8877 8882
           schema:
8878 8883
             type: "array"
8879 8884
             items:
8880
-              description: "Describes a permission accepted by the user upon installing the plugin."
8885
+              description: |
8886
+                Describes a permission accepted by the user upon installing the
8887
+                plugin.
8881 8888
               type: "object"
8882 8889
               properties:
8883 8890
                 Name:
... ...
@@ -8918,7 +9450,9 @@ paths:
8918 8918
       parameters:
8919 8919
         - name: "name"
8920 8920
           in: "query"
8921
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8921
+          description: |
8922
+            The name of the plugin. The `:latest` tag is optional, and is the
8923
+            default if omitted.
8922 8924
           required: true
8923 8925
           type: "string"
8924 8926
         - name: "tarContext"
... ...
@@ -8937,7 +9471,9 @@ paths:
8937 8937
       parameters:
8938 8938
         - name: "name"
8939 8939
           in: "path"
8940
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8940
+          description: |
8941
+            The name of the plugin. The `:latest` tag is optional, and is the
8942
+            default if omitted.
8941 8943
           required: true
8942 8944
           type: "string"
8943 8945
       responses:
... ...
@@ -8961,7 +9497,9 @@ paths:
8961 8961
       parameters:
8962 8962
         - name: "name"
8963 8963
           in: "path"
8964
-          description: "The name of the plugin. The `:latest` tag is optional, and is the default if omitted."
8964
+          description: |
8965
+            The name of the plugin. The `:latest` tag is optional, and is the
8966
+            default if omitted.
8965 8967
           required: true
8966 8968
           type: "string"
8967 8969
         - name: "body"
... ...
@@ -9110,7 +9648,9 @@ paths:
9110 9110
             $ref: "#/definitions/NodeSpec"
9111 9111
         - name: "version"
9112 9112
           in: "query"
9113
-          description: "The version number of the node object being updated. This is required to avoid conflicting writes."
9113
+          description: |
9114
+            The version number of the node object being updated. This is required
9115
+            to avoid conflicting writes.
9114 9116
           type: "integer"
9115 9117
           format: "int64"
9116 9118
           required: true
... ...
@@ -9171,20 +9711,35 @@ paths:
9171 9171
             type: "object"
9172 9172
             properties:
9173 9173
               ListenAddr:
9174
-                description: "Listen address used for inter-manager communication, as well as determining the networking interface used for the VXLAN Tunnel Endpoint (VTEP). This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the default swarm listening port is used."
9174
+                description: |
9175
+                  Listen address used for inter-manager communication, as well
9176
+                  as determining the networking interface used for the VXLAN
9177
+                  Tunnel Endpoint (VTEP). This can either be an address/port
9178
+                  combination in the form `192.168.1.1:4567`, or an interface
9179
+                  followed by a port number, like `eth0:4567`. If the port number
9180
+                  is omitted, the default swarm listening port is used.
9175 9181
                 type: "string"
9176 9182
               AdvertiseAddr:
9177
-                description: "Externally reachable address advertised to other nodes. This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the port number from the listen address is used. If `AdvertiseAddr` is not specified, it will be automatically detected when possible."
9183
+                description: |
9184
+                  Externally reachable address advertised to other nodes. This
9185
+                  can either be an address/port combination in the form
9186
+                  `192.168.1.1:4567`, or an interface followed by a port number,
9187
+                  like `eth0:4567`. If the port number is omitted, the port
9188
+                  number from the listen address is used. If `AdvertiseAddr` is
9189
+                  not specified, it will be automatically detected when possible.
9178 9190
                 type: "string"
9179 9191
               DataPathAddr:
9180 9192
                 description: |
9181
-                  Address or interface to use for data path traffic (format: `<ip|interface>`), for example,  `192.168.1.1`,
9182
-                  or an interface, like `eth0`. If `DataPathAddr` is unspecified, the same address as `AdvertiseAddr`
9183
-                  is used.
9184
-
9185
-                  The `DataPathAddr` specifies the address that global scope network drivers will publish towards other
9186
-                  nodes in order to reach the containers running on this node. Using this parameter it is possible to
9187
-                  separate the container data traffic from the management traffic of the cluster.
9193
+                  Address or interface to use for data path traffic (format:
9194
+                  `<ip|interface>`), for example,  `192.168.1.1`, or an interface,
9195
+                  like `eth0`. If `DataPathAddr` is unspecified, the same address
9196
+                  as `AdvertiseAddr` is used.
9197
+
9198
+                  The `DataPathAddr` specifies the address that global scope
9199
+                  network drivers will publish towards other  nodes in order to
9200
+                  reach the containers running on this node. Using this parameter
9201
+                  it is possible to separate the container data traffic from the
9202
+                  management traffic of the cluster.
9188 9203
                 type: "string"
9189 9204
               DataPathPort:
9190 9205
                 description: |
... ...
@@ -9195,7 +9750,8 @@ paths:
9195 9195
                 format: "uint32"
9196 9196
               DefaultAddrPool:
9197 9197
                 description: |
9198
-                  Default Address Pool specifies default subnet pools for global scope networks.
9198
+                  Default Address Pool specifies default subnet pools for global
9199
+                  scope networks.
9199 9200
                 type: "array"
9200 9201
                 items:
9201 9202
                   type: "string"
... ...
@@ -9205,7 +9761,8 @@ paths:
9205 9205
                 type: "boolean"
9206 9206
               SubnetSize:
9207 9207
                 description: |
9208
-                  SubnetSize specifies the subnet size of the networks created from the default subnet pool
9208
+                  SubnetSize specifies the subnet size of the networks created
9209
+                  from the default subnet pool.
9209 9210
                 type: "integer"
9210 9211
                 format: "uint32"
9211 9212
               Spec:
... ...
@@ -9252,24 +9809,37 @@ paths:
9252 9252
             type: "object"
9253 9253
             properties:
9254 9254
               ListenAddr:
9255
-                description: "Listen address used for inter-manager communication if the node gets promoted to manager, as well as determining the networking interface used for the VXLAN Tunnel Endpoint (VTEP)."
9255
+                description: |
9256
+                  Listen address used for inter-manager communication if the node
9257
+                  gets promoted to manager, as well as determining the networking
9258
+                  interface used for the VXLAN Tunnel Endpoint (VTEP).
9256 9259
                 type: "string"
9257 9260
               AdvertiseAddr:
9258
-                description: "Externally reachable address advertised to other nodes. This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the port number from the listen address is used. If `AdvertiseAddr` is not specified, it will be automatically detected when possible."
9261
+                description: |
9262
+                  Externally reachable address advertised to other nodes. This
9263
+                  can either be an address/port combination in the form
9264
+                  `192.168.1.1:4567`, or an interface followed by a port number,
9265
+                  like `eth0:4567`. If the port number is omitted, the port
9266
+                  number from the listen address is used. If `AdvertiseAddr` is
9267
+                  not specified, it will be automatically detected when possible.
9259 9268
                 type: "string"
9260 9269
               DataPathAddr:
9261 9270
                 description: |
9262
-                  Address or interface to use for data path traffic (format: `<ip|interface>`), for example,  `192.168.1.1`,
9263
-                  or an interface, like `eth0`. If `DataPathAddr` is unspecified, the same address as `AdvertiseAddr`
9264
-                  is used.
9271
+                  Address or interface to use for data path traffic (format:
9272
+                  `<ip|interface>`), for example,  `192.168.1.1`, or an interface,
9273
+                  like `eth0`. If `DataPathAddr` is unspecified, the same addres
9274
+                  as `AdvertiseAddr` is used.
9265 9275
 
9266
-                  The `DataPathAddr` specifies the address that global scope network drivers will publish towards other
9267
-                  nodes in order to reach the containers running on this node. Using this parameter it is possible to
9268
-                  separate the container data traffic from the management traffic of the cluster.
9276
+                  The `DataPathAddr` specifies the address that global scope
9277
+                  network drivers will publish towards other nodes in order to
9278
+                  reach the containers running on this node. Using this parameter
9279
+                  it is possible to separate the container data traffic from the
9280
+                  management traffic of the cluster.
9269 9281
 
9270 9282
                 type: "string"
9271 9283
               RemoteAddrs:
9272
-                description: "Addresses of manager nodes already participating in the swarm."
9284
+                description: |
9285
+                  Addresses of manager nodes already participating in the swarm.
9273 9286
                 type: "array"
9274 9287
                 items:
9275 9288
                   type: "string"
... ...
@@ -9300,7 +9870,9 @@ paths:
9300 9300
             $ref: "#/definitions/ErrorResponse"
9301 9301
       parameters:
9302 9302
         - name: "force"
9303
-          description: "Force leave swarm, even if this is the last manager or that it will break the cluster."
9303
+          description: |
9304
+            Force leave swarm, even if this is the last manager or that it will
9305
+            break the cluster.
9304 9306
           in: "query"
9305 9307
           type: "boolean"
9306 9308
           default: false
... ...
@@ -9332,7 +9904,9 @@ paths:
9332 9332
             $ref: "#/definitions/SwarmSpec"
9333 9333
         - name: "version"
9334 9334
           in: "query"
9335
-          description: "The version number of the swarm object being updated. This is required to avoid conflicting writes."
9335
+          description: |
9336
+            The version number of the swarm object being updated. This is
9337
+            required to avoid conflicting writes.
9336 9338
           type: "integer"
9337 9339
           format: "int64"
9338 9340
           required: true
... ...
@@ -9435,7 +10009,10 @@ paths:
9435 9435
           in: "query"
9436 9436
           type: "string"
9437 9437
           description: |
9438
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the services list. Available filters:
9438
+            A JSON encoded value of the filters (a `map[string][]string`) to
9439
+            process on the services list.
9440
+
9441
+            Available filters:
9439 9442
 
9440 9443
             - `id=<service id>`
9441 9444
             - `label=<service label>`
... ...
@@ -9563,7 +10140,12 @@ paths:
9563 9563
                     foo: "bar"
9564 9564
         - name: "X-Registry-Auth"
9565 9565
           in: "header"
9566
-          description: "A base64-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)"
9566
+          description: |
9567
+            A base64url-encoded auth configuration for pulling from private
9568
+            registries.
9569
+
9570
+            Refer to the [authentication section](#section/Authentication) for
9571
+            details.
9567 9572
           type: "string"
9568 9573
       tags: ["Service"]
9569 9574
   /services/{id}:
... ...
@@ -9699,10 +10281,12 @@ paths:
9699 9699
 
9700 9700
         - name: "version"
9701 9701
           in: "query"
9702
-          description: "The version number of the service object being updated.
9703
-          This is required to avoid conflicting writes.
9704
-          This version number should be the value as currently set on the service *before* the update.
9705
-          You can find the current version by calling `GET /services/{id}`"
9702
+          description: |
9703
+            The version number of the service object being updated. This is
9704
+            required to avoid conflicting writes.
9705
+            This version number should be the value as currently set on the
9706
+            service *before* the update. You can find the current version by
9707
+            calling `GET /services/{id}`
9706 9708
           required: true
9707 9709
           type: "integer"
9708 9710
         - name: "registryAuthFrom"
... ...
@@ -9722,7 +10306,12 @@ paths:
9722 9722
           type: "string"
9723 9723
         - name: "X-Registry-Auth"
9724 9724
           in: "header"
9725
-          description: "A base64-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)"
9725
+          description: |
9726
+            A base64url-encoded auth configuration for pulling from private
9727
+            registries.
9728
+
9729
+            Refer to the [authentication section](#section/Authentication) for
9730
+            details.
9726 9731
           type: "string"
9727 9732
 
9728 9733
       tags: ["Service"]
... ...
@@ -9730,9 +10319,11 @@ paths:
9730 9730
     get:
9731 9731
       summary: "Get service logs"
9732 9732
       description: |
9733
-        Get `stdout` and `stderr` logs from a service. See also [`/containers/{id}/logs`](#operation/ContainerLogs).
9733
+        Get `stdout` and `stderr` logs from a service. See also
9734
+        [`/containers/{id}/logs`](#operation/ContainerLogs).
9734 9735
 
9735
-        **Note**: This endpoint works only for services with the `local`, `json-file` or `journald` logging drivers.
9736
+        **Note**: This endpoint works only for services with the `local`,
9737
+        `json-file` or `journald` logging drivers.
9736 9738
       operationId: "ServiceLogs"
9737 9739
       responses:
9738 9740
         200:
... ...
@@ -9793,7 +10384,9 @@ paths:
9793 9793
           default: false
9794 9794
         - name: "tail"
9795 9795
           in: "query"
9796
-          description: "Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines."
9796
+          description: |
9797
+            Only return this number of log lines from the end of the logs.
9798
+            Specify as an integer or `all` to output all log lines.
9797 9799
           type: "string"
9798 9800
           default: "all"
9799 9801
       tags: ["Service"]
... ...
@@ -9934,7 +10527,10 @@ paths:
9934 9934
           in: "query"
9935 9935
           type: "string"
9936 9936
           description: |
9937
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the tasks list. Available filters:
9937
+            A JSON encoded value of the filters (a `map[string][]string`) to
9938
+            process on the tasks list.
9939
+
9940
+            Available filters:
9938 9941
 
9939 9942
             - `desired-state=(running | shutdown | accepted)`
9940 9943
             - `id=<task id>`
... ...
@@ -9977,9 +10573,11 @@ paths:
9977 9977
     get:
9978 9978
       summary: "Get task logs"
9979 9979
       description: |
9980
-        Get `stdout` and `stderr` logs from a task. See also [`/containers/{id}/logs`](#operation/ContainerLogs).
9980
+        Get `stdout` and `stderr` logs from a task.
9981
+        See also [`/containers/{id}/logs`](#operation/ContainerLogs).
9981 9982
 
9982
-        **Note**: This endpoint works only for services with the `local`, `json-file` or `journald` logging drivers.
9983
+        **Note**: This endpoint works only for services with the `local`,
9984
+        `json-file` or `journald` logging drivers.
9983 9985
       operationId: "TaskLogs"
9984 9986
       responses:
9985 9987
         200:
... ...
@@ -10040,7 +10638,9 @@ paths:
10040 10040
           default: false
10041 10041
         - name: "tail"
10042 10042
           in: "query"
10043
-          description: "Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines."
10043
+          description: |
10044
+            Only return this number of log lines from the end of the logs.
10045
+            Specify as an integer or `all` to output all log lines.
10044 10046
           type: "string"
10045 10047
           default: "all"
10046 10048
       tags: ["Task"]
... ...
@@ -10094,7 +10694,10 @@ paths:
10094 10094
           in: "query"
10095 10095
           type: "string"
10096 10096
           description: |
10097
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the secrets list. Available filters:
10097
+            A JSON encoded value of the filters (a `map[string][]string`) to
10098
+            process on the secrets list.
10099
+
10100
+            Available filters:
10098 10101
 
10099 10102
             - `id=<secret id>`
10100 10103
             - `label=<key> or label=<key>=value`
... ...
@@ -10251,10 +10854,15 @@ paths:
10251 10251
           in: "body"
10252 10252
           schema:
10253 10253
             $ref: "#/definitions/SecretSpec"
10254
-          description: "The spec of the secret to update. Currently, only the Labels field can be updated. All other fields must remain unchanged from the [SecretInspect endpoint](#operation/SecretInspect) response values."
10254
+          description: |
10255
+            The spec of the secret to update. Currently, only the Labels field
10256
+            can be updated. All other fields must remain unchanged from the
10257
+            [SecretInspect endpoint](#operation/SecretInspect) response values.
10255 10258
         - name: "version"
10256 10259
           in: "query"
10257
-          description: "The version number of the secret object being updated. This is required to avoid conflicting writes."
10260
+          description: |
10261
+            The version number of the secret object being updated. This is
10262
+            required to avoid conflicting writes.
10258 10263
           type: "integer"
10259 10264
           format: "int64"
10260 10265
           required: true
... ...
@@ -10293,7 +10901,10 @@ paths:
10293 10293
           in: "query"
10294 10294
           type: "string"
10295 10295
           description: |
10296
-            A JSON encoded value of the filters (a `map[string][]string`) to process on the configs list. Available filters:
10296
+            A JSON encoded value of the filters (a `map[string][]string`) to
10297
+            process on the configs list.
10298
+
10299
+            Available filters:
10297 10300
 
10298 10301
             - `id=<config id>`
10299 10302
             - `label=<key> or label=<key>=value`
... ...
@@ -10437,10 +11048,15 @@ paths:
10437 10437
           in: "body"
10438 10438
           schema:
10439 10439
             $ref: "#/definitions/ConfigSpec"
10440
-          description: "The spec of the config to update. Currently, only the Labels field can be updated. All other fields must remain unchanged from the [ConfigInspect endpoint](#operation/ConfigInspect) response values."
10440
+          description: |
10441
+            The spec of the config to update. Currently, only the Labels field
10442
+            can be updated. All other fields must remain unchanged from the
10443
+            [ConfigInspect endpoint](#operation/ConfigInspect) response values.
10441 10444
         - name: "version"
10442 10445
           in: "query"
10443
-          description: "The version number of the config object being updated. This is required to avoid conflicting writes."
10446
+          description: |
10447
+            The version number of the config object being updated. This is
10448
+            required to avoid conflicting writes.
10444 10449
           type: "integer"
10445 10450
           format: "int64"
10446 10451
           required: true
... ...
@@ -10448,7 +11064,8 @@ paths:
10448 10448
   /distribution/{name}/json:
10449 10449
     get:
10450 10450
       summary: "Get image information from the registry"
10451
-      description: "Return image digest and platform information by contacting the registry."
10451
+      description: |
10452
+        Return image digest and platform information by contacting the registry.
10452 10453
       operationId: "DistributionInspect"
10453 10454
       produces:
10454 10455
         - "application/json"
... ...
@@ -10463,7 +11080,8 @@ paths:
10463 10463
             properties:
10464 10464
               Descriptor:
10465 10465
                 type: "object"
10466
-                description: "A descriptor struct containing digest, media type, and size"
10466
+                description: |
10467
+                  A descriptor struct containing digest, media type, and size.
10467 10468
                 properties:
10468 10469
                   MediaType:
10469 10470
                     type: "string"
... ...
@@ -10478,7 +11096,8 @@ paths:
10478 10478
                       type: "string"
10479 10479
               Platforms:
10480 10480
                 type: "array"
10481
-                description: "An array containing all platforms supported by the image"
10481
+                description: |
10482
+                  An array containing all platforms supported by the image.
10482 10483
                 items:
10483 10484
                   type: "object"
10484 10485
                   properties:
... ...
@@ -10537,11 +11156,13 @@ paths:
10537 10537
     post:
10538 10538
       summary: "Initialize interactive session"
10539 10539
       description: |
10540
-        Start a new interactive session with a server. Session allows server to call back to the client for advanced capabilities.
10540
+        Start a new interactive session with a server. Session allows server to
10541
+        call back to the client for advanced capabilities.
10541 10542
 
10542 10543
         ### Hijacking
10543 10544
 
10544
-        This endpoint hijacks the HTTP connection to HTTP2 transport that allows the client to expose gPRC services on that connection.
10545
+        This endpoint hijacks the HTTP connection to HTTP2 transport that allows
10546
+        the client to expose gPRC services on that connection.
10545 10547
 
10546 10548
         For example, the client sends this request to upgrade the connection:
10547 10549
 
... ...
@@ -10551,7 +11172,8 @@ paths:
10551 10551
         Connection: Upgrade
10552 10552
         ```
10553 10553
 
10554
-        The Docker daemon will respond with a `101 UPGRADED` response follow with the raw stream:
10554
+        The Docker daemon responds with a `101 UPGRADED` response follow with
10555
+        the raw stream:
10555 10556
 
10556 10557
         ```
10557 10558
         HTTP/1.1 101 UPGRADED