You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by rl...@apache.org on 2017/06/15 15:06:20 UTC

[6/8] ambari git commit: AMBARI-21147. Update Database Access Layer to Support New Database Schema for Improved User Account Management (rlevas)

http://git-wip-us.apache.org/repos/asf/ambari/blob/f76c87a6/ambari-server/docs/api/generated/swagger.json
----------------------------------------------------------------------
diff --git a/ambari-server/docs/api/generated/swagger.json b/ambari-server/docs/api/generated/swagger.json
index d7d54a5..6347bfa 100644
--- a/ambari-server/docs/api/generated/swagger.json
+++ b/ambari-server/docs/api/generated/swagger.json
@@ -17,23 +17,22 @@
     "name" : "Blueprints",
     "description" : "Endpoint for blueprint specific operations"
   }, {
+    "name" : "Cluster Services",
+    "description" : "Endpoint for service specific operations"
+  }, {
     "name" : "Groups",
     "description" : "Endpoint for group specific operations"
   }, {
     "name" : "Requests",
     "description" : "Endpoint for request specific operations"
   }, {
-    "name" : "Services",
-    "description" : "Endpoint for service specific operations"
-  }, {
     "name" : "Stacks",
     "description" : "Endpoint for stack specific operations"
   }, {
     "name" : "Users",
     "description" : "Endpoint for user specific operations"
   }, {
-    "name" : "Views",
-    "description" : "Endpoint for view specific operations"
+    "name" : "Views"
   }, {
     "name" : "clusters",
     "description" : "Endpoint for cluster-specific operations"
@@ -1018,27 +1017,27 @@
         }
       }
     },
-    "/groups" : {
+    "/clusters/{clusterName}/services" : {
       "get" : {
-        "tags" : [ "Groups" ],
-        "summary" : "Get all groups",
-        "description" : "Returns details of all groups.",
-        "operationId" : "GroupService#getGroups",
+        "tags" : [ "Cluster Services" ],
+        "summary" : "Get all services",
+        "description" : "Returns all services.",
+        "operationId" : "ServiceService#getServices",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
           "name" : "fields",
           "in" : "query",
-          "description" : "Filter group details",
+          "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
           "type" : "string",
-          "default" : "Groups/*"
+          "default" : "ServiceInfo/service_name, ServiceInfo/cluster_name"
         }, {
           "name" : "sortBy",
           "in" : "query",
-          "description" : "Sort groups (asc | desc)",
+          "description" : "Sort resources in result by (asc | desc)",
           "required" : false,
           "type" : "string",
-          "default" : "Groups/group_name.asc"
+          "default" : "ServiceInfo/service_name.asc, ServiceInfo/cluster_name.asc"
         }, {
           "name" : "page_size",
           "in" : "query",
@@ -1049,94 +1048,194 @@
         }, {
           "name" : "from",
           "in" : "query",
-          "description" : "The starting page resource (inclusive). Valid values are :offset | \"start\"",
+          "description" : "The starting page resource (inclusive).  \"start\" is also accepted.",
           "required" : false,
           "type" : "string",
           "default" : "0"
         }, {
           "name" : "to",
           "in" : "query",
-          "description" : "The ending page resource (inclusive). Valid values are :offset | \"end\"",
+          "description" : "The ending page resource (inclusive).  \"end\" is also accepted.",
           "required" : false,
           "type" : "string"
+        }, {
+          "name" : "clusterName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
         } ],
         "responses" : {
           "200" : {
-            "description" : "Successful retrieval of all group entries",
+            "description" : "Successful operation",
             "schema" : {
               "type" : "array",
               "items" : {
-                "$ref" : "#/definitions/GroupResponse"
+                "$ref" : "#/definitions/ServiceResponseSwagger"
+              }
+            }
+          },
+          "500" : {
+            "description" : "Internal server error"
+          }
+        }
+      }
+    },
+    "/clusters/{clusterName}/services/{serviceName}" : {
+      "get" : {
+        "tags" : [ "Cluster Services" ],
+        "summary" : "Get the details of a service",
+        "description" : "Returns the details of a service.",
+        "operationId" : "ServiceService#getService",
+        "produces" : [ "text/plain" ],
+        "parameters" : [ {
+          "name" : "serviceName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
+        }, {
+          "name" : "fields",
+          "in" : "query",
+          "description" : "Filter fields in the response (identifier fields are mandatory)",
+          "required" : false,
+          "type" : "string",
+          "default" : "ServiceInfo/*"
+        }, {
+          "name" : "clusterName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Successful operation",
+            "schema" : {
+              "type" : "array",
+              "items" : {
+                "$ref" : "#/definitions/ServiceResponseSwagger"
               }
             }
+          },
+          "404" : {
+            "description" : "The requested resource doesn't exist."
+          },
+          "500" : {
+            "description" : "Internal server error"
           }
         }
       },
       "post" : {
-        "tags" : [ "Groups" ],
-        "summary" : "Create new group",
-        "description" : "Creates group resource.",
-        "operationId" : "GroupService#createGroup",
+        "tags" : [ "Cluster Services" ],
+        "summary" : "Creates a service",
+        "description" : "",
+        "operationId" : "ServiceService#createServices",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
+          "name" : "serviceName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
+        }, {
           "in" : "body",
           "name" : "body",
-          "description" : "input parameters in json form",
-          "required" : true,
+          "required" : false,
           "schema" : {
-            "$ref" : "#/definitions/GroupRequest"
+            "$ref" : "#/definitions/ServiceRequestSwagger"
           }
+        }, {
+          "name" : "clusterName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
         } ],
         "responses" : {
-          "200" : {
-            "description" : "successful operation"
+          "201" : {
+            "description" : "Successful operation"
+          },
+          "202" : {
+            "description" : "Request is accepted, but not completely processed yet"
+          },
+          "400" : {
+            "description" : "Invalid arguments"
+          },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "403" : {
+            "description" : "Not permitted to perform the operation"
+          },
+          "404" : {
+            "description" : "The requested resource doesn't exist."
+          },
+          "409" : {
+            "description" : "The requested resource already exists."
           },
           "500" : {
-            "description" : "Server Error"
+            "description" : "Internal server error"
           }
         }
-      }
-    },
-    "/groups/{groupName}" : {
-      "get" : {
-        "tags" : [ "Groups" ],
-        "summary" : "Get group",
-        "description" : "Returns group details.",
-        "operationId" : "GroupService#getGroup",
+      },
+      "put" : {
+        "tags" : [ "Cluster Services" ],
+        "summary" : "Updates a service",
+        "description" : "",
+        "operationId" : "ServiceService#updateService",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "groupName",
+          "name" : "serviceName",
           "in" : "path",
-          "description" : "group name",
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "fields",
-          "in" : "query",
-          "description" : "Filter group details",
+          "in" : "body",
+          "name" : "body",
           "required" : false,
-          "type" : "string",
-          "default" : "Groups"
+          "schema" : {
+            "$ref" : "#/definitions/ServiceRequestSwagger"
+          }
+        }, {
+          "name" : "clusterName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
         } ],
         "responses" : {
           "200" : {
-            "description" : "Successful retrieval of group resource",
-            "schema" : {
-              "$ref" : "#/definitions/GroupResponse"
-            }
+            "description" : "Successful operation"
+          },
+          "202" : {
+            "description" : "Request is accepted, but not completely processed yet"
+          },
+          "400" : {
+            "description" : "Invalid arguments"
+          },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "403" : {
+            "description" : "Not permitted to perform the operation"
+          },
+          "404" : {
+            "description" : "The requested resource doesn't exist."
+          },
+          "500" : {
+            "description" : "Internal server error"
           }
         }
       },
       "delete" : {
-        "tags" : [ "Groups" ],
-        "summary" : "Delete group",
-        "description" : "Delete group resource.",
-        "operationId" : "GroupService#deleteGroup",
+        "tags" : [ "Cluster Services" ],
+        "summary" : "Deletes a service",
+        "description" : "",
+        "operationId" : "ServiceService#deleteService",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "groupName",
+          "name" : "serviceName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
+        }, {
+          "name" : "clusterName",
           "in" : "path",
-          "description" : "group name",
           "required" : true,
           "type" : "string"
         } ],
@@ -1144,39 +1243,47 @@
           "200" : {
             "description" : "Successful operation"
           },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "403" : {
+            "description" : "Not permitted to perform the operation"
+          },
+          "404" : {
+            "description" : "The requested resource doesn't exist."
+          },
           "500" : {
-            "description" : "Server Error"
+            "description" : "Internal server error"
           }
         }
       }
     },
-    "/groups/{groupName}/members" : {
+    "/clusters/{clusterName}/services/{serviceName}/artifacts" : {
       "get" : {
-        "tags" : [ "Groups" ],
-        "summary" : "Get all group members",
-        "description" : "Returns details of all members.",
-        "operationId" : "MemberService#getMembers",
+        "tags" : [ "Cluster Services" ],
+        "summary" : "Get all service artifacts",
+        "description" : "",
+        "operationId" : "ServiceService#getArtifacts",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "groupName",
+          "name" : "serviceName",
           "in" : "path",
-          "description" : "group name",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "fields",
           "in" : "query",
-          "description" : "Filter member details",
+          "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
           "type" : "string",
-          "default" : "MemberInfo/*"
+          "default" : "Artifacts/artifact_name"
         }, {
           "name" : "sortBy",
           "in" : "query",
-          "description" : "Sort members (asc | desc)",
+          "description" : "Sort resources in result by (asc | desc)",
           "required" : false,
           "type" : "string",
-          "default" : "MemberInfo/user_name.asc"
+          "default" : "Artifacts/artifact_name"
         }, {
           "name" : "page_size",
           "in" : "query",
@@ -1187,16 +1294,21 @@
         }, {
           "name" : "from",
           "in" : "query",
-          "description" : "The starting page resource (inclusive). Valid values are :offset | \"start\"",
+          "description" : "The starting page resource (inclusive).  \"start\" is also accepted.",
           "required" : false,
           "type" : "string",
           "default" : "0"
         }, {
           "name" : "to",
           "in" : "query",
-          "description" : "The ending page resource (inclusive). Valid values are :offset | \"end\"",
+          "description" : "The ending page resource (inclusive).  \"end\" is also accepted.",
           "required" : false,
           "type" : "string"
+        }, {
+          "name" : "clusterName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
         } ],
         "responses" : {
           "200" : {
@@ -1204,95 +1316,80 @@
             "schema" : {
               "type" : "array",
               "items" : {
-                "$ref" : "#/definitions/MemberResponse"
+                "$ref" : "#/definitions/ClusterServiceArtifactResponse"
               }
             }
+          },
+          "404" : {
+            "description" : "The requested resource doesn't exist."
+          },
+          "500" : {
+            "description" : "Internal server error"
           }
         }
       },
       "put" : {
-        "tags" : [ "Groups" ],
-        "summary" : "Update group members",
-        "description" : "Updates group member resources.",
-        "operationId" : "MemberService#updateMembers",
+        "tags" : [ "Cluster Services" ],
+        "summary" : "Updates multiple artifacts",
+        "description" : "",
+        "operationId" : "ServiceService#updateArtifacts",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "groupName",
+          "name" : "serviceName",
           "in" : "path",
-          "description" : "group name",
           "required" : true,
           "type" : "string"
         }, {
           "in" : "body",
           "name" : "body",
-          "description" : "input parameters in json form",
-          "required" : true,
+          "required" : false,
           "schema" : {
-            "$ref" : "#/definitions/MemberRequest"
+            "$ref" : "#/definitions/ClusterServiceArtifactRequest"
           }
+        }, {
+          "name" : "clusterName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
         } ],
         "responses" : {
           "200" : {
             "description" : "Successful operation"
           },
-          "500" : {
-            "description" : "Server Error"
-          }
-        }
-      }
-    },
-    "/groups/{groupName}/members/{userName}" : {
-      "get" : {
-        "tags" : [ "Groups" ],
-        "summary" : "Get group member",
-        "description" : "Returns member details.",
-        "operationId" : "MemberService#getMember",
-        "produces" : [ "text/plain" ],
-        "parameters" : [ {
-          "name" : "groupName",
-          "in" : "path",
-          "description" : "group name",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "userName",
-          "in" : "path",
-          "description" : "user name",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "fields",
-          "in" : "query",
-          "description" : "Filter member details",
-          "required" : false,
-          "type" : "string",
-          "default" : "MemberInfo"
-        } ],
-        "responses" : {
-          "200" : {
-            "description" : "Successful operation",
-            "schema" : {
-              "$ref" : "#/definitions/MemberResponse"
-            }
+          "202" : {
+            "description" : "Request is accepted, but not completely processed yet"
+          },
+          "400" : {
+            "description" : "Invalid arguments"
+          },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "403" : {
+            "description" : "Not permitted to perform the operation"
+          },
+          "404" : {
+            "description" : "The requested resource doesn't exist."
+          },
+          "500" : {
+            "description" : "Internal server error"
           }
         }
       },
       "delete" : {
-        "tags" : [ "Groups" ],
-        "summary" : "Delete group member",
-        "description" : "Delete member resource.",
-        "operationId" : "MemberService#deleteMember",
+        "tags" : [ "Cluster Services" ],
+        "summary" : "Deletes all artifacts of a service that match the provided predicate",
+        "description" : "",
+        "operationId" : "ServiceService#deleteArtifacts",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "groupName",
+          "name" : "serviceName",
           "in" : "path",
-          "description" : "group name",
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "userName",
+          "name" : "clusterName",
           "in" : "path",
-          "description" : "user name",
           "required" : true,
           "type" : "string"
         } ],
@@ -1300,131 +1397,52 @@
           "200" : {
             "description" : "Successful operation"
           },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "403" : {
+            "description" : "Not permitted to perform the operation"
+          },
+          "404" : {
+            "description" : "The requested resource doesn't exist."
+          },
           "500" : {
-            "description" : "Server Error"
-          }
-        }
-      }
-    },
-    "/groups/{groupName}/privileges" : {
-      "get" : {
-        "tags" : [ "Groups" ],
-        "summary" : "Get all privileges",
-        "description" : "Returns all privileges for group.",
-        "operationId" : "GroupPrivilegeService#getPrivileges",
-        "produces" : [ "text/plain" ],
-        "parameters" : [ {
-          "name" : "groupName",
-          "in" : "path",
-          "description" : "group name",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "fields",
-          "in" : "query",
-          "description" : "Filter user privileges",
-          "required" : false,
-          "type" : "string",
-          "default" : "PrivilegeInfo/*"
-        }, {
-          "name" : "sortBy",
-          "in" : "query",
-          "description" : "Sort user privileges (asc | desc)",
-          "required" : false,
-          "type" : "string",
-          "default" : "PrivilegeInfo/user_name.asc"
-        }, {
-          "name" : "page_size",
-          "in" : "query",
-          "description" : "The number of resources to be returned for the paged response.",
-          "required" : false,
-          "type" : "integer",
-          "default" : 10
-        }, {
-          "name" : "from",
-          "in" : "query",
-          "description" : "The starting page resource (inclusive). Valid values are :offset | \"start\"",
-          "required" : false,
-          "type" : "string",
-          "default" : "0"
-        }, {
-          "name" : "to",
-          "in" : "query",
-          "description" : "The ending page resource (inclusive). Valid values are :offset | \"end\"",
-          "required" : false,
-          "type" : "string"
-        } ],
-        "responses" : {
-          "200" : {
-            "description" : "successful operation",
-            "schema" : {
-              "type" : "array",
-              "items" : {
-                "$ref" : "#/definitions/GroupPrivilegeResponse"
-              }
-            }
+            "description" : "Internal server error"
           }
         }
       }
     },
-    "/groups/{groupName}/privileges/{privilegeId}" : {
+    "/clusters/{clusterName}/services/{serviceName}/artifacts/{artifactName}" : {
       "get" : {
-        "tags" : [ "Groups" ],
-        "summary" : "Get group privilege",
-        "description" : "Returns group privilege details.",
-        "operationId" : "GroupPrivilegeService#getPrivilege",
+        "tags" : [ "Cluster Services" ],
+        "summary" : "Get the details of a service artifact",
+        "description" : "",
+        "operationId" : "ServiceService#getArtifact",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "groupName",
+          "name" : "serviceName",
           "in" : "path",
-          "description" : "group name",
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "privilegeId",
+          "name" : "artifactName",
           "in" : "path",
-          "description" : "privilege id",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "fields",
           "in" : "query",
-          "description" : "Filter group privilege details",
-          "required" : false,
-          "type" : "string",
-          "default" : "PrivilegeInfo/*"
-        } ],
-        "responses" : {
-          "200" : {
-            "description" : "Successful operation",
-            "schema" : {
-              "$ref" : "#/definitions/PrivilegeResponse"
-            }
-          }
-        }
-      }
-    },
-    "/hosts" : {
-      "get" : {
-        "tags" : [ "hosts" ],
-        "summary" : "Returns a collection of all hosts",
-        "description" : "",
-        "operationId" : "getHosts",
-        "produces" : [ "text/plain" ],
-        "parameters" : [ {
-          "name" : "fields",
-          "in" : "query",
           "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
           "type" : "string",
-          "default" : "Hosts/*"
+          "default" : "Artifacts/artifact_name"
         }, {
           "name" : "sortBy",
           "in" : "query",
           "description" : "Sort resources in result by (asc | desc)",
           "required" : false,
           "type" : "string",
-          "default" : "Hosts/host_name.asc"
+          "default" : "Artifacts/artifact_name"
         }, {
           "name" : "page_size",
           "in" : "query",
@@ -1437,16 +1455,19 @@
           "in" : "query",
           "description" : "The starting page resource (inclusive).  \"start\" is also accepted.",
           "required" : false,
-          "type" : "integer",
-          "default" : 0,
-          "minimum" : 0.0
+          "type" : "string",
+          "default" : "0"
         }, {
           "name" : "to",
           "in" : "query",
           "description" : "The ending page resource (inclusive).  \"end\" is also accepted.",
           "required" : false,
-          "type" : "integer",
-          "minimum" : 1.0
+          "type" : "string"
+        }, {
+          "name" : "clusterName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
         } ],
         "responses" : {
           "200" : {
@@ -1454,18 +1475,12 @@
             "schema" : {
               "type" : "array",
               "items" : {
-                "$ref" : "#/definitions/Wrapper"
+                "$ref" : "#/definitions/ClusterServiceArtifactResponse"
               }
             }
           },
-          "401" : {
-            "description" : "Not authenticated"
-          },
-          "403" : {
-            "description" : "Not permitted to perform the operation"
-          },
           "404" : {
-            "description" : "Cluster not found"
+            "description" : "The requested resource doesn't exist."
           },
           "500" : {
             "description" : "Internal server error"
@@ -1473,18 +1488,33 @@
         }
       },
       "post" : {
-        "tags" : [ "hosts" ],
-        "summary" : "Creates multiple hosts in a single request",
+        "tags" : [ "Cluster Services" ],
+        "summary" : "Creates a service artifact",
         "description" : "",
-        "operationId" : "createHosts",
+        "operationId" : "ServiceService#createArtifact",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
+          "name" : "serviceName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
+        }, {
+          "name" : "artifactName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
+        }, {
           "in" : "body",
           "name" : "body",
           "required" : false,
           "schema" : {
-            "$ref" : "#/definitions/HostRequest"
+            "$ref" : "#/definitions/ClusterServiceArtifactRequest"
           }
+        }, {
+          "name" : "clusterName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
         } ],
         "responses" : {
           "201" : {
@@ -1494,7 +1524,7 @@
             "description" : "Request is accepted, but not completely processed yet"
           },
           "400" : {
-            "description" : "Attempt to add hosts that have not been registered"
+            "description" : "Invalid arguments"
           },
           "401" : {
             "description" : "Not authenticated"
@@ -1503,10 +1533,10 @@
             "description" : "Not permitted to perform the operation"
           },
           "404" : {
-            "description" : "Cluster not found"
+            "description" : "The requested resource doesn't exist."
           },
           "409" : {
-            "description" : "Attempt to create a host which already exists"
+            "description" : "The requested resource already exists."
           },
           "500" : {
             "description" : "Internal server error"
@@ -1514,18 +1544,33 @@
         }
       },
       "put" : {
-        "tags" : [ "hosts" ],
-        "summary" : "Updates multiple hosts in a single request",
+        "tags" : [ "Cluster Services" ],
+        "summary" : "Updates a single artifact",
         "description" : "",
-        "operationId" : "updateHosts",
+        "operationId" : "ServiceService#updateArtifact",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
+          "name" : "serviceName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
+        }, {
+          "name" : "artifactName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
+        }, {
           "in" : "body",
           "name" : "body",
           "required" : false,
           "schema" : {
-            "$ref" : "#/definitions/HostRequest"
+            "$ref" : "#/definitions/ClusterServiceArtifactRequest"
           }
+        }, {
+          "name" : "clusterName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
         } ],
         "responses" : {
           "200" : {
@@ -1544,7 +1589,7 @@
             "description" : "Not permitted to perform the operation"
           },
           "404" : {
-            "description" : "Cluster or host not found"
+            "description" : "The requested resource doesn't exist."
           },
           "500" : {
             "description" : "Internal server error"
@@ -1552,18 +1597,26 @@
         }
       },
       "delete" : {
-        "tags" : [ "hosts" ],
-        "summary" : "Deletes multiple hosts in a single request",
+        "tags" : [ "Cluster Services" ],
+        "summary" : "Deletes a single service artifact",
         "description" : "",
-        "operationId" : "deleteHosts",
+        "operationId" : "ServiceService#deleteArtifact",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "in" : "body",
-          "name" : "body",
-          "required" : false,
-          "schema" : {
-            "$ref" : "#/definitions/HostRequest"
-          }
+          "name" : "serviceName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
+        }, {
+          "name" : "artifactName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
+        }, {
+          "name" : "clusterName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
         } ],
         "responses" : {
           "200" : {
@@ -1576,7 +1629,7 @@
             "description" : "Not permitted to perform the operation"
           },
           "404" : {
-            "description" : "Cluster or host not found"
+            "description" : "The requested resource doesn't exist."
           },
           "500" : {
             "description" : "Internal server error"
@@ -1584,148 +1637,125 @@
         }
       }
     },
-    "/hosts/{hostName}" : {
+    "/groups" : {
       "get" : {
-        "tags" : [ "hosts" ],
-        "summary" : "Returns information about a single host",
-        "description" : "",
-        "operationId" : "getHost",
+        "tags" : [ "Groups" ],
+        "summary" : "Get all groups",
+        "description" : "Returns details of all groups.",
+        "operationId" : "GroupService#getGroups",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "hostName",
-          "in" : "path",
-          "description" : "host name",
-          "required" : true,
-          "type" : "string"
-        }, {
           "name" : "fields",
           "in" : "query",
-          "description" : "Filter fields in the response (identifier fields are mandatory)",
+          "description" : "Filter group details",
+          "required" : false,
+          "type" : "string",
+          "default" : "Groups/*"
+        }, {
+          "name" : "sortBy",
+          "in" : "query",
+          "description" : "Sort groups (asc | desc)",
+          "required" : false,
+          "type" : "string",
+          "default" : "Groups/group_name.asc"
+        }, {
+          "name" : "page_size",
+          "in" : "query",
+          "description" : "The number of resources to be returned for the paged response.",
+          "required" : false,
+          "type" : "integer",
+          "default" : 10
+        }, {
+          "name" : "from",
+          "in" : "query",
+          "description" : "The starting page resource (inclusive). Valid values are :offset | \"start\"",
+          "required" : false,
+          "type" : "string",
+          "default" : "0"
+        }, {
+          "name" : "to",
+          "in" : "query",
+          "description" : "The ending page resource (inclusive). Valid values are :offset | \"end\"",
           "required" : false,
           "type" : "string"
         } ],
         "responses" : {
           "200" : {
-            "description" : "Successful operation",
+            "description" : "Successful retrieval of all group entries",
             "schema" : {
-              "$ref" : "#/definitions/Wrapper"
+              "type" : "array",
+              "items" : {
+                "$ref" : "#/definitions/GroupResponse"
+              }
             }
-          },
-          "401" : {
-            "description" : "Not authenticated"
-          },
-          "403" : {
-            "description" : "Not permitted to perform the operation"
-          },
-          "404" : {
-            "description" : "Cluster or host not found"
-          },
-          "500" : {
-            "description" : "Internal server error"
           }
         }
       },
       "post" : {
-        "tags" : [ "hosts" ],
-        "summary" : "Creates a host",
-        "description" : "",
-        "operationId" : "createHost",
+        "tags" : [ "Groups" ],
+        "summary" : "Create new group",
+        "description" : "Creates group resource.",
+        "operationId" : "GroupService#createGroup",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "hostName",
-          "in" : "path",
-          "description" : "host name",
-          "required" : true,
-          "type" : "string"
-        }, {
           "in" : "body",
           "name" : "body",
-          "required" : false,
+          "description" : "input parameters in json form",
+          "required" : true,
           "schema" : {
-            "$ref" : "#/definitions/HostRequest"
+            "$ref" : "#/definitions/GroupRequest"
           }
         } ],
         "responses" : {
-          "201" : {
-            "description" : "Successful operation"
-          },
-          "202" : {
-            "description" : "Request is accepted, but not completely processed yet"
-          },
-          "400" : {
-            "description" : "Invalid arguments"
-          },
-          "401" : {
-            "description" : "Not authenticated"
-          },
-          "403" : {
-            "description" : "Not permitted to perform the operation"
-          },
-          "404" : {
-            "description" : "Cluster not found"
-          },
-          "409" : {
-            "description" : "Attempt to create a host which already exists"
+          "200" : {
+            "description" : "successful operation"
           },
           "500" : {
-            "description" : "Internal server error"
+            "description" : "Server Error"
           }
         }
-      },
-      "put" : {
-        "tags" : [ "hosts" ],
-        "summary" : "Updates a host",
-        "description" : "",
-        "operationId" : "updateHost",
+      }
+    },
+    "/groups/{groupName}" : {
+      "get" : {
+        "tags" : [ "Groups" ],
+        "summary" : "Get group",
+        "description" : "Returns group details.",
+        "operationId" : "GroupService#getGroup",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "hostName",
+          "name" : "groupName",
           "in" : "path",
-          "description" : "host name",
+          "description" : "group name",
           "required" : true,
           "type" : "string"
         }, {
-          "in" : "body",
-          "name" : "body",
+          "name" : "fields",
+          "in" : "query",
+          "description" : "Filter group details",
           "required" : false,
-          "schema" : {
-            "$ref" : "#/definitions/HostRequest"
-          }
+          "type" : "string",
+          "default" : "Groups"
         } ],
         "responses" : {
           "200" : {
-            "description" : "Successful operation"
-          },
-          "202" : {
-            "description" : "Request is accepted, but not completely processed yet"
-          },
-          "400" : {
-            "description" : "Invalid arguments"
-          },
-          "401" : {
-            "description" : "Not authenticated"
-          },
-          "403" : {
-            "description" : "Not permitted to perform the operation"
-          },
-          "404" : {
-            "description" : "Cluster or host not found"
-          },
-          "500" : {
-            "description" : "Internal server error"
+            "description" : "Successful retrieval of group resource",
+            "schema" : {
+              "$ref" : "#/definitions/GroupResponse"
+            }
           }
         }
       },
       "delete" : {
-        "tags" : [ "hosts" ],
-        "summary" : "Deletes a host",
-        "description" : "",
-        "operationId" : "deleteHost",
+        "tags" : [ "Groups" ],
+        "summary" : "Delete group",
+        "description" : "Delete group resource.",
+        "operationId" : "GroupService#deleteGroup",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "hostName",
+          "name" : "groupName",
           "in" : "path",
-          "description" : "host name",
+          "description" : "group name",
           "required" : true,
           "type" : "string"
         } ],
@@ -1733,42 +1763,39 @@
           "200" : {
             "description" : "Successful operation"
           },
-          "401" : {
-            "description" : "Not authenticated"
-          },
-          "403" : {
-            "description" : "Not permitted to perform the operation"
-          },
-          "404" : {
-            "description" : "Cluster or host not found"
-          },
           "500" : {
-            "description" : "Internal server error"
+            "description" : "Server Error"
           }
         }
       }
     },
-    "/requests" : {
+    "/groups/{groupName}/members" : {
       "get" : {
-        "tags" : [ "Requests" ],
-        "summary" : "Get all requests. A predicate can be given to filter results.",
-        "description" : "",
-        "operationId" : "RequestService#getRequests",
+        "tags" : [ "Groups" ],
+        "summary" : "Get all group members",
+        "description" : "Returns details of all members.",
+        "operationId" : "MemberService#getMembers",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
+          "name" : "groupName",
+          "in" : "path",
+          "description" : "group name",
+          "required" : true,
+          "type" : "string"
+        }, {
           "name" : "fields",
           "in" : "query",
-          "description" : "Filter fields in the response (identifier fields are mandatory)",
+          "description" : "Filter member details",
           "required" : false,
           "type" : "string",
-          "default" : "Requests/id"
+          "default" : "MemberInfo/*"
         }, {
           "name" : "sortBy",
           "in" : "query",
-          "description" : "Sort resources in result by (asc | desc)",
+          "description" : "Sort members (asc | desc)",
           "required" : false,
           "type" : "string",
-          "default" : "Requests/id.asc"
+          "default" : "MemberInfo/user_name.asc"
         }, {
           "name" : "page_size",
           "in" : "query",
@@ -1779,14 +1806,14 @@
         }, {
           "name" : "from",
           "in" : "query",
-          "description" : "The starting page resource (inclusive).  \"start\" is also accepted.",
+          "description" : "The starting page resource (inclusive). Valid values are :offset | \"start\"",
           "required" : false,
           "type" : "string",
           "default" : "0"
         }, {
           "name" : "to",
           "in" : "query",
-          "description" : "The ending page resource (inclusive).  \"end\" is also accepted.",
+          "description" : "The ending page resource (inclusive). Valid values are :offset | \"end\"",
           "required" : false,
           "type" : "string"
         } ],
@@ -1796,95 +1823,309 @@
             "schema" : {
               "type" : "array",
               "items" : {
-                "$ref" : "#/definitions/RequestResponse"
+                "$ref" : "#/definitions/MemberResponse"
               }
             }
-          },
-          "401" : {
-            "description" : "Not authenticated"
-          },
-          "500" : {
-            "description" : "Internal server error"
           }
         }
       },
-      "post" : {
-        "tags" : [ "Requests" ],
-        "summary" : "Creates one or more Requests",
-        "description" : "",
-        "operationId" : "RequestService#createRequests",
-        "produces" : [ "text/plain" ],
-        "parameters" : [ {
-          "in" : "body",
-          "name" : "body",
-          "required" : false,
+      "put" : {
+        "tags" : [ "Groups" ],
+        "summary" : "Update group members",
+        "description" : "Updates group member resources.",
+        "operationId" : "MemberService#updateMembers",
+        "produces" : [ "text/plain" ],
+        "parameters" : [ {
+          "name" : "groupName",
+          "in" : "path",
+          "description" : "group name",
+          "required" : true,
+          "type" : "string"
+        }, {
+          "in" : "body",
+          "name" : "body",
+          "description" : "input parameters in json form",
+          "required" : true,
           "schema" : {
-            "$ref" : "#/definitions/RequestPostRequest"
+            "$ref" : "#/definitions/MemberRequest"
           }
         } ],
         "responses" : {
-          "201" : {
+          "200" : {
             "description" : "Successful operation"
           },
-          "202" : {
-            "description" : "Request is accepted, but not completely processed yet",
+          "500" : {
+            "description" : "Server Error"
+          }
+        }
+      }
+    },
+    "/groups/{groupName}/members/{userName}" : {
+      "get" : {
+        "tags" : [ "Groups" ],
+        "summary" : "Get group member",
+        "description" : "Returns member details.",
+        "operationId" : "MemberService#getMember",
+        "produces" : [ "text/plain" ],
+        "parameters" : [ {
+          "name" : "groupName",
+          "in" : "path",
+          "description" : "group name",
+          "required" : true,
+          "type" : "string"
+        }, {
+          "name" : "userName",
+          "in" : "path",
+          "description" : "user name",
+          "required" : true,
+          "type" : "string"
+        }, {
+          "name" : "fields",
+          "in" : "query",
+          "description" : "Filter member details",
+          "required" : false,
+          "type" : "string",
+          "default" : "MemberInfo"
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Successful operation",
             "schema" : {
-              "$ref" : "#/definitions/RequestPostResponse"
+              "$ref" : "#/definitions/MemberResponse"
             }
-          },
-          "400" : {
-            "description" : "Invalid arguments"
-          },
-          "401" : {
-            "description" : "Not authenticated"
-          },
-          "403" : {
-            "description" : "Not permitted to perform the operation"
-          },
-          "404" : {
-            "description" : "The requested resource doesn't exist."
-          },
-          "409" : {
-            "description" : "The requested resource already exists."
+          }
+        }
+      },
+      "delete" : {
+        "tags" : [ "Groups" ],
+        "summary" : "Delete group member",
+        "description" : "Delete member resource.",
+        "operationId" : "MemberService#deleteMember",
+        "produces" : [ "text/plain" ],
+        "parameters" : [ {
+          "name" : "groupName",
+          "in" : "path",
+          "description" : "group name",
+          "required" : true,
+          "type" : "string"
+        }, {
+          "name" : "userName",
+          "in" : "path",
+          "description" : "user name",
+          "required" : true,
+          "type" : "string"
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Successful operation"
           },
           "500" : {
-            "description" : "Internal server error"
+            "description" : "Server Error"
           }
         }
       }
     },
-    "/requests/{requestId}" : {
+    "/groups/{groupName}/privileges" : {
       "get" : {
-        "tags" : [ "Requests" ],
-        "summary" : "Get the details of a request",
-        "description" : "",
-        "operationId" : "RequestService#getRequest",
+        "tags" : [ "Groups" ],
+        "summary" : "Get all privileges",
+        "description" : "Returns all privileges for group.",
+        "operationId" : "GroupPrivilegeService#getPrivileges",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "requestId",
+          "name" : "groupName",
           "in" : "path",
+          "description" : "group name",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "fields",
           "in" : "query",
+          "description" : "Filter user privileges",
+          "required" : false,
+          "type" : "string",
+          "default" : "PrivilegeInfo/*"
+        }, {
+          "name" : "sortBy",
+          "in" : "query",
+          "description" : "Sort user privileges (asc | desc)",
+          "required" : false,
+          "type" : "string",
+          "default" : "PrivilegeInfo/user_name.asc"
+        }, {
+          "name" : "page_size",
+          "in" : "query",
+          "description" : "The number of resources to be returned for the paged response.",
+          "required" : false,
+          "type" : "integer",
+          "default" : 10
+        }, {
+          "name" : "from",
+          "in" : "query",
+          "description" : "The starting page resource (inclusive). Valid values are :offset | \"start\"",
+          "required" : false,
+          "type" : "string",
+          "default" : "0"
+        }, {
+          "name" : "to",
+          "in" : "query",
+          "description" : "The ending page resource (inclusive). Valid values are :offset | \"end\"",
+          "required" : false,
+          "type" : "string"
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "successful operation",
+            "schema" : {
+              "type" : "array",
+              "items" : {
+                "$ref" : "#/definitions/GroupPrivilegeResponse"
+              }
+            }
+          }
+        }
+      }
+    },
+    "/groups/{groupName}/privileges/{privilegeId}" : {
+      "get" : {
+        "tags" : [ "Groups" ],
+        "summary" : "Get group privilege",
+        "description" : "Returns group privilege details.",
+        "operationId" : "GroupPrivilegeService#getPrivilege",
+        "produces" : [ "text/plain" ],
+        "parameters" : [ {
+          "name" : "groupName",
+          "in" : "path",
+          "description" : "group name",
+          "required" : true,
+          "type" : "string"
+        }, {
+          "name" : "privilegeId",
+          "in" : "path",
+          "description" : "privilege id",
+          "required" : true,
+          "type" : "string"
+        }, {
+          "name" : "fields",
+          "in" : "query",
+          "description" : "Filter group privilege details",
+          "required" : false,
+          "type" : "string",
+          "default" : "PrivilegeInfo/*"
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Successful operation",
+            "schema" : {
+              "$ref" : "#/definitions/PrivilegeResponse"
+            }
+          }
+        }
+      }
+    },
+    "/hosts" : {
+      "get" : {
+        "tags" : [ "hosts" ],
+        "summary" : "Returns a collection of all hosts",
+        "description" : "",
+        "operationId" : "getHosts",
+        "produces" : [ "text/plain" ],
+        "parameters" : [ {
+          "name" : "fields",
+          "in" : "query",
           "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
           "type" : "string",
-          "default" : "Requests/*"
+          "default" : "Hosts/*"
+        }, {
+          "name" : "sortBy",
+          "in" : "query",
+          "description" : "Sort resources in result by (asc | desc)",
+          "required" : false,
+          "type" : "string",
+          "default" : "Hosts/host_name.asc"
+        }, {
+          "name" : "page_size",
+          "in" : "query",
+          "description" : "The number of resources to be returned for the paged response.",
+          "required" : false,
+          "type" : "integer",
+          "default" : 10
+        }, {
+          "name" : "from",
+          "in" : "query",
+          "description" : "The starting page resource (inclusive).  \"start\" is also accepted.",
+          "required" : false,
+          "type" : "integer",
+          "default" : 0,
+          "minimum" : 0.0
+        }, {
+          "name" : "to",
+          "in" : "query",
+          "description" : "The ending page resource (inclusive).  \"end\" is also accepted.",
+          "required" : false,
+          "type" : "integer",
+          "minimum" : 1.0
         } ],
         "responses" : {
           "200" : {
             "description" : "Successful operation",
             "schema" : {
-              "$ref" : "#/definitions/RequestResponse"
+              "type" : "array",
+              "items" : {
+                "$ref" : "#/definitions/Wrapper"
+              }
             }
           },
           "401" : {
             "description" : "Not authenticated"
           },
+          "403" : {
+            "description" : "Not permitted to perform the operation"
+          },
           "404" : {
-            "description" : "The requested resource doesn't exist."
+            "description" : "Cluster not found"
+          },
+          "500" : {
+            "description" : "Internal server error"
+          }
+        }
+      },
+      "post" : {
+        "tags" : [ "hosts" ],
+        "summary" : "Creates multiple hosts in a single request",
+        "description" : "",
+        "operationId" : "createHosts",
+        "produces" : [ "text/plain" ],
+        "parameters" : [ {
+          "in" : "body",
+          "name" : "body",
+          "required" : false,
+          "schema" : {
+            "$ref" : "#/definitions/HostRequest"
+          }
+        } ],
+        "responses" : {
+          "201" : {
+            "description" : "Successful operation"
+          },
+          "202" : {
+            "description" : "Request is accepted, but not completely processed yet"
+          },
+          "400" : {
+            "description" : "Attempt to add hosts that have not been registered"
+          },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "403" : {
+            "description" : "Not permitted to perform the operation"
+          },
+          "404" : {
+            "description" : "Cluster not found"
+          },
+          "409" : {
+            "description" : "Attempt to create a host which already exists"
           },
           "500" : {
             "description" : "Internal server error"
@@ -1892,22 +2133,17 @@
         }
       },
       "put" : {
-        "tags" : [ "Requests" ],
-        "summary" : "Updates a request, usually used to cancel running requests.",
-        "description" : "Changes the state of an existing request. Usually used to cancel running requests.",
-        "operationId" : "RequestService#updateRequests",
+        "tags" : [ "hosts" ],
+        "summary" : "Updates multiple hosts in a single request",
+        "description" : "",
+        "operationId" : "updateHosts",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "requestId",
-          "in" : "path",
-          "required" : true,
-          "type" : "string"
-        }, {
           "in" : "body",
           "name" : "body",
           "required" : false,
           "schema" : {
-            "$ref" : "#/definitions/RequestPutRequest"
+            "$ref" : "#/definitions/HostRequest"
           }
         } ],
         "responses" : {
@@ -1927,38 +2163,30 @@
             "description" : "Not permitted to perform the operation"
           },
           "404" : {
-            "description" : "The requested resource doesn't exist."
+            "description" : "Cluster or host not found"
           },
           "500" : {
             "description" : "Internal server error"
           }
         }
-      }
-    },
-    "/services" : {
-      "get" : {
-        "tags" : [ "services" ],
-        "summary" : "Returns the list of root-level services",
+      },
+      "delete" : {
+        "tags" : [ "hosts" ],
+        "summary" : "Deletes multiple hosts in a single request",
         "description" : "",
-        "operationId" : "getRootServices",
+        "operationId" : "deleteHosts",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "fields",
-          "in" : "query",
-          "description" : "Filter fields in the response (identifier fields are mandatory)",
+          "in" : "body",
+          "name" : "body",
           "required" : false,
-          "type" : "string",
-          "default" : "RootService/service_name"
+          "schema" : {
+            "$ref" : "#/definitions/HostRequest"
+          }
         } ],
         "responses" : {
           "200" : {
-            "description" : "Successful operation",
-            "schema" : {
-              "type" : "array",
-              "items" : {
-                "$ref" : "#/definitions/RootServiceResponseWrapper"
-              }
-            }
+            "description" : "Successful operation"
           },
           "401" : {
             "description" : "Not authenticated"
@@ -1966,23 +2194,26 @@
           "403" : {
             "description" : "Not permitted to perform the operation"
           },
+          "404" : {
+            "description" : "Cluster or host not found"
+          },
           "500" : {
             "description" : "Internal server error"
           }
         }
       }
     },
-    "/services/{serviceName}" : {
+    "/hosts/{hostName}" : {
       "get" : {
-        "tags" : [ "services" ],
-        "summary" : "Returns information about the given root-level service, including a list of its components",
+        "tags" : [ "hosts" ],
+        "summary" : "Returns information about a single host",
         "description" : "",
-        "operationId" : "getRootService",
+        "operationId" : "getHost",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "serviceName",
+          "name" : "hostName",
           "in" : "path",
-          "description" : "service name",
+          "description" : "host name",
           "required" : true,
           "type" : "string"
         }, {
@@ -1990,14 +2221,13 @@
           "in" : "query",
           "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
-          "type" : "string",
-          "default" : "RootService/service_name, components/RootServiceComponents/component_name, components/RootServiceComponents/service_name"
+          "type" : "string"
         } ],
         "responses" : {
           "200" : {
             "description" : "Successful operation",
             "schema" : {
-              "$ref" : "#/definitions/RootServiceResponseWithComponentList"
+              "$ref" : "#/definitions/Wrapper"
             }
           },
           "401" : {
@@ -2007,44 +2237,42 @@
             "description" : "Not permitted to perform the operation"
           },
           "404" : {
-            "description" : "The requested resource doesn't exist."
+            "description" : "Cluster or host not found"
           },
           "500" : {
             "description" : "Internal server error"
           }
         }
-      }
-    },
-    "/services/{serviceName}/components" : {
-      "get" : {
-        "tags" : [ "services" ],
-        "summary" : "Returns the list of components for the given root-level service",
+      },
+      "post" : {
+        "tags" : [ "hosts" ],
+        "summary" : "Creates a host",
         "description" : "",
-        "operationId" : "getRootServiceComponents",
+        "operationId" : "createHost",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "serviceName",
+          "name" : "hostName",
           "in" : "path",
-          "description" : "service name",
+          "description" : "host name",
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "fields",
-          "in" : "query",
-          "description" : "Filter fields in the response (identifier fields are mandatory)",
+          "in" : "body",
+          "name" : "body",
           "required" : false,
-          "type" : "string",
-          "default" : "RootServiceComponents/component_name, RootServiceComponents/service_name"
+          "schema" : {
+            "$ref" : "#/definitions/HostRequest"
+          }
         } ],
         "responses" : {
-          "200" : {
-            "description" : "Successful operation",
-            "schema" : {
-              "type" : "array",
-              "items" : {
-                "$ref" : "#/definitions/RootServiceComponentResponseWrapper"
-              }
-            }
+          "201" : {
+            "description" : "Successful operation"
+          },
+          "202" : {
+            "description" : "Request is accepted, but not completely processed yet"
+          },
+          "400" : {
+            "description" : "Invalid arguments"
           },
           "401" : {
             "description" : "Not authenticated"
@@ -2053,100 +2281,179 @@
             "description" : "Not permitted to perform the operation"
           },
           "404" : {
-            "description" : "The requested resource doesn't exist."
+            "description" : "Cluster not found"
+          },
+          "409" : {
+            "description" : "Attempt to create a host which already exists"
           },
           "500" : {
             "description" : "Internal server error"
           }
         }
-      }
-    },
-    "/services/{serviceName}/components/{componentName}" : {
-      "get" : {
-        "tags" : [ "services" ],
-        "summary" : "Returns information about the given component for the given root-level service",
+      },
+      "put" : {
+        "tags" : [ "hosts" ],
+        "summary" : "Updates a host",
         "description" : "",
-        "operationId" : "getRootServiceComponent",
+        "operationId" : "updateHost",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "serviceName",
+          "name" : "hostName",
           "in" : "path",
-          "description" : "service name",
+          "description" : "host name",
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "componentName",
+          "in" : "body",
+          "name" : "body",
+          "required" : false,
+          "schema" : {
+            "$ref" : "#/definitions/HostRequest"
+          }
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Successful operation"
+          },
+          "202" : {
+            "description" : "Request is accepted, but not completely processed yet"
+          },
+          "400" : {
+            "description" : "Invalid arguments"
+          },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "403" : {
+            "description" : "Not permitted to perform the operation"
+          },
+          "404" : {
+            "description" : "Cluster or host not found"
+          },
+          "500" : {
+            "description" : "Internal server error"
+          }
+        }
+      },
+      "delete" : {
+        "tags" : [ "hosts" ],
+        "summary" : "Deletes a host",
+        "description" : "",
+        "operationId" : "deleteHost",
+        "produces" : [ "text/plain" ],
+        "parameters" : [ {
+          "name" : "hostName",
           "in" : "path",
-          "description" : "component name",
+          "description" : "host name",
           "required" : true,
           "type" : "string"
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Successful operation"
+          },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "403" : {
+            "description" : "Not permitted to perform the operation"
+          },
+          "404" : {
+            "description" : "Cluster or host not found"
+          },
+          "500" : {
+            "description" : "Internal server error"
+          }
+        }
+      }
+    },
+    "/requests" : {
+      "get" : {
+        "tags" : [ "Requests" ],
+        "summary" : "Get all requests. A predicate can be given to filter results.",
+        "description" : "",
+        "operationId" : "RequestService#getRequests",
+        "produces" : [ "text/plain" ],
+        "parameters" : [ {
+          "name" : "fields",
+          "in" : "query",
+          "description" : "Filter fields in the response (identifier fields are mandatory)",
+          "required" : false,
+          "type" : "string",
+          "default" : "Requests/id"
+        }, {
+          "name" : "sortBy",
+          "in" : "query",
+          "description" : "Sort resources in result by (asc | desc)",
+          "required" : false,
+          "type" : "string",
+          "default" : "Requests/id.asc"
         }, {
-          "name" : "fields",
+          "name" : "page_size",
           "in" : "query",
-          "description" : "Filter fields in the response (identifier fields are mandatory)",
+          "description" : "The number of resources to be returned for the paged response.",
+          "required" : false,
+          "type" : "integer",
+          "default" : 10
+        }, {
+          "name" : "from",
+          "in" : "query",
+          "description" : "The starting page resource (inclusive).  \"start\" is also accepted.",
           "required" : false,
           "type" : "string",
-          "default" : "RootServiceComponents/*, hostComponents/RootServiceHostComponents/component_name, hostComponents/RootServiceHostComponents/host_name, hostComponents/RootServiceHostComponents/service_name"
+          "default" : "0"
+        }, {
+          "name" : "to",
+          "in" : "query",
+          "description" : "The ending page resource (inclusive).  \"end\" is also accepted.",
+          "required" : false,
+          "type" : "string"
         } ],
         "responses" : {
           "200" : {
             "description" : "Successful operation",
             "schema" : {
-              "$ref" : "#/definitions/RootServiceComponentWithHostComponentList"
+              "type" : "array",
+              "items" : {
+                "$ref" : "#/definitions/RequestResponse"
+              }
             }
           },
           "401" : {
             "description" : "Not authenticated"
           },
-          "403" : {
-            "description" : "Not permitted to perform the operation"
-          },
-          "404" : {
-            "description" : "The requested resource doesn't exist."
-          },
           "500" : {
             "description" : "Internal server error"
           }
         }
-      }
-    },
-    "/services/{serviceName}/components/{componentName}/hostComponents" : {
-      "get" : {
-        "tags" : [ "services" ],
-        "summary" : "Returns the list of hosts for the given root-level service component",
+      },
+      "post" : {
+        "tags" : [ "Requests" ],
+        "summary" : "Creates one or more Requests",
         "description" : "",
-        "operationId" : "getRootServiceComponentHosts",
+        "operationId" : "RequestService#createRequests",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "serviceName",
-          "in" : "path",
-          "description" : "service name",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "componentName",
-          "in" : "path",
-          "description" : "component name",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "fields",
-          "in" : "query",
-          "description" : "Filter fields in the response (identifier fields are mandatory)",
+          "in" : "body",
+          "name" : "body",
           "required" : false,
-          "type" : "string",
-          "default" : "RootServiceHostComponents/component_name, RootServiceHostComponents/host_name, RootServiceHostComponents/service_name"
+          "schema" : {
+            "$ref" : "#/definitions/RequestPostRequest"
+          }
         } ],
         "responses" : {
-          "200" : {
-            "description" : "Successful operation",
+          "201" : {
+            "description" : "Successful operation"
+          },
+          "202" : {
+            "description" : "Request is accepted, but not completely processed yet",
             "schema" : {
-              "type" : "array",
-              "items" : {
-                "$ref" : "#/definitions/RootServiceHostComponentResponseWrapper"
-              }
+              "$ref" : "#/definitions/RequestPostResponse"
             }
           },
+          "400" : {
+            "description" : "Invalid arguments"
+          },
           "401" : {
             "description" : "Not authenticated"
           },
@@ -2156,43 +2463,45 @@
           "404" : {
             "description" : "The requested resource doesn't exist."
           },
+          "409" : {
+            "description" : "The requested resource already exists."
+          },
           "500" : {
             "description" : "Internal server error"
           }
         }
       }
     },
-    "/services/{serviceName}/hosts" : {
+    "/requests/{requestId}" : {
       "get" : {
-        "tags" : [ "services" ],
-        "summary" : "Returns the list of hosts for the given root-level service",
+        "tags" : [ "Requests" ],
+        "summary" : "Get the details of a request",
         "description" : "",
-        "operationId" : "getRootHosts",
+        "operationId" : "RequestService#getRequest",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
+          "name" : "requestId",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
+        }, {
           "name" : "fields",
           "in" : "query",
           "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
           "type" : "string",
-          "default" : "Hosts/host_name"
+          "default" : "Requests/*"
         } ],
         "responses" : {
           "200" : {
             "description" : "Successful operation",
             "schema" : {
-              "type" : "array",
-              "items" : {
-                "$ref" : "#/definitions/Wrapper"
-              }
+              "$ref" : "#/definitions/RequestResponse"
             }
           },
           "401" : {
             "description" : "Not authenticated"
           },
-          "403" : {
-            "description" : "Not permitted to perform the operation"
-          },
           "404" : {
             "description" : "The requested resource doesn't exist."
           },
@@ -2200,35 +2509,35 @@
             "description" : "Internal server error"
           }
         }
-      }
-    },
-    "/services/{serviceName}/hosts/{hostName}" : {
-      "get" : {
-        "tags" : [ "services" ],
-        "summary" : "Returns information about the given host",
-        "description" : "",
-        "operationId" : "getRootHost",
+      },
+      "put" : {
+        "tags" : [ "Requests" ],
+        "summary" : "Updates a request, usually used to cancel running requests.",
+        "description" : "Changes the state of an existing request. Usually used to cancel running requests.",
+        "operationId" : "RequestService#updateRequests",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "hostName",
+          "name" : "requestId",
           "in" : "path",
-          "description" : "host name",
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "fields",
-          "in" : "query",
-          "description" : "Filter fields in the response (identifier fields are mandatory)",
+          "in" : "body",
+          "name" : "body",
           "required" : false,
-          "type" : "string",
-          "default" : "Hosts/*"
+          "schema" : {
+            "$ref" : "#/definitions/RequestPutRequest"
+          }
         } ],
         "responses" : {
           "200" : {
-            "description" : "Successful operation",
-            "schema" : {
-              "$ref" : "#/definitions/Wrapper"
-            }
+            "description" : "Successful operation"
+          },
+          "202" : {
+            "description" : "Request is accepted, but not completely processed yet"
+          },
+          "400" : {
+            "description" : "Invalid arguments"
           },
           "401" : {
             "description" : "Not authenticated"
@@ -2245,32 +2554,20 @@
         }
       }
     },
-    "/services/{serviceName}/hosts/{hostName}/hostComponents" : {
+    "/services" : {
       "get" : {
         "tags" : [ "services" ],
-        "summary" : "Returns the list of components for the given root-level service on the given host",
+        "summary" : "Returns the list of root-level services",
         "description" : "",
-        "operationId" : "getRootServiceHostComponents",
+        "operationId" : "getRootServices",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "serviceName",
-          "in" : "path",
-          "description" : "service name",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "hostName",
-          "in" : "path",
-          "description" : "host name",
-          "required" : true,
-          "type" : "string"
-        }, {
           "name" : "fields",
           "in" : "query",
           "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
           "type" : "string",
-          "default" : "RootServiceHostComponents/component_name, RootServiceHostComponents/host_name, RootServiceHostComponents/service_name"
+          "default" : "RootService/service_name"
         } ],
         "responses" : {
           "200" : {
@@ -2278,7 +2575,7 @@
             "schema" : {
               "type" : "array",
               "items" : {
-                "$ref" : "#/definitions/RootServiceHostComponentResponseWrapper"
+                "$ref" : "#/definitions/RootServiceResponseWrapper"
               }
             }
           },
@@ -2288,21 +2585,18 @@
           "403" : {
             "description" : "Not permitted to perform the operation"
           },
-          "404" : {
-            "description" : "The requested resource doesn't exist."
-          },
           "500" : {
             "description" : "Internal server error"
           }
         }
       }
     },
-    "/services/{serviceName}/hosts/{hostName}/hostComponents/{hostComponent}" : {
+    "/services/{serviceName}" : {
       "get" : {
         "tags" : [ "services" ],
-        "summary" : "Returns information about the given component for the given root-level service on the given host",
+        "summary" : "Returns information about the given root-level service, including a list of its components",
         "description" : "",
-        "operationId" : "getRootServiceHostComponent",
+        "operationId" : "getRootService",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
           "name" : "serviceName",
@@ -2311,30 +2605,18 @@
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "hostName",
-          "in" : "path",
-          "description" : "host name",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "hostComponent",
-          "in" : "path",
-          "description" : "component name",
-          "required" : true,
-          "type" : "string"
-        }, {
           "name" : "fields",
           "in" : "query",
           "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
           "type" : "string",
-          "default" : "RootServiceHostComponents/component_name, RootServiceHostComponents/host_name, RootServiceHostComponents/service_name"
+          "default" : "RootService/service_name, components/RootServiceComponents/component_name, components/RootServiceComponents/service_name"
         } ],
         "responses" : {
           "200" : {
             "description" : "Successful operation",
             "schema" : {
-              "$ref" : "#/definitions/RootServiceHostComponentResponseWrapper"
+              "$ref" : "#/definitions/RootServiceResponseWithComponentList"
             }
           },
           "401" : {
@@ -2352,48 +2634,26 @@
         }
       }
     },
-    "/settings" : {
+    "/services/{serviceName}/components" : {
       "get" : {
-        "tags" : [ "settings" ],
-        "summary" : "Returns all settings",
+        "tags" : [ "services" ],
+        "summary" : "Returns the list of components for the given root-level service",
         "description" : "",
-        "operationId" : "getSettings",
+        "operationId" : "getRootServiceComponents",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
+          "name" : "serviceName",
+          "in" : "path",
+          "description" : "service name",
+          "required" : true,
+          "type" : "string"
+        }, {
           "name" : "fields",
           "in" : "query",
           "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
           "type" : "string",
-          "default" : "Settings/name"
-        }, {
-          "name" : "sortBy",
-          "in" : "query",
-          "description" : "Sort resources in result by (asc | desc)",
-          "required" : false,
-          "type" : "string"
-        }, {
-          "name" : "page_size",
-          "in" : "query",
-          "description" : "The number of resources to be returned for the paged response.",
-          "required" : false,
-          "type" : "integer",
-          "default" : 10
-        }, {
-          "name" : "from",
-          "in" : "query",
-          "description" : "The starting page resource (inclusive).  \"start\" is also accepted.",
-          "required" : false,
-          "type" : "integer",
-          "default" : 0,
-          "minimum" : 0.0
-        }, {
-          "name" : "to",
-          "in" : "query",
-          "description" : "The ending page resource (inclusive).  \"end\" is also accepted.",
-          "required" : false,
-          "type" : "integer",
-          "minimum" : 1.0
+          "default" : "RootServiceComponents/component_name, RootServiceComponents/service_name"
         } ],
         "responses" : {
           "200" : {
@@ -2401,7 +2661,7 @@
             "schema" : {
               "type" : "array",
               "items" : {
-                "$ref" : "#/definitions/SettingResponseWrapper"
+                "$ref" : "#/definitions/RootServiceComponentResponseWrapper"
               }
             }
           },
@@ -2411,34 +2671,48 @@
           "403" : {
             "description" : "Not permitted to perform the operation"
           },
+          "404" : {
+            "description" : "The requested resource doesn't exist."
+          },
           "500" : {
             "description" : "Internal server error"
           }
         }
-      },
-      "post" : {
-        "tags" : [ "settings" ],
-        "summary" : "Creates a setting",
+      }
+    },
+    "/services/{serviceName}/components/{componentName}" : {
+      "get" : {
+        "tags" : [ "services" ],
+        "summary" : "Returns information about the given component for the given root-level service",
         "description" : "",
-        "operationId" : "createSetting",
+        "operationId" : "getRootServiceComponent",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "in" : "body",
-          "name" : "body",
+          "name" : "serviceName",
+          "in" : "path",
+          "description" : "service name",
           "required" : true,
-          "schema" : {
-            "$ref" : "#/definitions/SettingRequestSwagger"
-          }
+          "type" : "string"
+        }, {
+          "name" : "componentName",
+          "in" : "path",
+          "description" : "component name",
+          "required" : true,
+          "type" : "string"
+        }, {
+          "name" : "fields",
+          "in" : "query",
+          "description" : "Filter fields in the response (identifier fields are mandatory)",
+          "required" : false,
+          "type" : "string",
+          "default" : "RootServiceComponents/*, hostComponents/RootServiceHostComponents/component_name, hostComponents/RootServiceHostComponents/host_name, hostComponents/RootServiceHostComponents/service_name"
         } ],
         "responses" : {
-          "201" : {
-            "description" : "Successful operation"
-          },
-          "202" : {
-            "description" : "Request is accepted, but not completely processed yet"
-          },
-          "400" : {
-            "description" : "Invalid arguments"
+          "200" : {
+            "description" : "Successful operation",
+            "schema" : {
+              "$ref" : "#/definitions/RootServiceComponentWithHostComponentList"
+            }
           },
           "401" : {
             "description" : "Not authenticated"
@@ -2447,10 +2721,7 @@
             "description" : "Not permitted to perform the operation"
           },
           "404" : {
-            "description" : "Cluster not found"
-          },
-          "409" : {
-            "description" : "The requested resource already exists."
+            "description" : "The requested resource doesn't exist."
           },
           "500" : {
             "description" : "Internal server error"
@@ -2458,17 +2729,23 @@
         }
       }
     },
-    "/settings/{settingName}" : {
+    "/services/{serviceName}/components/{componentName}/hostComponents" : {
       "get" : {
-        "tags" : [ "settings" ],
-        "summary" : "Returns a specific setting",
+        "tags" : [ "services" ],
+        "summary" : "Returns the list of hosts for the given root-level service component",
         "description" : "",
-        "operationId" : "getSetting",
+        "operationId" : "getRootServiceComponentHosts",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "settingName",
+          "name" : "serviceName",
           "in" : "path",
-          "description" : "setting name",
+          "description" : "service name",
+          "required" : true,
+          "type" : "string"
+        }, {
+          "name" : "componentName",
+          "in" : "path",
+          "description" : "component name",
           "required" : true,
           "type" : "string"
         }, {
@@ -2477,41 +2754,16 @@
           "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
           "type" : "string",
-          "default" : "Settings/*"
-        }, {
-          "name" : "sortBy",
-          "in" : "query",
-          "description" : "Sort resources in result by (asc | desc)",
-          "required" : false,
-          "type" : "string"
-        }, {
-          "name" : "page_size",
-          "in" : "query",
-          "description" : "The number of resources to be returned for the paged response.",
-          "required" : false,
-          "type" : "integer",
-          "default" : 10
-        }, {
-          "name" : "from",
-          "in" : "query",
-          "description" : "The starting page resource (inclusive).  \"start\" is also accepted.",
-          "required" : false,
-          "type" : "integer",
-          "default" : 0,
-          "minimum" : 0.0
-        }, {
-          "name" : "to",
-          "in" : "query",
-          "description" : "The ending page resource (inclusive).  \"end\" is also accepted.",
-          "required" : false,
-          "type" : "integer",
-          "minimum" : 1.0
+          "default" : "RootServiceHostComponents/component_name, RootServiceHostComponents/host_name, RootServiceHostComponents/service_name"
         } ],
         "responses" : {
           "200" : {
             "description" : "Successful operation",
             "schema" : {
-              "$ref" : "#/definitions/SettingResponseWrapper"
+              "type" : "array",
+              "items" : {
+                "$ref" : "#/definitions/RootServiceHostComponentResponseWrapper"
+              }
             }
           },
           "401" : {
@@ -2527,30 +2779,32 @@
             "description" : "Internal server error"
           }
         }
-      },
-      "put" : {
-        "tags" : [ "settings" ],
-        "summary" : "Updates a setting",
+      }
+    },
+    "/services/{serviceName}/hosts" : {
+      "get" : {
+        "tags" : [ "services" ],
+        "summary" : "Returns the list of hosts for the given root-level service",
         "description" : "",
-        "operationId" : "updateSetting",
+        "operationId" : "getRootHosts",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "settingName",
-          "in" : "path",
-          "description" : "setting name",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "in" : "body",
-          "name" : "body",
-          "required" : true,
-          "schema" : {
-            "$ref" : "#/definitions/SettingRequestSwagger"
-          }
+          "name" : "fields",
+          "in" : "query",
+          "description" : "Filter fields in the response (identifier fields are mandatory)",
+          "required" : false,
+          "type" : "string",
+          "default" : "Hosts/host_name"
         } ],
         "responses" : {
           "200" : {
-            "description" : "Successful operation"
+            "description" : "Successful operation",
+            "schema" : {
+              "type" : "array",
+              "items" : {
+                "$ref" : "#/definitions/Wrapper"
+              }
+            }
           },
           "401" : {
             "description" : "Not authenticated"
@@ -2565,23 +2819,35 @@
             "description" : "Internal server error"
           }
         }
-      },
-      "delete" : {
-        "tags" : [ "settings" ],
-        "summary" : "Deletes a setting",
+      }
+    },
+    "/services/{serviceName}/hosts/{hostName}" : {
+      "get" : {
+        "tags" : [ "services" ],
+        "summary" : "Returns information about the given host",
         "description" : "",
-        "operationId" : "deleteSetting",
+        "operationId" : "getRootHost",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "settingName",
+          "name" : "hostName",
           "in" : "path",
-          "description" : "setting name",
+          "description" : "host name",
           "required" : true,
           "type" : "string"
+        }, {
+          "name" : "fields",
+          "in" : "query",
+          "description" : "Filter fields in the response (identifier fields are mandatory)",
+          "required" : false,
+          "type" : "string",
+          "default" : "Hosts/*"
         } ],
         "responses" : {
           "200" : {
-            "description" : "Successful operation"
+            "description" : "Successful operation",
+            "schema" : {
+              "$ref" : "#/definitions/Wrapper"
+            }
           },
           "401" : {
             "description" : "Not authenticated"
@@ -2598,47 +2864,32 @@
         }
       }
     },
-    "/stacks" : {
+    "/services/{serviceName}/hosts/{hostName}/hostComponents" : {
       "get" : {
-        "tags" : [ "Stacks" ],
-        "summary" : "Get all stacks",
-        "description" : "Returns all stacks.",
-        "operationId" : "StacksService#getStacks",
+        "tags" : [ "services" ],
+        "summary" : "Returns the list of components for the given root-level service on the given host",
+        "description" : "",
+        "operationId" : "getRootServiceHostComponents",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "fields",
-          "in" : "query",
-          "description" : "Filter stack details",
-          "required" : false,
-          "type" : "string",
-          "default" : "Stacks/stack_name"
-        }, {
-          "name" : "sortBy",
-          "in" : "query",
-          "description" : "Sort stack privileges (asc | desc)",
-          "required" : false,
-          "type" : "string",
-          "default" : "Stacks/stack_name.asc"
+          "name" : "serviceName",
+          "in" : "path",
+          "description" : "service name",
+          "required" : true,
+          "type" : "string"
         }, {
-          "name" : "page_size",
-          "in" : "query",
-          "description" : "The number of resources to be returned for the paged response.",
-          "required" : false,
-          "type" : "integer",
-          "default" : 10
+          "name" : "hostName",
+          "in" : "path",
+          "description" : "host name",
+          "required" : true,
+          "type" : "string"
         }, {
-          "name" : "from",
+          "name" : "fields",
           "in" : "query",
-          "description" : "The starting page resource (inclusive).  \"start\" is also accepted.",
+          "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
           "type" : "string",
-          "default" : "0"
-        }, {
-          "name" : "to",
-          "in" : "query",
-          "description" : "The ending page resource (inclusive).  \"end\" is also accepted.",
-          "required" : false,
-          "type" : "string"
+          "default" : "RootServiceHostComponents/component_name, RootServiceHostComponents/host_name, RootServiceHostComponents/service_name"
         } ],
         "responses" : {
           "200" : {
@@ -2646,46 +2897,71 @@
             "schema" : {
               "type" : "array",
               "items" : {
-                "$ref" : "#/definitions/StackResponseSwagger"
+                "$ref" : "#/definitions/RootServiceHostComponentResponseWrapper"
               }
             }
           },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "403" : {
+            "description" : "Not permitted to perform the operation"
+          },
+          "404" : {
+            "description" : "The requested resource doesn't exist."
+          },
           "500" : {
             "description" : "Internal server error"
           }
         }
       }
     },
-    "/stacks/{stackName}" : {
+    "/services/{serviceName}/hosts/{hostName}/hostComponents/{hostComponent}" : {
       "get" : {
-        "tags" : [ "Stacks" ],
-        "summary" : "Get a stack",
-        "description" : "Returns stack details.",
-        "operationId" : "StacksService#getStack",
+        "tags" : [ "services" ],
+        "summary" : "Returns information about the given component for the given root-level service on the given host",
+        "description" : "",
+        "operationId" : "getRootServiceHostComponent",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "stackName",
+          "name" : "serviceName",
+          "in" : "path",
+          "description" : "service name",
+          "required" : true,
+          "type" : "string"
+        }, {
+          "name" : "hostName",
+          "in" : "path",
+          "description" : "host name",
+          "required" : true,
+          "type" : "string"
+        }, {
+          "name" : "hostComponent",
           "in" : "path",
+          "description" : "component name",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "fields",
           "in" : "query",
-          "description" : "Filter stack details",
+          "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
           "type" : "string",
-          "default" : "Stacks/*"
+          "default" : "RootServiceHostComponents/component_name, RootServiceHostComponents/host_name, RootServiceHostComponents/service_name"
         } ],
         "responses" : {
           "200" : {
             "description" : "Successful operation",
             "schema" : {
-              "type" : "array",
-              "items" : {
-                "$ref" : "#/definitions/StackResponseSwagger"
-              }
+              "$ref" : "#/definitions/RootServiceHostComponentResponseWrapper"
             }
           },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "403" : {
+            "description" : "Not permitted to perform the operation"
+          },
           "404" : {
             

<TRUNCATED>