You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2017/05/25 02:04:38 UTC

[2/4] ambari git commit: AMBARI-21114 - Fix Unit Test Failures From Prior Patch/Service Upgrade Commits (jonathanhurley)

http://git-wip-us.apache.org/repos/asf/ambari/blob/770c519a/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 f7dbb6b..d7d54a5 100644
--- a/ambari-server/docs/api/generated/swagger.json
+++ b/ambari-server/docs/api/generated/swagger.json
@@ -11,37 +11,65 @@
   },
   "basePath" : "/api/v1",
   "tags" : [ {
+    "name" : "Actions",
+    "description" : "Endpoint for action definition specific operations"
+  }, {
+    "name" : "Blueprints",
+    "description" : "Endpoint for blueprint 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"
+    "name" : "Views",
+    "description" : "Endpoint for view specific operations"
+  }, {
+    "name" : "clusters",
+    "description" : "Endpoint for cluster-specific operations"
+  }, {
+    "name" : "hosts",
+    "description" : "Endpoint for host-specific operations"
+  }, {
+    "name" : "services",
+    "description" : "Endpoint for querying root-level services, ie. Ambari Server and Ambari Agents"
+  }, {
+    "name" : "settings",
+    "description" : "Endpoint for settings-specific operations"
   } ],
   "schemes" : [ "http", "https" ],
   "paths" : {
-    "/groups" : {
+    "/actions" : {
       "get" : {
-        "tags" : [ "Groups" ],
-        "summary" : "Get all groups",
-        "description" : "Returns details of all groups.",
-        "operationId" : "GroupService#getGroups",
+        "tags" : [ "Actions" ],
+        "summary" : "Get all action definitions",
+        "description" : "",
+        "operationId" : "ActionService#getActionDefinitions",
         "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" : "Actions/action_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" : "Actions/action_name.asc"
         }, {
           "name" : "page_size",
           "in" : "query",
@@ -52,134 +80,191 @@
         }, {
           "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"
         } ],
         "responses" : {
           "200" : {
-            "description" : "Successful retrieval of all group entries",
+            "description" : "Successful operation",
             "schema" : {
               "type" : "array",
               "items" : {
-                "$ref" : "#/definitions/GroupResponse"
+                "$ref" : "#/definitions/ActionResponseSwagger"
               }
             }
+          },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "500" : {
+            "description" : "Internal server error"
+          }
+        }
+      }
+    },
+    "/actions/{actionName}" : {
+      "get" : {
+        "tags" : [ "Actions" ],
+        "summary" : "Get the details of an action definition",
+        "description" : "",
+        "operationId" : "ActionService#getActionDefinition",
+        "produces" : [ "text/plain" ],
+        "parameters" : [ {
+          "name" : "actionName",
+          "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" : "Actions/*"
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Successful operation",
+            "schema" : {
+              "$ref" : "#/definitions/ActionResponseSwagger"
+            }
+          },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "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" : [ "Actions" ],
+        "summary" : "Creates an action definition - Currently Not Supported",
+        "description" : "",
+        "operationId" : "ActionService#createActionDefinition",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
+          "name" : "actionName",
+          "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/ActionRequestSwagger"
           }
         } ],
         "responses" : {
-          "200" : {
-            "description" : "successful operation"
+          "400" : {
+            "description" : "Invalid request"
+          },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "403" : {
+            "description" : "Not permitted to perform the operation"
           },
           "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" : [ "Actions" ],
+        "summary" : "Updates an action definition - Currently Not Supported",
+        "description" : "",
+        "operationId" : "ActionService#updateActionDefinition",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "groupName",
+          "name" : "actionName",
           "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/ActionRequestSwagger"
+          }
         } ],
         "responses" : {
-          "200" : {
-            "description" : "Successful retrieval of group resource",
-            "schema" : {
-              "$ref" : "#/definitions/GroupResponse"
-            }
+          "400" : {
+            "description" : "Invalid request"
+          },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "403" : {
+            "description" : "Not permitted to perform the operation"
+          },
+          "500" : {
+            "description" : "Internal server error"
           }
         }
       },
       "delete" : {
-        "tags" : [ "Groups" ],
-        "summary" : "Delete group",
-        "description" : "Delete group resource.",
-        "operationId" : "GroupService#deleteGroup",
+        "tags" : [ "Actions" ],
+        "summary" : "Deletes an action definition - Currently Not Supported",
+        "description" : "",
+        "operationId" : "ActionService#deleteActionDefinition",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "groupName",
+          "name" : "actionName",
           "in" : "path",
-          "description" : "group name",
           "required" : true,
           "type" : "string"
         } ],
         "responses" : {
-          "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" : {
+    "/blueprints" : {
       "get" : {
-        "tags" : [ "Groups" ],
-        "summary" : "Get all group members",
-        "description" : "Returns details of all members.",
-        "operationId" : "MemberService#getMembers",
+        "tags" : [ "Blueprints" ],
+        "summary" : "Get all blueprints",
+        "description" : "",
+        "operationId" : "BlueprintService#getBlueprints",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "groupName",
-          "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" : "Blueprints/blueprint_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" : "Blueprints/blueprint_name.asc"
         }, {
           "name" : "page_size",
           "in" : "query",
@@ -190,14 +275,14 @@
         }, {
           "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"
         } ],
@@ -207,95 +292,139 @@
             "schema" : {
               "type" : "array",
               "items" : {
-                "$ref" : "#/definitions/MemberResponse"
+                "$ref" : "#/definitions/BlueprintSwagger"
               }
             }
+          },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "500" : {
+            "description" : "Internal server error"
           }
         }
       },
-      "put" : {
-        "tags" : [ "Groups" ],
-        "summary" : "Update group members",
-        "description" : "Updates group member resources.",
-        "operationId" : "MemberService#updateMembers",
+      "delete" : {
+        "tags" : [ "Blueprints" ],
+        "summary" : "Deletes multiple blueprints that match the predicate. Omitting the predicate will delete all blueprints.",
+        "description" : "",
+        "operationId" : "BlueprintService#deleteBlueprints",
         "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/MemberRequest"
-          }
-        } ],
         "responses" : {
           "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/{userName}" : {
+    "/blueprints/{blueprintName}" : {
       "get" : {
-        "tags" : [ "Groups" ],
-        "summary" : "Get group member",
-        "description" : "Returns member details.",
-        "operationId" : "MemberService#getMember",
+        "tags" : [ "Blueprints" ],
+        "summary" : "Get the details of a blueprint",
+        "description" : "",
+        "operationId" : "BlueprintService#getBlueprint",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "groupName",
-          "in" : "path",
-          "description" : "group name",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "userName",
+          "name" : "blueprintName",
           "in" : "path",
-          "description" : "user 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" : "Blueprints/*"
         } ],
         "responses" : {
           "200" : {
             "description" : "Successful operation",
             "schema" : {
-              "$ref" : "#/definitions/MemberResponse"
+              "type" : "array",
+              "items" : {
+                "$ref" : "#/definitions/BlueprintSwagger"
+              }
             }
+          },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "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",
+      "post" : {
+        "tags" : [ "Blueprints" ],
+        "summary" : "Creates a blueprint",
+        "description" : "",
+        "operationId" : "BlueprintService#createBlueprint",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "groupName",
+          "name" : "blueprintName",
           "in" : "path",
-          "description" : "group name",
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "userName",
+          "in" : "body",
+          "name" : "body",
+          "required" : false,
+          "schema" : {
+            "$ref" : "#/definitions/BlueprintSwagger"
+          }
+        } ],
+        "responses" : {
+          "201" : {
+            "description" : "Successful operation"
+          },
+          "202" : {
+            "description" : "Request is accepted, but not completely processed yet"
+          },
+          "400" : {
+            "description" : "The requested resource doesn't exist."
+          },
+          "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" : "Internal server error"
+          }
+        }
+      },
+      "delete" : {
+        "tags" : [ "Blueprints" ],
+        "summary" : "Deletes a blueprint",
+        "description" : "",
+        "operationId" : "BlueprintService#deleteBlueprint",
+        "produces" : [ "text/plain" ],
+        "parameters" : [ {
+          "name" : "blueprintName",
           "in" : "path",
-          "description" : "user name",
           "required" : true,
           "type" : "string"
         } ],
@@ -303,39 +432,41 @@
           "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}/privileges" : {
+    "/clusters" : {
       "get" : {
-        "tags" : [ "Groups" ],
-        "summary" : "Get all privileges",
-        "description" : "Returns all privileges for group.",
-        "operationId" : "GroupPrivilegeService#getPrivileges",
+        "tags" : [ "clusters" ],
+        "summary" : "Returns all clusters",
+        "description" : "",
+        "operationId" : "getClusters",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "groupName",
-          "in" : "path",
-          "description" : "group name",
-          "required" : true,
-          "type" : "string"
-        }, {
           "name" : "fields",
           "in" : "query",
-          "description" : "Filter user privileges",
+          "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
           "type" : "string",
-          "default" : "PrivilegeInfo/*"
+          "default" : "cluster_name"
         }, {
           "name" : "sortBy",
           "in" : "query",
-          "description" : "Sort user privileges (asc | desc)",
+          "description" : "Sort resources in result by (asc | desc)",
           "required" : false,
-          "type" : "string",
-          "default" : "PrivilegeInfo/user_name.asc"
+          "type" : "string"
         }, {
           "name" : "page_size",
           "in" : "query",
@@ -346,223 +477,180 @@
         }, {
           "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"
+          "type" : "integer",
+          "default" : 0,
+          "minimum" : 0.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"
+          "type" : "integer",
+          "minimum" : 1.0
         } ],
         "responses" : {
           "200" : {
-            "description" : "successful operation",
+            "description" : "Successful operation",
             "schema" : {
               "type" : "array",
               "items" : {
-                "$ref" : "#/definitions/GroupPrivilegeResponse"
+                "$ref" : "#/definitions/ClusterResponseWrapper"
               }
             }
+          },
+          "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"
           }
         }
       }
     },
-    "/groups/{groupName}/privileges/{privilegeId}" : {
+    "/clusters/{clusterName}" : {
       "get" : {
-        "tags" : [ "Groups" ],
-        "summary" : "Get group privilege",
-        "description" : "Returns group privilege details.",
-        "operationId" : "GroupPrivilegeService#getPrivilege",
+        "tags" : [ "clusters" ],
+        "summary" : "Returns information about a specific cluster",
+        "description" : "",
+        "operationId" : "getCluster",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "groupName",
+          "name" : "clusterName",
           "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"
-            }
-          }
-        }
-      }
-    },
-    "/users" : {
-      "get" : {
-        "tags" : [ "Users" ],
-        "summary" : "Get all users",
-        "description" : "Returns details of all users.",
-        "operationId" : "UserService#getUsers",
-        "produces" : [ "text/plain" ],
-        "parameters" : [ {
-          "name" : "fields",
-          "in" : "query",
-          "description" : "Filter user details",
-          "required" : false,
-          "type" : "string",
-          "default" : "Users/*"
-        }, {
-          "name" : "sortBy",
-          "in" : "query",
-          "description" : "Sort users (asc | desc)",
-          "required" : false,
-          "type" : "string",
-          "default" : "Users/user_name.desc"
-        }, {
-          "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/UserResponse"
-              }
-            }
-          }
-        }
-      }
-    },
-    "/users/{userName}" : {
-      "get" : {
-        "tags" : [ "Users" ],
-        "summary" : "Get single user",
-        "description" : "Returns user details.",
-        "operationId" : "UserService#getUser",
-        "produces" : [ "text/plain" ],
-        "parameters" : [ {
-          "name" : "userName",
-          "in" : "path",
-          "description" : "user name",
-          "required" : true,
-          "type" : "string",
-          "default" : "admin"
-        }, {
           "name" : "fields",
           "in" : "query",
-          "description" : "Filter user details",
+          "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
           "type" : "string",
-          "default" : "Users"
+          "default" : "Clusters/*"
         } ],
         "responses" : {
           "200" : {
             "description" : "Successful operation",
             "schema" : {
-              "$ref" : "#/definitions/UserResponse"
+              "$ref" : "#/definitions/ClusterResponseWrapper"
             }
+          },
+          "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"
           }
         }
       },
       "post" : {
-        "tags" : [ "Users" ],
-        "summary" : "Create new user",
-        "description" : "Creates user resource.",
-        "operationId" : "UserService#createUser",
+        "tags" : [ "clusters" ],
+        "summary" : "Creates a cluster",
+        "description" : "",
+        "operationId" : "createCluster",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "userName",
+          "name" : "clusterName",
           "in" : "path",
-          "description" : "user name",
           "required" : true,
           "type" : "string"
         }, {
           "in" : "body",
           "name" : "body",
-          "description" : "input parameters in json form",
-          "required" : true,
+          "required" : false,
           "schema" : {
-            "$ref" : "#/definitions/UserRequest"
+            "$ref" : "#/definitions/ClusterRequestSwagger"
           }
         } ],
         "responses" : {
-          "200" : {
+          "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"
+          },
+          "409" : {
+            "description" : "The requested resource already exists."
+          },
           "500" : {
-            "description" : "Server Error"
+            "description" : "Internal server error"
           }
         }
       },
       "put" : {
-        "tags" : [ "Users" ],
-        "summary" : "Update user detail",
-        "description" : "Updates user resource.",
-        "operationId" : "UserService#updateUser",
+        "tags" : [ "clusters" ],
+        "summary" : "Updates a cluster",
+        "description" : "",
+        "operationId" : "updateCluster",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "userName",
+          "name" : "clusterName",
           "in" : "path",
-          "description" : "user name",
           "required" : true,
           "type" : "string"
         }, {
           "in" : "body",
           "name" : "body",
-          "description" : "input parameters in json form",
-          "required" : true,
+          "required" : false,
           "schema" : {
-            "$ref" : "#/definitions/UserRequest"
+            "$ref" : "#/definitions/ClusterRequestSwagger"
           }
         } ],
         "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" : "The requested resource doesn't exist."
+          },
           "500" : {
-            "description" : "Server Error"
+            "description" : "Internal server error"
           }
         }
       },
       "delete" : {
-        "tags" : [ "Users" ],
-        "summary" : "Delete single user",
-        "description" : "Delete user resource.",
-        "operationId" : "UserService#deleteUser",
+        "tags" : [ "clusters" ],
+        "summary" : "Deletes a cluster",
+        "description" : "",
+        "operationId" : "deleteCluster",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "userName",
+          "name" : "clusterName",
           "in" : "path",
-          "description" : "user name",
           "required" : true,
           "type" : "string"
         } ],
@@ -570,39 +658,45 @@
           "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"
           }
         }
       }
     },
-    "/users/{userName}/activeWidgetLayouts" : {
+    "/clusters/{clusterName}/artifacts" : {
       "get" : {
-        "tags" : [ "Users" ],
-        "summary" : "Get user widget layouts",
-        "description" : "Returns all active widget layouts for user.",
-        "operationId" : "ActiveWidgetLayoutService#getServices",
+        "tags" : [ "clusters" ],
+        "summary" : "Returns all artifacts associated with the cluster",
+        "description" : "",
+        "operationId" : "getClusterArtifacts",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "userName",
+          "name" : "clusterName",
           "in" : "path",
-          "description" : "user name",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "fields",
           "in" : "query",
-          "description" : "Filter user layout details",
+          "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
-          "type" : "string",
-          "default" : "WidgetLayoutInfo/*"
+          "type" : "string"
         }, {
           "name" : "sortBy",
           "in" : "query",
-          "description" : "Sort layouts (asc | desc)",
+          "description" : "Sort resources in result by (asc | desc)",
           "required" : false,
-          "type" : "string",
-          "default" : "WidgetLayoutInfo/user_name.asc"
+          "type" : "string"
         }, {
           "name" : "page_size",
           "in" : "query",
@@ -613,87 +707,146 @@
         }, {
           "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"
+          "type" : "integer",
+          "default" : 0,
+          "minimum" : 0.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"
+          "type" : "integer",
+          "minimum" : 1.0
         } ],
         "responses" : {
           "200" : {
-            "description" : "successful operation",
+            "description" : "Successful operation",
             "schema" : {
               "type" : "array",
               "items" : {
-                "$ref" : "#/definitions/ActiveWidgetLayoutResponse"
+                "$ref" : "#/definitions/ClusterArtifactResponse"
               }
             }
+          },
+          "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"
           }
         }
       },
       "put" : {
-        "tags" : [ "Users" ],
-        "summary" : "Update user widget layouts",
-        "description" : "Updates user widget layout.",
-        "operationId" : "ActiveWidgetLayoutService#updateServices",
+        "tags" : [ "clusters" ],
+        "summary" : "Updates multiple artifacts",
+        "description" : "",
+        "operationId" : "updateClusterArtifacts",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "userName",
+          "name" : "clusterName",
           "in" : "path",
-          "description" : "user name",
           "required" : true,
           "type" : "string"
         }, {
           "in" : "body",
           "name" : "body",
-          "description" : "input parameters in json form",
-          "required" : true,
+          "required" : false,
           "schema" : {
-            "$ref" : "#/definitions/ActiveWidgetLayoutRequest"
+            "$ref" : "#/definitions/ClusterArtifactRequest"
           }
         } ],
         "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" : "The requested resource doesn't exist."
+          },
           "500" : {
-            "description" : "Server Error"
+            "description" : "Internal server error"
+          }
+        }
+      },
+      "delete" : {
+        "tags" : [ "clusters" ],
+        "summary" : "Deletes all artifacts of a cluster that match the provided predicate",
+        "description" : "",
+        "operationId" : "deleteClusterArtifacts",
+        "produces" : [ "text/plain" ],
+        "parameters" : [ {
+          "name" : "clusterName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
+        } ],
+        "responses" : {
+          "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" : "Internal server error"
           }
         }
       }
     },
-    "/users/{userName}/authorizations" : {
+    "/clusters/{clusterName}/artifacts/{artifactName}" : {
       "get" : {
-        "tags" : [ "Users" ],
-        "summary" : "Get all authorizations",
-        "description" : "Returns all authorization for user.",
-        "operationId" : "UserAuthorizationService#getAuthorizations",
+        "tags" : [ "clusters" ],
+        "summary" : "Get the details of a cluster artifact",
+        "description" : "",
+        "operationId" : "getClusterArtifact",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "userName",
+          "name" : "clusterName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
+        }, {
+          "name" : "artifactName",
           "in" : "path",
-          "description" : "user name",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "fields",
           "in" : "query",
-          "description" : "Filter user authorization details",
+          "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
-          "type" : "string",
-          "default" : "AuthorizationInfo/*"
+          "type" : "string"
         }, {
           "name" : "sortBy",
           "in" : "query",
-          "description" : "Sort user authorizations (asc | desc)",
+          "description" : "Sort resources in result by (asc | desc)",
           "required" : false,
-          "type" : "string",
-          "default" : "AuthorizationInfo/user_name.asc"
+          "type" : "string"
         }, {
           "name" : "page_size",
           "in" : "query",
@@ -704,187 +857,188 @@
         }, {
           "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"
         } ],
         "responses" : {
           "200" : {
-            "description" : "successful operation",
+            "description" : "Successful operation",
             "schema" : {
-              "type" : "array",
-              "items" : {
-                "$ref" : "#/definitions/UserAuthorizationResponse"
-              }
+              "$ref" : "#/definitions/ClusterArtifactResponse"
             }
+          },
+          "404" : {
+            "description" : "The requested resource doesn't exist."
+          },
+          "500" : {
+            "description" : "Internal server error"
           }
         }
-      }
-    },
-    "/users/{userName}/authorizations/{authorization_id}" : {
-      "get" : {
-        "tags" : [ "Users" ],
-        "summary" : "Get user authorization",
-        "description" : "Returns user authorization details.",
-        "operationId" : "UserAuthorizationService#getAuthorization",
+      },
+      "post" : {
+        "tags" : [ "clusters" ],
+        "summary" : "Creates a cluster artifact",
+        "description" : "",
+        "operationId" : "createClusterArtifact",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "userName",
+          "name" : "clusterName",
           "in" : "path",
-          "description" : "user name",
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "authorization_id",
+          "name" : "artifactName",
           "in" : "path",
-          "description" : "Authorization Id",
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "fields",
-          "in" : "query",
-          "description" : "Filter user authorization details",
+          "in" : "body",
+          "name" : "body",
           "required" : false,
-          "type" : "string",
-          "default" : "AuthorizationInfo/*"
-        } ],
+          "schema" : {
+            "$ref" : "#/definitions/ClusterArtifactRequest"
+          }
+        } ],
         "responses" : {
-          "200" : {
-            "description" : "Successful operation",
-            "schema" : {
-              "$ref" : "#/definitions/UserAuthorizationResponse"
-            }
+          "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" : "Internal server error"
           }
         }
-      }
-    },
-    "/users/{userName}/privileges" : {
-      "get" : {
-        "tags" : [ "Users" ],
-        "summary" : "Get all privileges",
-        "description" : "Returns all privileges for user.",
-        "operationId" : "UserPrivilegeService#getPrivileges",
+      },
+      "put" : {
+        "tags" : [ "clusters" ],
+        "summary" : "Updates a single artifact",
+        "description" : "",
+        "operationId" : "updateClusterArtifact",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "userName",
+          "name" : "clusterName",
           "in" : "path",
-          "description" : "user name",
           "required" : true,
-          "type" : "string",
-          "default" : "admin"
-        }, {
-          "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
+          "type" : "string"
         }, {
-          "name" : "from",
-          "in" : "query",
-          "description" : "The starting page resource (inclusive). Valid values are :offset | \"start\"",
-          "required" : false,
-          "type" : "string",
-          "default" : "0"
+          "name" : "artifactName",
+          "in" : "path",
+          "required" : true,
+          "type" : "string"
         }, {
-          "name" : "to",
-          "in" : "query",
-          "description" : "The ending page resource (inclusive). Valid values are :offset | \"end\"",
+          "in" : "body",
+          "name" : "body",
           "required" : false,
-          "type" : "string"
+          "schema" : {
+            "$ref" : "#/definitions/ClusterArtifactRequest"
+          }
         } ],
         "responses" : {
           "200" : {
-            "description" : "successful operation",
-            "schema" : {
-              "type" : "array",
-              "items" : {
-                "$ref" : "#/definitions/UserPrivilegeResponse"
-              }
-            }
+            "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"
           }
         }
-      }
-    },
-    "/users/{userName}/privileges/{privilegeId}" : {
-      "get" : {
-        "tags" : [ "Users" ],
-        "summary" : "Get user privilege",
-        "description" : "Returns user privilege details.",
-        "operationId" : "UserPrivilegeService#getPrivilege",
+      },
+      "delete" : {
+        "tags" : [ "clusters" ],
+        "summary" : "Deletes a single artifact",
+        "description" : "",
+        "operationId" : "deleteClusterArtifact",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "userName",
+          "name" : "clusterName",
           "in" : "path",
-          "description" : "user name",
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "privilegeId",
+          "name" : "artifactName",
           "in" : "path",
-          "description" : "privilege id",
           "required" : true,
           "type" : "string"
-        }, {
-          "name" : "fields",
-          "in" : "query",
-          "description" : "Filter user privilege details",
-          "required" : false,
-          "type" : "string",
-          "default" : "PrivilegeInfo/*"
         } ],
         "responses" : {
           "200" : {
-            "description" : "Successful operation",
-            "schema" : {
-              "$ref" : "#/definitions/UserPrivilegeResponse"
-            }
+            "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" : "Internal server error"
           }
         }
       }
     },
-    "/views" : {
+    "/groups" : {
       "get" : {
-        "tags" : [ "Views" ],
-        "summary" : "Get all views",
-        "description" : "Returns details of all views.",
-        "operationId" : "ViewService#getViews",
+        "tags" : [ "Groups" ],
+        "summary" : "Get all groups",
+        "description" : "Returns details of all groups.",
+        "operationId" : "GroupService#getGroups",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
           "name" : "fields",
           "in" : "query",
-          "description" : "Filter view details",
+          "description" : "Filter group details",
           "required" : false,
           "type" : "string",
-          "default" : "ViewInfo/*"
+          "default" : "Groups/*"
         }, {
           "name" : "sortBy",
           "in" : "query",
-          "description" : "Sort users (asc | desc)",
+          "description" : "Sort groups (asc | desc)",
           "required" : false,
           "type" : "string",
-          "default" : "ViewInfo/view_name.asc"
+          "default" : "Groups/group_name.asc"
         }, {
           "name" : "page_size",
           "in" : "query",
@@ -908,75 +1062,121 @@
         } ],
         "responses" : {
           "200" : {
-            "description" : "Successful operation",
+            "description" : "Successful retrieval of all group entries",
             "schema" : {
               "type" : "array",
               "items" : {
-                "$ref" : "#/definitions/ViewResponse"
+                "$ref" : "#/definitions/GroupResponse"
               }
             }
           }
         }
+      },
+      "post" : {
+        "tags" : [ "Groups" ],
+        "summary" : "Create new group",
+        "description" : "Creates group resource.",
+        "operationId" : "GroupService#createGroup",
+        "produces" : [ "text/plain" ],
+        "parameters" : [ {
+          "in" : "body",
+          "name" : "body",
+          "description" : "input parameters in json form",
+          "required" : true,
+          "schema" : {
+            "$ref" : "#/definitions/GroupRequest"
+          }
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "successful operation"
+          },
+          "500" : {
+            "description" : "Server Error"
+          }
+        }
       }
     },
-    "/views/{viewName}" : {
+    "/groups/{groupName}" : {
       "get" : {
-        "tags" : [ "Views" ],
-        "summary" : "Get single view",
-        "description" : "Returns view details.",
-        "operationId" : "ViewService#getView",
+        "tags" : [ "Groups" ],
+        "summary" : "Get group",
+        "description" : "Returns group details.",
+        "operationId" : "GroupService#getGroup",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "viewName",
+          "name" : "groupName",
           "in" : "path",
-          "description" : "view name",
+          "description" : "group name",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "fields",
           "in" : "query",
-          "description" : "Filter view details",
+          "description" : "Filter group details",
           "required" : false,
           "type" : "string",
-          "default" : "ViewInfo"
+          "default" : "Groups"
         } ],
         "responses" : {
           "200" : {
-            "description" : "Successful operation",
+            "description" : "Successful retrieval of group resource",
             "schema" : {
-              "$ref" : "#/definitions/ViewResponse"
+              "$ref" : "#/definitions/GroupResponse"
             }
           }
         }
+      },
+      "delete" : {
+        "tags" : [ "Groups" ],
+        "summary" : "Delete group",
+        "description" : "Delete group resource.",
+        "operationId" : "GroupService#deleteGroup",
+        "produces" : [ "text/plain" ],
+        "parameters" : [ {
+          "name" : "groupName",
+          "in" : "path",
+          "description" : "group name",
+          "required" : true,
+          "type" : "string"
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Successful operation"
+          },
+          "500" : {
+            "description" : "Server Error"
+          }
+        }
       }
     },
-    "/views/{viewName}/versions" : {
+    "/groups/{groupName}/members" : {
       "get" : {
-        "tags" : [ "Views" ],
-        "summary" : "Get all versions for a view",
-        "description" : "Returns details of all versions for a view.",
-        "operationId" : "ViewVersionService#getVersions",
+        "tags" : [ "Groups" ],
+        "summary" : "Get all group members",
+        "description" : "Returns details of all members.",
+        "operationId" : "MemberService#getMembers",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "viewName",
+          "name" : "groupName",
           "in" : "path",
-          "description" : "view name",
+          "description" : "group name",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "fields",
           "in" : "query",
-          "description" : "Filter view version details",
+          "description" : "Filter member details",
           "required" : false,
           "type" : "string",
-          "default" : "ViewVersionInfo/*"
+          "default" : "MemberInfo/*"
         }, {
           "name" : "sortBy",
           "in" : "query",
-          "description" : "Sort users (asc | desc)",
+          "description" : "Sort members (asc | desc)",
           "required" : false,
           "type" : "string",
-          "default" : "ViewVersionInfo/version.desc"
+          "default" : "MemberInfo/user_name.asc"
         }, {
           "name" : "page_size",
           "in" : "query",
@@ -1004,80 +1204,135 @@
             "schema" : {
               "type" : "array",
               "items" : {
-                "$ref" : "#/definitions/ViewVersionResponse"
+                "$ref" : "#/definitions/MemberResponse"
               }
             }
           }
         }
-      }
-    },
-    "/views/{viewName}/versions/{version}" : {
-      "get" : {
-        "tags" : [ "Views" ],
-        "summary" : "Get single view version",
-        "description" : "Returns view details.",
-        "operationId" : "ViewVersionService#getVersion",
+      },
+      "put" : {
+        "tags" : [ "Groups" ],
+        "summary" : "Update group members",
+        "description" : "Updates group member resources.",
+        "operationId" : "MemberService#updateMembers",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "viewName",
+          "name" : "groupName",
           "in" : "path",
-          "description" : "view name",
+          "description" : "group name",
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "version",
-          "in" : "path",
+          "in" : "body",
+          "name" : "body",
+          "description" : "input parameters in json form",
           "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "fields",
+          "schema" : {
+            "$ref" : "#/definitions/MemberRequest"
+          }
+        } ],
+        "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 view details",
+          "description" : "Filter member details",
           "required" : false,
           "type" : "string",
-          "default" : "ViewVersionInfo"
+          "default" : "MemberInfo"
         } ],
         "responses" : {
           "200" : {
             "description" : "Successful operation",
             "schema" : {
-              "$ref" : "#/definitions/ViewVersionResponse"
+              "$ref" : "#/definitions/MemberResponse"
             }
           }
         }
-      }
-    },
-    "/views/{viewName}/versions/{version}/instances" : {
-      "get" : {
-        "tags" : [ "Views" ],
-        "summary" : "Get all view instances",
-        "description" : "Returns all instances for a view version.",
-        "operationId" : "ViewInstanceService#getServices",
+      },
+      "delete" : {
+        "tags" : [ "Groups" ],
+        "summary" : "Delete group member",
+        "description" : "Delete member resource.",
+        "operationId" : "MemberService#deleteMember",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "viewName",
+          "name" : "groupName",
           "in" : "path",
+          "description" : "group name",
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "version",
+          "name" : "userName",
+          "in" : "path",
+          "description" : "user name",
+          "required" : true,
+          "type" : "string"
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Successful operation"
+          },
+          "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 view instance details",
+          "description" : "Filter user privileges",
           "required" : false,
           "type" : "string",
-          "default" : "ViewInstanceInfo/*"
+          "default" : "PrivilegeInfo/*"
         }, {
           "name" : "sortBy",
           "in" : "query",
-          "description" : "Sort users (asc | desc)",
+          "description" : "Sort user privileges (asc | desc)",
           "required" : false,
           "type" : "string",
-          "default" : "ViewInstanceInfo/instance_name.desc"
+          "default" : "PrivilegeInfo/user_name.asc"
         }, {
           "name" : "page_size",
           "in" : "query",
@@ -1101,208 +1356,376 @@
         } ],
         "responses" : {
           "200" : {
-            "description" : "Successful operation",
+            "description" : "successful operation",
             "schema" : {
               "type" : "array",
               "items" : {
-                "$ref" : "#/definitions/ViewInstanceResponse"
+                "$ref" : "#/definitions/GroupPrivilegeResponse"
               }
             }
           }
         }
       }
     },
-    "/views/{viewName}/versions/{version}/instances/{instanceName}" : {
+    "/groups/{groupName}/privileges/{privilegeId}" : {
       "get" : {
-        "tags" : [ "Views" ],
-        "summary" : "Get single view instance",
-        "description" : "Returns view instance details.",
-        "operationId" : "ViewInstanceService#getService",
+        "tags" : [ "Groups" ],
+        "summary" : "Get group privilege",
+        "description" : "Returns group privilege details.",
+        "operationId" : "GroupPrivilegeService#getPrivilege",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "viewName",
-          "in" : "path",
-          "description" : "view name",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "version",
+          "name" : "groupName",
           "in" : "path",
+          "description" : "group name",
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "instanceName",
+          "name" : "privilegeId",
           "in" : "path",
-          "description" : "instance name",
+          "description" : "privilege id",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "fields",
           "in" : "query",
-          "description" : "Filter view instance details",
+          "description" : "Filter group privilege details",
           "required" : false,
           "type" : "string",
-          "default" : "ViewInstanceInfo"
+          "default" : "PrivilegeInfo/*"
         } ],
         "responses" : {
           "200" : {
             "description" : "Successful operation",
             "schema" : {
-              "$ref" : "#/definitions/ViewInstanceResponse"
+              "$ref" : "#/definitions/PrivilegeResponse"
             }
           }
         }
-      },
-      "post" : {
-        "tags" : [ "Views" ],
-        "summary" : "Create view instance",
-        "description" : "Creates view instance resource.",
-        "operationId" : "ViewInstanceService#createService",
+      }
+    },
+    "/hosts" : {
+      "get" : {
+        "tags" : [ "hosts" ],
+        "summary" : "Returns a collection of all hosts",
+        "description" : "",
+        "operationId" : "getHosts",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "viewName",
-          "in" : "path",
-          "description" : "view 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/*"
         }, {
-          "name" : "version",
-          "in" : "path",
-          "required" : true,
-          "type" : "string"
+          "name" : "sortBy",
+          "in" : "query",
+          "description" : "Sort resources in result by (asc | desc)",
+          "required" : false,
+          "type" : "string",
+          "default" : "Hosts/host_name.asc"
         }, {
-          "name" : "instanceName",
-          "in" : "path",
-          "description" : "instance 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" : "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" : {
+              "type" : "array",
+              "items" : {
+                "$ref" : "#/definitions/Wrapper"
+              }
+            }
+          },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "403" : {
+            "description" : "Not permitted to perform the operation"
+          },
+          "404" : {
+            "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",
-          "description" : "input parameters in json form",
-          "required" : true,
+          "required" : false,
           "schema" : {
-            "$ref" : "#/definitions/ViewInstanceRequest"
+            "$ref" : "#/definitions/HostRequest"
           }
         } ],
         "responses" : {
-          "200" : {
+          "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" : "Server Error"
+            "description" : "Internal server error"
           }
         }
       },
       "put" : {
-        "tags" : [ "Views" ],
-        "summary" : "Update view instance detail",
-        "description" : "Updates view instance resource.",
-        "operationId" : "ViewInstanceService#updateService",
+        "tags" : [ "hosts" ],
+        "summary" : "Updates multiple hosts in a single request",
+        "description" : "",
+        "operationId" : "updateHosts",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "viewName",
-          "in" : "path",
-          "description" : "view name",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "version",
-          "in" : "path",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "instanceName",
-          "in" : "path",
-          "description" : "instance name",
-          "required" : true,
-          "type" : "string"
-        }, {
           "in" : "body",
           "name" : "body",
-          "description" : "input parameters in json form",
-          "required" : true,
+          "required" : false,
           "schema" : {
-            "$ref" : "#/definitions/ViewInstanceRequest"
+            "$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" : "Server Error"
+            "description" : "Internal server error"
           }
         }
       },
       "delete" : {
-        "tags" : [ "Views" ],
-        "summary" : "Delete view instance",
-        "description" : "Delete view resource.",
-        "operationId" : "ViewInstanceService#deleteService",
+        "tags" : [ "hosts" ],
+        "summary" : "Deletes multiple hosts in a single request",
+        "description" : "",
+        "operationId" : "deleteHosts",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "viewName",
-          "in" : "path",
-          "description" : "view name",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "version",
-          "in" : "path",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "instanceName",
-          "in" : "path",
-          "description" : "instance name",
-          "required" : true,
-          "type" : "string"
-        } ],
+          "in" : "body",
+          "name" : "body",
+          "required" : false,
+          "schema" : {
+            "$ref" : "#/definitions/HostRequest"
+          }
+        } ],
         "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" : "Server Error"
+            "description" : "Internal server error"
           }
         }
       }
     },
-    "/views/{viewName}/versions/{version}/instances/{instanceName}/migrate/{originVersion}/{originInstanceName}" : {
-      "put" : {
-        "tags" : [ "Views" ],
-        "summary" : "Migrate view instance data",
-        "description" : "Migrates view instance persistence data from origin view instance specified in the path params.",
-        "operationId" : "ViewDataMigrationService#migrateData",
+    "/hosts/{hostName}" : {
+      "get" : {
+        "tags" : [ "hosts" ],
+        "summary" : "Returns information about a single host",
+        "description" : "",
+        "operationId" : "getHost",
+        "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "viewName",
+          "name" : "hostName",
           "in" : "path",
-          "description" : "view name",
+          "description" : "host name",
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "version",
-          "in" : "path",
-          "description" : "view version",
-          "required" : true,
+          "name" : "fields",
+          "in" : "query",
+          "description" : "Filter fields in the response (identifier fields are mandatory)",
+          "required" : false,
           "type" : "string"
-        }, {
-          "name" : "instanceName",
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Successful operation",
+            "schema" : {
+              "$ref" : "#/definitions/Wrapper"
+            }
+          },
+          "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",
+        "produces" : [ "text/plain" ],
+        "parameters" : [ {
+          "name" : "hostName",
           "in" : "path",
-          "description" : "instance name",
+          "description" : "host name",
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "originVersion",
+          "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" : "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"
+          },
+          "500" : {
+            "description" : "Internal server error"
+          }
+        }
+      },
+      "put" : {
+        "tags" : [ "hosts" ],
+        "summary" : "Updates a host",
+        "description" : "",
+        "operationId" : "updateHost",
+        "produces" : [ "text/plain" ],
+        "parameters" : [ {
+          "name" : "hostName",
           "in" : "path",
-          "description" : "origin version",
+          "description" : "host name",
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "originInstanceName",
+          "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" : "origin instance name",
+          "description" : "host name",
           "required" : true,
           "type" : "string"
         } ],
@@ -1310,51 +1733,42 @@
           "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" : "Server Error"
+            "description" : "Internal server error"
           }
         }
       }
     },
-    "/views/{viewName}/versions/{version}/instances/{instanceName}/privileges" : {
+    "/requests" : {
       "get" : {
-        "tags" : [ "Views" ],
-        "summary" : "Get all view instance privileges",
-        "description" : "Returns all privileges for the resource.",
-        "operationId" : "ViewPrivilegeService#getPrivileges",
+        "tags" : [ "Requests" ],
+        "summary" : "Get all requests. A predicate can be given to filter results.",
+        "description" : "",
+        "operationId" : "RequestService#getRequests",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "viewName",
-          "in" : "path",
-          "description" : "view name",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "version",
-          "in" : "path",
-          "description" : "view version",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "instanceName",
-          "in" : "path",
-          "description" : "instance name",
-          "required" : true,
-          "type" : "string"
-        }, {
           "name" : "fields",
           "in" : "query",
-          "description" : "Filter privileges",
+          "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
           "type" : "string",
-          "default" : "PrivilegeInfo/*"
+          "default" : "Requests/id"
         }, {
           "name" : "sortBy",
           "in" : "query",
-          "description" : "Sort privileges (asc | desc)",
+          "description" : "Sort resources in result by (asc | desc)",
           "required" : false,
           "type" : "string",
-          "default" : "PrivilegeInfo/user_name.asc"
+          "default" : "Requests/id.asc"
         }, {
           "name" : "page_size",
           "in" : "query",
@@ -1365,207 +1779,262 @@
         }, {
           "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"
         } ],
         "responses" : {
           "200" : {
-            "description" : "successful operation",
+            "description" : "Successful operation",
             "schema" : {
               "type" : "array",
               "items" : {
-                "$ref" : "#/definitions/ViewPrivilegeResponse"
+                "$ref" : "#/definitions/RequestResponse"
               }
             }
+          },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "500" : {
+            "description" : "Internal server error"
           }
         }
       },
       "post" : {
-        "tags" : [ "Views" ],
-        "summary" : "Create view instance privilege",
-        "description" : "Create privilege resource for view instance.",
-        "operationId" : "ViewPrivilegeService#createPrivilege",
+        "tags" : [ "Requests" ],
+        "summary" : "Creates one or more Requests",
+        "description" : "",
+        "operationId" : "RequestService#createRequests",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "viewName",
-          "in" : "path",
-          "description" : "view name",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "version",
-          "in" : "path",
-          "description" : "view version",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "instanceName",
-          "in" : "path",
-          "description" : "instance name",
-          "required" : true,
-          "type" : "string"
-        }, {
           "in" : "body",
           "name" : "body",
-          "description" : "input parameters in json form",
-          "required" : true,
+          "required" : false,
           "schema" : {
-            "$ref" : "#/definitions/ViewPrivilegeRequest"
+            "$ref" : "#/definitions/RequestPostRequest"
           }
         } ],
         "responses" : {
-          "200" : {
+          "201" : {
             "description" : "Successful operation"
           },
+          "202" : {
+            "description" : "Request is accepted, but not completely processed yet",
+            "schema" : {
+              "$ref" : "#/definitions/RequestPostResponse"
+            }
+          },
+          "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"
           }
         }
       }
     },
-    "/views/{viewName}/versions/{version}/instances/{instanceName}/privileges/{privilegeId}" : {
+    "/requests/{requestId}" : {
       "get" : {
-        "tags" : [ "Views" ],
-        "summary" : "Get single view instance privilege",
-        "description" : "Returns privilege details.",
-        "operationId" : "ViewPrivilegeService#getPrivilege",
+        "tags" : [ "Requests" ],
+        "summary" : "Get the details of a request",
+        "description" : "",
+        "operationId" : "RequestService#getRequest",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "viewName",
-          "in" : "path",
-          "description" : "view name",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "version",
-          "in" : "path",
-          "description" : "view version",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "instanceName",
-          "in" : "path",
-          "description" : "instance name",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "privilegeId",
+          "name" : "requestId",
           "in" : "path",
-          "description" : "privilege id",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "fields",
           "in" : "query",
-          "description" : "Filter privilege details",
+          "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
           "type" : "string",
-          "default" : "PrivilegeInfo"
+          "default" : "Requests/*"
         } ],
         "responses" : {
           "200" : {
             "description" : "Successful operation",
             "schema" : {
-              "$ref" : "#/definitions/ViewPrivilegeResponse"
+              "$ref" : "#/definitions/RequestResponse"
             }
+          },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "404" : {
+            "description" : "The requested resource doesn't exist."
+          },
+          "500" : {
+            "description" : "Internal server error"
           }
         }
       },
-      "delete" : {
-        "tags" : [ "Views" ],
-        "summary" : "Delete view instance privilege",
-        "description" : "Delete view instance privilege resource.",
-        "operationId" : "ViewPrivilegeService#deletePrivilege",
+      "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" : "viewName",
-          "in" : "path",
-          "description" : "view name",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "version",
-          "in" : "path",
-          "description" : "view version",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "instanceName",
+          "name" : "requestId",
           "in" : "path",
-          "description" : "instance name",
           "required" : true,
           "type" : "string"
         }, {
-          "name" : "privilegeId",
-          "in" : "path",
-          "description" : "privilege id",
-          "required" : true,
-          "type" : "string"
+          "in" : "body",
+          "name" : "body",
+          "required" : false,
+          "schema" : {
+            "$ref" : "#/definitions/RequestPutRequest"
+          }
         } ],
         "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" : "The requested resource doesn't exist."
+          },
           "500" : {
-            "description" : "Server Error"
+            "description" : "Internal server error"
           }
         }
       }
     },
-    "/views/{viewName}/versions/{version}/permissions" : {
+    "/services" : {
       "get" : {
-        "tags" : [ "Views" ],
-        "summary" : "Get all permissions for a view",
-        "description" : "Returns all permission details for the version of a view.",
-        "operationId" : "ViewPermissionService#getPermissions",
+        "tags" : [ "services" ],
+        "summary" : "Returns the list of root-level services",
+        "description" : "",
+        "operationId" : "getRootServices",
         "produces" : [ "text/plain" ],
         "parameters" : [ {
-          "name" : "viewName",
-          "in" : "path",
-          "description" : "view name",
-          "required" : true,
-          "type" : "string"
-        }, {
-          "name" : "version",
-          "in" : "path",
-          "description" : "view version",
-          "required" : true,
-          "type" : "string"
-        }, {
           "name" : "fields",
           "in" : "query",
-          "description" : "Filter privileges",
+          "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
           "type" : "string",
-          "default" : "PermissionInfo/*"
-        }, {
-          "name" : "page_size",
-          "in" : "query",
-          "description" : "The number of resources to be returned for the paged response.",
-          "required" : false,
-          "type" : "integer",
-          "default" : 10
+          "default" : "RootService/service_name"
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Successful operation",
+            "schema" : {
+              "type" : "array",
+              "items" : {
+                "$ref" : "#/definitions/RootServiceResponseWrapper"
+              }
+            }
+          },
+          "401" : {
+            "description" : "Not authenticated"
+          },
+          "403" : {
+            "description" : "Not permitted to perform the operation"
+          },
+          "500" : {
+            "description" : "Internal server error"
+          }
+        }
+      }
+    },
+    "/services/{serviceName}" : {
+      "get" : {
+        "tags" : [ "services" ],
+        "summary" : "Returns information about the given root-level service, including a list of its components",
+        "description" : "",
+        "operationId" : "getRootService",
+        "produces" : [ "text/plain" ],
+        "parameters" : [ {
+          "name" : "serviceName",
+          "in" : "path",
+          "description" : "service name",
+          "required" : true,
+          "type" : "string"
         }, {
-          "name" : "from",
+          "name" : "fields",
           "in" : "query",
-          "description" : "The starting page resource (inclusive). Valid values are :offset | \"start\"",
+          "description" : "Filter fields in the response (identifier fields are mandatory)",
           "required" : false,
           "type" : "string",
-          "default" : "0"
+          "default" : "RootService/service_name, components/RootServiceComponents/component_name, components/RootServiceComponents/service_name"
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Successful operation",
+            "schema" : {
+              "$ref" : "#/definitions/RootServiceResponseWithComponentList"
+            }
+          },
+          "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" : {
+      "get" : {
+        "tags" : [ "services" ],
+        "summary" : "Returns the list of components for the given root-level service",
+        "description" : "",
+        "operationId" : "getRootServiceComponents",
+        "produces" : [ "text/plain" ],
+    

<TRUNCATED>