Ver Fonte

Merge pull request #30954 from yongtang/29448-swagger-version

Improve documentation of `Version` usage for Swarm API
(cherry picked from commit 89fe0e1b1436871e3d844f8096d1520eaacfad74)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Vincent Demeester há 8 anos atrás
pai
commit
350ecb34e9
1 ficheiros alterados com 20 adições e 25 exclusões
  1. 20 25
      api/swagger.yaml

+ 20 - 25
api/swagger.yaml

@@ -1544,6 +1544,21 @@ definitions:
           Settable: null
           Settable: null
           Value: []
           Value: []
 
 
+  ObjectVersion:
+    description: |
+      The version number of the object such as node, service, etc. This is needed to avoid conflicting writes.
+      The client must send the version number along with the modified specification when updating these objects.
+      This approach ensures safe concurrency and determinism in that the change on the object
+      may not be applied if the version number has changed from the last read. In other words,
+      if two update requests specify the same base version, only one of the requests can succeed.
+      As a result, two separate update requests that happen at the same time will not
+      unintentially overwrite each other.
+    type: "object"
+    properties:
+      Index:
+        type: "integer"
+        format: "int64"
+
   NodeSpec:
   NodeSpec:
     type: "object"
     type: "object"
     properties:
     properties:
@@ -1580,11 +1595,7 @@ definitions:
       ID:
       ID:
         type: "string"
         type: "string"
       Version:
       Version:
-        type: "object"
-        properties:
-          Index:
-            type: "integer"
-            format: "int64"
+        $ref: "#/definitions/ObjectVersion"
       CreatedAt:
       CreatedAt:
         type: "string"
         type: "string"
         format: "dateTime"
         format: "dateTime"
@@ -1807,11 +1818,7 @@ definitions:
         description: "The ID of the swarm."
         description: "The ID of the swarm."
         type: "string"
         type: "string"
       Version:
       Version:
-        type: "object"
-        properties:
-          Index:
-            type: "integer"
-            format: "int64"
+        $ref: "#/definitions/ObjectVersion"
       CreatedAt:
       CreatedAt:
         type: "string"
         type: "string"
         format: "dateTime"
         format: "dateTime"
@@ -1994,11 +2001,7 @@ definitions:
         description: "The ID of the task."
         description: "The ID of the task."
         type: "string"
         type: "string"
       Version:
       Version:
-        type: "object"
-        properties:
-          Index:
-            type: "integer"
-            format: "int64"
+        $ref: "#/definitions/ObjectVersion"
       CreatedAt:
       CreatedAt:
         type: "string"
         type: "string"
         format: "dateTime"
         format: "dateTime"
@@ -2206,11 +2209,7 @@ definitions:
       ID:
       ID:
         type: "string"
         type: "string"
       Version:
       Version:
-        type: "object"
-        properties:
-          Index:
-            type: "integer"
-            format: "int64"
+        $ref: "#/definitions/ObjectVersion"
       CreatedAt:
       CreatedAt:
         type: "string"
         type: "string"
         format: "dateTime"
         format: "dateTime"
@@ -2418,11 +2417,7 @@ definitions:
       ID:
       ID:
         type: "string"
         type: "string"
       Version:
       Version:
-        type: "object"
-        properties:
-          Index:
-            type: "integer"
-            format: "int64"
+        $ref: "#/definitions/ObjectVersion"
       CreatedAt:
       CreatedAt:
         type: "string"
         type: "string"
         format: "dateTime"
         format: "dateTime"