From 20e422161163db2b38d03c48e36df83ebf7c83e5 Mon Sep 17 00:00:00 2001
From: Yordan Kinkov <yordan.kinkov@vereign.com>
Date: Wed, 15 Jun 2022 20:26:33 +0300
Subject: [PATCH] #15 goa generated code

---
 design/design.go                           |  2 +-
 design/types.go                            | 10 ++--
 gen/http/openapi.json                      |  2 +-
 gen/http/openapi.yaml                      | 28 ++++-----
 gen/http/openapi3.json                     |  2 +-
 gen/http/openapi3.yaml                     | 22 +++----
 gen/http/task_list/client/encode_decode.go | 28 ++++-----
 gen/http/task_list/client/types.go         | 68 +++++++++++-----------
 gen/http/task_list/server/encode_decode.go | 22 +++----
 gen/http/task_list/server/types.go         | 52 ++++++++---------
 gen/task_list/client.go                    |  4 +-
 gen/task_list/service.go                   | 18 +++---
 12 files changed, 129 insertions(+), 129 deletions(-)

diff --git a/design/design.go b/design/design.go
index 3665bb8..f45c623 100644
--- a/design/design.go
+++ b/design/design.go
@@ -75,7 +75,7 @@ var _ = Service("taskList", func() {
 	Method("TaskListResult", func() {
 		Description("TaskListResult retrieves a taskList result containing all tasks' unique IDs and statuses from the Cache service.")
 		Payload(TaskListResultRequest)
-		Result(TaskListState)
+		Result(TaskListStatus)
 		HTTP(func() {
 			GET("/v1/taskListResult/{taskListID}")
 			Response(StatusOK)
diff --git a/design/types.go b/design/types.go
index 78337b9..d8ee878 100644
--- a/design/types.go
+++ b/design/types.go
@@ -39,28 +39,28 @@ var TaskListResultRequest = Type("TaskListResultRequest", func() {
 	Required("taskListID")
 })
 
-var TaskListState = Type("TaskListState", func() {
+var TaskListStatus = Type("TaskListStatus", func() {
 	Field(1, "id", String, "Unique taskList identifier.", func() {
 		Example("9cc9f504-2b7f-4e24-ac59-653e9533840a")
 	})
 	Field(2, "status", String, "Current status of the taskList", func() {
 		Example("done")
 	})
-	Field(3, "groups", ArrayOf(GroupState), "Array of GroupState")
+	Field(3, "groups", ArrayOf(GroupStatus), "Array of GroupStatus")
 	Required("id", "status")
 })
 
-var GroupState = Type("GroupState", func() {
+var GroupStatus = Type("GroupStatus", func() {
 	Field(1, "id", String, "Unique group identifier.", func() {
 		Example("a7d1349d-34b5-4c65-b671-d1aa362fc446")
 	})
 	Field(2, "status", String, "Current status of the group", func() {
 		Example("done")
 	})
-	Field(3, "tasks", ArrayOf(TaskState), "Array of TaskState")
+	Field(3, "tasks", ArrayOf(TaskStatus), "Array of TaskStatus")
 })
 
-var TaskState = Type("TaskState", func() {
+var TaskStatus = Type("TaskStatus", func() {
 	Field(1, "id", String, "Unique task identifier.", func() {
 		Example("d16996cd-1977-42a9-90b2-b4548a35c1b4")
 	})
diff --git a/gen/http/openapi.json b/gen/http/openapi.json
index b6210bd..43127d6 100644
--- a/gen/http/openapi.json
+++ b/gen/http/openapi.json
@@ -1 +1 @@
-{"swagger":"2.0","info":{"title":"Task Service","description":"The task service is executing tasks created from policies.","version":""},"host":"localhost:8082","consumes":["application/json","application/xml","application/gob"],"produces":["application/json","application/xml","application/gob"],"paths":{"/liveness":{"get":{"tags":["health"],"summary":"Liveness health","operationId":"health#Liveness","responses":{"200":{"description":"OK response."}},"schemes":["http"]}},"/readiness":{"get":{"tags":["health"],"summary":"Readiness health","operationId":"health#Readiness","responses":{"200":{"description":"OK response."}},"schemes":["http"]}},"/v1/task/{taskName}":{"post":{"tags":["task"],"summary":"Create task","description":"Create a task and put it in a queue for execution.","operationId":"task#Create","parameters":[{"name":"taskName","in":"path","description":"Task name.","required":true,"type":"string"},{"name":"x-cache-namespace","in":"header","description":"Cache key namespace","required":false,"type":"string"},{"name":"x-cache-scope","in":"header","description":"Cache key scope","required":false,"type":"string"},{"name":"any","in":"body","description":"Data contains JSON payload that will be used for task execution.","required":true,"schema":{"type":"string","format":"binary"}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/TaskCreateResponseBody","required":["taskID"]}}},"schemes":["http"]}},"/v1/taskList/{taskListName}":{"post":{"tags":["taskList"],"summary":"Create taskList","description":"Create a task list and corresponding tasks and put them in respective queues for execution.","operationId":"taskList#Create","parameters":[{"name":"taskListName","in":"path","description":"TaskList name.","required":true,"type":"string"},{"name":"x-cache-namespace","in":"header","description":"Cache key namespace","required":false,"type":"string"},{"name":"x-cache-scope","in":"header","description":"Cache key scope","required":false,"type":"string"},{"name":"any","in":"body","description":"Data contains JSON payload that will be used for taskList execution.","required":true,"schema":{"type":"string","format":"binary"}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/TaskListCreateResponseBody","required":["taskListID"]}}},"schemes":["http"]}},"/v1/taskListResult/{taskListID}":{"get":{"tags":["taskList"],"summary":"TaskListResult taskList","description":"TaskListResult retrieves a taskList result containing all tasks' unique IDs and statuses from the Cache service.","operationId":"taskList#TaskListResult","parameters":[{"name":"taskListID","in":"path","description":"Unique taskList identifier.","required":true,"type":"string"}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/TaskListTaskListResultOKResponseBody","required":["id","status"]}},"201":{"description":"Created response.","schema":{"$ref":"#/definitions/TaskListTaskListResultCreatedResponseBody","required":["id","status"]}},"202":{"description":"Accepted response.","schema":{"$ref":"#/definitions/TaskListTaskListResultAcceptedResponseBody","required":["id","status"]}},"207":{"description":"Multi-Status response.","schema":{"$ref":"#/definitions/TaskListTaskListResultMultiStatusResponseBody","required":["id","status"]}}},"schemes":["http"]}},"/v1/taskResult/{taskID}":{"get":{"tags":["task"],"summary":"TaskResult task","description":"TaskResult retrieves task result from the Cache service.","operationId":"task#TaskResult","parameters":[{"name":"taskID","in":"path","description":"Unique task identifier.","required":true,"type":"string"}],"responses":{"200":{"description":"OK response.","schema":{"type":"string","format":"binary"}}},"schemes":["http"]}}},"definitions":{"GroupStateResponseBody":{"title":"GroupStateResponseBody","type":"object","properties":{"id":{"type":"string","description":"Unique group identifier.","example":"a7d1349d-34b5-4c65-b671-d1aa362fc446"},"status":{"type":"string","description":"Current status of the group","example":"done"},"tasks":{"type":"array","items":{"$ref":"#/definitions/TaskStateResponseBody"},"description":"Array of TaskState","example":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}},"example":{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}},"TaskCreateResponseBody":{"title":"TaskCreateResponseBody","type":"object","properties":{"taskID":{"type":"string","description":"Unique task identifier.","example":"Sit asperiores."}},"example":{"taskID":"Iste suscipit exercitationem facilis distinctio asperiores ut."},"required":["taskID"]},"TaskListCreateResponseBody":{"title":"TaskListCreateResponseBody","type":"object","properties":{"taskListID":{"type":"string","description":"Unique taskList identifier.","example":"Ducimus velit."}},"example":{"taskListID":"Et occaecati placeat."},"required":["taskListID"]},"TaskListTaskListResultAcceptedResponseBody":{"title":"TaskListTaskListResultAcceptedResponseBody","type":"object","properties":{"groups":{"type":"array","items":{"$ref":"#/definitions/GroupStateResponseBody"},"description":"Array of GroupState","example":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}]},"id":{"type":"string","description":"Unique taskList identifier.","example":"9cc9f504-2b7f-4e24-ac59-653e9533840a"},"status":{"type":"string","description":"Current status of the taskList","example":"done"}},"example":{"groups":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}],"id":"9cc9f504-2b7f-4e24-ac59-653e9533840a","status":"done"},"required":["id","status"]},"TaskListTaskListResultCreatedResponseBody":{"title":"TaskListTaskListResultCreatedResponseBody","type":"object","properties":{"groups":{"type":"array","items":{"$ref":"#/definitions/GroupStateResponseBody"},"description":"Array of GroupState","example":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}]},"id":{"type":"string","description":"Unique taskList identifier.","example":"9cc9f504-2b7f-4e24-ac59-653e9533840a"},"status":{"type":"string","description":"Current status of the taskList","example":"done"}},"example":{"groups":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}],"id":"9cc9f504-2b7f-4e24-ac59-653e9533840a","status":"done"},"required":["id","status"]},"TaskListTaskListResultMultiStatusResponseBody":{"title":"TaskListTaskListResultMultiStatusResponseBody","type":"object","properties":{"groups":{"type":"array","items":{"$ref":"#/definitions/GroupStateResponseBody"},"description":"Array of GroupState","example":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}]},"id":{"type":"string","description":"Unique taskList identifier.","example":"9cc9f504-2b7f-4e24-ac59-653e9533840a"},"status":{"type":"string","description":"Current status of the taskList","example":"done"}},"example":{"groups":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}],"id":"9cc9f504-2b7f-4e24-ac59-653e9533840a","status":"done"},"required":["id","status"]},"TaskListTaskListResultOKResponseBody":{"title":"TaskListTaskListResultOKResponseBody","type":"object","properties":{"groups":{"type":"array","items":{"$ref":"#/definitions/GroupStateResponseBody"},"description":"Array of GroupState","example":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}]},"id":{"type":"string","description":"Unique taskList identifier.","example":"9cc9f504-2b7f-4e24-ac59-653e9533840a"},"status":{"type":"string","description":"Current status of the taskList","example":"done"}},"example":{"groups":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}],"id":"9cc9f504-2b7f-4e24-ac59-653e9533840a","status":"done"},"required":["id","status"]},"TaskStateResponseBody":{"title":"TaskStateResponseBody","type":"object","properties":{"id":{"type":"string","description":"Unique task identifier.","example":"d16996cd-1977-42a9-90b2-b4548a35c1b4"},"status":{"type":"string","description":"Current status of the task","example":"done"}},"example":{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}}}}
\ No newline at end of file
+{"swagger":"2.0","info":{"title":"Task Service","description":"The task service is executing tasks created from policies.","version":""},"host":"localhost:8082","consumes":["application/json","application/xml","application/gob"],"produces":["application/json","application/xml","application/gob"],"paths":{"/liveness":{"get":{"tags":["health"],"summary":"Liveness health","operationId":"health#Liveness","responses":{"200":{"description":"OK response."}},"schemes":["http"]}},"/readiness":{"get":{"tags":["health"],"summary":"Readiness health","operationId":"health#Readiness","responses":{"200":{"description":"OK response."}},"schemes":["http"]}},"/v1/task/{taskName}":{"post":{"tags":["task"],"summary":"Create task","description":"Create a task and put it in a queue for execution.","operationId":"task#Create","parameters":[{"name":"taskName","in":"path","description":"Task name.","required":true,"type":"string"},{"name":"x-cache-namespace","in":"header","description":"Cache key namespace","required":false,"type":"string"},{"name":"x-cache-scope","in":"header","description":"Cache key scope","required":false,"type":"string"},{"name":"any","in":"body","description":"Data contains JSON payload that will be used for task execution.","required":true,"schema":{"type":"string","format":"binary"}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/TaskCreateResponseBody","required":["taskID"]}}},"schemes":["http"]}},"/v1/taskList/{taskListName}":{"post":{"tags":["taskList"],"summary":"Create taskList","description":"Create a task list and corresponding tasks and put them in respective queues for execution.","operationId":"taskList#Create","parameters":[{"name":"taskListName","in":"path","description":"TaskList name.","required":true,"type":"string"},{"name":"x-cache-namespace","in":"header","description":"Cache key namespace","required":false,"type":"string"},{"name":"x-cache-scope","in":"header","description":"Cache key scope","required":false,"type":"string"},{"name":"any","in":"body","description":"Data contains JSON payload that will be used for taskList execution.","required":true,"schema":{"type":"string","format":"binary"}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/TaskListCreateResponseBody","required":["taskListID"]}}},"schemes":["http"]}},"/v1/taskListResult/{taskListID}":{"get":{"tags":["taskList"],"summary":"TaskListResult taskList","description":"TaskListResult retrieves a taskList result containing all tasks' unique IDs and statuses from the Cache service.","operationId":"taskList#TaskListResult","parameters":[{"name":"taskListID","in":"path","description":"Unique taskList identifier.","required":true,"type":"string"}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/TaskListTaskListResultOKResponseBody","required":["id","status"]}},"201":{"description":"Created response.","schema":{"$ref":"#/definitions/TaskListTaskListResultCreatedResponseBody","required":["id","status"]}},"202":{"description":"Accepted response.","schema":{"$ref":"#/definitions/TaskListTaskListResultAcceptedResponseBody","required":["id","status"]}},"207":{"description":"Multi-Status response.","schema":{"$ref":"#/definitions/TaskListTaskListResultMultiStatusResponseBody","required":["id","status"]}}},"schemes":["http"]}},"/v1/taskResult/{taskID}":{"get":{"tags":["task"],"summary":"TaskResult task","description":"TaskResult retrieves task result from the Cache service.","operationId":"task#TaskResult","parameters":[{"name":"taskID","in":"path","description":"Unique task identifier.","required":true,"type":"string"}],"responses":{"200":{"description":"OK response.","schema":{"type":"string","format":"binary"}}},"schemes":["http"]}}},"definitions":{"GroupStatusResponseBody":{"title":"GroupStatusResponseBody","type":"object","properties":{"id":{"type":"string","description":"Unique group identifier.","example":"a7d1349d-34b5-4c65-b671-d1aa362fc446"},"status":{"type":"string","description":"Current status of the group","example":"done"},"tasks":{"type":"array","items":{"$ref":"#/definitions/TaskStatusResponseBody"},"description":"Array of TaskStatus","example":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}},"example":{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}},"TaskCreateResponseBody":{"title":"TaskCreateResponseBody","type":"object","properties":{"taskID":{"type":"string","description":"Unique task identifier.","example":"Sit asperiores."}},"example":{"taskID":"Iste suscipit exercitationem facilis distinctio asperiores ut."},"required":["taskID"]},"TaskListCreateResponseBody":{"title":"TaskListCreateResponseBody","type":"object","properties":{"taskListID":{"type":"string","description":"Unique taskList identifier.","example":"Ducimus velit."}},"example":{"taskListID":"Et occaecati placeat."},"required":["taskListID"]},"TaskListTaskListResultAcceptedResponseBody":{"title":"TaskListTaskListResultAcceptedResponseBody","type":"object","properties":{"groups":{"type":"array","items":{"$ref":"#/definitions/GroupStatusResponseBody"},"description":"Array of GroupStatus","example":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}]},"id":{"type":"string","description":"Unique taskList identifier.","example":"9cc9f504-2b7f-4e24-ac59-653e9533840a"},"status":{"type":"string","description":"Current status of the taskList","example":"done"}},"example":{"groups":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}],"id":"9cc9f504-2b7f-4e24-ac59-653e9533840a","status":"done"},"required":["id","status"]},"TaskListTaskListResultCreatedResponseBody":{"title":"TaskListTaskListResultCreatedResponseBody","type":"object","properties":{"groups":{"type":"array","items":{"$ref":"#/definitions/GroupStatusResponseBody"},"description":"Array of GroupStatus","example":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}]},"id":{"type":"string","description":"Unique taskList identifier.","example":"9cc9f504-2b7f-4e24-ac59-653e9533840a"},"status":{"type":"string","description":"Current status of the taskList","example":"done"}},"example":{"groups":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}],"id":"9cc9f504-2b7f-4e24-ac59-653e9533840a","status":"done"},"required":["id","status"]},"TaskListTaskListResultMultiStatusResponseBody":{"title":"TaskListTaskListResultMultiStatusResponseBody","type":"object","properties":{"groups":{"type":"array","items":{"$ref":"#/definitions/GroupStatusResponseBody"},"description":"Array of GroupStatus","example":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}]},"id":{"type":"string","description":"Unique taskList identifier.","example":"9cc9f504-2b7f-4e24-ac59-653e9533840a"},"status":{"type":"string","description":"Current status of the taskList","example":"done"}},"example":{"groups":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}],"id":"9cc9f504-2b7f-4e24-ac59-653e9533840a","status":"done"},"required":["id","status"]},"TaskListTaskListResultOKResponseBody":{"title":"TaskListTaskListResultOKResponseBody","type":"object","properties":{"groups":{"type":"array","items":{"$ref":"#/definitions/GroupStatusResponseBody"},"description":"Array of GroupStatus","example":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}]},"id":{"type":"string","description":"Unique taskList identifier.","example":"9cc9f504-2b7f-4e24-ac59-653e9533840a"},"status":{"type":"string","description":"Current status of the taskList","example":"done"}},"example":{"groups":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}],"id":"9cc9f504-2b7f-4e24-ac59-653e9533840a","status":"done"},"required":["id","status"]},"TaskStatusResponseBody":{"title":"TaskStatusResponseBody","type":"object","properties":{"id":{"type":"string","description":"Unique task identifier.","example":"d16996cd-1977-42a9-90b2-b4548a35c1b4"},"status":{"type":"string","description":"Current status of the task","example":"done"}},"example":{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}}}}
\ No newline at end of file
diff --git a/gen/http/openapi.yaml b/gen/http/openapi.yaml
index 8d6cad2..2a2676a 100644
--- a/gen/http/openapi.yaml
+++ b/gen/http/openapi.yaml
@@ -181,8 +181,8 @@ paths:
       schemes:
       - http
 definitions:
-  GroupStateResponseBody:
-    title: GroupStateResponseBody
+  GroupStatusResponseBody:
+    title: GroupStatusResponseBody
     type: object
     properties:
       id:
@@ -196,8 +196,8 @@ definitions:
       tasks:
         type: array
         items:
-          $ref: '#/definitions/TaskStateResponseBody'
-        description: Array of TaskState
+          $ref: '#/definitions/TaskStatusResponseBody'
+        description: Array of TaskStatus
         example:
         - id: d16996cd-1977-42a9-90b2-b4548a35c1b4
           status: done
@@ -246,8 +246,8 @@ definitions:
       groups:
         type: array
         items:
-          $ref: '#/definitions/GroupStateResponseBody'
-        description: Array of GroupState
+          $ref: '#/definitions/GroupStatusResponseBody'
+        description: Array of GroupStatus
         example:
         - id: a7d1349d-34b5-4c65-b671-d1aa362fc446
           status: done
@@ -307,8 +307,8 @@ definitions:
       groups:
         type: array
         items:
-          $ref: '#/definitions/GroupStateResponseBody'
-        description: Array of GroupState
+          $ref: '#/definitions/GroupStatusResponseBody'
+        description: Array of GroupStatus
         example:
         - id: a7d1349d-34b5-4c65-b671-d1aa362fc446
           status: done
@@ -377,8 +377,8 @@ definitions:
       groups:
         type: array
         items:
-          $ref: '#/definitions/GroupStateResponseBody'
-        description: Array of GroupState
+          $ref: '#/definitions/GroupStatusResponseBody'
+        description: Array of GroupStatus
         example:
         - id: a7d1349d-34b5-4c65-b671-d1aa362fc446
           status: done
@@ -447,8 +447,8 @@ definitions:
       groups:
         type: array
         items:
-          $ref: '#/definitions/GroupStateResponseBody'
-        description: Array of GroupState
+          $ref: '#/definitions/GroupStatusResponseBody'
+        description: Array of GroupStatus
         example:
         - id: a7d1349d-34b5-4c65-b671-d1aa362fc446
           status: done
@@ -519,8 +519,8 @@ definitions:
     required:
     - id
     - status
-  TaskStateResponseBody:
-    title: TaskStateResponseBody
+  TaskStatusResponseBody:
+    title: TaskStatusResponseBody
     type: object
     properties:
       id:
diff --git a/gen/http/openapi3.json b/gen/http/openapi3.json
index 4472519..5ab27ad 100644
--- a/gen/http/openapi3.json
+++ b/gen/http/openapi3.json
@@ -1 +1 @@
-{"openapi":"3.0.3","info":{"title":"Task Service","description":"The task service is executing tasks created from policies.","version":"1.0"},"servers":[{"url":"http://localhost:8082","description":"Task Server"}],"paths":{"/liveness":{"get":{"tags":["health"],"summary":"Liveness health","operationId":"health#Liveness","responses":{"200":{"description":"OK response."}}}},"/readiness":{"get":{"tags":["health"],"summary":"Readiness health","operationId":"health#Readiness","responses":{"200":{"description":"OK response."}}}},"/v1/task/{taskName}":{"post":{"tags":["task"],"summary":"Create task","description":"Create a task and put it in a queue for execution.","operationId":"task#Create","parameters":[{"name":"taskName","in":"path","description":"Task name.","required":true,"schema":{"type":"string","description":"Task name.","example":"Voluptas laudantium incidunt autem eaque."},"example":"Fugit ut eius sint earum."},{"name":"x-cache-namespace","in":"header","description":"Cache key namespace","allowEmptyValue":true,"schema":{"type":"string","description":"Cache key namespace","example":"login"},"example":"login"},{"name":"x-cache-scope","in":"header","description":"Cache key scope","allowEmptyValue":true,"schema":{"type":"string","description":"Cache key scope","example":"user"},"example":"user"}],"requestBody":{"description":"Data contains JSON payload that will be used for task execution.","required":true,"content":{"application/json":{"schema":{"type":"string","description":"Data contains JSON payload that will be used for task execution.","example":"Quos aut tempore enim porro.","format":"binary"},"example":"Consequatur nulla praesentium totam."}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTaskResult"},"example":{"taskID":"Harum aut autem aliquam dolorem non soluta."}}}}}}},"/v1/taskList/{taskListName}":{"post":{"tags":["taskList"],"summary":"Create taskList","description":"Create a task list and corresponding tasks and put them in respective queues for execution.","operationId":"taskList#Create","parameters":[{"name":"taskListName","in":"path","description":"TaskList name.","required":true,"schema":{"type":"string","description":"TaskList name.","example":"Earum laborum accusamus id nihil."},"example":"Est eveniet dolores."},{"name":"x-cache-namespace","in":"header","description":"Cache key namespace","allowEmptyValue":true,"schema":{"type":"string","description":"Cache key namespace","example":"login"},"example":"login"},{"name":"x-cache-scope","in":"header","description":"Cache key scope","allowEmptyValue":true,"schema":{"type":"string","description":"Cache key scope","example":"user"},"example":"user"}],"requestBody":{"description":"Data contains JSON payload that will be used for taskList execution.","required":true,"content":{"application/json":{"schema":{"type":"string","description":"Data contains JSON payload that will be used for taskList execution.","example":"Excepturi non.","format":"binary"},"example":"Laboriosam cumque."}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTaskListResult"},"example":{"taskListID":"Et officiis aut."}}}}}}},"/v1/taskListResult/{taskListID}":{"get":{"tags":["taskList"],"summary":"TaskListResult taskList","description":"TaskListResult retrieves a taskList result containing all tasks' unique IDs and statuses from the Cache service.","operationId":"taskList#TaskListResult","parameters":[{"name":"taskListID","in":"path","description":"Unique taskList identifier.","required":true,"schema":{"type":"string","description":"Unique taskList identifier.","example":"Omnis optio magni sunt aliquid et."},"example":"Dignissimos doloribus rerum occaecati quia ut."}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskListState"},"example":{"groups":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}],"id":"9cc9f504-2b7f-4e24-ac59-653e9533840a","status":"done"}}}},"201":{"description":"Created response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskListState"},"example":{"groups":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}],"id":"9cc9f504-2b7f-4e24-ac59-653e9533840a","status":"done"}}}},"202":{"description":"Accepted response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskListState"},"example":{"groups":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}],"id":"9cc9f504-2b7f-4e24-ac59-653e9533840a","status":"done"}}}},"207":{"description":"Multi-Status response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskListState"},"example":{"groups":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}],"id":"9cc9f504-2b7f-4e24-ac59-653e9533840a","status":"done"}}}}}}},"/v1/taskResult/{taskID}":{"get":{"tags":["task"],"summary":"TaskResult task","description":"TaskResult retrieves task result from the Cache service.","operationId":"task#TaskResult","parameters":[{"name":"taskID","in":"path","description":"Unique task identifier.","required":true,"schema":{"type":"string","description":"Unique task identifier.","example":"Doloremque earum aliquid ipsa."},"example":"Voluptas odit voluptate nobis nam quia quae."}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"string","example":"Voluptatem iure qui facilis aut.","format":"binary"},"example":"Maxime facilis."}}}}}}},"components":{"schemas":{"CreateTaskListResult":{"type":"object","properties":{"taskListID":{"type":"string","description":"Unique taskList identifier.","example":"Ut et est aut quae magnam."}},"example":{"taskListID":"Amet sapiente qui non."},"required":["taskListID"]},"CreateTaskResult":{"type":"object","properties":{"taskID":{"type":"string","description":"Unique task identifier.","example":"Qui vitae."}},"example":{"taskID":"Eligendi officiis repudiandae excepturi in ex ratione."},"required":["taskID"]},"GroupState":{"type":"object","properties":{"id":{"type":"string","description":"Unique group identifier.","example":"a7d1349d-34b5-4c65-b671-d1aa362fc446"},"status":{"type":"string","description":"Current status of the group","example":"done"},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/TaskState"},"description":"Array of TaskState","example":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}},"example":{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}},"TaskListState":{"type":"object","properties":{"groups":{"type":"array","items":{"$ref":"#/components/schemas/GroupState"},"description":"Array of GroupState","example":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}]},"id":{"type":"string","description":"Unique taskList identifier.","example":"9cc9f504-2b7f-4e24-ac59-653e9533840a"},"status":{"type":"string","description":"Current status of the taskList","example":"done"}},"example":{"groups":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}],"id":"9cc9f504-2b7f-4e24-ac59-653e9533840a","status":"done"},"required":["id","status"]},"TaskState":{"type":"object","properties":{"id":{"type":"string","description":"Unique task identifier.","example":"d16996cd-1977-42a9-90b2-b4548a35c1b4"},"status":{"type":"string","description":"Current status of the task","example":"done"}},"example":{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}}}},"tags":[{"name":"health","description":"Health service provides health check endpoints."},{"name":"task","description":"Task service provides endpoints to work with tasks."},{"name":"taskList","description":"TaskList service provides endpoints to work with task lists."}]}
\ No newline at end of file
+{"openapi":"3.0.3","info":{"title":"Task Service","description":"The task service is executing tasks created from policies.","version":"1.0"},"servers":[{"url":"http://localhost:8082","description":"Task Server"}],"paths":{"/liveness":{"get":{"tags":["health"],"summary":"Liveness health","operationId":"health#Liveness","responses":{"200":{"description":"OK response."}}}},"/readiness":{"get":{"tags":["health"],"summary":"Readiness health","operationId":"health#Readiness","responses":{"200":{"description":"OK response."}}}},"/v1/task/{taskName}":{"post":{"tags":["task"],"summary":"Create task","description":"Create a task and put it in a queue for execution.","operationId":"task#Create","parameters":[{"name":"taskName","in":"path","description":"Task name.","required":true,"schema":{"type":"string","description":"Task name.","example":"Voluptas laudantium incidunt autem eaque."},"example":"Fugit ut eius sint earum."},{"name":"x-cache-namespace","in":"header","description":"Cache key namespace","allowEmptyValue":true,"schema":{"type":"string","description":"Cache key namespace","example":"login"},"example":"login"},{"name":"x-cache-scope","in":"header","description":"Cache key scope","allowEmptyValue":true,"schema":{"type":"string","description":"Cache key scope","example":"user"},"example":"user"}],"requestBody":{"description":"Data contains JSON payload that will be used for task execution.","required":true,"content":{"application/json":{"schema":{"type":"string","description":"Data contains JSON payload that will be used for task execution.","example":"Quos aut tempore enim porro.","format":"binary"},"example":"Consequatur nulla praesentium totam."}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTaskResult"},"example":{"taskID":"Harum aut autem aliquam dolorem non soluta."}}}}}}},"/v1/taskList/{taskListName}":{"post":{"tags":["taskList"],"summary":"Create taskList","description":"Create a task list and corresponding tasks and put them in respective queues for execution.","operationId":"taskList#Create","parameters":[{"name":"taskListName","in":"path","description":"TaskList name.","required":true,"schema":{"type":"string","description":"TaskList name.","example":"Earum laborum accusamus id nihil."},"example":"Est eveniet dolores."},{"name":"x-cache-namespace","in":"header","description":"Cache key namespace","allowEmptyValue":true,"schema":{"type":"string","description":"Cache key namespace","example":"login"},"example":"login"},{"name":"x-cache-scope","in":"header","description":"Cache key scope","allowEmptyValue":true,"schema":{"type":"string","description":"Cache key scope","example":"user"},"example":"user"}],"requestBody":{"description":"Data contains JSON payload that will be used for taskList execution.","required":true,"content":{"application/json":{"schema":{"type":"string","description":"Data contains JSON payload that will be used for taskList execution.","example":"Excepturi non.","format":"binary"},"example":"Laboriosam cumque."}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTaskListResult"},"example":{"taskListID":"Et officiis aut."}}}}}}},"/v1/taskListResult/{taskListID}":{"get":{"tags":["taskList"],"summary":"TaskListResult taskList","description":"TaskListResult retrieves a taskList result containing all tasks' unique IDs and statuses from the Cache service.","operationId":"taskList#TaskListResult","parameters":[{"name":"taskListID","in":"path","description":"Unique taskList identifier.","required":true,"schema":{"type":"string","description":"Unique taskList identifier.","example":"Omnis optio magni sunt aliquid et."},"example":"Dignissimos doloribus rerum occaecati quia ut."}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskListStatus"},"example":{"groups":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}],"id":"9cc9f504-2b7f-4e24-ac59-653e9533840a","status":"done"}}}},"201":{"description":"Created response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskListStatus"},"example":{"groups":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}],"id":"9cc9f504-2b7f-4e24-ac59-653e9533840a","status":"done"}}}},"202":{"description":"Accepted response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskListStatus"},"example":{"groups":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}],"id":"9cc9f504-2b7f-4e24-ac59-653e9533840a","status":"done"}}}},"207":{"description":"Multi-Status response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskListStatus"},"example":{"groups":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}],"id":"9cc9f504-2b7f-4e24-ac59-653e9533840a","status":"done"}}}}}}},"/v1/taskResult/{taskID}":{"get":{"tags":["task"],"summary":"TaskResult task","description":"TaskResult retrieves task result from the Cache service.","operationId":"task#TaskResult","parameters":[{"name":"taskID","in":"path","description":"Unique task identifier.","required":true,"schema":{"type":"string","description":"Unique task identifier.","example":"Doloremque earum aliquid ipsa."},"example":"Voluptas odit voluptate nobis nam quia quae."}],"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"string","example":"Voluptatem iure qui facilis aut.","format":"binary"},"example":"Maxime facilis."}}}}}}},"components":{"schemas":{"CreateTaskListResult":{"type":"object","properties":{"taskListID":{"type":"string","description":"Unique taskList identifier.","example":"Ut et est aut quae magnam."}},"example":{"taskListID":"Amet sapiente qui non."},"required":["taskListID"]},"CreateTaskResult":{"type":"object","properties":{"taskID":{"type":"string","description":"Unique task identifier.","example":"Qui vitae."}},"example":{"taskID":"Eligendi officiis repudiandae excepturi in ex ratione."},"required":["taskID"]},"GroupStatus":{"type":"object","properties":{"id":{"type":"string","description":"Unique group identifier.","example":"a7d1349d-34b5-4c65-b671-d1aa362fc446"},"status":{"type":"string","description":"Current status of the group","example":"done"},"tasks":{"type":"array","items":{"$ref":"#/components/schemas/TaskStatus"},"description":"Array of TaskStatus","example":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}},"example":{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}},"TaskListStatus":{"type":"object","properties":{"groups":{"type":"array","items":{"$ref":"#/components/schemas/GroupStatus"},"description":"Array of GroupStatus","example":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}]},"id":{"type":"string","description":"Unique taskList identifier.","example":"9cc9f504-2b7f-4e24-ac59-653e9533840a"},"status":{"type":"string","description":"Current status of the taskList","example":"done"}},"example":{"groups":[{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]},{"id":"a7d1349d-34b5-4c65-b671-d1aa362fc446","status":"done","tasks":[{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"},{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}]}],"id":"9cc9f504-2b7f-4e24-ac59-653e9533840a","status":"done"},"required":["id","status"]},"TaskStatus":{"type":"object","properties":{"id":{"type":"string","description":"Unique task identifier.","example":"d16996cd-1977-42a9-90b2-b4548a35c1b4"},"status":{"type":"string","description":"Current status of the task","example":"done"}},"example":{"id":"d16996cd-1977-42a9-90b2-b4548a35c1b4","status":"done"}}}},"tags":[{"name":"health","description":"Health service provides health check endpoints."},{"name":"task","description":"Task service provides endpoints to work with tasks."},{"name":"taskList","description":"TaskList service provides endpoints to work with task lists."}]}
\ No newline at end of file
diff --git a/gen/http/openapi3.yaml b/gen/http/openapi3.yaml
index bf686a7..5f2410b 100644
--- a/gen/http/openapi3.yaml
+++ b/gen/http/openapi3.yaml
@@ -161,7 +161,7 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/TaskListState'
+                $ref: '#/components/schemas/TaskListStatus'
               example:
                 groups:
                 - id: a7d1349d-34b5-4c65-b671-d1aa362fc446
@@ -189,7 +189,7 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/TaskListState'
+                $ref: '#/components/schemas/TaskListStatus'
               example:
                 groups:
                 - id: a7d1349d-34b5-4c65-b671-d1aa362fc446
@@ -217,7 +217,7 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/TaskListState'
+                $ref: '#/components/schemas/TaskListStatus'
               example:
                 groups:
                 - id: a7d1349d-34b5-4c65-b671-d1aa362fc446
@@ -263,7 +263,7 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/TaskListState'
+                $ref: '#/components/schemas/TaskListStatus'
               example:
                 groups:
                 - id: a7d1349d-34b5-4c65-b671-d1aa362fc446
@@ -355,7 +355,7 @@ components:
         taskID: Eligendi officiis repudiandae excepturi in ex ratione.
       required:
       - taskID
-    GroupState:
+    GroupStatus:
       type: object
       properties:
         id:
@@ -369,8 +369,8 @@ components:
         tasks:
           type: array
           items:
-            $ref: '#/components/schemas/TaskState'
-          description: Array of TaskState
+            $ref: '#/components/schemas/TaskStatus'
+          description: Array of TaskStatus
           example:
           - id: d16996cd-1977-42a9-90b2-b4548a35c1b4
             status: done
@@ -390,14 +390,14 @@ components:
           status: done
         - id: d16996cd-1977-42a9-90b2-b4548a35c1b4
           status: done
-    TaskListState:
+    TaskListStatus:
       type: object
       properties:
         groups:
           type: array
           items:
-            $ref: '#/components/schemas/GroupState'
-          description: Array of GroupState
+            $ref: '#/components/schemas/GroupStatus'
+          description: Array of GroupStatus
           example:
           - id: a7d1349d-34b5-4c65-b671-d1aa362fc446
             status: done
@@ -477,7 +477,7 @@ components:
       required:
       - id
       - status
-    TaskState:
+    TaskStatus:
       type: object
       properties:
         id:
diff --git a/gen/http/task_list/client/encode_decode.go b/gen/http/task_list/client/encode_decode.go
index e93e65c..039233f 100644
--- a/gen/http/task_list/client/encode_decode.go
+++ b/gen/http/task_list/client/encode_decode.go
@@ -163,7 +163,7 @@ func DecodeTaskListResultResponse(decoder func(*http.Response) goahttp.Decoder,
 			if err != nil {
 				return nil, goahttp.ErrValidationError("taskList", "TaskListResult", err)
 			}
-			res := NewTaskListResultTaskListStateMultiStatus(&body)
+			res := NewTaskListResultTaskListStatusMultiStatus(&body)
 			res.Status = "failed"
 			return res, nil
 		case http.StatusCreated:
@@ -179,7 +179,7 @@ func DecodeTaskListResultResponse(decoder func(*http.Response) goahttp.Decoder,
 			if err != nil {
 				return nil, goahttp.ErrValidationError("taskList", "TaskListResult", err)
 			}
-			res := NewTaskListResultTaskListStateCreated(&body)
+			res := NewTaskListResultTaskListStatusCreated(&body)
 			res.Status = "created"
 			return res, nil
 		case http.StatusAccepted:
@@ -195,7 +195,7 @@ func DecodeTaskListResultResponse(decoder func(*http.Response) goahttp.Decoder,
 			if err != nil {
 				return nil, goahttp.ErrValidationError("taskList", "TaskListResult", err)
 			}
-			res := NewTaskListResultTaskListStateAccepted(&body)
+			res := NewTaskListResultTaskListStatusAccepted(&body)
 			res.Status = "pending"
 			return res, nil
 		case http.StatusOK:
@@ -211,7 +211,7 @@ func DecodeTaskListResultResponse(decoder func(*http.Response) goahttp.Decoder,
 			if err != nil {
 				return nil, goahttp.ErrValidationError("taskList", "TaskListResult", err)
 			}
-			res := NewTaskListResultTaskListStateOK(&body)
+			res := NewTaskListResultTaskListStatusOK(&body)
 			return res, nil
 		default:
 			body, _ := ioutil.ReadAll(resp.Body)
@@ -220,33 +220,33 @@ func DecodeTaskListResultResponse(decoder func(*http.Response) goahttp.Decoder,
 	}
 }
 
-// unmarshalGroupStateResponseBodyToTasklistGroupState builds a value of type
-// *tasklist.GroupState from a value of type *GroupStateResponseBody.
-func unmarshalGroupStateResponseBodyToTasklistGroupState(v *GroupStateResponseBody) *tasklist.GroupState {
+// unmarshalGroupStatusResponseBodyToTasklistGroupStatus builds a value of type
+// *tasklist.GroupStatus from a value of type *GroupStatusResponseBody.
+func unmarshalGroupStatusResponseBodyToTasklistGroupStatus(v *GroupStatusResponseBody) *tasklist.GroupStatus {
 	if v == nil {
 		return nil
 	}
-	res := &tasklist.GroupState{
+	res := &tasklist.GroupStatus{
 		ID:     v.ID,
 		Status: v.Status,
 	}
 	if v.Tasks != nil {
-		res.Tasks = make([]*tasklist.TaskState, len(v.Tasks))
+		res.Tasks = make([]*tasklist.TaskStatus, len(v.Tasks))
 		for i, val := range v.Tasks {
-			res.Tasks[i] = unmarshalTaskStateResponseBodyToTasklistTaskState(val)
+			res.Tasks[i] = unmarshalTaskStatusResponseBodyToTasklistTaskStatus(val)
 		}
 	}
 
 	return res
 }
 
-// unmarshalTaskStateResponseBodyToTasklistTaskState builds a value of type
-// *tasklist.TaskState from a value of type *TaskStateResponseBody.
-func unmarshalTaskStateResponseBodyToTasklistTaskState(v *TaskStateResponseBody) *tasklist.TaskState {
+// unmarshalTaskStatusResponseBodyToTasklistTaskStatus builds a value of type
+// *tasklist.TaskStatus from a value of type *TaskStatusResponseBody.
+func unmarshalTaskStatusResponseBodyToTasklistTaskStatus(v *TaskStatusResponseBody) *tasklist.TaskStatus {
 	if v == nil {
 		return nil
 	}
-	res := &tasklist.TaskState{
+	res := &tasklist.TaskStatus{
 		ID:     v.ID,
 		Status: v.Status,
 	}
diff --git a/gen/http/task_list/client/types.go b/gen/http/task_list/client/types.go
index 69b37b4..0aac928 100644
--- a/gen/http/task_list/client/types.go
+++ b/gen/http/task_list/client/types.go
@@ -26,8 +26,8 @@ type TaskListResultMultiStatusResponseBody struct {
 	ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"`
 	// Current status of the taskList
 	Status *string `form:"status,omitempty" json:"status,omitempty" xml:"status,omitempty"`
-	// Array of GroupState
-	Groups []*GroupStateResponseBody `form:"groups,omitempty" json:"groups,omitempty" xml:"groups,omitempty"`
+	// Array of GroupStatus
+	Groups []*GroupStatusResponseBody `form:"groups,omitempty" json:"groups,omitempty" xml:"groups,omitempty"`
 }
 
 // TaskListResultCreatedResponseBody is the type of the "taskList" service
@@ -37,8 +37,8 @@ type TaskListResultCreatedResponseBody struct {
 	ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"`
 	// Current status of the taskList
 	Status *string `form:"status,omitempty" json:"status,omitempty" xml:"status,omitempty"`
-	// Array of GroupState
-	Groups []*GroupStateResponseBody `form:"groups,omitempty" json:"groups,omitempty" xml:"groups,omitempty"`
+	// Array of GroupStatus
+	Groups []*GroupStatusResponseBody `form:"groups,omitempty" json:"groups,omitempty" xml:"groups,omitempty"`
 }
 
 // TaskListResultAcceptedResponseBody is the type of the "taskList" service
@@ -48,8 +48,8 @@ type TaskListResultAcceptedResponseBody struct {
 	ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"`
 	// Current status of the taskList
 	Status *string `form:"status,omitempty" json:"status,omitempty" xml:"status,omitempty"`
-	// Array of GroupState
-	Groups []*GroupStateResponseBody `form:"groups,omitempty" json:"groups,omitempty" xml:"groups,omitempty"`
+	// Array of GroupStatus
+	Groups []*GroupStatusResponseBody `form:"groups,omitempty" json:"groups,omitempty" xml:"groups,omitempty"`
 }
 
 // TaskListResultOKResponseBody is the type of the "taskList" service
@@ -59,22 +59,22 @@ type TaskListResultOKResponseBody struct {
 	ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"`
 	// Current status of the taskList
 	Status *string `form:"status,omitempty" json:"status,omitempty" xml:"status,omitempty"`
-	// Array of GroupState
-	Groups []*GroupStateResponseBody `form:"groups,omitempty" json:"groups,omitempty" xml:"groups,omitempty"`
+	// Array of GroupStatus
+	Groups []*GroupStatusResponseBody `form:"groups,omitempty" json:"groups,omitempty" xml:"groups,omitempty"`
 }
 
-// GroupStateResponseBody is used to define fields on response body types.
-type GroupStateResponseBody struct {
+// GroupStatusResponseBody is used to define fields on response body types.
+type GroupStatusResponseBody struct {
 	// Unique group identifier.
 	ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"`
 	// Current status of the group
 	Status *string `form:"status,omitempty" json:"status,omitempty" xml:"status,omitempty"`
-	// Array of TaskState
-	Tasks []*TaskStateResponseBody `form:"tasks,omitempty" json:"tasks,omitempty" xml:"tasks,omitempty"`
+	// Array of TaskStatus
+	Tasks []*TaskStatusResponseBody `form:"tasks,omitempty" json:"tasks,omitempty" xml:"tasks,omitempty"`
 }
 
-// TaskStateResponseBody is used to define fields on response body types.
-type TaskStateResponseBody struct {
+// TaskStatusResponseBody is used to define fields on response body types.
+type TaskStatusResponseBody struct {
 	// Unique task identifier.
 	ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"`
 	// Current status of the task
@@ -91,68 +91,68 @@ func NewCreateTaskListResultOK(body *CreateResponseBody) *tasklist.CreateTaskLis
 	return v
 }
 
-// NewTaskListResultTaskListStateMultiStatus builds a "taskList" service
+// NewTaskListResultTaskListStatusMultiStatus builds a "taskList" service
 // "TaskListResult" endpoint result from a HTTP "MultiStatus" response.
-func NewTaskListResultTaskListStateMultiStatus(body *TaskListResultMultiStatusResponseBody) *tasklist.TaskListState {
-	v := &tasklist.TaskListState{
+func NewTaskListResultTaskListStatusMultiStatus(body *TaskListResultMultiStatusResponseBody) *tasklist.TaskListStatus {
+	v := &tasklist.TaskListStatus{
 		ID:     *body.ID,
 		Status: *body.Status,
 	}
 	if body.Groups != nil {
-		v.Groups = make([]*tasklist.GroupState, len(body.Groups))
+		v.Groups = make([]*tasklist.GroupStatus, len(body.Groups))
 		for i, val := range body.Groups {
-			v.Groups[i] = unmarshalGroupStateResponseBodyToTasklistGroupState(val)
+			v.Groups[i] = unmarshalGroupStatusResponseBodyToTasklistGroupStatus(val)
 		}
 	}
 
 	return v
 }
 
-// NewTaskListResultTaskListStateCreated builds a "taskList" service
+// NewTaskListResultTaskListStatusCreated builds a "taskList" service
 // "TaskListResult" endpoint result from a HTTP "Created" response.
-func NewTaskListResultTaskListStateCreated(body *TaskListResultCreatedResponseBody) *tasklist.TaskListState {
-	v := &tasklist.TaskListState{
+func NewTaskListResultTaskListStatusCreated(body *TaskListResultCreatedResponseBody) *tasklist.TaskListStatus {
+	v := &tasklist.TaskListStatus{
 		ID:     *body.ID,
 		Status: *body.Status,
 	}
 	if body.Groups != nil {
-		v.Groups = make([]*tasklist.GroupState, len(body.Groups))
+		v.Groups = make([]*tasklist.GroupStatus, len(body.Groups))
 		for i, val := range body.Groups {
-			v.Groups[i] = unmarshalGroupStateResponseBodyToTasklistGroupState(val)
+			v.Groups[i] = unmarshalGroupStatusResponseBodyToTasklistGroupStatus(val)
 		}
 	}
 
 	return v
 }
 
-// NewTaskListResultTaskListStateAccepted builds a "taskList" service
+// NewTaskListResultTaskListStatusAccepted builds a "taskList" service
 // "TaskListResult" endpoint result from a HTTP "Accepted" response.
-func NewTaskListResultTaskListStateAccepted(body *TaskListResultAcceptedResponseBody) *tasklist.TaskListState {
-	v := &tasklist.TaskListState{
+func NewTaskListResultTaskListStatusAccepted(body *TaskListResultAcceptedResponseBody) *tasklist.TaskListStatus {
+	v := &tasklist.TaskListStatus{
 		ID:     *body.ID,
 		Status: *body.Status,
 	}
 	if body.Groups != nil {
-		v.Groups = make([]*tasklist.GroupState, len(body.Groups))
+		v.Groups = make([]*tasklist.GroupStatus, len(body.Groups))
 		for i, val := range body.Groups {
-			v.Groups[i] = unmarshalGroupStateResponseBodyToTasklistGroupState(val)
+			v.Groups[i] = unmarshalGroupStatusResponseBodyToTasklistGroupStatus(val)
 		}
 	}
 
 	return v
 }
 
-// NewTaskListResultTaskListStateOK builds a "taskList" service
+// NewTaskListResultTaskListStatusOK builds a "taskList" service
 // "TaskListResult" endpoint result from a HTTP "OK" response.
-func NewTaskListResultTaskListStateOK(body *TaskListResultOKResponseBody) *tasklist.TaskListState {
-	v := &tasklist.TaskListState{
+func NewTaskListResultTaskListStatusOK(body *TaskListResultOKResponseBody) *tasklist.TaskListStatus {
+	v := &tasklist.TaskListStatus{
 		ID:     *body.ID,
 		Status: *body.Status,
 	}
 	if body.Groups != nil {
-		v.Groups = make([]*tasklist.GroupState, len(body.Groups))
+		v.Groups = make([]*tasklist.GroupStatus, len(body.Groups))
 		for i, val := range body.Groups {
-			v.Groups[i] = unmarshalGroupStateResponseBodyToTasklistGroupState(val)
+			v.Groups[i] = unmarshalGroupStatusResponseBodyToTasklistGroupStatus(val)
 		}
 	}
 
diff --git a/gen/http/task_list/server/encode_decode.go b/gen/http/task_list/server/encode_decode.go
index 1f2bc97..1766a79 100644
--- a/gen/http/task_list/server/encode_decode.go
+++ b/gen/http/task_list/server/encode_decode.go
@@ -71,7 +71,7 @@ func DecodeCreateRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.
 // the taskList TaskListResult endpoint.
 func EncodeTaskListResultResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, interface{}) error {
 	return func(ctx context.Context, w http.ResponseWriter, v interface{}) error {
-		res, _ := v.(*tasklist.TaskListState)
+		res, _ := v.(*tasklist.TaskListStatus)
 		if res.Status == "failed" {
 			enc := encoder(ctx, w)
 			body := NewTaskListResultMultiStatusResponseBody(res)
@@ -113,33 +113,33 @@ func DecodeTaskListResultRequest(mux goahttp.Muxer, decoder func(*http.Request)
 	}
 }
 
-// marshalTasklistGroupStateToGroupStateResponseBody builds a value of type
-// *GroupStateResponseBody from a value of type *tasklist.GroupState.
-func marshalTasklistGroupStateToGroupStateResponseBody(v *tasklist.GroupState) *GroupStateResponseBody {
+// marshalTasklistGroupStatusToGroupStatusResponseBody builds a value of type
+// *GroupStatusResponseBody from a value of type *tasklist.GroupStatus.
+func marshalTasklistGroupStatusToGroupStatusResponseBody(v *tasklist.GroupStatus) *GroupStatusResponseBody {
 	if v == nil {
 		return nil
 	}
-	res := &GroupStateResponseBody{
+	res := &GroupStatusResponseBody{
 		ID:     v.ID,
 		Status: v.Status,
 	}
 	if v.Tasks != nil {
-		res.Tasks = make([]*TaskStateResponseBody, len(v.Tasks))
+		res.Tasks = make([]*TaskStatusResponseBody, len(v.Tasks))
 		for i, val := range v.Tasks {
-			res.Tasks[i] = marshalTasklistTaskStateToTaskStateResponseBody(val)
+			res.Tasks[i] = marshalTasklistTaskStatusToTaskStatusResponseBody(val)
 		}
 	}
 
 	return res
 }
 
-// marshalTasklistTaskStateToTaskStateResponseBody builds a value of type
-// *TaskStateResponseBody from a value of type *tasklist.TaskState.
-func marshalTasklistTaskStateToTaskStateResponseBody(v *tasklist.TaskState) *TaskStateResponseBody {
+// marshalTasklistTaskStatusToTaskStatusResponseBody builds a value of type
+// *TaskStatusResponseBody from a value of type *tasklist.TaskStatus.
+func marshalTasklistTaskStatusToTaskStatusResponseBody(v *tasklist.TaskStatus) *TaskStatusResponseBody {
 	if v == nil {
 		return nil
 	}
-	res := &TaskStateResponseBody{
+	res := &TaskStatusResponseBody{
 		ID:     v.ID,
 		Status: v.Status,
 	}
diff --git a/gen/http/task_list/server/types.go b/gen/http/task_list/server/types.go
index 9919ad3..3b4aefe 100644
--- a/gen/http/task_list/server/types.go
+++ b/gen/http/task_list/server/types.go
@@ -25,8 +25,8 @@ type TaskListResultMultiStatusResponseBody struct {
 	ID string `form:"id" json:"id" xml:"id"`
 	// Current status of the taskList
 	Status string `form:"status" json:"status" xml:"status"`
-	// Array of GroupState
-	Groups []*GroupStateResponseBody `form:"groups,omitempty" json:"groups,omitempty" xml:"groups,omitempty"`
+	// Array of GroupStatus
+	Groups []*GroupStatusResponseBody `form:"groups,omitempty" json:"groups,omitempty" xml:"groups,omitempty"`
 }
 
 // TaskListResultCreatedResponseBody is the type of the "taskList" service
@@ -36,8 +36,8 @@ type TaskListResultCreatedResponseBody struct {
 	ID string `form:"id" json:"id" xml:"id"`
 	// Current status of the taskList
 	Status string `form:"status" json:"status" xml:"status"`
-	// Array of GroupState
-	Groups []*GroupStateResponseBody `form:"groups,omitempty" json:"groups,omitempty" xml:"groups,omitempty"`
+	// Array of GroupStatus
+	Groups []*GroupStatusResponseBody `form:"groups,omitempty" json:"groups,omitempty" xml:"groups,omitempty"`
 }
 
 // TaskListResultAcceptedResponseBody is the type of the "taskList" service
@@ -47,8 +47,8 @@ type TaskListResultAcceptedResponseBody struct {
 	ID string `form:"id" json:"id" xml:"id"`
 	// Current status of the taskList
 	Status string `form:"status" json:"status" xml:"status"`
-	// Array of GroupState
-	Groups []*GroupStateResponseBody `form:"groups,omitempty" json:"groups,omitempty" xml:"groups,omitempty"`
+	// Array of GroupStatus
+	Groups []*GroupStatusResponseBody `form:"groups,omitempty" json:"groups,omitempty" xml:"groups,omitempty"`
 }
 
 // TaskListResultOKResponseBody is the type of the "taskList" service
@@ -58,22 +58,22 @@ type TaskListResultOKResponseBody struct {
 	ID string `form:"id" json:"id" xml:"id"`
 	// Current status of the taskList
 	Status string `form:"status" json:"status" xml:"status"`
-	// Array of GroupState
-	Groups []*GroupStateResponseBody `form:"groups,omitempty" json:"groups,omitempty" xml:"groups,omitempty"`
+	// Array of GroupStatus
+	Groups []*GroupStatusResponseBody `form:"groups,omitempty" json:"groups,omitempty" xml:"groups,omitempty"`
 }
 
-// GroupStateResponseBody is used to define fields on response body types.
-type GroupStateResponseBody struct {
+// GroupStatusResponseBody is used to define fields on response body types.
+type GroupStatusResponseBody struct {
 	// Unique group identifier.
 	ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"`
 	// Current status of the group
 	Status *string `form:"status,omitempty" json:"status,omitempty" xml:"status,omitempty"`
-	// Array of TaskState
-	Tasks []*TaskStateResponseBody `form:"tasks,omitempty" json:"tasks,omitempty" xml:"tasks,omitempty"`
+	// Array of TaskStatus
+	Tasks []*TaskStatusResponseBody `form:"tasks,omitempty" json:"tasks,omitempty" xml:"tasks,omitempty"`
 }
 
-// TaskStateResponseBody is used to define fields on response body types.
-type TaskStateResponseBody struct {
+// TaskStatusResponseBody is used to define fields on response body types.
+type TaskStatusResponseBody struct {
 	// Unique task identifier.
 	ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"`
 	// Current status of the task
@@ -91,15 +91,15 @@ func NewCreateResponseBody(res *tasklist.CreateTaskListResult) *CreateResponseBo
 
 // NewTaskListResultMultiStatusResponseBody builds the HTTP response body from
 // the result of the "TaskListResult" endpoint of the "taskList" service.
-func NewTaskListResultMultiStatusResponseBody(res *tasklist.TaskListState) *TaskListResultMultiStatusResponseBody {
+func NewTaskListResultMultiStatusResponseBody(res *tasklist.TaskListStatus) *TaskListResultMultiStatusResponseBody {
 	body := &TaskListResultMultiStatusResponseBody{
 		ID:     res.ID,
 		Status: res.Status,
 	}
 	if res.Groups != nil {
-		body.Groups = make([]*GroupStateResponseBody, len(res.Groups))
+		body.Groups = make([]*GroupStatusResponseBody, len(res.Groups))
 		for i, val := range res.Groups {
-			body.Groups[i] = marshalTasklistGroupStateToGroupStateResponseBody(val)
+			body.Groups[i] = marshalTasklistGroupStatusToGroupStatusResponseBody(val)
 		}
 	}
 	return body
@@ -107,15 +107,15 @@ func NewTaskListResultMultiStatusResponseBody(res *tasklist.TaskListState) *Task
 
 // NewTaskListResultCreatedResponseBody builds the HTTP response body from the
 // result of the "TaskListResult" endpoint of the "taskList" service.
-func NewTaskListResultCreatedResponseBody(res *tasklist.TaskListState) *TaskListResultCreatedResponseBody {
+func NewTaskListResultCreatedResponseBody(res *tasklist.TaskListStatus) *TaskListResultCreatedResponseBody {
 	body := &TaskListResultCreatedResponseBody{
 		ID:     res.ID,
 		Status: res.Status,
 	}
 	if res.Groups != nil {
-		body.Groups = make([]*GroupStateResponseBody, len(res.Groups))
+		body.Groups = make([]*GroupStatusResponseBody, len(res.Groups))
 		for i, val := range res.Groups {
-			body.Groups[i] = marshalTasklistGroupStateToGroupStateResponseBody(val)
+			body.Groups[i] = marshalTasklistGroupStatusToGroupStatusResponseBody(val)
 		}
 	}
 	return body
@@ -123,15 +123,15 @@ func NewTaskListResultCreatedResponseBody(res *tasklist.TaskListState) *TaskList
 
 // NewTaskListResultAcceptedResponseBody builds the HTTP response body from the
 // result of the "TaskListResult" endpoint of the "taskList" service.
-func NewTaskListResultAcceptedResponseBody(res *tasklist.TaskListState) *TaskListResultAcceptedResponseBody {
+func NewTaskListResultAcceptedResponseBody(res *tasklist.TaskListStatus) *TaskListResultAcceptedResponseBody {
 	body := &TaskListResultAcceptedResponseBody{
 		ID:     res.ID,
 		Status: res.Status,
 	}
 	if res.Groups != nil {
-		body.Groups = make([]*GroupStateResponseBody, len(res.Groups))
+		body.Groups = make([]*GroupStatusResponseBody, len(res.Groups))
 		for i, val := range res.Groups {
-			body.Groups[i] = marshalTasklistGroupStateToGroupStateResponseBody(val)
+			body.Groups[i] = marshalTasklistGroupStatusToGroupStatusResponseBody(val)
 		}
 	}
 	return body
@@ -139,15 +139,15 @@ func NewTaskListResultAcceptedResponseBody(res *tasklist.TaskListState) *TaskLis
 
 // NewTaskListResultOKResponseBody builds the HTTP response body from the
 // result of the "TaskListResult" endpoint of the "taskList" service.
-func NewTaskListResultOKResponseBody(res *tasklist.TaskListState) *TaskListResultOKResponseBody {
+func NewTaskListResultOKResponseBody(res *tasklist.TaskListStatus) *TaskListResultOKResponseBody {
 	body := &TaskListResultOKResponseBody{
 		ID:     res.ID,
 		Status: res.Status,
 	}
 	if res.Groups != nil {
-		body.Groups = make([]*GroupStateResponseBody, len(res.Groups))
+		body.Groups = make([]*GroupStatusResponseBody, len(res.Groups))
 		for i, val := range res.Groups {
-			body.Groups[i] = marshalTasklistGroupStateToGroupStateResponseBody(val)
+			body.Groups[i] = marshalTasklistGroupStatusToGroupStatusResponseBody(val)
 		}
 	}
 	return body
diff --git a/gen/task_list/client.go b/gen/task_list/client.go
index d290cc5..72bb221 100644
--- a/gen/task_list/client.go
+++ b/gen/task_list/client.go
@@ -38,11 +38,11 @@ func (c *Client) Create(ctx context.Context, p *CreateTaskListRequest) (res *Cre
 }
 
 // TaskListResult calls the "TaskListResult" endpoint of the "taskList" service.
-func (c *Client) TaskListResult(ctx context.Context, p *TaskListResultRequest) (res *TaskListState, err error) {
+func (c *Client) TaskListResult(ctx context.Context, p *TaskListResultRequest) (res *TaskListStatus, err error) {
 	var ires interface{}
 	ires, err = c.TaskListResultEndpoint(ctx, p)
 	if err != nil {
 		return
 	}
-	return ires.(*TaskListState), nil
+	return ires.(*TaskListStatus), nil
 }
diff --git a/gen/task_list/service.go b/gen/task_list/service.go
index df33d9e..7d8d7f7 100644
--- a/gen/task_list/service.go
+++ b/gen/task_list/service.go
@@ -18,7 +18,7 @@ type Service interface {
 	Create(context.Context, *CreateTaskListRequest) (res *CreateTaskListResult, err error)
 	// TaskListResult retrieves a taskList result containing all tasks' unique IDs
 	// and statuses from the Cache service.
-	TaskListResult(context.Context, *TaskListResultRequest) (res *TaskListState, err error)
+	TaskListResult(context.Context, *TaskListResultRequest) (res *TaskListStatus, err error)
 }
 
 // ServiceName is the name of the service as defined in the design. This is the
@@ -51,13 +51,13 @@ type CreateTaskListResult struct {
 	TaskListID string
 }
 
-type GroupState struct {
+type GroupStatus struct {
 	// Unique group identifier.
 	ID *string
 	// Current status of the group
 	Status *string
-	// Array of TaskState
-	Tasks []*TaskState
+	// Array of TaskStatus
+	Tasks []*TaskStatus
 }
 
 // TaskListResultRequest is the payload type of the taskList service
@@ -67,18 +67,18 @@ type TaskListResultRequest struct {
 	TaskListID string
 }
 
-// TaskListState is the result type of the taskList service TaskListResult
+// TaskListStatus is the result type of the taskList service TaskListResult
 // method.
-type TaskListState struct {
+type TaskListStatus struct {
 	// Unique taskList identifier.
 	ID string
 	// Current status of the taskList
 	Status string
-	// Array of GroupState
-	Groups []*GroupState
+	// Array of GroupStatus
+	Groups []*GroupStatus
 }
 
-type TaskState struct {
+type TaskStatus struct {
 	// Unique task identifier.
 	ID *string
 	// Current status of the task
-- 
GitLab