Browse code

Merge pull request #26634 from thaJeztah/fix-api-docs-for-services

Fix service and tasks API documentation

Sebastiaan van Stijn authored on 2016/09/17 23:13:15
Showing 2 changed files
... ...
@@ -4403,7 +4403,8 @@ List services
4403 4403
               "Reservations": {}
4404 4404
             },
4405 4405
             "RestartPolicy": {
4406
-              "Condition": "ANY"
4406
+              "Condition": "any",
4407
+              "MaxAttempts": 0
4407 4408
             },
4408 4409
             "Placement": {}
4409 4410
           },
... ...
@@ -4413,26 +4414,36 @@ List services
4413 4413
             }
4414 4414
           },
4415 4415
           "UpdateConfig": {
4416
-            "Parallelism": 1
4416
+            "Parallelism": 1,
4417
+            "FailureAction": "pause"
4417 4418
           },
4418 4419
           "EndpointSpec": {
4419
-            "Mode": "VIP",
4420
-            "Ingress": "PUBLICPORT",
4421
-            "ExposedPorts": [
4420
+            "Mode": "vip",
4421
+            "Ports": [
4422 4422
               {
4423 4423
                 "Protocol": "tcp",
4424
-                "Port": 6379
4424
+                "TargetPort": 6379,
4425
+                "PublishedPort": 30001
4425 4426
               }
4426 4427
             ]
4427 4428
           }
4428 4429
         },
4429 4430
         "Endpoint": {
4430
-          "Spec": {},
4431
-          "ExposedPorts": [
4431
+          "Spec": {
4432
+            "Mode": "vip",
4433
+            "Ports": [
4434
+              {
4435
+                "Protocol": "tcp",
4436
+                "TargetPort": 6379,
4437
+                "PublishedPort": 30001
4438
+              }
4439
+            ]
4440
+          },
4441
+          "Ports": [
4432 4442
             {
4433 4443
               "Protocol": "tcp",
4434
-              "Port": 6379,
4435
-              "PublicPort": 30000
4444
+              "TargetPort": 6379,
4445
+              "PublishedPort": 30001
4436 4446
             }
4437 4447
           ],
4438 4448
           "VirtualIPs": [
... ...
@@ -4618,13 +4629,13 @@ image](#create-an-image) section for more details.
4618 4618
     - **FailureAction** - Action to take if an updated task fails to run, or stops running during the
4619 4619
       update. Values are `continue` and `pause`.
4620 4620
 - **Networks** – Array of network names or IDs to attach the service to.
4621
-- **Endpoint** – Properties that can be configured to access and load balance a service.
4622
-    - **Spec** –
4623
-        - **Mode** – The mode of resolution to use for internal load balancing
4624
-          between tasks (`vip` or `dnsrr`).
4625
-        - **Ports** – Exposed ports that this service is accessible on from the outside, in the form
4626
-          of: `"Ports": { "<port>/<tcp|udp>: {}" }`
4627
-    - **VirtualIPs**
4621
+- **EndpointSpec** – Properties that can be configured to access and load balance a service.
4622
+    - **Mode** – The mode of resolution to use for internal load balancing
4623
+      between tasks (`vip` or `dnsrr`). Defaults to `vip` if not provided.
4624
+    - **Ports** – List of exposed ports that this service is accessible on from
4625
+      the outside, in the form of:
4626
+      `{"Protocol": <"tcp"|"udp">, "PublishedPort": <port>, "TargetPort": <port>}`.
4627
+      Ports can only be provided if `vip` resolution mode is used.
4628 4628
 
4629 4629
 **Request Headers**:
4630 4630
 
... ...
@@ -4677,7 +4688,7 @@ Return information on the service `id`.
4677 4677
       "UpdatedAt": "2016-06-07T21:10:20.276301259Z",
4678 4678
       "Spec": {
4679 4679
         "Name": "redis",
4680
-        "Task": {
4680
+        "TaskTemplate": {
4681 4681
           "ContainerSpec": {
4682 4682
             "Image": "redis"
4683 4683
           },
... ...
@@ -4686,7 +4697,8 @@ Return information on the service `id`.
4686 4686
             "Reservations": {}
4687 4687
           },
4688 4688
           "RestartPolicy": {
4689
-            "Condition": "ANY"
4689
+            "Condition": "any",
4690
+            "MaxAttempts": 0
4690 4691
           },
4691 4692
           "Placement": {}
4692 4693
         },
... ...
@@ -4696,26 +4708,36 @@ Return information on the service `id`.
4696 4696
           }
4697 4697
         },
4698 4698
         "UpdateConfig": {
4699
-          "Parallelism": 1
4699
+          "Parallelism": 1,
4700
+          "FailureAction": "pause"
4700 4701
         },
4701 4702
         "EndpointSpec": {
4702
-          "Mode": "VIP",
4703
-          "Ingress": "PUBLICPORT",
4704
-          "ExposedPorts": [
4703
+          "Mode": "vip",
4704
+          "Ports": [
4705 4705
             {
4706 4706
               "Protocol": "tcp",
4707
-              "Port": 6379
4707
+              "TargetPort": 6379,
4708
+              "PublishedPort": 30001
4708 4709
             }
4709 4710
           ]
4710 4711
         }
4711 4712
       },
4712 4713
       "Endpoint": {
4713
-        "Spec": {},
4714
-        "ExposedPorts": [
4714
+        "Spec": {
4715
+          "Mode": "vip",
4716
+          "Ports": [
4717
+            {
4718
+              "Protocol": "tcp",
4719
+              "TargetPort": 6379,
4720
+              "PublishedPort": 30001
4721
+            }
4722
+          ]
4723
+        },
4724
+        "Ports": [
4715 4725
           {
4716 4726
             "Protocol": "tcp",
4717
-            "Port": 6379,
4718
-            "PublicPort": 30001
4727
+            "TargetPort": 6379,
4728
+            "PublishedPort": 30001
4719 4729
           }
4720 4730
         ],
4721 4731
         "VirtualIPs": [
... ...
@@ -4829,7 +4851,7 @@ image](#create-an-image) section for more details.
4829 4829
       as part of this service.
4830 4830
         - **Condition** – Condition for restart (`none`, `on-failure`, or `any`).
4831 4831
         - **Delay** – Delay between restart attempts.
4832
-        - **Attempts** – Maximum attempts to restart a given container before giving up (default value
4832
+        - **MaxAttempts** – Maximum attempts to restart a given container before giving up (default value
4833 4833
           is 0, which is ignored).
4834 4834
         - **Window** – Windows is the time window used to evaluate the restart policy (default value is
4835 4835
           0, which is unbounded).
... ...
@@ -4840,13 +4862,13 @@ image](#create-an-image) section for more details.
4840 4840
       parallelism).
4841 4841
     - **Delay** – Amount of time between updates.
4842 4842
 - **Networks** – Array of network names or IDs to attach the service to.
4843
-- **Endpoint** – Properties that can be configured to access and load balance a service.
4844
-    - **Spec** –
4845
-        - **Mode** – The mode of resolution to use for internal load balancing
4846
-          between tasks (`vip` or `dnsrr`).
4847
-        - **Ports** – Exposed ports that this service is accessible on from the outside, in the form
4848
-          of: `"Ports": { "<port>/<tcp|udp>: {}" }`
4849
-    - **VirtualIPs**
4843
+- **EndpointSpec** – Properties that can be configured to access and load balance a service.
4844
+    - **Mode** – The mode of resolution to use for internal load balancing
4845
+      between tasks (`vip` or `dnsrr`). Defaults to `vip` if not provided.
4846
+    - **Ports** – List of exposed ports that this service is accessible on from
4847
+      the outside, in the form of:
4848
+      `{"Protocol": <"tcp"|"udp">, "PublishedPort": <port>, "TargetPort": <port>}`.
4849
+      Ports can only be provided if `vip` resolution mode is used.
4850 4850
 
4851 4851
 **Query parameters**:
4852 4852
 
... ...
@@ -4865,7 +4887,7 @@ image](#create-an-image) section for more details.
4865 4865
 -   **200** – no error
4866 4866
 -   **404** – no such service
4867 4867
 -   **500** – server error
4868
- 
4868
+
4869 4869
 ## 3.10 Tasks
4870 4870
 
4871 4871
 **Note**: Task operations require the engine to be part of a swarm.
... ...
@@ -4891,7 +4913,6 @@ List tasks
4891 4891
         },
4892 4892
         "CreatedAt": "2016-06-07T21:07:31.171892745Z",
4893 4893
         "UpdatedAt": "2016-06-07T21:07:31.376370513Z",
4894
-        "Name": "hopeful_cori",
4895 4894
         "Spec": {
4896 4895
           "ContainerSpec": {
4897 4896
             "Image": "redis"
... ...
@@ -4901,21 +4922,24 @@ List tasks
4901 4901
             "Reservations": {}
4902 4902
           },
4903 4903
           "RestartPolicy": {
4904
-            "Condition": "ANY"
4904
+            "Condition": "any",
4905
+            "MaxAttempts": 0
4905 4906
           },
4906 4907
           "Placement": {}
4907 4908
         },
4908 4909
         "ServiceID": "9mnpnzenvg8p8tdbtq4wvbkcz",
4909
-        "Instance": 1,
4910
-        "NodeID": "24ifsmvkjbyhk",
4911
-        "ServiceAnnotations": {},
4910
+        "Slot": 1,
4911
+        "NodeID": "60gvrl6tm78dmak4yl7srz94v",
4912 4912
         "Status": {
4913 4913
           "Timestamp": "2016-06-07T21:07:31.290032978Z",
4914
-          "State": "FAILED",
4915
-          "Message": "execution failed",
4916
-          "ContainerStatus": {}
4914
+          "State": "running",
4915
+          "Message": "started",
4916
+          "ContainerStatus": {
4917
+            "ContainerID": "e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035",
4918
+            "PID": 677
4919
+          }
4917 4920
         },
4918
-        "DesiredState": "SHUTDOWN",
4921
+        "DesiredState": "running",
4919 4922
         "NetworksAttachments": [
4920 4923
           {
4921 4924
             "Network": {
... ...
@@ -4931,12 +4955,12 @@ List tasks
4931 4931
                   "com.docker.swarm.internal": "true"
4932 4932
                 },
4933 4933
                 "DriverConfiguration": {},
4934
-                "IPAM": {
4934
+                "IPAMOptions": {
4935 4935
                   "Driver": {},
4936 4936
                   "Configs": [
4937 4937
                     {
4938
-                      "Family": "UNKNOWN",
4939
-                      "Subnet": "10.255.0.0/16"
4938
+                      "Subnet": "10.255.0.0/16",
4939
+                      "Gateway": "10.255.0.1"
4940 4940
                     }
4941 4941
                   ]
4942 4942
                 }
... ...
@@ -4947,14 +4971,14 @@ List tasks
4947 4947
                   "com.docker.network.driver.overlay.vxlanid_list": "256"
4948 4948
                 }
4949 4949
               },
4950
-              "IPAM": {
4950
+              "IPAMOptions": {
4951 4951
                 "Driver": {
4952 4952
                   "Name": "default"
4953 4953
                 },
4954 4954
                 "Configs": [
4955 4955
                   {
4956
-                    "Family": "UNKNOWN",
4957
-                    "Subnet": "10.255.0.0/16"
4956
+                    "Subnet": "10.255.0.0/16",
4957
+                    "Gateway": "10.255.0.1"
4958 4958
                   }
4959 4959
                 ]
4960 4960
               }
... ...
@@ -4964,26 +4988,6 @@ List tasks
4964 4964
             ]
4965 4965
           }
4966 4966
         ],
4967
-        "Endpoint": {
4968
-          "Spec": {},
4969
-          "ExposedPorts": [
4970
-            {
4971
-              "Protocol": "tcp",
4972
-              "Port": 6379,
4973
-              "PublicPort": 30000
4974
-            }
4975
-          ],
4976
-          "VirtualIPs": [
4977
-            {
4978
-              "NetworkID": "4qvuz4ko70xaltuqbt8956gd1",
4979
-              "Addr": "10.255.0.2/16"
4980
-            },
4981
-            {
4982
-              "NetworkID": "4qvuz4ko70xaltuqbt8956gd1",
4983
-              "Addr": "10.255.0.3/16"
4984
-            }
4985
-          ]
4986
-        }
4987 4967
       },
4988 4968
       {
4989 4969
         "ID": "1yljwbmlr8er2waf8orvqpwms",
... ...
@@ -5002,21 +5006,23 @@ List tasks
5002 5002
             "Reservations": {}
5003 5003
           },
5004 5004
           "RestartPolicy": {
5005
-            "Condition": "ANY"
5005
+            "Condition": "any",
5006
+            "MaxAttempts": 0
5006 5007
           },
5007 5008
           "Placement": {}
5008 5009
         },
5009 5010
         "ServiceID": "9mnpnzenvg8p8tdbtq4wvbkcz",
5010
-        "Instance": 1,
5011
-        "NodeID": "24ifsmvkjbyhk",
5012
-        "ServiceAnnotations": {},
5011
+        "Slot": 1,
5012
+        "NodeID": "60gvrl6tm78dmak4yl7srz94v",
5013 5013
         "Status": {
5014 5014
           "Timestamp": "2016-06-07T21:07:30.202183143Z",
5015
-          "State": "FAILED",
5016
-          "Message": "execution failed",
5017
-          "ContainerStatus": {}
5015
+          "State": "shutdown",
5016
+          "Message": "shutdown",
5017
+          "ContainerStatus": {
5018
+            "ContainerID": "1cf8d63d18e79668b0004a4be4c6ee58cddfad2dae29506d8781581d0688a213"
5019
+          }
5018 5020
         },
5019
-        "DesiredState": "SHUTDOWN",
5021
+        "DesiredState": "shutdown",
5020 5022
         "NetworksAttachments": [
5021 5023
           {
5022 5024
             "Network": {
... ...
@@ -5032,12 +5038,12 @@ List tasks
5032 5032
                   "com.docker.swarm.internal": "true"
5033 5033
                 },
5034 5034
                 "DriverConfiguration": {},
5035
-                "IPAM": {
5035
+                "IPAMOptions": {
5036 5036
                   "Driver": {},
5037 5037
                   "Configs": [
5038 5038
                     {
5039
-                      "Family": "UNKNOWN",
5040
-                      "Subnet": "10.255.0.0/16"
5039
+                      "Subnet": "10.255.0.0/16",
5040
+                      "Gateway": "10.255.0.1"
5041 5041
                     }
5042 5042
                   ]
5043 5043
                 }
... ...
@@ -5048,14 +5054,14 @@ List tasks
5048 5048
                   "com.docker.network.driver.overlay.vxlanid_list": "256"
5049 5049
                 }
5050 5050
               },
5051
-              "IPAM": {
5051
+              "IPAMOptions": {
5052 5052
                 "Driver": {
5053 5053
                   "Name": "default"
5054 5054
                 },
5055 5055
                 "Configs": [
5056 5056
                   {
5057
-                    "Family": "UNKNOWN",
5058
-                    "Subnet": "10.255.0.0/16"
5057
+                    "Subnet": "10.255.0.0/16",
5058
+                    "Gateway": "10.255.0.1"
5059 5059
                   }
5060 5060
                 ]
5061 5061
               }
... ...
@@ -5064,27 +5070,7 @@ List tasks
5064 5064
               "10.255.0.5/16"
5065 5065
             ]
5066 5066
           }
5067
-        ],
5068
-        "Endpoint": {
5069
-          "Spec": {},
5070
-          "ExposedPorts": [
5071
-            {
5072
-              "Protocol": "tcp",
5073
-              "Port": 6379,
5074
-              "PublicPort": 30000
5075
-            }
5076
-          ],
5077
-          "VirtualIPs": [
5078
-            {
5079
-              "NetworkID": "4qvuz4ko70xaltuqbt8956gd1",
5080
-              "Addr": "10.255.0.2/16"
5081
-            },
5082
-            {
5083
-              "NetworkID": "4qvuz4ko70xaltuqbt8956gd1",
5084
-              "Addr": "10.255.0.3/16"
5085
-            }
5086
-          ]
5087
-        }
5067
+        ]
5088 5068
       }
5089 5069
     ]
5090 5070
 
... ...
@@ -5124,7 +5110,6 @@ Get details on a task
5124 5124
       },
5125 5125
       "CreatedAt": "2016-06-07T21:07:31.171892745Z",
5126 5126
       "UpdatedAt": "2016-06-07T21:07:31.376370513Z",
5127
-      "Name": "hopeful_cori",
5128 5127
       "Spec": {
5129 5128
         "ContainerSpec": {
5130 5129
           "Image": "redis"
... ...
@@ -5134,21 +5119,24 @@ Get details on a task
5134 5134
           "Reservations": {}
5135 5135
         },
5136 5136
         "RestartPolicy": {
5137
-          "Condition": "ANY"
5137
+          "Condition": "any",
5138
+          "MaxAttempts": 0
5138 5139
         },
5139 5140
         "Placement": {}
5140 5141
       },
5141 5142
       "ServiceID": "9mnpnzenvg8p8tdbtq4wvbkcz",
5142
-      "Instance": 1,
5143
-      "NodeID": "24ifsmvkjbyhk",
5144
-      "ServiceAnnotations": {},
5143
+      "Slot": 1,
5144
+      "NodeID": "60gvrl6tm78dmak4yl7srz94v",
5145 5145
       "Status": {
5146 5146
         "Timestamp": "2016-06-07T21:07:31.290032978Z",
5147
-        "State": "FAILED",
5148
-        "Message": "execution failed",
5149
-        "ContainerStatus": {}
5147
+        "State": "running",
5148
+        "Message": "started",
5149
+        "ContainerStatus": {
5150
+          "ContainerID": "e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035",
5151
+          "PID": 677
5152
+        }
5150 5153
       },
5151
-      "DesiredState": "SHUTDOWN",
5154
+      "DesiredState": "running",
5152 5155
       "NetworksAttachments": [
5153 5156
         {
5154 5157
           "Network": {
... ...
@@ -5164,12 +5152,12 @@ Get details on a task
5164 5164
                 "com.docker.swarm.internal": "true"
5165 5165
               },
5166 5166
               "DriverConfiguration": {},
5167
-              "IPAM": {
5167
+              "IPAMOptions": {
5168 5168
                 "Driver": {},
5169 5169
                 "Configs": [
5170 5170
                   {
5171
-                    "Family": "UNKNOWN",
5172
-                    "Subnet": "10.255.0.0/16"
5171
+                    "Subnet": "10.255.0.0/16",
5172
+                    "Gateway": "10.255.0.1"
5173 5173
                   }
5174 5174
                 ]
5175 5175
               }
... ...
@@ -5180,14 +5168,14 @@ Get details on a task
5180 5180
                 "com.docker.network.driver.overlay.vxlanid_list": "256"
5181 5181
               }
5182 5182
             },
5183
-            "IPAM": {
5183
+            "IPAMOptions": {
5184 5184
               "Driver": {
5185 5185
                 "Name": "default"
5186 5186
               },
5187 5187
               "Configs": [
5188 5188
                 {
5189
-                  "Family": "UNKNOWN",
5190
-                  "Subnet": "10.255.0.0/16"
5189
+                  "Subnet": "10.255.0.0/16",
5190
+                  "Gateway": "10.255.0.1"
5191 5191
                 }
5192 5192
               ]
5193 5193
             }
... ...
@@ -5196,27 +5184,7 @@ Get details on a task
5196 5196
             "10.255.0.10/16"
5197 5197
           ]
5198 5198
         }
5199
-      ],
5200
-      "Endpoint": {
5201
-        "Spec": {},
5202
-        "ExposedPorts": [
5203
-          {
5204
-            "Protocol": "tcp",
5205
-            "Port": 6379,
5206
-            "PublicPort": 30000
5207
-          }
5208
-        ],
5209
-        "VirtualIPs": [
5210
-          {
5211
-            "NetworkID": "4qvuz4ko70xaltuqbt8956gd1",
5212
-            "Addr": "10.255.0.2/16"
5213
-          },
5214
-          {
5215
-            "NetworkID": "4qvuz4ko70xaltuqbt8956gd1",
5216
-            "Addr": "10.255.0.3/16"
5217
-          }
5218
-        ]
5219
-      }
5199
+      ]
5220 5200
     }
5221 5201
 
5222 5202
 **Status codes**:
... ...
@@ -4463,7 +4463,8 @@ List services
4463 4463
               "Reservations": {}
4464 4464
             },
4465 4465
             "RestartPolicy": {
4466
-              "Condition": "ANY"
4466
+              "Condition": "any",
4467
+              "MaxAttempts": 0
4467 4468
             },
4468 4469
             "Placement": {}
4469 4470
           },
... ...
@@ -4473,26 +4474,36 @@ List services
4473 4473
             }
4474 4474
           },
4475 4475
           "UpdateConfig": {
4476
-            "Parallelism": 1
4476
+            "Parallelism": 1,
4477
+            "FailureAction": "pause"
4477 4478
           },
4478 4479
           "EndpointSpec": {
4479
-            "Mode": "VIP",
4480
-            "Ingress": "PUBLICPORT",
4481
-            "ExposedPorts": [
4480
+            "Mode": "vip",
4481
+            "Ports": [
4482 4482
               {
4483 4483
                 "Protocol": "tcp",
4484
-                "Port": 6379
4484
+                "TargetPort": 6379,
4485
+                "PublishedPort": 30001
4485 4486
               }
4486 4487
             ]
4487 4488
           }
4488 4489
         },
4489 4490
         "Endpoint": {
4490
-          "Spec": {},
4491
-          "ExposedPorts": [
4491
+          "Spec": {
4492
+            "Mode": "vip",
4493
+            "Ports": [
4494
+              {
4495
+                "Protocol": "tcp",
4496
+                "TargetPort": 6379,
4497
+                "PublishedPort": 30001
4498
+              }
4499
+            ]
4500
+          },
4501
+          "Ports": [
4492 4502
             {
4493 4503
               "Protocol": "tcp",
4494
-              "Port": 6379,
4495
-              "PublicPort": 30000
4504
+              "TargetPort": 6379,
4505
+              "PublishedPort": 30001
4496 4506
             }
4497 4507
           ],
4498 4508
           "VirtualIPs": [
... ...
@@ -4678,13 +4689,13 @@ image](#create-an-image) section for more details.
4678 4678
     - **FailureAction** - Action to take if an updated task fails to run, or stops running during the
4679 4679
       update. Values are `continue` and `pause`.
4680 4680
 - **Networks** – Array of network names or IDs to attach the service to.
4681
-- **Endpoint** – Properties that can be configured to access and load balance a service.
4682
-    - **Spec** –
4683
-        - **Mode** – The mode of resolution to use for internal load balancing
4684
-          between tasks (`vip` or `dnsrr`).
4685
-        - **Ports** – Exposed ports that this service is accessible on from the outside, in the form
4686
-          of: `"Ports": { "<port>/<tcp|udp>: {}" }`
4687
-    - **VirtualIPs**
4681
+- **EndpointSpec** – Properties that can be configured to access and load balance a service.
4682
+    - **Mode** – The mode of resolution to use for internal load balancing
4683
+      between tasks (`vip` or `dnsrr`). Defaults to `vip` if not provided.
4684
+    - **Ports** – List of exposed ports that this service is accessible on from
4685
+      the outside, in the form of:
4686
+      `{"Protocol": <"tcp"|"udp">, "PublishedPort": <port>, "TargetPort": <port>}`.
4687
+      Ports can only be provided if `vip` resolution mode is used.
4688 4688
 
4689 4689
 **Request Headers**:
4690 4690
 
... ...
@@ -4737,7 +4748,7 @@ Return information on the service `id`.
4737 4737
       "UpdatedAt": "2016-06-07T21:10:20.276301259Z",
4738 4738
       "Spec": {
4739 4739
         "Name": "redis",
4740
-        "Task": {
4740
+        "TaskTemplate": {
4741 4741
           "ContainerSpec": {
4742 4742
             "Image": "redis"
4743 4743
           },
... ...
@@ -4746,7 +4757,8 @@ Return information on the service `id`.
4746 4746
             "Reservations": {}
4747 4747
           },
4748 4748
           "RestartPolicy": {
4749
-            "Condition": "ANY"
4749
+            "Condition": "any",
4750
+            "MaxAttempts": 0
4750 4751
           },
4751 4752
           "Placement": {}
4752 4753
         },
... ...
@@ -4756,26 +4768,36 @@ Return information on the service `id`.
4756 4756
           }
4757 4757
         },
4758 4758
         "UpdateConfig": {
4759
-          "Parallelism": 1
4759
+          "Parallelism": 1,
4760
+          "FailureAction": "pause"
4760 4761
         },
4761 4762
         "EndpointSpec": {
4762
-          "Mode": "VIP",
4763
-          "Ingress": "PUBLICPORT",
4764
-          "ExposedPorts": [
4763
+          "Mode": "vip",
4764
+          "Ports": [
4765 4765
             {
4766 4766
               "Protocol": "tcp",
4767
-              "Port": 6379
4767
+              "TargetPort": 6379,
4768
+              "PublishedPort": 30001
4768 4769
             }
4769 4770
           ]
4770 4771
         }
4771 4772
       },
4772 4773
       "Endpoint": {
4773
-        "Spec": {},
4774
-        "ExposedPorts": [
4774
+        "Spec": {
4775
+          "Mode": "vip",
4776
+          "Ports": [
4777
+            {
4778
+              "Protocol": "tcp",
4779
+              "TargetPort": 6379,
4780
+              "PublishedPort": 30001
4781
+            }
4782
+          ]
4783
+        },
4784
+        "Ports": [
4775 4785
           {
4776 4786
             "Protocol": "tcp",
4777
-            "Port": 6379,
4778
-            "PublicPort": 30001
4787
+            "TargetPort": 6379,
4788
+            "PublishedPort": 30001
4779 4789
           }
4780 4790
         ],
4781 4791
         "VirtualIPs": [
... ...
@@ -4889,7 +4911,7 @@ image](#create-an-image) section for more details.
4889 4889
       as part of this service.
4890 4890
         - **Condition** – Condition for restart (`none`, `on-failure`, or `any`).
4891 4891
         - **Delay** – Delay between restart attempts.
4892
-        - **Attempts** – Maximum attempts to restart a given container before giving up (default value
4892
+        - **MaxAttempts** – Maximum attempts to restart a given container before giving up (default value
4893 4893
           is 0, which is ignored).
4894 4894
         - **Window** – Windows is the time window used to evaluate the restart policy (default value is
4895 4895
           0, which is unbounded).
... ...
@@ -4900,13 +4922,13 @@ image](#create-an-image) section for more details.
4900 4900
       parallelism).
4901 4901
     - **Delay** – Amount of time between updates.
4902 4902
 - **Networks** – Array of network names or IDs to attach the service to.
4903
-- **Endpoint** – Properties that can be configured to access and load balance a service.
4904
-    - **Spec** –
4905
-        - **Mode** – The mode of resolution to use for internal load balancing
4906
-          between tasks (`vip` or `dnsrr`).
4907
-        - **Ports** – Exposed ports that this service is accessible on from the outside, in the form
4908
-          of: `"Ports": { "<port>/<tcp|udp>: {}" }`
4909
-    - **VirtualIPs**
4903
+- **EndpointSpec** – Properties that can be configured to access and load balance a service.
4904
+    - **Mode** – The mode of resolution to use for internal load balancing
4905
+      between tasks (`vip` or `dnsrr`). Defaults to `vip` if not provided.
4906
+    - **Ports** – List of exposed ports that this service is accessible on from
4907
+      the outside, in the form of:
4908
+      `{"Protocol": <"tcp"|"udp">, "PublishedPort": <port>, "TargetPort": <port>}`.
4909
+      Ports can only be provided if `vip` resolution mode is used.
4910 4910
 
4911 4911
 **Query parameters**:
4912 4912
 
... ...
@@ -4951,7 +4973,6 @@ List tasks
4951 4951
         },
4952 4952
         "CreatedAt": "2016-06-07T21:07:31.171892745Z",
4953 4953
         "UpdatedAt": "2016-06-07T21:07:31.376370513Z",
4954
-        "Name": "hopeful_cori",
4955 4954
         "Spec": {
4956 4955
           "ContainerSpec": {
4957 4956
             "Image": "redis"
... ...
@@ -4961,21 +4982,24 @@ List tasks
4961 4961
             "Reservations": {}
4962 4962
           },
4963 4963
           "RestartPolicy": {
4964
-            "Condition": "ANY"
4964
+            "Condition": "any",
4965
+            "MaxAttempts": 0
4965 4966
           },
4966 4967
           "Placement": {}
4967 4968
         },
4968 4969
         "ServiceID": "9mnpnzenvg8p8tdbtq4wvbkcz",
4969
-        "Instance": 1,
4970
-        "NodeID": "24ifsmvkjbyhk",
4971
-        "ServiceAnnotations": {},
4970
+        "Slot": 1,
4971
+        "NodeID": "60gvrl6tm78dmak4yl7srz94v",
4972 4972
         "Status": {
4973 4973
           "Timestamp": "2016-06-07T21:07:31.290032978Z",
4974
-          "State": "FAILED",
4975
-          "Message": "execution failed",
4976
-          "ContainerStatus": {}
4974
+          "State": "running",
4975
+          "Message": "started",
4976
+          "ContainerStatus": {
4977
+            "ContainerID": "e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035",
4978
+            "PID": 677
4979
+          }
4977 4980
         },
4978
-        "DesiredState": "SHUTDOWN",
4981
+        "DesiredState": "running",
4979 4982
         "NetworksAttachments": [
4980 4983
           {
4981 4984
             "Network": {
... ...
@@ -4991,12 +5015,12 @@ List tasks
4991 4991
                   "com.docker.swarm.internal": "true"
4992 4992
                 },
4993 4993
                 "DriverConfiguration": {},
4994
-                "IPAM": {
4994
+                "IPAMOptions": {
4995 4995
                   "Driver": {},
4996 4996
                   "Configs": [
4997 4997
                     {
4998
-                      "Family": "UNKNOWN",
4999
-                      "Subnet": "10.255.0.0/16"
4998
+                      "Subnet": "10.255.0.0/16",
4999
+                      "Gateway": "10.255.0.1"
5000 5000
                     }
5001 5001
                   ]
5002 5002
                 }
... ...
@@ -5007,14 +5031,14 @@ List tasks
5007 5007
                   "com.docker.network.driver.overlay.vxlanid_list": "256"
5008 5008
                 }
5009 5009
               },
5010
-              "IPAM": {
5010
+              "IPAMOptions": {
5011 5011
                 "Driver": {
5012 5012
                   "Name": "default"
5013 5013
                 },
5014 5014
                 "Configs": [
5015 5015
                   {
5016
-                    "Family": "UNKNOWN",
5017
-                    "Subnet": "10.255.0.0/16"
5016
+                    "Subnet": "10.255.0.0/16",
5017
+                    "Gateway": "10.255.0.1"
5018 5018
                   }
5019 5019
                 ]
5020 5020
               }
... ...
@@ -5024,26 +5048,6 @@ List tasks
5024 5024
             ]
5025 5025
           }
5026 5026
         ],
5027
-        "Endpoint": {
5028
-          "Spec": {},
5029
-          "ExposedPorts": [
5030
-            {
5031
-              "Protocol": "tcp",
5032
-              "Port": 6379,
5033
-              "PublicPort": 30000
5034
-            }
5035
-          ],
5036
-          "VirtualIPs": [
5037
-            {
5038
-              "NetworkID": "4qvuz4ko70xaltuqbt8956gd1",
5039
-              "Addr": "10.255.0.2/16"
5040
-            },
5041
-            {
5042
-              "NetworkID": "4qvuz4ko70xaltuqbt8956gd1",
5043
-              "Addr": "10.255.0.3/16"
5044
-            }
5045
-          ]
5046
-        }
5047 5027
       },
5048 5028
       {
5049 5029
         "ID": "1yljwbmlr8er2waf8orvqpwms",
... ...
@@ -5062,21 +5066,23 @@ List tasks
5062 5062
             "Reservations": {}
5063 5063
           },
5064 5064
           "RestartPolicy": {
5065
-            "Condition": "ANY"
5065
+            "Condition": "any",
5066
+            "MaxAttempts": 0
5066 5067
           },
5067 5068
           "Placement": {}
5068 5069
         },
5069 5070
         "ServiceID": "9mnpnzenvg8p8tdbtq4wvbkcz",
5070
-        "Instance": 1,
5071
-        "NodeID": "24ifsmvkjbyhk",
5072
-        "ServiceAnnotations": {},
5071
+        "Slot": 1,
5072
+        "NodeID": "60gvrl6tm78dmak4yl7srz94v",
5073 5073
         "Status": {
5074 5074
           "Timestamp": "2016-06-07T21:07:30.202183143Z",
5075
-          "State": "FAILED",
5076
-          "Message": "execution failed",
5077
-          "ContainerStatus": {}
5075
+          "State": "shutdown",
5076
+          "Message": "shutdown",
5077
+          "ContainerStatus": {
5078
+            "ContainerID": "1cf8d63d18e79668b0004a4be4c6ee58cddfad2dae29506d8781581d0688a213"
5079
+          }
5078 5080
         },
5079
-        "DesiredState": "SHUTDOWN",
5081
+        "DesiredState": "shutdown",
5080 5082
         "NetworksAttachments": [
5081 5083
           {
5082 5084
             "Network": {
... ...
@@ -5092,12 +5098,12 @@ List tasks
5092 5092
                   "com.docker.swarm.internal": "true"
5093 5093
                 },
5094 5094
                 "DriverConfiguration": {},
5095
-                "IPAM": {
5095
+                "IPAMOptions": {
5096 5096
                   "Driver": {},
5097 5097
                   "Configs": [
5098 5098
                     {
5099
-                      "Family": "UNKNOWN",
5100
-                      "Subnet": "10.255.0.0/16"
5099
+                      "Subnet": "10.255.0.0/16",
5100
+                      "Gateway": "10.255.0.1"
5101 5101
                     }
5102 5102
                   ]
5103 5103
                 }
... ...
@@ -5108,14 +5114,14 @@ List tasks
5108 5108
                   "com.docker.network.driver.overlay.vxlanid_list": "256"
5109 5109
                 }
5110 5110
               },
5111
-              "IPAM": {
5111
+              "IPAMOptions": {
5112 5112
                 "Driver": {
5113 5113
                   "Name": "default"
5114 5114
                 },
5115 5115
                 "Configs": [
5116 5116
                   {
5117
-                    "Family": "UNKNOWN",
5118
-                    "Subnet": "10.255.0.0/16"
5117
+                    "Subnet": "10.255.0.0/16",
5118
+                    "Gateway": "10.255.0.1"
5119 5119
                   }
5120 5120
                 ]
5121 5121
               }
... ...
@@ -5124,27 +5130,7 @@ List tasks
5124 5124
               "10.255.0.5/16"
5125 5125
             ]
5126 5126
           }
5127
-        ],
5128
-        "Endpoint": {
5129
-          "Spec": {},
5130
-          "ExposedPorts": [
5131
-            {
5132
-              "Protocol": "tcp",
5133
-              "Port": 6379,
5134
-              "PublicPort": 30000
5135
-            }
5136
-          ],
5137
-          "VirtualIPs": [
5138
-            {
5139
-              "NetworkID": "4qvuz4ko70xaltuqbt8956gd1",
5140
-              "Addr": "10.255.0.2/16"
5141
-            },
5142
-            {
5143
-              "NetworkID": "4qvuz4ko70xaltuqbt8956gd1",
5144
-              "Addr": "10.255.0.3/16"
5145
-            }
5146
-          ]
5147
-        }
5127
+        ]
5148 5128
       }
5149 5129
     ]
5150 5130
 
... ...
@@ -5184,7 +5170,6 @@ Get details on a task
5184 5184
       },
5185 5185
       "CreatedAt": "2016-06-07T21:07:31.171892745Z",
5186 5186
       "UpdatedAt": "2016-06-07T21:07:31.376370513Z",
5187
-      "Name": "hopeful_cori",
5188 5187
       "Spec": {
5189 5188
         "ContainerSpec": {
5190 5189
           "Image": "redis"
... ...
@@ -5194,21 +5179,24 @@ Get details on a task
5194 5194
           "Reservations": {}
5195 5195
         },
5196 5196
         "RestartPolicy": {
5197
-          "Condition": "ANY"
5197
+          "Condition": "any",
5198
+          "MaxAttempts": 0
5198 5199
         },
5199 5200
         "Placement": {}
5200 5201
       },
5201 5202
       "ServiceID": "9mnpnzenvg8p8tdbtq4wvbkcz",
5202
-      "Instance": 1,
5203
-      "NodeID": "24ifsmvkjbyhk",
5204
-      "ServiceAnnotations": {},
5203
+      "Slot": 1,
5204
+      "NodeID": "60gvrl6tm78dmak4yl7srz94v",
5205 5205
       "Status": {
5206 5206
         "Timestamp": "2016-06-07T21:07:31.290032978Z",
5207
-        "State": "FAILED",
5208
-        "Message": "execution failed",
5209
-        "ContainerStatus": {}
5207
+        "State": "running",
5208
+        "Message": "started",
5209
+        "ContainerStatus": {
5210
+          "ContainerID": "e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035",
5211
+          "PID": 677
5212
+        }
5210 5213
       },
5211
-      "DesiredState": "SHUTDOWN",
5214
+      "DesiredState": "running",
5212 5215
       "NetworksAttachments": [
5213 5216
         {
5214 5217
           "Network": {
... ...
@@ -5224,12 +5212,12 @@ Get details on a task
5224 5224
                 "com.docker.swarm.internal": "true"
5225 5225
               },
5226 5226
               "DriverConfiguration": {},
5227
-              "IPAM": {
5227
+              "IPAMOptions": {
5228 5228
                 "Driver": {},
5229 5229
                 "Configs": [
5230 5230
                   {
5231
-                    "Family": "UNKNOWN",
5232
-                    "Subnet": "10.255.0.0/16"
5231
+                    "Subnet": "10.255.0.0/16",
5232
+                    "Gateway": "10.255.0.1"
5233 5233
                   }
5234 5234
                 ]
5235 5235
               }
... ...
@@ -5240,14 +5228,14 @@ Get details on a task
5240 5240
                 "com.docker.network.driver.overlay.vxlanid_list": "256"
5241 5241
               }
5242 5242
             },
5243
-            "IPAM": {
5243
+            "IPAMOptions": {
5244 5244
               "Driver": {
5245 5245
                 "Name": "default"
5246 5246
               },
5247 5247
               "Configs": [
5248 5248
                 {
5249
-                  "Family": "UNKNOWN",
5250
-                  "Subnet": "10.255.0.0/16"
5249
+                  "Subnet": "10.255.0.0/16",
5250
+                  "Gateway": "10.255.0.1"
5251 5251
                 }
5252 5252
               ]
5253 5253
             }
... ...
@@ -5256,27 +5244,7 @@ Get details on a task
5256 5256
             "10.255.0.10/16"
5257 5257
           ]
5258 5258
         }
5259
-      ],
5260
-      "Endpoint": {
5261
-        "Spec": {},
5262
-        "ExposedPorts": [
5263
-          {
5264
-            "Protocol": "tcp",
5265
-            "Port": 6379,
5266
-            "PublicPort": 30000
5267
-          }
5268
-        ],
5269
-        "VirtualIPs": [
5270
-          {
5271
-            "NetworkID": "4qvuz4ko70xaltuqbt8956gd1",
5272
-            "Addr": "10.255.0.2/16"
5273
-          },
5274
-          {
5275
-            "NetworkID": "4qvuz4ko70xaltuqbt8956gd1",
5276
-            "Addr": "10.255.0.3/16"
5277
-          }
5278
-        ]
5279
-      }
5259
+      ]
5280 5260
     }
5281 5261
 
5282 5262
 **Status codes**: