Browse code

Merge pull request #34485 from thaJeztah/swagger-updates

Various fixes and improvements to the API docs / Swagger specs

Sebastiaan van Stijn authored on 2017/08/16 21:29:06
Showing 1 changed files
... ...
@@ -301,6 +301,7 @@ definitions:
301 301
           Mode:
302 302
             description: "The permission mode for the tmpfs mount in an integer."
303 303
             type: "integer"
304
+
304 305
   RestartPolicy:
305 306
     description: |
306 307
       The behavior to apply when the container exits. The default is not to restart.
... ...
@@ -400,6 +401,7 @@ definitions:
400 400
       CpusetCpus:
401 401
         description: "CPUs in which to allow execution (e.g., `0-3`, `0,1`)"
402 402
         type: "string"
403
+        example: "0-3"
403 404
       CpusetMems:
404 405
         description: "Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only effective on NUMA systems."
405 406
         type: "string"
... ...
@@ -494,14 +496,16 @@ definitions:
494 494
       NanoCPUs:
495 495
         type: "integer"
496 496
         format: "int64"
497
+        example: 4000000000
497 498
       MemoryBytes:
498 499
         type: "integer"
499 500
         format: "int64"
501
+        example: 8272408576
500 502
       GenericResources:
501 503
         $ref: "#/definitions/GenericResources"
502 504
 
503 505
   GenericResources:
504
-    description: "User defined Resources, can be either Integer resources (e.g: SSD=3) or String resources (e.g: GPU={UUID1, UUID2})"
506
+    description: "User-defined resources can be either Integer resources (e.g, `SSD=3`) or String resources (e.g, `GPU=UUID1`)"
505 507
     type: "array"
506 508
     items:
507 509
       type: "object"
... ...
@@ -521,6 +525,16 @@ definitions:
521 521
             Value:
522 522
               type: "integer"
523 523
               format: "int64"
524
+    example:
525
+      - DiscreteResourceSpec:
526
+          Kind: "SSD"
527
+          Value: 3
528
+      - NamedResourceSpec:
529
+          Kind: "GPU"
530
+          Value: "UUID1"
531
+      - NamedResourceSpec:
532
+          Kind: "GPU"
533
+          Value: "UUID2"
524 534
 
525 535
   HealthConfig:
526 536
     description: "A test to perform to check that the container is healthy."
... ...
@@ -687,6 +701,7 @@ definitions:
687 687
           OomScoreAdj:
688 688
             type: "integer"
689 689
             description: "An integer value containing the score given to the container in order to tune OOM killer preferences."
690
+            example: 500
690 691
           PidMode:
691 692
             type: "string"
692 693
             description: |
... ...
@@ -1457,6 +1472,7 @@ definitions:
1457 1457
           type: "object"
1458 1458
           additionalProperties:
1459 1459
             type: "string"
1460
+
1460 1461
   NetworkContainer:
1461 1462
     type: "object"
1462 1463
     properties:
... ...
@@ -1512,6 +1528,7 @@ definitions:
1512 1512
         type: "string"
1513 1513
       progressDetail:
1514 1514
         $ref: "#/definitions/ProgressDetail"
1515
+
1515 1516
   ErrorDetail:
1516 1517
     type: "object"
1517 1518
     properties:
... ...
@@ -1519,6 +1536,7 @@ definitions:
1519 1519
         type: "integer"
1520 1520
       message:
1521 1521
         type: "string"
1522
+
1522 1523
   ProgressDetail:
1523 1524
     type: "object"
1524 1525
     properties:
... ...
@@ -1685,6 +1703,7 @@ definitions:
1685 1685
         example:
1686 1686
           - "rbind"
1687 1687
           - "rw"
1688
+
1688 1689
   PluginDevice:
1689 1690
     type: "object"
1690 1691
     required: [Name, Description, Settable, Path]
... ...
@@ -1956,7 +1975,8 @@ definitions:
1956 1956
     properties:
1957 1957
       Index:
1958 1958
         type: "integer"
1959
-        format: "int64"
1959
+        format: "uint64"
1960
+        example: 373531
1960 1961
 
1961 1962
   NodeSpec:
1962 1963
     type: "object"
... ...
@@ -1964,6 +1984,7 @@ definitions:
1964 1964
       Name:
1965 1965
         description: "Name for the node."
1966 1966
         type: "string"
1967
+        example: "my-node"
1967 1968
       Labels:
1968 1969
         description: "User-defined key/value metadata."
1969 1970
         type: "object"
... ...
@@ -1975,6 +1996,7 @@ definitions:
1975 1975
         enum:
1976 1976
           - "worker"
1977 1977
           - "manager"
1978
+        example: "manager"
1978 1979
       Availability:
1979 1980
         description: "Availability of the node."
1980 1981
         type: "string"
... ...
@@ -1982,125 +2004,140 @@ definitions:
1982 1982
           - "active"
1983 1983
           - "pause"
1984 1984
           - "drain"
1985
+        example: "active"
1985 1986
     example:
1986 1987
       Availability: "active"
1987 1988
       Name: "node-name"
1988 1989
       Role: "manager"
1989 1990
       Labels:
1990 1991
         foo: "bar"
1992
+
1991 1993
   Node:
1992 1994
     type: "object"
1993 1995
     properties:
1994 1996
       ID:
1995 1997
         type: "string"
1998
+        example: "24ifsmvkjbyhk"
1996 1999
       Version:
1997 2000
         $ref: "#/definitions/ObjectVersion"
1998 2001
       CreatedAt:
2002
+        description: |
2003
+          Date and time at which the node was added to the swarm in
2004
+          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
1999 2005
         type: "string"
2000 2006
         format: "dateTime"
2007
+        example: "2016-08-18T10:44:24.496525531Z"
2001 2008
       UpdatedAt:
2009
+        description: |
2010
+          Date and time at which the node was last updated in
2011
+          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
2002 2012
         type: "string"
2003 2013
         format: "dateTime"
2014
+        example: "2017-08-09T07:09:37.632105588Z"
2004 2015
       Spec:
2005 2016
         $ref: "#/definitions/NodeSpec"
2006 2017
       Description:
2007
-        type: "object"
2008
-        properties:
2009
-          Hostname:
2010
-            type: "string"
2011
-          Platform:
2012
-            type: "object"
2013
-            properties:
2014
-              Architecture:
2015
-                type: "string"
2016
-              OS:
2017
-                type: "string"
2018
-          Resources:
2019
-            $ref: "#/definitions/ResourceObject"
2020
-          Engine:
2021
-            type: "object"
2022
-            properties:
2023
-              EngineVersion:
2024
-                type: "string"
2025
-              Labels:
2026
-                type: "object"
2027
-                additionalProperties:
2028
-                  type: "string"
2029
-              Plugins:
2030
-                type: "array"
2031
-                items:
2032
-                  type: "object"
2033
-                  properties:
2034
-                    Type:
2035
-                      type: "string"
2036
-                    Name:
2037
-                      type: "string"
2038
-          TLSInfo:
2039
-            $ref: "#/definitions/SwarmSpec"
2040
-    example:
2041
-      ID: "24ifsmvkjbyhk"
2042
-      Version:
2043
-        Index: 8
2044
-      CreatedAt: "2016-06-07T20:31:11.853781916Z"
2045
-      UpdatedAt: "2016-06-07T20:31:11.999868824Z"
2046
-      Spec:
2047
-        Name: "my-node"
2048
-        Role: "manager"
2049
-        Availability: "active"
2050
-        Labels:
2051
-          foo: "bar"
2052
-      Description:
2053
-        Hostname: "bf3067039e47"
2054
-        Platform:
2055
-          Architecture: "x86_64"
2056
-          OS: "linux"
2057
-        Resources:
2058
-          NanoCPUs: 4000000000
2059
-          MemoryBytes: 8272408576
2060
-          GenericResources:
2061
-            - DiscreteResourceSpec:
2062
-                Kind: "SSD"
2063
-                Value: 3
2064
-            - NamedResourceSpec:
2065
-                Kind: "GPU"
2066
-                Value: "UUID1"
2067
-            - NamedResourceSpec:
2068
-                Kind: "GPU"
2069
-                Value: "UUID2"
2070
-        Engine:
2071
-          EngineVersion: "17.04.0"
2072
-          Labels:
2073
-            foo: "bar"
2074
-          Plugins:
2075
-            - Type: "Volume"
2076
-              Name: "local"
2077
-            - Type: "Network"
2078
-              Name: "bridge"
2079
-            - Type: "Network"
2080
-              Name: "null"
2081
-            - Type: "Network"
2082
-              Name: "overlay"
2018
+        $ref: "#/definitions/NodeDescription"
2083 2019
       Status:
2084
-        State: "ready"
2085
-        Addr: "172.17.0.2"
2020
+        $ref: "#/definitions/NodeStatus"
2086 2021
       ManagerStatus:
2087
-        Leader: true
2088
-        Reachability: "reachable"
2089
-        Addr: "172.17.0.2:2377"
2022
+        $ref: "#/definitions/ManagerStatus"
2023
+
2024
+  NodeDescription:
2025
+    description: |
2026
+      NodeDescription encapsulates the properties of the Node as reported by the
2027
+      agent.
2028
+    type: "object"
2029
+    properties:
2030
+      Hostname:
2031
+        type: "string"
2032
+        example: "bf3067039e47"
2033
+      Platform:
2034
+        $ref: "#/definitions/Platform"
2035
+      Resources:
2036
+        $ref: "#/definitions/ResourceObject"
2037
+      Engine:
2038
+        $ref: "#/definitions/EngineDescription"
2090 2039
       TLSInfo:
2091
-        TrustRoot: |
2092
-          -----BEGIN CERTIFICATE-----
2093
-          MIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw
2094
-          EzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0
2095
-          MzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH
2096
-          A0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf
2097
-          3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB
2098
-          Af8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO
2099
-          PQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz
2100
-          pxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H
2101
-          -----END CERTIFICATE-----
2102
-        CertIssuerSubject: "MBMxETAPBgNVBAMTCHN3YXJtLWNh"
2103
-        CertIssuerPublicKey: "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A=="
2040
+        $ref: "#/definitions/TLSInfo"
2041
+
2042
+  Platform:
2043
+    description: |
2044
+      Platform represents the platform (Arch/OS).
2045
+    type: "object"
2046
+    properties:
2047
+      Architecture:
2048
+        description: |
2049
+          Architecture represents the hardware architecture (for example,
2050
+          `x86_64`).
2051
+        type: "string"
2052
+        example: "x86_64"
2053
+      OS:
2054
+        description: |
2055
+          OS represents the Operating System (for example, `linux` or `windows`).
2056
+        type: "string"
2057
+        example: "linux"
2058
+
2059
+  EngineDescription:
2060
+    description: "EngineDescription provides information about an engine."
2061
+    type: "object"
2062
+    properties:
2063
+      EngineVersion:
2064
+        type: "string"
2065
+        example: "17.06.0"
2066
+      Labels:
2067
+        type: "object"
2068
+        additionalProperties:
2069
+          type: "string"
2070
+        example:
2071
+          foo: "bar"
2072
+      Plugins:
2073
+        type: "array"
2074
+        items:
2075
+          type: "object"
2076
+          properties:
2077
+            Type:
2078
+              type: "string"
2079
+            Name:
2080
+              type: "string"
2081
+        example:
2082
+          - Type: "Log"
2083
+            Name: "awslogs"
2084
+          - Type: "Log"
2085
+            Name: "fluentd"
2086
+          - Type: "Log"
2087
+            Name: "gcplogs"
2088
+          - Type: "Log"
2089
+            Name: "gelf"
2090
+          - Type: "Log"
2091
+            Name: "journald"
2092
+          - Type: "Log"
2093
+            Name: "json-file"
2094
+          - Type: "Log"
2095
+            Name: "logentries"
2096
+          - Type: "Log"
2097
+            Name: "splunk"
2098
+          - Type: "Log"
2099
+            Name: "syslog"
2100
+          - Type: "Network"
2101
+            Name: "bridge"
2102
+          - Type: "Network"
2103
+            Name: "host"
2104
+          - Type: "Network"
2105
+            Name: "ipvlan"
2106
+          - Type: "Network"
2107
+            Name: "macvlan"
2108
+          - Type: "Network"
2109
+            Name: "null"
2110
+          - Type: "Network"
2111
+            Name: "overlay"
2112
+          - Type: "Volume"
2113
+            Name: "local"
2114
+          - Type: "Volume"
2115
+            Name: "localhost:5000/vieux/sshfs:latest"
2116
+          - Type: "Volume"
2117
+            Name: "vieux/sshfs:latest"
2118
+
2104 2119
   TLSInfo:
2105 2120
     description: "Information about the issuer of leaf TLS certificates and the trusted root CA certificate"
2106 2121
     type: "object"
... ...
@@ -2128,6 +2165,64 @@ definitions:
2128 2128
         -----END CERTIFICATE-----
2129 2129
       CertIssuerSubject: "MBMxETAPBgNVBAMTCHN3YXJtLWNh"
2130 2130
       CertIssuerPublicKey: "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A=="
2131
+
2132
+  NodeStatus:
2133
+    description: |
2134
+      NodeStatus represents the status of a node.
2135
+
2136
+      It provides the current status of the node, as seen by the manager.
2137
+    type: "object"
2138
+    properties:
2139
+      State:
2140
+        $ref: "#/definitions/NodeState"
2141
+      Message:
2142
+        type: "string"
2143
+        example: ""
2144
+      Addr:
2145
+        description: "IP address of the node."
2146
+        type: "string"
2147
+        example: "172.17.0.2"
2148
+
2149
+  NodeState:
2150
+    description: "NodeState represents the state of a node."
2151
+    type: "string"
2152
+    enum:
2153
+      - "unknown"
2154
+      - "down"
2155
+      - "ready"
2156
+      - "disconnected"
2157
+    example: "ready"
2158
+
2159
+  ManagerStatus:
2160
+    description: |
2161
+      ManagerStatus represents the status of a manager.
2162
+
2163
+      It provides the current status of a node's manager component, if the node
2164
+      is a manager.
2165
+    x-nullable: true
2166
+    type: "object"
2167
+    properties:
2168
+      Leader:
2169
+        type: "boolean"
2170
+        default: false
2171
+        example: true
2172
+      Reachability:
2173
+        $ref: "#/definitions/Reachability"
2174
+      Addr:
2175
+        description: |
2176
+          The IP address and port at which the manager is reachable.
2177
+        type: "string"
2178
+        example: "10.0.0.46:2377"
2179
+
2180
+  Reachability:
2181
+    description: "Reachability represents the reachability of a node."
2182
+    type: "string"
2183
+    enum:
2184
+      - "unknown"
2185
+      - "unreachable"
2186
+      - "reachable"
2187
+    example: "reachable"
2188
+
2131 2189
   SwarmSpec:
2132 2190
     description: "User modifiable swarm configuration."
2133 2191
     type: "object"
... ...
@@ -2135,19 +2230,25 @@ definitions:
2135 2135
       Name:
2136 2136
         description: "Name of the swarm."
2137 2137
         type: "string"
2138
+        example: "default"
2138 2139
       Labels:
2139 2140
         description: "User-defined key/value metadata."
2140 2141
         type: "object"
2141 2142
         additionalProperties:
2142 2143
           type: "string"
2144
+        example:
2145
+          com.example.corp.type: "production"
2146
+          com.example.corp.department: "engineering"
2143 2147
       Orchestration:
2144 2148
         description: "Orchestration configuration."
2145 2149
         type: "object"
2150
+        x-nullable: true
2146 2151
         properties:
2147 2152
           TaskHistoryRetentionLimit:
2148 2153
             description: "The number of historic tasks to keep per instance or node. If negative, never remove completed or failed tasks."
2149 2154
             type: "integer"
2150 2155
             format: "int64"
2156
+            example: 10
2151 2157
       Raft:
2152 2158
         description: "Raft configuration."
2153 2159
         type: "object"
... ...
@@ -2155,43 +2256,51 @@ definitions:
2155 2155
           SnapshotInterval:
2156 2156
             description: "The number of log entries between snapshots."
2157 2157
             type: "integer"
2158
-            format: "int64"
2158
+            format: "uint64"
2159
+            example: 10000
2159 2160
           KeepOldSnapshots:
2160 2161
             description: "The number of snapshots to keep beyond the current snapshot."
2161 2162
             type: "integer"
2162
-            format: "int64"
2163
+            format: "uint64"
2163 2164
           LogEntriesForSlowFollowers:
2164 2165
             description: "The number of log entries to keep around to sync up slow followers after a snapshot is created."
2165 2166
             type: "integer"
2166
-            format: "int64"
2167
+            format: "uint64"
2168
+            example: 500
2167 2169
           ElectionTick:
2168 2170
             description: |
2169 2171
               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`.
2170 2172
 
2171 2173
               A tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.
2172 2174
             type: "integer"
2175
+            example: 3
2173 2176
           HeartbeatTick:
2174 2177
             description: |
2175 2178
               The number of ticks between heartbeats. Every HeartbeatTick ticks, the leader will send a heartbeat to the followers.
2176 2179
 
2177 2180
               A tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.
2178 2181
             type: "integer"
2182
+            example: 1
2179 2183
       Dispatcher:
2180 2184
         description: "Dispatcher configuration."
2181 2185
         type: "object"
2186
+        x-nullable: true
2182 2187
         properties:
2183 2188
           HeartbeatPeriod:
2184 2189
             description: "The delay for an agent to send a heartbeat to the dispatcher."
2185 2190
             type: "integer"
2186 2191
             format: "int64"
2192
+            example: 5000000000
2187 2193
       CAConfig:
2188 2194
         description: "CA configuration."
2189 2195
         type: "object"
2196
+        x-nullable: true
2190 2197
         properties:
2191 2198
           NodeCertExpiry:
2192 2199
             description: "The duration node certificates are issued for."
2193 2200
             type: "integer"
2194 2201
             format: "int64"
2202
+            example: 7776000000000000
2195 2203
           ExternalCAs:
2196 2204
             description: "Configuration for forwarding signing requests to an external certificate authority."
2197 2205
             type: "array"
... ...
@@ -2223,6 +2332,8 @@ definitions:
2223 2223
             type: "string"
2224 2224
           ForceRotate:
2225 2225
             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`"
2226
+            format: "uint64"
2227
+            type: "integer"
2226 2228
       EncryptionConfig:
2227 2229
         description: "Parameters related to encryption-at-rest."
2228 2230
         type: "object"
... ...
@@ -2230,57 +2341,65 @@ definitions:
2230 2230
           AutoLockManagers:
2231 2231
             description: "If set, generate a key and use it to lock data stored on the managers."
2232 2232
             type: "boolean"
2233
+            example: false
2233 2234
       TaskDefaults:
2234 2235
         description: "Defaults for creating tasks in this cluster."
2235 2236
         type: "object"
2236 2237
         properties:
2237 2238
           LogDriver:
2238 2239
             description: |
2239
-              The log driver to use for tasks created in the orchestrator if unspecified by a service.
2240
+              The log driver to use for tasks created in the orchestrator if
2241
+              unspecified by a service.
2240 2242
 
2241
-              Updating this value will only have an affect on new tasks. Old tasks will continue use their previously configured log driver until recreated.
2243
+              Updating this value only affects new tasks. Existing tasks continue
2244
+              to use their previously configured log driver until recreated.
2242 2245
             type: "object"
2243 2246
             properties:
2244 2247
               Name:
2248
+                description: |
2249
+                  The log driver to use as a default for new tasks.
2245 2250
                 type: "string"
2251
+                example: "json-file"
2246 2252
               Options:
2253
+                description: |
2254
+                  Driver-specific options for the selectd log driver, specified
2255
+                  as key/value pairs.
2247 2256
                 type: "object"
2248 2257
                 additionalProperties:
2249 2258
                   type: "string"
2250
-    example:
2251
-      Name: "default"
2252
-      Orchestration:
2253
-        TaskHistoryRetentionLimit: 10
2254
-      Raft:
2255
-        SnapshotInterval: 10000
2256
-        LogEntriesForSlowFollowers: 500
2257
-        HeartbeatTick: 1
2258
-        ElectionTick: 3
2259
-      Dispatcher:
2260
-        HeartbeatPeriod: 5000000000
2261
-      CAConfig:
2262
-        NodeCertExpiry: 7776000000000000
2263
-      JoinTokens:
2264
-        Worker: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx"
2265
-        Manager: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2"
2266
-      EncryptionConfig:
2267
-        AutoLockManagers: false
2259
+                example:
2260
+                  "max-file": "10"
2261
+                  "max-size": "100m"
2262
+
2268 2263
   # The Swarm information for `GET /info`. It is the same as `GET /swarm`, but
2269 2264
   # without `JoinTokens`.
2270 2265
   ClusterInfo:
2266
+    description: |
2267
+      ClusterInfo represents information about the swarm as is returned by the
2268
+      "/info" endpoint. Join-tokens are not included.
2269
+    x-nullable: true
2271 2270
     type: "object"
2272 2271
     properties:
2273 2272
       ID:
2274 2273
         description: "The ID of the swarm."
2275 2274
         type: "string"
2275
+        example: "abajmipo7b4xz5ip2nrla6b11"
2276 2276
       Version:
2277 2277
         $ref: "#/definitions/ObjectVersion"
2278 2278
       CreatedAt:
2279
+        description: |
2280
+          Date and time at which the swarm was initialised in
2281
+          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
2279 2282
         type: "string"
2280 2283
         format: "dateTime"
2284
+        example: "2016-08-18T10:44:24.496525531Z"
2281 2285
       UpdatedAt:
2286
+        description: |
2287
+          Date and time at which the swarm was last updated in
2288
+          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.
2282 2289
         type: "string"
2283 2290
         format: "dateTime"
2291
+        example: "2017-08-09T07:09:37.632105588Z"
2284 2292
       Spec:
2285 2293
         $ref: "#/definitions/SwarmSpec"
2286 2294
       TLSInfo:
... ...
@@ -2288,6 +2407,33 @@ definitions:
2288 2288
       RootRotationInProgress:
2289 2289
         description: "Whether there is currently a root CA rotation in progress for the swarm"
2290 2290
         type: "boolean"
2291
+        example: false
2292
+
2293
+  JoinTokens:
2294
+    description: |
2295
+      JoinTokens contains the tokens workers and managers need to join the swarm.
2296
+    type: "object"
2297
+    properties:
2298
+      Worker:
2299
+        description: |
2300
+          The token workers can use to join the swarm.
2301
+        type: "string"
2302
+        example: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx"
2303
+      Manager:
2304
+        description: |
2305
+          The token managers can use to join the swarm.
2306
+        type: "string"
2307
+        example: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2"
2308
+
2309
+  Swarm:
2310
+    type: "object"
2311
+    allOf:
2312
+      - $ref: "#/definitions/ClusterInfo"
2313
+      - type: "object"
2314
+        properties:
2315
+          JoinTokens:
2316
+            $ref: "#/definitions/JoinTokens"
2317
+
2291 2318
   TaskSpec:
2292 2319
     description: "User modifiable task configuration."
2293 2320
     type: "object"
... ...
@@ -2437,10 +2583,12 @@ definitions:
2437 2437
           Hosts:
2438 2438
             type: "array"
2439 2439
             description: |
2440
-              A list of hostnames/IP mappings to add to the container's `/etc/hosts` file.
2441
-              The format of extra hosts on swarmkit is specified in:
2442
-              http://man7.org/linux/man-pages/man5/hosts.5.html
2443
-                IP_address canonical_hostname [aliases...]
2440
+              A list of hostname/IP mappings to add to the container's `hosts`
2441
+              file. The format of extra hosts is specified in the
2442
+              [hosts(5)](http://man7.org/linux/man-pages/man5/hosts.5.html)
2443
+              man page:
2444
+
2445
+                  IP_address canonical_hostname [aliases...]
2444 2446
             items:
2445 2447
               type: "string"
2446 2448
           DNSConfig:
... ...
@@ -2568,6 +2716,10 @@ definitions:
2568 2568
             type: "array"
2569 2569
             items:
2570 2570
               type: "string"
2571
+            example:
2572
+              - "node.hostname!=node3.corp.example.com"
2573
+              - "node.role!=manager"
2574
+              - "node.labels.type==production"
2571 2575
           Preferences:
2572 2576
             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."
2573 2577
             type: "array"
... ...
@@ -2580,16 +2732,20 @@ definitions:
2580 2580
                     SpreadDescriptor:
2581 2581
                       description: "label descriptor, such as engine.labels.az"
2582 2582
                       type: "string"
2583
+            example:
2584
+              - Spread:
2585
+                  SpreadDescriptor: "node.labels.datacenter"
2586
+              - Spread:
2587
+                  SpreadDescriptor: "node.labels.rack"
2583 2588
           Platforms:
2584
-            description: "An array of supported platforms."
2589
+            description: |
2590
+              Platforms stores all the platforms that the service's image can
2591
+              run on. This field is used in the platform filter for scheduling.
2592
+              If empty, then the platform filter is off, meaning there are no
2593
+              scheduling restrictions.
2585 2594
             type: "array"
2586 2595
             items:
2587
-              type: "object"
2588
-              properties:
2589
-                Architecture:
2590
-                  type: "string"
2591
-                OS:
2592
-                  type: "string"
2596
+              $ref: "#/definitions/Platform"
2593 2597
       ForceUpdate:
2594 2598
         description: "A counter that triggers an update even if no relevant parameters have been changed."
2595 2599
         type: "integer"
... ...
@@ -2617,6 +2773,7 @@ definitions:
2617 2617
             type: "object"
2618 2618
             additionalProperties:
2619 2619
               type: "string"
2620
+
2620 2621
   TaskState:
2621 2622
     type: "string"
2622 2623
     enum:
... ...
@@ -2633,6 +2790,7 @@ definitions:
2633 2633
       - "shutdown"
2634 2634
       - "failed"
2635 2635
       - "rejected"
2636
+
2636 2637
   Task:
2637 2638
     type: "object"
2638 2639
     properties:
... ...
@@ -2756,6 +2914,7 @@ definitions:
2756 2756
         - NamedResourceSpec:
2757 2757
             Kind: "GPU"
2758 2758
             Value: "UUID2"
2759
+
2759 2760
   ServiceSpec:
2760 2761
     description: "User modifiable configuration for a service."
2761 2762
     properties:
... ...
@@ -2860,6 +3019,7 @@ definitions:
2860 2860
                 type: "string"
2861 2861
       EndpointSpec:
2862 2862
         $ref: "#/definitions/EndpointSpec"
2863
+
2863 2864
   EndpointPortConfig:
2864 2865
     type: "object"
2865 2866
     properties:
... ...
@@ -2876,6 +3036,7 @@ definitions:
2876 2876
       PublishedPort:
2877 2877
         description: "The port on the swarm hosts."
2878 2878
         type: "integer"
2879
+
2879 2880
   EndpointSpec:
2880 2881
     description: "Properties that can be configured to access and load balance a service."
2881 2882
     type: "object"
... ...
@@ -2893,6 +3054,7 @@ definitions:
2893 2893
         type: "array"
2894 2894
         items:
2895 2895
           $ref: "#/definitions/EndpointPortConfig"
2896
+
2896 2897
   Service:
2897 2898
     type: "object"
2898 2899
     properties:
... ...
@@ -3005,6 +3167,7 @@ definitions:
3005 3005
           -
3006 3006
             NetworkID: "4qvuz4ko70xaltuqbt8956gd1"
3007 3007
             Addr: "10.255.0.3/16"
3008
+
3008 3009
   ImageDeleteResponseItem:
3009 3010
     type: "object"
3010 3011
     properties:
... ...
@@ -3014,6 +3177,7 @@ definitions:
3014 3014
       Deleted:
3015 3015
         description: "The image ID of an image that was deleted"
3016 3016
         type: "string"
3017
+
3017 3018
   ServiceUpdateResponse:
3018 3019
     type: "object"
3019 3020
     properties:
... ...
@@ -3024,6 +3188,7 @@ definitions:
3024 3024
           type: "string"
3025 3025
     example:
3026 3026
       Warning: "unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found"
3027
+
3027 3028
   ContainerSummary:
3028 3029
     type: "array"
3029 3030
     items:
... ...
@@ -3158,6 +3323,7 @@ definitions:
3158 3158
         example: "2017-07-20T13:55:28.678958722Z"
3159 3159
       Spec:
3160 3160
         $ref: "#/definitions/SecretSpec"
3161
+
3161 3162
   ConfigSpec:
3162 3163
     type: "object"
3163 3164
     properties:
... ...
@@ -3174,6 +3340,7 @@ definitions:
3174 3174
           Base64-url-safe-encoded ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-3.2))
3175 3175
           config data.
3176 3176
         type: "string"
3177
+
3177 3178
   Config:
3178 3179
     type: "object"
3179 3180
     properties:
... ...
@@ -3190,6 +3357,774 @@ definitions:
3190 3190
       Spec:
3191 3191
         $ref: "#/definitions/ConfigSpec"
3192 3192
 
3193
+  SystemInfo:
3194
+    type: "object"
3195
+    properties:
3196
+      ID:
3197
+        description: |
3198
+          Unique identifier of the daemon.
3199
+
3200
+          <p><br /></p>
3201
+
3202
+          > **Note**: The format of the ID itself is not part of the API, and
3203
+          > should not be considered stable.
3204
+        type: "string"
3205
+        example: "7TRN:IPZB:QYBB:VPBQ:UMPP:KARE:6ZNR:XE6T:7EWV:PKF4:ZOJD:TPYS"
3206
+      Containers:
3207
+        description: "Total number of containers on the host."
3208
+        type: "integer"
3209
+        example: 14
3210
+      ContainersRunning:
3211
+        description: |
3212
+          Number of containers with status `"running"`.
3213
+        type: "integer"
3214
+        example: 3
3215
+      ContainersPaused:
3216
+        description: |
3217
+          Number of containers with status `"paused"`.
3218
+        type: "integer"
3219
+        example: 1
3220
+      ContainersStopped:
3221
+        description: |
3222
+          Number of containers with status `"stopped"`.
3223
+        type: "integer"
3224
+        example: 10
3225
+      Images:
3226
+        description: |
3227
+          Total number of images on the host.
3228
+
3229
+          Both _tagged_ and _untagged_ (dangling) images are counted.
3230
+        type: "integer"
3231
+        example: 508
3232
+      Driver:
3233
+        description: "Name of the storage driver in use."
3234
+        type: "string"
3235
+        example: "overlay2"
3236
+      DriverStatus:
3237
+        description: |
3238
+          Information specific to the storage driver, provided as
3239
+          "label" / "value" pairs.
3240
+
3241
+          This information is provided by the storage driver, and formatted
3242
+          in a way consistent with the output of `docker info` on the command
3243
+          line.
3244
+
3245
+          <p><br /></p>
3246
+
3247
+          > **Note**: The information returned in this field, including the
3248
+          > formatting of values and labels, should not be considered stable,
3249
+          > and may change without notice.
3250
+        type: "array"
3251
+        items:
3252
+          type: "array"
3253
+          items:
3254
+            type: "string"
3255
+        example:
3256
+          - ["Backing Filesystem", "extfs"]
3257
+          - ["Supports d_type", "true"]
3258
+          - ["Native Overlay Diff", "true"]
3259
+      DockerRootDir:
3260
+        description: |
3261
+          Root directory of persistent Docker state.
3262
+
3263
+          Defaults to `/var/lib/docker` on Linux, and `C:\ProgramData\docker`
3264
+          on Windows.
3265
+        type: "string"
3266
+        example: "/var/lib/docker"
3267
+      SystemStatus:
3268
+        description: |
3269
+          Status information about this node (standalone Swarm API).
3270
+
3271
+          <p><br /></p>
3272
+
3273
+          > **Note**: The information returned in this field is only propagated
3274
+          > by the Swarm standalone API, and is empty (`null`) when using
3275
+          > built-in swarm mode.
3276
+        type: "array"
3277
+        items:
3278
+          type: "array"
3279
+          items:
3280
+            type: "string"
3281
+        example:
3282
+          - ["Role", "primary"]
3283
+          - ["State", "Healthy"]
3284
+          - ["Strategy", "spread"]
3285
+          - ["Filters", "health, port, containerslots, dependency, affinity, constraint, whitelist"]
3286
+          - ["Nodes", "2"]
3287
+          - [" swarm-agent-00", "192.168.99.102:2376"]
3288
+          - ["  â”” ID", "5CT6:FBGO:RVGO:CZL4:PB2K:WCYN:2JSV:KSHH:GGFW:QOPG:6J5Q:IOZ2|192.168.99.102:2376"]
3289
+          - ["  â”” Status", "Healthy"]
3290
+          - ["  â”” Containers", "1 (1 Running, 0 Paused, 0 Stopped)"]
3291
+          - ["  â”” Reserved CPUs", "0 / 1"]
3292
+          - ["  â”” Reserved Memory", "0 B / 1.021 GiB"]
3293
+          - ["  â”” Labels", "kernelversion=4.4.74-boot2docker, operatingsystem=Boot2Docker 17.06.0-ce (TCL 7.2); HEAD : 0672754 - Thu Jun 29 00:06:31 UTC 2017, ostype=linux, provider=virtualbox, storagedriver=aufs"]
3294
+          - ["  â”” UpdatedAt", "2017-08-09T10:03:46Z"]
3295
+          - ["  â”” ServerVersion", "17.06.0-ce"]
3296
+          - [" swarm-manager", "192.168.99.101:2376"]
3297
+          - ["  â”” ID", "TAMD:7LL3:SEF7:LW2W:4Q2X:WVFH:RTXX:JSYS:XY2P:JEHL:ZMJK:JGIW|192.168.99.101:2376"]
3298
+          - ["  â”” Status", "Healthy"]
3299
+          - ["  â”” Containers", "2 (2 Running, 0 Paused, 0 Stopped)"]
3300
+          - ["  â”” Reserved CPUs", "0 / 1"]
3301
+          - ["  â”” Reserved Memory", "0 B / 1.021 GiB"]
3302
+          - ["  â”” Labels", "kernelversion=4.4.74-boot2docker, operatingsystem=Boot2Docker 17.06.0-ce (TCL 7.2); HEAD : 0672754 - Thu Jun 29 00:06:31 UTC 2017, ostype=linux, provider=virtualbox, storagedriver=aufs"]
3303
+          - ["  â”” UpdatedAt", "2017-08-09T10:04:11Z"]
3304
+          - ["  â”” ServerVersion", "17.06.0-ce"]
3305
+      Plugins:
3306
+        $ref: "#/definitions/PluginsInfo"
3307
+      MemoryLimit:
3308
+        description: "Indicates if the host has memory limit support enabled."
3309
+        type: "boolean"
3310
+        example: true
3311
+      SwapLimit:
3312
+        description: "Indicates if the host has memory swap limit support enabled."
3313
+        type: "boolean"
3314
+        example: true
3315
+      KernelMemory:
3316
+        description: "Indicates if the host has kernel memory limit support enabled."
3317
+        type: "boolean"
3318
+        example: true
3319
+      CpuCfsPeriod:
3320
+        description: "Indicates if CPU CFS(Completely Fair Scheduler) period is supported by the host."
3321
+        type: "boolean"
3322
+        example: true
3323
+      CpuCfsQuota:
3324
+        description: "Indicates if CPU CFS(Completely Fair Scheduler) quota is supported by the host."
3325
+        type: "boolean"
3326
+        example: true
3327
+      CPUShares:
3328
+        description: "Indicates if CPU Shares limiting is supported by the host."
3329
+        type: "boolean"
3330
+        example: true
3331
+      CPUSet:
3332
+        description: |
3333
+          Indicates if CPUsets (cpuset.cpus, cpuset.mems) are supported by the host.
3334
+
3335
+          See [cpuset(7)](https://www.kernel.org/doc/Documentation/cgroup-v1/cpusets.txt)
3336
+        type: "boolean"
3337
+        example: true
3338
+      OomKillDisable:
3339
+        description: "Indicates if OOM killer disable is supported on the host."
3340
+        type: "boolean"
3341
+      IPv4Forwarding:
3342
+        description: "Indicates IPv4 forwarding is enabled."
3343
+        type: "boolean"
3344
+        example: true
3345
+      BridgeNfIptables:
3346
+        description: "Indicates if `bridge-nf-call-iptables` is available on the host."
3347
+        type: "boolean"
3348
+        example: true
3349
+      BridgeNfIp6tables:
3350
+        description: "Indicates if `bridge-nf-call-ip6tables` is available on the host."
3351
+        type: "boolean"
3352
+        example: true
3353
+      Debug:
3354
+        description: "Indicates if the daemon is running in debug-mode / with debug-level logging enabled."
3355
+        type: "boolean"
3356
+        example: true
3357
+      NFd:
3358
+        description: |
3359
+          The total number of file Descriptors in use by the daemon process.
3360
+
3361
+          This information is only returned if debug-mode is enabled.
3362
+        type: "integer"
3363
+        example: 64
3364
+      NGoroutines:
3365
+        description: |
3366
+          The  number of goroutines that currently exist.
3367
+
3368
+          This information is only returned if debug-mode is enabled.
3369
+        type: "integer"
3370
+        example: 174
3371
+      SystemTime:
3372
+        description: |
3373
+          Current system-time in [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt)
3374
+          format with nano-seconds.
3375
+        type: "string"
3376
+        example: "2017-08-08T20:28:29.06202363Z"
3377
+      LoggingDriver:
3378
+        description: |
3379
+          The logging driver to use as a default for new containers.
3380
+        type: "string"
3381
+      CgroupDriver:
3382
+        description: |
3383
+          The driver to use for managing cgroups.
3384
+        type: "string"
3385
+        enum: ["cgroupfs", "systemd"]
3386
+        default: "cgroupfs"
3387
+        example: "cgroupfs"
3388
+      NEventsListener:
3389
+        description: "Number of event listeners subscribed."
3390
+        type: "integer"
3391
+        example: 30
3392
+      KernelVersion:
3393
+        description: |
3394
+          Kernel version of the host.
3395
+
3396
+          On Linux, this information obtained from `uname`. On Windows this
3397
+          information is queried from the <kbd>HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\</kbd>
3398
+          registry value, for example _"10.0 14393 (14393.1198.amd64fre.rs1_release_sec.170427-1353)"_.
3399
+        type: "string"
3400
+        example: "4.9.38-moby"
3401
+      OperatingSystem:
3402
+        description: |
3403
+          Name of the host's operating system, for example: "Ubuntu 16.04.2 LTS"
3404
+          or "Windows Server 2016 Datacenter"
3405
+        type: "string"
3406
+        example: "Alpine Linux v3.5"
3407
+      OSType:
3408
+        description: |
3409
+          Generic type of the operating system of the host, as returned by the
3410
+          Go runtime (`GOOS`).
3411
+
3412
+          Currently returned values are "linux" and "windows". A full list of
3413
+          possible values can be found in the [Go documentation](https://golang.org/doc/install/source#environment).
3414
+        type: "string"
3415
+        example: "linux"
3416
+      Architecture:
3417
+        description: |
3418
+          Hardware architecture of the host, as returned by the Go runtime
3419
+          (`GOARCH`).
3420
+
3421
+          A full list of possible values can be found in the [Go documentation](https://golang.org/doc/install/source#environment).
3422
+        type: "string"
3423
+        example: "x86_64"
3424
+      NCPU:
3425
+        description: |
3426
+          The number of logical CPUs usable by the daemon.
3427
+
3428
+          The number of available CPUs is checked by querying the operating
3429
+          system when the daemon starts. Changes to operating system CPU
3430
+          allocation after the daemon is started are not reflected.
3431
+        type: "integer"
3432
+        example: 4
3433
+      MemTotal:
3434
+        description: |
3435
+          Total amount of physical memory available on the host, in kilobytes (kB).
3436
+        type: "integer"
3437
+        format: "int64"
3438
+        example: 2095882240
3439
+
3440
+      IndexServerAddress:
3441
+        description: |
3442
+          Address / URL of the index server that is used for image search,
3443
+          and as a default for user authentication for Docker Hub and Docker Cloud.
3444
+        default: "https://index.docker.io/v1/"
3445
+        type: "string"
3446
+        example: "https://index.docker.io/v1/"
3447
+      RegistryConfig:
3448
+        $ref: "#/definitions/RegistryServiceConfig"
3449
+      GenericResources:
3450
+        $ref: "#/definitions/GenericResources"
3451
+      HttpProxy:
3452
+        description: |
3453
+          HTTP-proxy configured for the daemon. This value is obtained from the
3454
+          [`HTTP_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html) environment variable.
3455
+
3456
+          Containers do not automatically inherit this configuration.
3457
+        type: "string"
3458
+        example: "http://user:pass@proxy.corp.example.com:8080"
3459
+      HttpsProxy:
3460
+        description: |
3461
+          HTTPS-proxy configured for the daemon. This value is obtained from the
3462
+          [`HTTPS_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html) environment variable.
3463
+
3464
+          Containers do not automatically inherit this configuration.
3465
+        type: "string"
3466
+        example: "https://user:pass@proxy.corp.example.com:4443"
3467
+      NoProxy:
3468
+        description: |
3469
+          Comma-separated list of domain extensions for which no proxy should be
3470
+          used. This value is obtained from the [`NO_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html)
3471
+          environment variable.
3472
+
3473
+          Containers do not automatically inherit this configuration.
3474
+        type: "string"
3475
+        example: "*.local, 169.254/16"
3476
+      Name:
3477
+        description: "Hostname of the host."
3478
+        type: "string"
3479
+        example: "node5.corp.example.com"
3480
+      Labels:
3481
+        description: |
3482
+          User-defined labels (key/value metadata) as set on the daemon.
3483
+
3484
+          <p><br /></p>
3485
+
3486
+          > **Note**: When part of a Swarm, nodes can both have _daemon_ labels,
3487
+          > set through the daemon configuration, and _node_ labels, set from a
3488
+          > manager node in the Swarm. Node labels are not included in this
3489
+          > field. Node labels can be retrieved using the `/nodes/(id)` endpoint
3490
+          > on a manager node in the Swarm.
3491
+        type: "array"
3492
+        items:
3493
+          type: "string"
3494
+        example: ["storage=ssd", "production"]
3495
+      ExperimentalBuild:
3496
+        description: |
3497
+          Indicates if experimental features are enabled on the daemon.
3498
+        type: "boolean"
3499
+        example: true
3500
+      ServerVersion:
3501
+        description: |
3502
+          Version string of the daemon.
3503
+
3504
+          > **Note**: the [standalone Swarm API](https://docs.docker.com/swarm/swarm-api/)
3505
+          > returns the Swarm version instead of the daemon  version, for example
3506
+          > `swarm/1.2.8`.
3507
+        type: "string"
3508
+        example: "17.06.0-ce"
3509
+      ClusterStore:
3510
+        description: |
3511
+          URL of the distributed storage backend.
3512
+
3513
+
3514
+          The storage backend is used for multihost networking (to store
3515
+          network and endpoint information) and by the node discovery mechanism.
3516
+
3517
+          <p><br /></p>
3518
+
3519
+          > **Note**: This field is only propagated when using standalone Swarm
3520
+          > mode, and overlay networking using an external k/v store. Overlay
3521
+          > networks with Swarm mode enabled use the built-in raft store, and
3522
+          > this field will be empty.
3523
+        type: "string"
3524
+        example: "consul://consul.corp.example.com:8600/some/path"
3525
+      ClusterAdvertise:
3526
+        description: |
3527
+          The network endpoint that the Engine advertises for the purpose of
3528
+          node discovery. ClusterAdvertise is a `host:port` combination on which
3529
+          the daemon is reachable by other hosts.
3530
+
3531
+          <p><br /></p>
3532
+
3533
+          > **Note**: This field is only propagated when using standalone Swarm
3534
+          > mode, and overlay networking using an external k/v store. Overlay
3535
+          > networks with Swarm mode enabled use the built-in raft store, and
3536
+          > this field will be empty.
3537
+        type: "string"
3538
+        example: "node5.corp.example.com:8000"
3539
+      Runtimes:
3540
+        description: |
3541
+          List of [OCI compliant](https://github.com/opencontainers/runtime-spec)
3542
+          runtimes configured on the daemon. Keys hold the "name" used to
3543
+          reference the runtime.
3544
+
3545
+          The Docker daemon relies on an OCI compliant runtime (invoked via the
3546
+          `containerd` daemon) as its interface to the Linux kernel namespaces,
3547
+          cgroups, and SELinux.
3548
+
3549
+          The default runtime is `runc`, and automatically configured. Additional
3550
+          runtimes can be configured by the user and will be listed here.
3551
+        type: "object"
3552
+        additionalProperties:
3553
+          $ref: "#/definitions/Runtime"
3554
+        default:
3555
+          runc:
3556
+            path: "docker-runc"
3557
+        example:
3558
+          runc:
3559
+            path: "docker-runc"
3560
+          runc-master:
3561
+            path: "/go/bin/runc"
3562
+          custom:
3563
+            path: "/usr/local/bin/my-oci-runtime"
3564
+            runtimeArgs: ["--debug", "--systemd-cgroup=false"]
3565
+      DefaultRuntime:
3566
+        description: |
3567
+          Name of the default OCI runtime that is used when starting containers.
3568
+
3569
+          The default can be overridden per-container at create time.
3570
+        type: "string"
3571
+        default: "runc"
3572
+        example: "runc"
3573
+      Swarm:
3574
+        $ref: "#/definitions/SwarmInfo"
3575
+      LiveRestoreEnabled:
3576
+        description: |
3577
+          Indicates if live restore is enabled.
3578
+
3579
+          If enabled, containers are kept running when the daemon is shutdown
3580
+          or upon daemon start if running containers are detected.
3581
+        type: "boolean"
3582
+        default: false
3583
+        example: false
3584
+      Isolation:
3585
+        description: |
3586
+          Represents the isolation technology to use as a default for containers.
3587
+          The supported values are platform-specific.
3588
+
3589
+          If no isolation value is specified on daemon start, on Windows client,
3590
+          the default is `hyperv`, and on Windows server, the default is `process`.
3591
+
3592
+          This option is currently not used on other platforms.
3593
+        default: "default"
3594
+        type: "string"
3595
+        enum:
3596
+          - "default"
3597
+          - "hyperv"
3598
+          - "process"
3599
+      InitBinary:
3600
+        description: |
3601
+          Name and, optional, path of the the `docker-init` binary.
3602
+
3603
+          If the path is omitted, the daemon searches the host's `$PATH` for the
3604
+          binary and uses the first result.
3605
+        type: "string"
3606
+        example: "docker-init"
3607
+      ContainerdCommit:
3608
+        $ref: "#/definitions/Commit"
3609
+      RuncCommit:
3610
+        $ref: "#/definitions/Commit"
3611
+      InitCommit:
3612
+        $ref: "#/definitions/Commit"
3613
+      SecurityOptions:
3614
+        description: |
3615
+          List of security features that are enabled on the daemon, such as
3616
+          apparmor, seccomp, SELinux, and user-namespaces (userns).
3617
+
3618
+          Additional configuration options for each security feature may
3619
+          be present, and are included as a comma-separated list of key/value
3620
+          pairs.
3621
+        type: "array"
3622
+        items:
3623
+          type: "string"
3624
+        example:
3625
+          - "name=apparmor"
3626
+          - "name=seccomp,profile=default"
3627
+          - "name=selinux"
3628
+          - "name=userns"
3629
+
3630
+
3631
+  # PluginsInfo is a temp struct holding Plugins name
3632
+  # registered with docker daemon. It is used by Info struct
3633
+  PluginsInfo:
3634
+    description: |
3635
+      Available plugins per type.
3636
+
3637
+      <p><br /></p>
3638
+
3639
+      > **Note**: Only unmanaged (V1) plugins are included in this list.
3640
+      > V1 plugins are "lazily" loaded, and are not returned in this list
3641
+      > if there is no resource using the plugin.
3642
+    type: "object"
3643
+    properties:
3644
+      Volume:
3645
+        description: "Names of available volume-drivers, and network-driver plugins."
3646
+        type: "array"
3647
+        items:
3648
+          type: "string"
3649
+        example: ["local"]
3650
+      Network:
3651
+        description: "Names of available network-drivers, and network-driver plugins."
3652
+        type: "array"
3653
+        items:
3654
+          type: "string"
3655
+        example: ["bridge", "host", "ipvlan", "macvlan", "null", "overlay"]
3656
+      Authorization:
3657
+        description: "Names of available authorization plugins."
3658
+        type: "array"
3659
+        items:
3660
+          type: "string"
3661
+        example: ["img-authz-plugin", "hbm"]
3662
+      Log:
3663
+        description: "Names of available logging-drivers, and logging-driver plugins."
3664
+        type: "array"
3665
+        items:
3666
+          type: "string"
3667
+        example: ["awslogs", "fluentd", "gcplogs", "gelf", "journald", "json-file", "logentries", "splunk", "syslog"]
3668
+
3669
+
3670
+  RegistryServiceConfig:
3671
+    description: |
3672
+      RegistryServiceConfig stores daemon registry services configuration.
3673
+    type: "object"
3674
+    x-nullable: true
3675
+    properties:
3676
+      AllowNondistributableArtifactsCIDRs:
3677
+        description: |
3678
+          List of IP ranges to which nondistributable artifacts can be pushed,
3679
+          using the CIDR syntax [RFC 4632](https://tools.ietf.org/html/4632).
3680
+
3681
+          Some images (for example, Windows base images) contain artifacts
3682
+          whose distribution is restricted by license. When these images are
3683
+          pushed to a registry, restricted artifacts are not included.
3684
+
3685
+          This configuration override this behavior, and enables the daemon to
3686
+          push nondistributable artifacts to all registries whose resolved IP
3687
+          address is within the subnet described by the CIDR syntax.
3688
+
3689
+          This option is useful when pushing images containing
3690
+          nondistributable artifacts to a registry on an air-gapped network so
3691
+          hosts on that network can pull the images without connecting to
3692
+          another server.
3693
+
3694
+          > **Warning**: Nondistributable artifacts typically have restrictions
3695
+          > on how and where they can be distributed and shared. Only use this
3696
+          > feature to push artifacts to private registries and ensure that you
3697
+          > are in compliance with any terms that cover redistributing
3698
+          > nondistributable artifacts.
3699
+
3700
+        type: "array"
3701
+        items:
3702
+          type: "string"
3703
+        example: ["::1/128", "127.0.0.0/8"]
3704
+      AllowNondistributableArtifactsHostnames:
3705
+        description: |
3706
+          List of registry hostnames to which nondistributable artifacts can be
3707
+          pushed, using the format `<hostname>[:<port>]` or `<IP address>[:<port>]`.
3708
+
3709
+          Some images (for example, Windows base images) contain artifacts
3710
+          whose distribution is restricted by license. When these images are
3711
+          pushed to a registry, restricted artifacts are not included.
3712
+
3713
+          This configuration override this behavior for the specified
3714
+          registries.
3715
+
3716
+          This option is useful when pushing images containing
3717
+          nondistributable artifacts to a registry on an air-gapped network so
3718
+          hosts on that network can pull the images without connecting to
3719
+          another server.
3720
+
3721
+          > **Warning**: Nondistributable artifacts typically have restrictions
3722
+          > on how and where they can be distributed and shared. Only use this
3723
+          > feature to push artifacts to private registries and ensure that you
3724
+          > are in compliance with any terms that cover redistributing
3725
+          > nondistributable artifacts.
3726
+        type: "array"
3727
+        items:
3728
+          type: "string"
3729
+        example: ["registry.internal.corp.example.com:3000", "[2001:db8:a0b:12f0::1]:443"]
3730
+      InsecureRegistryCIDRs:
3731
+        description: |
3732
+          List of IP ranges of insecure registries, using the CIDR syntax
3733
+          ([RFC 4632](https://tools.ietf.org/html/4632)). Insecure registries
3734
+          accept un-encrypted (HTTP) and/or untrusted (HTTPS with certificates
3735
+          from unknown CAs) communication.
3736
+
3737
+          By default, local registries (`127.0.0.0/8`) are configured as
3738
+          insecure. All other registries are secure. Communicating with an
3739
+          insecure registry is not possible if the daemon assumes that registry
3740
+          is secure.
3741
+
3742
+          This configuration override this behavior, insecure communication with
3743
+          registries whose resolved IP address is within the subnet described by
3744
+          the CIDR syntax.
3745
+
3746
+          Registries can also be marked insecure by hostname. Those registries
3747
+          are listed under `IndexConfigs` and have their `Secure` field set to
3748
+          `false`.
3749
+
3750
+          > **Warning**: Using this option can be useful when running a local
3751
+          > registry, but introduces security vulnerabilities. This option
3752
+          > should therefore ONLY be used for testing purposes. For increased
3753
+          > security, users should add their CA to their system's list of trusted
3754
+          > CAs instead of enabling this option.
3755
+        type: "array"
3756
+        items:
3757
+          type: "string"
3758
+        example: ["::1/128", "127.0.0.0/8"]
3759
+      IndexConfigs:
3760
+        type: "object"
3761
+        additionalProperties:
3762
+          $ref: "#/definitions/IndexInfo"
3763
+        example:
3764
+          "127.0.0.1:5000":
3765
+            "Name": "127.0.0.1:5000"
3766
+            "Mirrors": []
3767
+            "Secure": false
3768
+            "Official": false
3769
+          "[2001:db8:a0b:12f0::1]:80":
3770
+            "Name": "[2001:db8:a0b:12f0::1]:80"
3771
+            "Mirrors": []
3772
+            "Secure": false
3773
+            "Official": false
3774
+          "docker.io":
3775
+            Name: "docker.io"
3776
+            Mirrors: ["https://hub-mirror.corp.example.com:5000/"]
3777
+            Secure: true
3778
+            Official: true
3779
+          "registry.internal.corp.example.com:3000":
3780
+            Name: "registry.internal.corp.example.com:3000"
3781
+            Mirrors: []
3782
+            Secure: false
3783
+            Official: false
3784
+      Mirrors:
3785
+        description: |
3786
+          List of registry URLs that act as a mirror for the official
3787
+          (`docker.io`) registry.
3788
+
3789
+        type: "array"
3790
+        items:
3791
+          type: "string"
3792
+        example:
3793
+          - "https://hub-mirror.corp.example.com:5000/"
3794
+          - "https://[2001:db8:a0b:12f0::1]/"
3795
+
3796
+  IndexInfo:
3797
+    description:
3798
+      IndexInfo contains information about a registry.
3799
+    type: "object"
3800
+    x-nullable: true
3801
+    properties:
3802
+      Name:
3803
+        description: |
3804
+          Name of the registry, such as "docker.io".
3805
+        type: "string"
3806
+        example: "docker.io"
3807
+      Mirrors:
3808
+        description: |
3809
+          List of mirrors, expressed as URIs.
3810
+        type: "array"
3811
+        items:
3812
+          type: "string"
3813
+        example:
3814
+          - "https://hub-mirror.corp.example.com:5000/"
3815
+          - "https://registry-2.docker.io/"
3816
+          - "https://registry-3.docker.io/"
3817
+      Secure:
3818
+        description: |
3819
+          Indicates if the the registry is part of the list of insecure
3820
+          registries.
3821
+
3822
+          If `false`, the registry is insecure. Insecure registries accept
3823
+          un-encrypted (HTTP) and/or untrusted (HTTPS with certificates from
3824
+          unknown CAs) communication.
3825
+
3826
+          > **Warning**: Insecure registries can be useful when running a local
3827
+          > registry. However, because its use creates security vulnerabilities
3828
+          > it should ONLY be enabled for testing purposes. For increased
3829
+          > security, users should add their CA to their system's list of
3830
+          > trusted CAs instead of enabling this option.
3831
+        type: "boolean"
3832
+        example: true
3833
+      Official:
3834
+        description: |
3835
+          Indicates whether this is an official registry (i.e., Docker Hub / docker.io)
3836
+        type: "boolean"
3837
+        example: true
3838
+
3839
+  Runtime:
3840
+    description: |
3841
+      Runtime describes an [OCI compliant](https://github.com/opencontainers/runtime-spec)
3842
+      runtime.
3843
+
3844
+      The runtime is invoked by the daemon via the `containerd` daemon. OCI
3845
+      runtimes act as an interface to the Linux kernel namespaces, cgroups,
3846
+      and SELinux.
3847
+    type: "object"
3848
+    properties:
3849
+      path:
3850
+        description: |
3851
+          Name and, optional, path, of the OCI executable binary.
3852
+
3853
+          If the path is omitted, the daemon searches the host's `$PATH` for the
3854
+          binary and uses the first result.
3855
+        type: "string"
3856
+        example: "/usr/local/bin/my-oci-runtime"
3857
+      runtimeArgs:
3858
+        description: |
3859
+          List of command-line arguments to pass to the runtime when invoked.
3860
+        type: "array"
3861
+        x-nullable: true
3862
+        items:
3863
+          type: "string"
3864
+        example: ["--debug", "--systemd-cgroup=false"]
3865
+
3866
+  Commit:
3867
+    description: |
3868
+      Commit holds the Git-commit (SHA1) that a binary was built from, as
3869
+      reported in the version-string of external tools, such as `containerd`,
3870
+      or `runC`.
3871
+    type: "object"
3872
+    properties:
3873
+      ID:
3874
+        description: "Actual commit ID of external tool."
3875
+        type: "string"
3876
+        example: "cfb82a876ecc11b5ca0977d1733adbe58599088a"
3877
+      Expected:
3878
+        description: |
3879
+          Commit ID of external tool expected by dockerd as set at build time.
3880
+        type: "string"
3881
+        example: "2d41c047c83e09a6d61d464906feb2a2f3c52aa4"
3882
+
3883
+  SwarmInfo:
3884
+    description: |
3885
+      Represents generic information about swarm.
3886
+    type: "object"
3887
+    properties:
3888
+      NodeID:
3889
+        description: "Unique identifier of for this node in the swarm."
3890
+        type: "string"
3891
+        default: ""
3892
+        example: "k67qz4598weg5unwwffg6z1m1"
3893
+      NodeAddr:
3894
+        description: |
3895
+          IP address at which this node can be reached by other nodes in the
3896
+          swarm.
3897
+        type: "string"
3898
+        default: ""
3899
+        example: "10.0.0.46"
3900
+      LocalNodeState:
3901
+        $ref: "#/definitions/LocalNodeState"
3902
+      ControlAvailable:
3903
+        type: "boolean"
3904
+        default: false
3905
+        example: true
3906
+      Error:
3907
+        type: "string"
3908
+        default: ""
3909
+      RemoteManagers:
3910
+        description: |
3911
+          List of ID's and addresses of other managers in the swarm.
3912
+        type: "array"
3913
+        default: null
3914
+        x-nullable: true
3915
+        items:
3916
+          $ref: "#/definitions/PeerNode"
3917
+        example:
3918
+          - NodeID: "71izy0goik036k48jg985xnds"
3919
+            Addr: "10.0.0.158:2377"
3920
+          - NodeID: "79y6h1o4gv8n120drcprv5nmc"
3921
+            Addr: "10.0.0.159:2377"
3922
+          - NodeID: "k67qz4598weg5unwwffg6z1m1"
3923
+            Addr: "10.0.0.46:2377"
3924
+      Nodes:
3925
+        description: "Total number of nodes in the swarm."
3926
+        type: "integer"
3927
+        x-nullable: true
3928
+        example: 4
3929
+      Managers:
3930
+        description: "Total number of managers in the swarm."
3931
+        type: "integer"
3932
+        x-nullable: true
3933
+        example: 3
3934
+      Cluster:
3935
+        $ref: "#/definitions/ClusterInfo"
3936
+
3937
+  LocalNodeState:
3938
+    description: "Current local status of this node."
3939
+    type: "string"
3940
+    default: ""
3941
+    enum:
3942
+      - ""
3943
+      - "inactive"
3944
+      - "pending"
3945
+      - "active"
3946
+      - "error"
3947
+      - "locked"
3948
+    example: "active"
3949
+
3950
+  PeerNode:
3951
+    description: "Represents a peer-node in the swarm"
3952
+    properties:
3953
+      NodeID:
3954
+        description: "Unique identifier of for this node in the swarm."
3955
+        type: "string"
3956
+      Addr:
3957
+        description: |
3958
+          IP address and ports at which this node can be reached.
3959
+        type: "string"
3960
+
3193 3961
 paths:
3194 3962
   /containers/json:
3195 3963
     get:
... ...
@@ -5774,209 +6709,7 @@ paths:
5774 5774
         200:
5775 5775
           description: "No error"
5776 5776
           schema:
5777
-            type: "object"
5778
-            properties:
5779
-              Architecture:
5780
-                type: "string"
5781
-              Containers:
5782
-                type: "integer"
5783
-              ContainersRunning:
5784
-                type: "integer"
5785
-              ContainersStopped:
5786
-                type: "integer"
5787
-              ContainersPaused:
5788
-                type: "integer"
5789
-              CpuCfsPeriod:
5790
-                type: "boolean"
5791
-              CpuCfsQuota:
5792
-                type: "boolean"
5793
-              Debug:
5794
-                type: "boolean"
5795
-              DiscoveryBackend:
5796
-                type: "string"
5797
-              DockerRootDir:
5798
-                type: "string"
5799
-              Driver:
5800
-                type: "string"
5801
-              DriverStatus:
5802
-                type: "array"
5803
-                items:
5804
-                  type: "array"
5805
-                  items:
5806
-                    type: "string"
5807
-              SystemStatus:
5808
-                type: "array"
5809
-                items:
5810
-                  type: "array"
5811
-                  items:
5812
-                    type: "string"
5813
-              Plugins:
5814
-                type: "object"
5815
-                properties:
5816
-                  Volume:
5817
-                    type: "array"
5818
-                    items:
5819
-                      type: "string"
5820
-                  Network:
5821
-                    type: "array"
5822
-                    items:
5823
-                      type: "string"
5824
-                  Log:
5825
-                    type: "array"
5826
-                    items:
5827
-                      type: "string"
5828
-              ExperimentalBuild:
5829
-                type: "boolean"
5830
-              HttpProxy:
5831
-                type: "string"
5832
-              HttpsProxy:
5833
-                type: "string"
5834
-              ID:
5835
-                type: "string"
5836
-              IPv4Forwarding:
5837
-                type: "boolean"
5838
-              Images:
5839
-                type: "integer"
5840
-              IndexServerAddress:
5841
-                type: "string"
5842
-              InitPath:
5843
-                type: "string"
5844
-              InitSha1:
5845
-                type: "string"
5846
-              KernelVersion:
5847
-                type: "string"
5848
-              Labels:
5849
-                type: "array"
5850
-                items:
5851
-                  type: "string"
5852
-              MemTotal:
5853
-                type: "integer"
5854
-              GenericResources:
5855
-                $ref: "#/definitions/GenericResources"
5856
-              MemoryLimit:
5857
-                type: "boolean"
5858
-              NCPU:
5859
-                type: "integer"
5860
-              NEventsListener:
5861
-                type: "integer"
5862
-              NFd:
5863
-                type: "integer"
5864
-              NGoroutines:
5865
-                type: "integer"
5866
-              Name:
5867
-                type: "string"
5868
-              NoProxy:
5869
-                type: "string"
5870
-              OomKillDisable:
5871
-                type: "boolean"
5872
-              OSType:
5873
-                type: "string"
5874
-              OomScoreAdj:
5875
-                type: "integer"
5876
-              OperatingSystem:
5877
-                type: "string"
5878
-              RegistryConfig:
5879
-                type: "object"
5880
-                properties:
5881
-                  IndexConfigs:
5882
-                    type: "object"
5883
-                    additionalProperties:
5884
-                      type: "object"
5885
-                      properties:
5886
-                        Mirrors:
5887
-                          type: "array"
5888
-                          items:
5889
-                            type: "string"
5890
-                        Name:
5891
-                          type: "string"
5892
-                        Official:
5893
-                          type: "boolean"
5894
-                        Secure:
5895
-                          type: "boolean"
5896
-                  InsecureRegistryCIDRs:
5897
-                    type: "array"
5898
-                    items:
5899
-                      type: "string"
5900
-              SwapLimit:
5901
-                type: "boolean"
5902
-              SystemTime:
5903
-                type: "string"
5904
-              ServerVersion:
5905
-                type: "string"
5906
-          examples:
5907
-            application/json:
5908
-              Architecture: "x86_64"
5909
-              ClusterStore: "etcd://localhost:2379"
5910
-              CgroupDriver: "cgroupfs"
5911
-              Containers: 11
5912
-              ContainersRunning: 7
5913
-              ContainersStopped: 3
5914
-              ContainersPaused: 1
5915
-              CpuCfsPeriod: true
5916
-              CpuCfsQuota: true
5917
-              Debug: false
5918
-              DockerRootDir: "/var/lib/docker"
5919
-              Driver: "btrfs"
5920
-              DriverStatus:
5921
-                -
5922
-                  - ""
5923
-              ExperimentalBuild: false
5924
-              HttpProxy: "http://test:test@localhost:8080"
5925
-              HttpsProxy: "https://test:test@localhost:8080"
5926
-              ID: "7TRN:IPZB:QYBB:VPBQ:UMPP:KARE:6ZNR:XE6T:7EWV:PKF4:ZOJD:TPYS"
5927
-              IPv4Forwarding: true
5928
-              Images: 16
5929
-              IndexServerAddress: "https://index.docker.io/v1/"
5930
-              InitPath: "/usr/bin/docker"
5931
-              InitSha1: ""
5932
-              KernelMemory: true
5933
-              KernelVersion: "3.12.0-1-amd64"
5934
-              Labels:
5935
-                - "storage=ssd"
5936
-              MemTotal: 2099236864
5937
-              MemoryLimit: true
5938
-              NCPU: 1
5939
-              NEventsListener: 0
5940
-              NFd: 11
5941
-              NGoroutines: 21
5942
-              Name: "prod-server-42"
5943
-              NoProxy: "9.81.1.160"
5944
-              OomKillDisable: true
5945
-              OSType: "linux"
5946
-              OperatingSystem: "Boot2Docker"
5947
-              Plugins:
5948
-                Volume:
5949
-                  - "local"
5950
-                Network:
5951
-                  - "null"
5952
-                  - "host"
5953
-                  - "bridge"
5954
-              RegistryConfig:
5955
-                IndexConfigs:
5956
-                  docker.io:
5957
-                    Name: "docker.io"
5958
-                    Official: true
5959
-                    Secure: true
5960
-                InsecureRegistryCIDRs:
5961
-                  - "127.0.0.0/8"
5962
-              SecurityOptions:
5963
-                - Key: "Name"
5964
-                  Value: "seccomp"
5965
-                - Key: "Profile"
5966
-                  Value: "default"
5967
-                - Key: "Name"
5968
-                  Value: "apparmor"
5969
-                - Key: "Name"
5970
-                  Value: "selinux"
5971
-                - Key: "Name"
5972
-                  Value: "userns"
5973
-              ServerVersion: "1.9.0"
5974
-              SwapLimit: false
5975
-              SystemStatus:
5976
-                -
5977
-                  - "State"
5978
-                  - "Healthy"
5979
-              SystemTime: "2015-03-10T11:11:23.730591467-07:00"
5777
+            $ref: "#/definitions/SystemInfo"
5980 5778
         500:
5981 5779
           description: "Server error"
5982 5780
           schema:
... ...
@@ -7747,60 +8480,7 @@ paths:
7747 7747
         200:
7748 7748
           description: "no error"
7749 7749
           schema:
7750
-            allOf:
7751
-              - $ref: "#/definitions/ClusterInfo"
7752
-              - type: "object"
7753
-                properties:
7754
-                  JoinTokens:
7755
-                    description: "The tokens workers and managers need to join the swarm."
7756
-                    type: "object"
7757
-                    properties:
7758
-                      Worker:
7759
-                        description: "The token workers can use to join the swarm."
7760
-                        type: "string"
7761
-                      Manager:
7762
-                        description: "The token managers can use to join the swarm."
7763
-                        type: "string"
7764
-            example:
7765
-              CreatedAt: "2016-08-15T16:00:20.349727406Z"
7766
-              Spec:
7767
-                Dispatcher:
7768
-                  HeartbeatPeriod: 5000000000
7769
-                Orchestration:
7770
-                  TaskHistoryRetentionLimit: 10
7771
-                CAConfig:
7772
-                  NodeCertExpiry: 7776000000000000
7773
-                Raft:
7774
-                  LogEntriesForSlowFollowers: 500
7775
-                  HeartbeatTick: 1
7776
-                  SnapshotInterval: 10000
7777
-                  ElectionTick: 3
7778
-                TaskDefaults: {}
7779
-                EncryptionConfig:
7780
-                  AutoLockManagers: false
7781
-                Name: "default"
7782
-              JoinTokens:
7783
-                Worker: "SWMTKN-1-1h8aps2yszaiqmz2l3oc5392pgk8e49qhx2aj3nyv0ui0hez2a-6qmn92w6bu3jdvnglku58u11a"
7784
-                Manager: "SWMTKN-1-1h8aps2yszaiqmz2l3oc5392pgk8e49qhx2aj3nyv0ui0hez2a-8llk83c4wm9lwioey2s316r9l"
7785
-              ID: "70ilmkj2f6sp2137c753w2nmt"
7786
-              UpdatedAt: "2016-08-15T16:32:09.623207604Z"
7787
-              Version:
7788
-                Index: 51
7789
-              RootRotationInProgress: false
7790
-              TLSInfo:
7791
-                TrustRoot: |
7792
-                  -----BEGIN CERTIFICATE-----
7793
-                  MIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw
7794
-                  EzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0
7795
-                  MzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH
7796
-                  A0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf
7797
-                  3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB
7798
-                  Af8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO
7799
-                  PQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz
7800
-                  pxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H
7801
-                  -----END CERTIFICATE-----
7802
-                CertIssuerSubject: "MBMxETAPBgNVBAMTCHN3YXJtLWNh"
7803
-                CertIssuerPublicKey: "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A=="
7750
+            $ref: "#/definitions/Swarm"
7804 7751
         404:
7805 7752
           description: "no such swarm"
7806 7753
           schema: