DCAE dashboard security fixes 70/101070/6
authorKotagiri, Ramprasad (rp5662) <rp5662@att.com>
Mon, 3 Feb 2020 18:43:25 +0000 (13:43 -0500)
committerKotagiri, Ramprasad (rp5662) <rp5662@att.com>
Thu, 6 Feb 2020 18:18:40 +0000 (13:18 -0500)
Portal SDK ver 2.6.0, non-root user for docker container
Change label on Dashboard Home page, API changes, Container optimization

Change-Id: Ie2c8efd76d34fddc2b182d5ed494761522695914
Issue-ID: DCAEGEN2-1638
Issue-ID: CCSDK-1485
Issue-ID: DCAEGEN2-1921
Issue-ID: DCAEGEN2-1915
Issue-ID: DCAEGEN2-1856
Issue-ID: DCAEGEN2-1556
Issue-ID: DCAEGEN2-1592
Signed-off-by: Kotagiri, Ramprasad (rp5662) <rp5662@att.com>
26 files changed:
ccsdk-app-common/pom.xml
ccsdk-app-common/src/main/java/org/onap/ccsdk/dashboard/controller/CloudifyController.java
ccsdk-app-common/src/main/java/org/onap/ccsdk/dashboard/controller/CommonApiController.java
ccsdk-app-os/Dockerfile
ccsdk-app-os/create_table.sql
ccsdk-app-os/docker-dashboard-installation.sh
ccsdk-app-os/pom.xml
ccsdk-app-os/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java
ccsdk-app-os/src/main/resources/swagger.json [new file with mode: 0644]
ccsdk-app-os/src/main/webapp/WEB-INF/conf/dashboard.properties
ccsdk-app-os/src/main/webapp/WEB-INF/conf/system.properties.template
ccsdk-app-os/src/main/webapp/WEB-INF/fusion/conf/fusion.properties
ccsdk-app-os/src/main/webapp/api-specs.html [moved from ccsdk-app-os/src/main/webapp/oom-api.html with 94% similarity]
ccsdk-app-overlay/pom.xml
ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/api-docs-controller.js [new file with mode: 0644]
ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/api_doc.html [new file with mode: 0644]
ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/appDS2.js
ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/controller-service.js
ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/executions_view.html
ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/oom-router.js
ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/oom_spa.html
ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/rest-api-spec.html [new file with mode: 0644]
ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/footer.html [new file with mode: 0644]
ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/header-logo.html [new file with mode: 0644]
ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/welcome.html
pom.xml

index 112f3ac..48a6521 100644 (file)
@@ -6,12 +6,12 @@
        <parent>
                <groupId>org.onap.ccsdk.dashboard</groupId>
                <artifactId>ccsdk-app-parent</artifactId>
-               <version>1.2.0-SNAPSHOT</version>
+               <version>1.3.0-SNAPSHOT</version>
        </parent>
 
        <groupId>org.onap.ccsdk.dashboard</groupId>
        <artifactId>ccsdk-app-common</artifactId>
-       <version>1.2.0-SNAPSHOT</version>
+       <version>1.3.0-SNAPSHOT</version>
        <packaging>jar</packaging>
        <name>ONAP Operations Manager Dashboard common</name>
        <description>CCSDK Dashboard common Java code</description>
@@ -22,7 +22,7 @@
                <springframework.version>4.3.22.RELEASE</springframework.version>
                <hibernate.version>4.3.11.Final</hibernate.version>
                <eelf.version>1.0.0</eelf.version>
-               <epsdk.version>2.5.0</epsdk.version>
+               <epsdk.version>2.6.0</epsdk.version>
                <nexusproxy>https://nexus.onap.org</nexusproxy>
                <snapshotNexusPath>content/repositories/snapshots/</snapshotNexusPath>
                <releaseNexusPath>content/repositories/releases/</releaseNexusPath>
                                </exclusion>
                        </exclusions>
                </dependency>
-               <!--  
-               <dependency>
-                       <groupId>org.springframework</groupId>
-                       <artifactId>spring-aop</artifactId>
-                       <version>${springframework.version}</version>
-               </dependency>
-               -->
                <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-tx</artifactId>
index 16949cd..93748f3 100644 (file)
@@ -211,35 +211,6 @@ public class CloudifyController extends DashboardRestrictedBaseController {
         return outboundJson;
     }
 
-    /**
-     * Serves one page of blueprints
-     * 
-     * @param request HttpServletRequest
-     * @return List of CloudifyBlueprint objects
-     */
-    /*
-     * @RequestMapping(value = { BLUEPRINTS_PATH }, method = RequestMethod.GET,
-     * produces = "application/json")
-     * 
-     * @ResponseBody public String getBlueprintsByPage(HttpServletRequest request) {
-     * preLogAudit(request); String json = getItemListForPageWrapper(request,
-     * CloudifyDataItem.BLUEPRINT); postLogAudit(request); return json; }
-     */
-    /**
-     * Serves one page of deployments
-     * 
-     * @param request HttpServletRequest
-     * @return List of CloudifyDeployment objects
-     */
-
-    /*
-     * @RequestMapping(value = { DEPLOYMENTS_PATH }, method = RequestMethod.GET,
-     * produces = "application/json")
-     * 
-     * @ResponseBody public String getDeploymentsByPage(HttpServletRequest request)
-     * { preLogAudit(request); String json = getItemListForPageWrapper(request,
-     * CloudifyDataItem.DEPLOYMENT); postLogAudit(request); return json; }
-     */
     /**
      * gets the tenants list
      * 
@@ -297,106 +268,6 @@ public class CloudifyController extends DashboardRestrictedBaseController {
         return objectMapper.writeValueAsString(result);
     }
 
-    /**
-     * Gets the specified blueprint content for viewing.
-     * 
-     * @param id      Blueprint ID
-     * @param request HttpServletRequest
-     * @return Blueprint as YAML; or error.
-     * @throws Exception on serialization error
-     * 
-     */
-    /*
-     * @RequestMapping(value = { VIEW_BLUEPRINTS_PATH + "/{id}" }, method =
-     * RequestMethod.GET, produces = "application/yaml")
-     * 
-     * @ResponseBody public String viewBlueprintContentById(@PathVariable("id")
-     * String id, HttpServletRequest request) throws Exception {
-     * preLogAudit(request); ECTransportModel result = null; try { result =
-     * cloudifyClient.viewBlueprint(id); } catch (HttpStatusCodeException e) {
-     * MDC.put(SystemProperties.STATUS_CODE, "ERROR"); MDC.put("TargetEntity",
-     * "Cloudify Manager"); MDC.put("TargetServiceName", "Cloudify Manager");
-     * MDC.put("ErrorCode", "300"); MDC.put("ErrorCategory", "ERROR");
-     * MDC.put("ErrorDescription", "Viewing blueprint " + id + " failed!");
-     * logger.error(EELFLoggerDelegate.errorLogger,
-     * "viewBlueprintContentById caught exception"); result = new
-     * RestResponseError(e.getResponseBodyAsString()); } catch (Throwable t) {
-     * MDC.put(SystemProperties.STATUS_CODE, "ERROR"); MDC.put("TargetEntity",
-     * "Cloudify Manager"); MDC.put("TargetServiceName", "Cloudify Manager");
-     * MDC.put("ErrorCode", "300"); MDC.put("ErrorCategory", "ERROR");
-     * MDC.put("ErrorDescription", "Viewing blueprint " + id + " failed!");
-     * logger.error(EELFLoggerDelegate.errorLogger,
-     * "viewBlueprintContentById caught exception"); result = new
-     * RestResponseError("getBlueprintContentById failed", t); } finally {
-     * postLogAudit(request); } return objectMapper.writeValueAsString(result); }
-     */
-    /**
-     * Processes request to upload a blueprint from a remote server.
-     * 
-     * @param request   HttpServletRequest
-     * @param blueprint Cloudify blueprint
-     * @return Blueprint as uploaded; or error.
-     * @throws Exception on serialization error
-     */
-    /*
-     * @RequestMapping(value = { BLUEPRINTS_PATH }, method = RequestMethod.POST,
-     * produces = "application/json")
-     * 
-     * @ResponseBody public String uploadBlueprint(HttpServletRequest
-     * request, @RequestBody CloudifyBlueprintUpload blueprint) throws Exception {
-     * preLogAudit(request); ECTransportModel result = null; try { result =
-     * cloudifyClient.uploadBlueprint(blueprint); } catch (HttpStatusCodeException
-     * e) { MDC.put(SystemProperties.STATUS_CODE, "ERROR"); MDC.put("TargetEntity",
-     * "Cloudify Manager"); MDC.put("TargetServiceName", "Cloudify Manager");
-     * MDC.put("ErrorCode", "300"); MDC.put("ErrorCategory", "ERROR");
-     * MDC.put("ErrorDescription", "Uploading blueprint failed!");
-     * logger.error(EELFLoggerDelegate.errorLogger,
-     * "uploadBlueprint caught exception"); result = new
-     * RestResponseError(e.getResponseBodyAsString()); } catch (Throwable t) {
-     * MDC.put(SystemProperties.STATUS_CODE, "ERROR"); MDC.put("TargetEntity",
-     * "Cloudify Manager"); MDC.put("TargetServiceName", "Cloudify Manager");
-     * MDC.put("ErrorCode", "300"); MDC.put("ErrorCategory", "ERROR");
-     * MDC.put("ErrorDescription", "Uploading blueprint failed!");
-     * logger.error(EELFLoggerDelegate.errorLogger,
-     * "uploadBlueprint caught exception"); result = new
-     * RestResponseError("uploadBlueprint failed", t); } finally {
-     * postLogAudit(request); } return objectMapper.writeValueAsString(result); }
-     */
-    /**
-     * Deletes the specified blueprint.
-     * 
-     * @param id       Blueprint ID
-     * @param request  HttpServletRequest
-     * @param response HttpServletResponse
-     * @return No content on success; error on failure.
-     * @throws Exception On serialization failure
-     */
-
-    /*
-     * @RequestMapping(value = { BLUEPRINTS_PATH + "/{id}" }, method =
-     * RequestMethod.DELETE, produces = "application/json")
-     * 
-     * @ResponseBody public String deleteBlueprint(@PathVariable("id") String id,
-     * HttpServletRequest request, HttpServletResponse response) throws Exception {
-     * preLogAudit(request); ECTransportModel result = null; try { int code =
-     * cloudifyClient.deleteBlueprint(id); response.setStatus(code); } catch
-     * (HttpStatusCodeException e) { MDC.put(SystemProperties.STATUS_CODE, "ERROR");
-     * MDC.put("TargetEntity", "Cloudify Manager"); MDC.put("TargetServiceName",
-     * "Cloudify Manager"); MDC.put("ErrorCode", "300"); MDC.put("ErrorCategory",
-     * "ERROR"); MDC.put("ErrorDescription", "Deleting blueprint " + id +
-     * " failed!"); logger.error(EELFLoggerDelegate.errorLogger,
-     * "deleteBlueprint caught exception"); result = new
-     * RestResponseError(e.getResponseBodyAsString()); } catch (Throwable t) {
-     * MDC.put(SystemProperties.STATUS_CODE, "ERROR"); MDC.put("TargetEntity",
-     * "Cloudify Manager"); MDC.put("TargetServiceName", "Cloudify Manager");
-     * MDC.put("ErrorCode", "300"); MDC.put("ErrorCategory", "ERROR");
-     * MDC.put("ErrorDescription", "Deleting blueprint " + id + " failed!");
-     * logger.error(EELFLoggerDelegate.errorLogger,
-     * "deleteBlueprint caught exception"); result = new
-     * RestResponseError("deleteBlueprint failed on ID " + id, t); } finally {
-     * postLogAudit(request); } if (result == null) return null; else return
-     * objectMapper.writeValueAsString(result); }
-     */
     /**
      * Gets the specified deployment.
      * 
@@ -553,78 +424,6 @@ public class CloudifyController extends DashboardRestrictedBaseController {
         return outboundJson;
     }
 
-    /**
-     * Processes request to create a deployment based on a blueprint.
-     * 
-     * @param request    HttpServletRequest
-     * @param deployment Deployment to upload
-     * @return Body of deployment; error on failure
-     * @throws Exception On serialization failure
-     */
-    /*
-     * @RequestMapping(value = { DEPLOYMENTS_PATH }, method = RequestMethod.POST,
-     * produces = "application/json")
-     * 
-     * @ResponseBody public String createDeployment(HttpServletRequest
-     * request, @RequestBody CloudifyDeploymentRequest deployment) throws Exception
-     * { preLogAudit(request); ECTransportModel result = null; try { result =
-     * cloudifyClient.createDeployment(deployment); } catch (HttpStatusCodeException
-     * e) { MDC.put(SystemProperties.STATUS_CODE, "ERROR"); MDC.put("TargetEntity",
-     * "Cloudify Manager"); MDC.put("TargetServiceName", "Cloudify Manager");
-     * MDC.put("ErrorCode", "300"); MDC.put("ErrorCategory", "ERROR");
-     * MDC.put("ErrorDescription", "Creating deployment failed!");
-     * logger.error(EELFLoggerDelegate.errorLogger,
-     * "createDeployment caught exception"); result = new
-     * RestResponseError(e.getResponseBodyAsString()); } catch (Throwable t) {
-     * MDC.put(SystemProperties.STATUS_CODE, "ERROR"); MDC.put("TargetEntity",
-     * "Cloudify Manager"); MDC.put("TargetServiceName", "Cloudify Manager");
-     * MDC.put("ErrorCode", "300"); MDC.put("ErrorCategory", "ERROR");
-     * MDC.put("ErrorDescription", "Creating deployment failed!");
-     * logger.error(EELFLoggerDelegate.errorLogger,
-     * "createDeployment caught exception"); result = new
-     * RestResponseError("createDeployment failed", t); } finally {
-     * postLogAudit(request); } return objectMapper.writeValueAsString(result); }
-     */
-    /**
-     * Deletes the specified deployment.
-     * 
-     * @param id              Deployment ID
-     * @param ignoreLiveNodes Boolean indicator whether to force a delete in case of
-     *                        live nodes
-     * @param request         HttpServletRequest
-     * @param response        HttpServletResponse
-     * @return Passes thru HTTP status code from remote endpoint; no body on success
-     * @throws Exception on serialization failure
-     */
-
-    /*
-     * @RequestMapping(value = { DEPLOYMENTS_PATH + "/{id}" }, method =
-     * RequestMethod.DELETE, produces = "application/json")
-     * 
-     * @ResponseBody public String deleteDeployment(@PathVariable("id") String id,
-     * 
-     * @RequestParam(value = "ignore_live_nodes", required = false) Boolean
-     * ignoreLiveNodes, HttpServletRequest request, HttpServletResponse response)
-     * throws Exception { preLogAudit(request); ECTransportModel result = null; try
-     * { int code = cloudifyClient.deleteDeployment(id, ignoreLiveNodes == null ?
-     * false : ignoreLiveNodes); response.setStatus(code); } catch
-     * (HttpStatusCodeException e) { MDC.put(SystemProperties.STATUS_CODE, "ERROR");
-     * MDC.put("TargetEntity", "Cloudify Manager"); MDC.put("TargetServiceName",
-     * "Cloudify Manager"); MDC.put("ErrorCode", "300"); MDC.put("ErrorCategory",
-     * "ERROR"); MDC.put("ErrorDescription", "Deleting deployment " + id +
-     * " failed!"); logger.error(EELFLoggerDelegate.errorLogger,
-     * "deleteDeployment caught exception"); result = new
-     * RestResponseError(e.getResponseBodyAsString()); } catch (Throwable t) {
-     * MDC.put(SystemProperties.STATUS_CODE, "ERROR"); MDC.put("TargetEntity",
-     * "Cloudify Manager"); MDC.put("TargetServiceName", "Cloudify Manager");
-     * MDC.put("ErrorCategory", "ERROR"); MDC.put("ErrorDescription",
-     * "Deleting deployment " + id + " failed!");
-     * logger.error(EELFLoggerDelegate.errorLogger,
-     * "deleteDeployment caught exception"); result = new
-     * RestResponseError("deleteDeployment failed on ID " + id, t); } finally {
-     * postLogAudit(request); } if (result == null) return null; else return
-     * objectMapper.writeValueAsString(result); }
-     */
     /**
      * Gets and serves one page of executions:
      * <OL>
index c63f263..bd53145 100644 (file)
@@ -96,7 +96,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.type.TypeReference;
 
 @RestController
-@RequestMapping("/api-if")
+@RequestMapping("/nb-api")
 public class CommonApiController extends DashboardRestrictedBaseController {
     private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(CommonApiController.class);
 
index 81f3cb3..1e66e38 100644 (file)
@@ -1,38 +1,33 @@
-# Use an official Tomcat image
-FROM tomcat:8
+# Use an official Tomcat base image
+FROM tomcat:8.5-alpine
 
 ENV APPDIR /usr/local/tomcat
 
-WORKDIR ${APPDIR}
-
-# Create deployments directory
-RUN mkdir /home/deployments
-
-# update apt-get
-RUN apt-get update
-
-# Install zip
-RUN apt-get -y --allow-unauthenticated install zip
+ENV APPUSER dash
 
-# Install vim
-RUN apt-get -y --allow-unauthenticated install vim
+RUN adduser -u 1000 -D ${APPUSER}
 
-# Install dos2unix
-RUN apt-get install dos2unix -f --allow-unauthenticated
-
-# Install postgresql
-RUN apt-get -y install postgresql --allow-unauthenticated
+WORKDIR ${APPDIR}
 
-# Download required scripts
 COPY docker-dashboard-installation.sh /tmp/docker-dashboard-installation.sh
 COPY create_table.sql /tmp/create_table.sql
+
+RUN mkdir /home/deployments \
+ && chown -R 1000:1000 ${APPDIR} \
+ && chown -R 1000:1000 /home/deployments \
+ && apk update \
+ && apk add zip \
+ && apk add vim \
+ && apk add dos2unix \
+ && apk add postgresql \
+ && dos2unix /tmp/create_table.sql \
+ && dos2unix /tmp/docker-dashboard-installation.sh \
+ && chmod +x /tmp/create_table.sql \
+ && chmod +x /tmp/docker-dashboard-installation.sh
+
 ARG WAR_FILE
 COPY target/${WAR_FILE} /home/deployments/ccsdk-app.war
 
-# Run docker-dashboard-installation.sh
-RUN dos2unix /tmp/create_table.sql
-RUN dos2unix /tmp/docker-dashboard-installation.sh
-RUN chmod +x /tmp/create_table.sql
-RUN chmod +x /tmp/docker-dashboard-installation.sh
+USER ${APPUSER}
 
 CMD ["/tmp/docker-dashboard-installation.sh"]
index 60b7414..e7a7f67 100644 (file)
@@ -1,3 +1,19 @@
+-- ================================================================================
+-- Copyright (c) 2019-2020 AT&T Intellectual Property. All rights reserved.
+-- ================================================================================
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+--
+--      http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+-- ============LICENSE_END=========================================================
+
 CREATE SCHEMA IF NOT EXISTS dashboard_pg_db_common AUTHORIZATION dashboard_pg_admin;
 
 CREATE TABLE IF NOT EXISTS dashboard_pg_db_common.service(
@@ -1001,8 +1017,6 @@ Insert into dashboard_pg_db_common.fn_role_function (ROLE_ID,FUNCTION_CD) values
 
 -- fn_user
 -- This row defines a superuser which is accepted by login_extern.htm
--- The superuser entry is disabled in this checked-in version, ACTIVE = N,
--- because it is a security hole that should not exist in IST, ETE and PROD. 
 Insert into dashboard_pg_db_common.fn_user 
        (USER_ID,ORG_ID,MANAGER_ID,FIRST_NAME,MIDDLE_NAME,LAST_NAME,PHONE,FAX,CELLULAR,EMAIL,ADDRESS_ID,ALERT_METHOD_CD,HRID,ORG_USER_ID,ORG_CODE,LOGIN_ID,LOGIN_PWD,LAST_LOGIN_DATE,ACTIVE_YN,CREATED_ID,CREATED_DATE,MODIFIED_ID,MODIFIED_DATE,IS_INTERNAL_YN,ADDRESS_LINE_1,ADDRESS_LINE_2,CITY,STATE_CD,ZIP_CODE,COUNTRY_CD,LOCATION_CLLI,ORG_MANAGER_USERID,COMPANY,DEPARTMENT_NAME,JOB_TITLE,TIMEZONE,DEPARTMENT,BUSINESS_UNIT,BUSINESS_UNIT_NAME,COST_CENTER,FIN_LOC_CODE,SILO_STATUS) 
        values 
@@ -1010,28 +1024,15 @@ Insert into dashboard_pg_db_common.fn_user
        ;
 
 -- fn_app
--- Use name "DMAAP-BC-APP" (originally "Default")
 Insert into dashboard_pg_db_common.fn_app (APP_ID,APP_NAME,APP_IMAGE_URL,APP_DESCRIPTION,APP_NOTES,APP_URL,APP_ALTERNATE_URL,APP_REST_ENDPOINT,ML_APP_NAME,ML_APP_ADMIN_ID,MOTS_ID,APP_PASSWORD,OPEN,ENABLED,THUMBNAIL,APP_USERNAME,UEB_KEY,UEB_SECRET,UEB_TOPIC_NAME) VALUES (1,'EC-DASH-APP','assets/images/tmp/portal1.png','Some Default Description','Some Default Note','http://www.att.com','http://www.att.com',null,'ECPP','?','1','JuCerIRKt/faEcx8QdgncLEEv+IOZjpHe7Pi5DEPqKs=','N','Y',null,'Default',null,null,'ECOMP-PORTAL-INBOX');
 
 -- fn_user_role
 Insert into dashboard_pg_db_common.fn_user_role (USER_ID,ROLE_ID,PRIORITY,APP_ID) values (1,1,null,1);
 
--- ---------------------------------------------------------------------------------------------------------------
--- This script populates tables for the ECOMP Controller Dashboard web app.
--- in the 1707 release with data for the internal AT&T version.
--- ---------------------------------------------------------------------------------------------------------------
-
---- SET SEARCH_PATH = ecd_att_1707;
-
--- fn_menu
-INSERT INTO dashboard_pg_db_common.fn_menu (MENU_ID, LABEL, PARENT_ID, SORT_ORDER, ACTION, FUNCTION_CD, ACTIVE_YN, SERVLET, QUERY_STRING, EXTERNAL_URL, TARGET, MENU_SET_CD, SEPARATOR_YN, IMAGE_SRC) 
-       VALUES (92,  'Import from WEBPHONE', 9,  30, 'ecd#/post_search',        'menu_profile_import', 'Y', NULL, NULL, NULL, NULL, 'APP', 'N', NULL);
-
-
 ALTER ROLE dashboard_pg_admin SET search_path TO dashboard_pg_db_common;
 
 -- ---------------------------------------------------------------------------------------------------------------
--- This script creates and populates component table for the ECOMP Controller Dashboard web app.
+-- This script creates and populates component table 
 -- ---------------------------------------------------------------------------------------------------------------
  
 CREATE SEQUENCE IF NOT EXISTS dashboard_pg_db_common.seq_ecd_component;
@@ -1137,67 +1138,19 @@ update dashboard_pg_db_common.fn_function set type = 'menu' , action = '*'  wher
 update dashboard_pg_db_common.fn_function set type = 'menu' , action = '*'  where function_cd = 'menu_logout';
 update dashboard_pg_db_common.fn_function set type = 'menu' , action = '*'  where function_cd = 'login';
 
--- 1902 feature set changes
-
--- Insert rows into fn_function table
-
-INSERT INTO dashboard_pg_db_common.fn_function(function_cd, function_name, type, action) VALUES ('menu_ops', 'OPS Tools', '*', '*');
-INSERT INTO dashboard_pg_db_common.fn_function(function_cd, function_name, type, action) VALUES ('menu_cnsl', 'Consul', '*', '*');
-INSERT INTO dashboard_pg_db_common.fn_function(function_cd, function_name, type, action) VALUES ('menu_cfy', 'Cloudify Manager', '*', '*');
-INSERT INTO dashboard_pg_db_common.fn_function(function_cd, function_name, type, action) VALUES ('menu_grf', 'Grafana', '*', '*');
-INSERT INTO dashboard_pg_db_common.fn_function(function_cd, function_name, type, action) VALUES ('menu_prometh', 'Prometheus', '*', '*');
-INSERT INTO dashboard_pg_db_common.fn_function(function_cd, function_name, type, action) VALUES ('menu_k8s', 'Kubernetes Dashboard', '*', '*');
-INSERT INTO dashboard_pg_db_common.fn_function(function_cd, function_name, type, action) VALUES ('menu_dbcl', 'DBCL Dashboard', '*', '*');
-
--- Insert rows into fn_menu table
-
-INSERT INTO dashboard_pg_db_common.fn_menu(
-       menu_id, label, parent_id, sort_order, action, function_cd, active_yn, servlet, query_string, external_url, target, menu_set_cd, separator_yn, image_src)
-       VALUES (6, 'OPS Tools', 1, 60, '#', 'menu_ops', 'Y', 'NULL', 'NULL', 'NULL', 'NULL', 'APP', 'N', 'icon-building-factory');
-INSERT INTO dashboard_pg_db_common.fn_menu(
-       menu_id, label, parent_id, sort_order, action, function_cd, active_yn, servlet, query_string, external_url, target, menu_set_cd, separator_yn, image_src)
-       VALUES (7, 'DMaaP Bus Controller', 1, 70, '#', 'menu_dbcl', 'Y', 'NULL', 'NULL', 'NULL', 'NULL', 'APP', 'N', 'icon-building-factory');
-INSERT INTO dashboard_pg_db_common.fn_menu(
-       menu_id, label, parent_id, sort_order, action, function_cd, active_yn, servlet, query_string, external_url, target, menu_set_cd, separator_yn, image_src)
-       VALUES (61, 'Cloudify Manager', 6, 10, 'ecd#/cfy', 'menu_cfy', 'Y', 'NULL', 'NULL', 'NULL', 'NULL', 'APP', 'N', 'NULL');
-INSERT INTO dashboard_pg_db_common.fn_menu(
-       menu_id, label, parent_id, sort_order, action, function_cd, active_yn, servlet, query_string, external_url, target, menu_set_cd, separator_yn, image_src)
-       VALUES (62, 'Consul', 6, 20, 'ecd#/cnsl', 'menu_cnsl', 'Y', 'NULL', 'NULL', 'NULL', 'NULL', 'APP', 'N', 'NULL');
-INSERT INTO dashboard_pg_db_common.fn_menu(
-       menu_id, label, parent_id, sort_order, action, function_cd, active_yn, servlet, query_string, external_url, target, menu_set_cd, separator_yn, image_src)
-       VALUES (63, 'Kubernetes Dashboard', 6, 30, 'ecd#/k8s', 'menu_k8s', 'Y', 'NULL', 'NULL', 'NULL', 'NULL', 'APP', 'N', 'NULL');
-INSERT INTO dashboard_pg_db_common.fn_menu(
-       menu_id, label, parent_id, sort_order, action, function_cd, active_yn, servlet, query_string, external_url, target, menu_set_cd, separator_yn, image_src)
-       VALUES (64, 'Grafana', 6, 40, 'ecd#/grf', 'menu_grf', 'Y', 'NULL', 'NULL', 'NULL', 'NULL', 'APP', 'N', 'NULL');
-INSERT INTO dashboard_pg_db_common.fn_menu(
-       menu_id, label, parent_id, sort_order, action, function_cd, active_yn, servlet, query_string, external_url, target, menu_set_cd, separator_yn, image_src)
-       VALUES (65, 'Prometheus', 6, 50, 'ecd#/prom', 'menu_prometh', 'Y', 'NULL', 'NULL', 'NULL', 'NULL', 'APP', 'N', 'NULL');
-
-
--- Insert rows into fn_role_function
-
-INSERT INTO dashboard_pg_db_common.fn_role_function(
-       role_id, function_cd)
-       VALUES (1, 'menu_ops');
-INSERT INTO dashboard_pg_db_common.fn_role_function(
-       role_id, function_cd)
-       VALUES (1, 'menu_dbcl');
-INSERT INTO dashboard_pg_db_common.fn_role_function(
-       role_id, function_cd)
-       VALUES (1, 'menu_cfy');
-INSERT INTO dashboard_pg_db_common.fn_role_function(
-       role_id, function_cd)
-       VALUES (1, 'menu_cnsl');
-INSERT INTO dashboard_pg_db_common.fn_role_function(
-       role_id, function_cd)
-       VALUES (1,'menu_k8s');
-INSERT INTO dashboard_pg_db_common.fn_role_function(
-       role_id, function_cd)
-       VALUES (1, 'menu_grf');
-INSERT INTO dashboard_pg_db_common.fn_role_function(
-       role_id, function_cd)
-       VALUES (1, 'menu_prometh');
-
--- Update action for DBCL menu
-
-update fn_menu set action='ecd#/dbcl' where function_cd='menu_dbcl';
\ No newline at end of file
+-- REST API docs
+Insert into ecompc_db_common.fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_api','API Menu','menu','*');
+
+INSERT INTO fn_menu (MENU_ID, LABEL, PARENT_ID, SORT_ORDER, ACTION, FUNCTION_CD, ACTIVE_YN, SERVLET, QUERY_STRING, EXTERNAL_URL, TARGET, MENU_SET_CD, SEPARATOR_YN, IMAGE_SRC) 
+       VALUES (20,'REST API', 1, 35,'#', 'menu_api', 'Y','N/A','N/A','N/A','N/A','APP','N','icon-arrows-upload');
+
+INSERT INTO fn_menu (MENU_ID, LABEL, PARENT_ID, SORT_ORDER, ACTION, FUNCTION_CD, ACTIVE_YN, SERVLET, QUERY_STRING, EXTERNAL_URL, TARGET, MENU_SET_CD, SEPARATOR_YN, IMAGE_SRC) 
+       VALUES (21,'Documentation', 20, 35,'ecd#/api', 'menu_api', 'Y','N/A','N/A','N/A','N/A','APP','N','');
+       
+INSERT INTO fn_menu (MENU_ID, LABEL, PARENT_ID, SORT_ORDER, ACTION, FUNCTION_CD, ACTIVE_YN, SERVLET, QUERY_STRING, EXTERNAL_URL, TARGET, MENU_SET_CD, SEPARATOR_YN, IMAGE_SRC) 
+       VALUES (22,'Swagger Spec', 20, 40,'ecd#/api-spec', 'menu_api', 'Y','N/A','N/A','N/A','N/A','APP','N','');
+       
+Insert into dashboard_pg_db_common.fn_role_function (ROLE_ID,FUNCTION_CD) values (1,'menu_api');
+Insert into dashboard_pg_db_common.fn_role_function (ROLE_ID,FUNCTION_CD) values (2,'menu_api');
+Insert into dashboard_pg_db_common.fn_role_function (ROLE_ID,FUNCTION_CD) values (3,'menu_api');
+Insert into dashboard_pg_db_common.fn_role_function (ROLE_ID,FUNCTION_CD) values (16,'menu_api');
\ No newline at end of file
index d658490..030e75a 100644 (file)
@@ -47,5 +47,18 @@ export PGPASSWORD=$postgres_password_dashboard
 psql -h $postgres_ip -U $postgres_user_dashboard $postgres_db_name -f /tmp/create_table.sql
 psql -h $postgres_ip -U $postgres_user_dashboard $postgres_db_name -c "update FN_APP set app_username='${aaf_app_user}' where app_id=1"
 
+# Update tomcat server.xml to enable HTTPS protocol
+if [[ -f /usr/local/share/ca-certificates/cert.jks && $CATALINA_HOME/conf/server.xml ]]
+then
+    echo "<Connector
+    protocol=\"org.apache.coyote.http11.Http11NioProtocol\"
+    port=\"8443\" maxThreads=\"200\"
+    scheme=\"https\" secure=\"true\" SSLEnabled=\"true\"
+    keystoreFile=\"/usr/local/share/ca-certificates/cert.jks\" keystorePass=\"`cat /usr/local/share/ca-certificates/jks.pass`\"
+    clientAuth=\"false\" sslProtocol=\"TLS\"/>" >> enablehttps.txt
+    sed '/Service name=\"Catalina\">/r enablehttps.txt' $CATALINA_HOME/conf/server.xml > $CATALINA_HOME/conf/server-https.xml
+    mv $CATALINA_HOME/conf/server-https.xml $CATALINA_HOME/conf/server.xml
+fi
+
 # Start the tomcat server
 catalina.sh run
index f4c24fa..f0764d4 100644 (file)
@@ -6,12 +6,12 @@
        <parent>
                <groupId>org.onap.ccsdk.dashboard</groupId>
                <artifactId>ccsdk-app-parent</artifactId>
-               <version>1.2.0-SNAPSHOT</version>
+               <version>1.3.0-SNAPSHOT</version>
        </parent>
 
        <groupId>org.onap.ccsdk.dashboard</groupId>
        <artifactId>ccsdk-app-os</artifactId>
-       <version>1.2.0-SNAPSHOT</version>
+       <version>1.3.0-SNAPSHOT</version>
        <packaging>war</packaging>
        <name>ONAP Operations Manager Dashboard app</name>
        <description>CCSDK Dashboard Web Application for external release</description>
@@ -20,7 +20,7 @@
                <encoding>UTF-8</encoding>
                <springframework.version>4.3.22.RELEASE</springframework.version>
                <hibernate.version>4.3.11.Final</hibernate.version>
-               <epsdk.version>2.5.0</epsdk.version>
+               <epsdk.version>2.6.0</epsdk.version>
                <ccsdk.version>${project.version}</ccsdk.version>
                <nexusproxy>https://nexus.onap.org</nexusproxy>
                <snapshotNexusPath>content/repositories/snapshots/</snapshotNexusPath>
                                        <artifactId>jest</artifactId>
                                </exclusion>
                        </exclusions>
+               </dependency>
+                               <!--  overrides for spring libs -->
+               <dependency>
+                       <groupId>org.springframework</groupId>
+                       <artifactId>spring-context</artifactId>
+                       <version>${springframework.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.springframework</groupId>
+                       <artifactId>spring-context-support</artifactId>
+                       <version>${springframework.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.springframework</groupId>
+                       <artifactId>spring-core</artifactId>
+                       <version>${springframework.version}</version>
+                       <exclusions>
+                               <exclusion>
+                                       <groupId>commons-logging</groupId>
+                                       <artifactId>commons-logging</artifactId>
+                               </exclusion>
+                       </exclusions>
+               </dependency>
+               <dependency>
+                       <groupId>org.springframework</groupId>
+                       <artifactId>spring-aop</artifactId>
+                       <version>${springframework.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.springframework</groupId>
+                       <artifactId>spring-tx</artifactId>
+                       <version>${springframework.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.springframework</groupId>
+                       <artifactId>spring-web</artifactId>
+                       <version>${springframework.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.springframework</groupId>
+                       <artifactId>spring-webmvc</artifactId>
+                       <version>${springframework.version}</version>
                </dependency>
        </dependencies>
 </project>
index 2f328eb..807ae78 100644 (file)
@@ -142,7 +142,7 @@ public class ExternalAppConfig extends AppConfig implements Configurable {
     public void addInterceptors(InterceptorRegistry registry) {
         super.setExcludeUrlPathsForSessionTimeout("/login_external", "*/login_external.htm",
             "login", "/login.htm", "/api*", "/single_signon.htm", "/single_signon", "/health*",
-            "/ecomp-api/**");
+            "/nb-api/**");
         super.addInterceptors(registry);
     }
 
diff --git a/ccsdk-app-os/src/main/resources/swagger.json b/ccsdk-app-os/src/main/resources/swagger.json
new file mode 100644 (file)
index 0000000..de1bf0b
--- /dev/null
@@ -0,0 +1,1221 @@
+{
+  "swagger": "2.0",
+  "info": {
+    "description": "API to manage deployment of microservices using blueprints.",
+    "version": "1.0.0",
+    "title": "DCAE Dashboard API",
+    "contact": {
+      "email": "rp5662@att.com"
+    }
+  },
+  "host": "dcae-dashboard:8080",
+  "basePath": "/ccsdk-app-os/nb-api",
+  "tags": [
+    {
+      "name": "Blueprints",
+      "description": "Query blueprint information"
+    },
+    {
+      "name": "Deployments",
+      "description": "Manage deployments"
+    },
+    {
+      "name": "Tenants",
+      "description": "Query Cloudify Tenants"
+    },
+    {
+      "name": "Components",
+      "description": "Query on-boarded components"
+    }
+  ],
+  "schemes": [
+    "https",
+    "http"
+  ],
+  "paths": {
+    "/tenants": {
+      "get": {
+        "tags": [
+          "Tenants"
+        ],
+        "summary": "Lists all Cloudify Tenants",
+        "description": "Query all Tenant names from Cloudify",
+        "operationId": "List Tenants",
+        "produces": [
+          "application/json"
+        ],
+        "parameters": [],
+        "responses": {
+          "200": {
+            "description": "successful operation",
+            "schema": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Tenant"
+              }
+            }
+          },
+          "400": {
+            "description": "Invalid status value"
+          }
+        }
+      }
+    },
+    "/components": {
+      "get": {
+        "tags": [
+          "Components"
+        ],
+        "summary": "Lists all application components",
+        "description": "Query all components from database",
+        "operationId": "List Components",
+        "produces": [
+          "application/json"
+        ],
+        "parameters": [],
+        "responses": {
+          "200": {
+            "description": "successful operation",
+            "schema": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/Component"
+              }
+            }
+          },
+          "400": {
+            "description": "Invalid status value"
+          }
+        }
+      },
+      "post": {
+        "tags": [
+          "Components"
+        ],
+        "summary": "add an application component",
+        "description": "Insert a component into database",
+        "operationId": "Add Component",
+        "consumes": [
+          "application/json"
+        ],
+        "parameters": [
+          {
+            "in": "body",
+            "name": "body",
+            "description": "New component input",
+            "required": true,
+            "schema": {
+              "$ref": "#/definitions/ComponentInput"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "successful operation",
+            "schema": {
+              "type": "object"
+            }
+          },
+          "400": {
+            "description": "Invalid status value"
+          }
+        }
+      }
+    },
+    "/deployments": {
+      "get": {
+        "tags": [
+          "Deployments"
+        ],
+        "summary": "Lists all Deployments",
+        "description": "Query all deployments or Service objects from Inventory",
+        "operationId": "List Deployments",
+        "produces": [
+          "application/json"
+        ],
+        "parameters": [
+          {
+            "name": "pageNum",
+            "in": "query",
+            "description": "pagination control - page number",
+            "required": true,
+            "type": "string"
+          },
+          {
+            "name": "viewPerPage",
+            "in": "query",
+            "description": "pagination control - page size",
+            "required": true,
+            "type": "string"
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "successful operation",
+            "schema": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/DCAEService"
+              }
+            }
+          },
+          "400": {
+            "description": "Invalid status value"
+          }
+        }
+      },
+      "post": {
+        "tags": [
+          "Deployments"
+        ],
+        "summary": "Initiate a deployment (install) operation for an application or service",
+        "description": "Controller sends the blueprint and required inputs to Deployment Handler microservice to initiate the deployment process",
+        "operationId": "Create Deployment",
+        "consumes": [
+          "application/json"
+        ],
+        "produces": [
+          "application/json"
+        ],
+        "parameters": [
+          {
+            "in": "body",
+            "name": "body",
+            "description": "Inputs to initiate a deployment: blueprint ID from inventory, Cloudify tenant name, blueprint inputs",
+            "required": true,
+            "schema": {
+              "$ref": "#/definitions/DeploymentInput"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "successful operation",
+            "schema": {
+              "$ref": "#/definitions/DeploymentResource"
+            }
+          },
+          "405": {
+            "description": "Invalid input"
+          }
+        }
+      }
+    },
+    "/deployments/{deploymentId}": {
+      "delete": {
+        "tags": [
+          "Deployments"
+        ],
+        "summary": "Initiate an uninstall operation for an application or service",
+        "description": "Controller sends the deployment reference to Deployment Handler microservice to initiate the uninstall process",
+        "operationId": "Delete Deployment",
+        "produces": [
+          "application/json"
+        ],
+        "parameters": [
+          {
+            "name": "deploymentId",
+            "in": "path",
+            "description": "ID of deployment to query",
+            "required": true,
+            "type": "string"
+          },
+          {
+            "name": "tenant",
+            "in": "query",
+            "description": "Cloudify Tenant name",
+            "required": true,
+            "type": "string"
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "successful operation",
+            "schema": {
+              "type": "string"
+            }
+          },
+          "400": {
+            "description": "Invalid status value"
+          }
+        }
+      },
+      "put": {
+        "tags": [
+          "Deployments"
+        ],
+        "summary": "Upgrade or Rollback an existing deployment using Cloudify Helm plugin",
+        "description": "Upgrade or Rollback an existing deployment using Cloudify Helm plugin",
+        "operationId": "Upgrade/Rollback Deployment",
+        "consumes": [
+          "application/json"
+        ],
+        "produces": [
+          "application/json"
+        ],
+        "parameters": [
+          {
+            "name": "deploymentId",
+            "in": "path",
+            "description": "ID of deployment in context",
+            "required": true,
+            "type": "string"
+          },
+          {
+            "in": "body",
+            "name": "body",
+            "description": "Cloudify Execution Request object that has parameters to start either an upgrade or a rollback execution workflow",
+            "required": true,
+            "schema": {
+              "$ref": "#/definitions/CloudifyDeploymentUpgradeRequest"
+            }
+          }
+        ],
+        "responses": {
+          "400": {
+            "description": "Invalid ID supplied"
+          },
+          "404": {
+            "description": "Deployment not found"
+          },
+          "405": {
+            "description": "Validation exception"
+          }
+        }
+      },
+      "get": {
+        "tags": [
+          "Deployments"
+        ],
+        "summary": "Gets a Deployment",
+        "description": "Query a deployment or Service object from Inventory",
+        "operationId": "Get Deployment",
+        "produces": [
+          "application/json"
+        ],
+        "parameters": [
+          {
+            "name": "deploymentId",
+            "in": "path",
+            "description": "ID of deployment to query",
+            "required": true,
+            "type": "string"
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "successful operation",
+            "schema": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/DCAEService"
+              }
+            }
+          },
+          "400": {
+            "description": "Invalid status value"
+          }
+        }
+      }
+    },
+    "/deployments/{deploymentId}/update": {
+      "put": {
+        "tags": [
+          "Deployments"
+        ],
+        "summary": "Update an existing deployment",
+        "description": "Dispatch a request to Deployment handler mS to use Cloudify deployment update operation ",
+        "operationId": "Update Deployment",
+        "consumes": [
+          "application/json"
+        ],
+        "produces": [
+          "application/json"
+        ],
+        "parameters": [
+          {
+            "name": "deploymentId",
+            "in": "path",
+            "description": "ID of deployment to update",
+            "required": true,
+            "type": "string"
+          },
+          {
+            "in": "body",
+            "name": "body",
+            "description": "Inputs to initiate a deployment: blueprint ID from inventory, Cloudify tenant name, blueprint inputs",
+            "required": true,
+            "schema": {
+              "$ref": "#/definitions/DeploymentInput"
+            }
+          }
+        ],
+        "responses": {
+          "400": {
+            "description": "Invalid ID supplied"
+          },
+          "404": {
+            "description": "Deployment not found"
+          },
+          "405": {
+            "description": "Validation exception"
+          }
+        }
+      }
+    },
+    "/deployments/{deploymentId}/executions": {
+      "get": {
+        "tags": [
+          "Deployments"
+        ],
+        "summary": "Deployment execution status",
+        "description": "Query deployment workflow execution status",
+        "operationId": "Deployment Status",
+        "produces": [
+          "application/json"
+        ],
+        "parameters": [
+          {
+            "name": "deploymentId",
+            "in": "path",
+            "description": "ID of deployment to query execution status",
+            "required": true,
+            "type": "string"
+          },
+          {
+            "name": "tenant",
+            "in": "query",
+            "description": "tenant name associated with the deployment",
+            "required": true,
+            "type": "string"
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "successful operation",
+            "schema": {
+              "type": "array",
+              "items": {
+                "$ref": "#/definitions/execution"
+              }
+            }
+          },
+          "400": {
+            "description": "Invalid status value"
+          }
+        }
+      }
+    },
+    "/deployments/{deploymentId}/health": {
+      "get": {
+        "tags": [
+          "Deployments"
+        ],
+        "summary": "Deployment health status",
+        "description": "Query consul for service health using deployment ID filter",
+        "operationId": "Deployment health",
+        "produces": [
+          "application/json"
+        ],
+        "parameters": [
+          {
+            "name": "deploymentId",
+            "in": "path",
+            "description": "ID of deployment to query service health",
+            "required": true,
+            "type": "string"
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "successful operation",
+            "schema": {
+              "$ref": "#/definitions/serviceHealth"
+            }
+          }
+        }
+      }
+    },
+    "/deployments/{deploymentId}/inputs": {
+      "get": {
+        "tags": [
+          "Deployments"
+        ],
+        "summary": "Deployment inputs",
+        "description": "Get blueprint inputs used to create deployment",
+        "operationId": "Deployment Inputs",
+        "produces": [
+          "application/json"
+        ],
+        "parameters": [
+          {
+            "name": "deploymentId",
+            "in": "path",
+            "description": "ID of deployment to query execution status",
+            "required": true,
+            "type": "string"
+          },
+          {
+            "name": "tenant",
+            "in": "query",
+            "description": "tenant name associated with the deployment",
+            "required": true,
+            "type": "string"
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "successful operation",
+            "schema": {
+              "type": "object",
+              "items": {
+                "$ref": "#/definitions/deploymentInputs"
+              }
+            }
+          },
+          "400": {
+            "description": "Invalid status value"
+          }
+        }
+      }
+    },
+    "/blueprints": {
+      "get": {
+        "tags": [
+          "Blueprints"
+        ],
+        "summary": "Find all blueprint templates",
+        "description": "Fetch the blueprints data from inventory",
+        "operationId": "List Blueprints",
+        "produces": [
+          "application/json"
+        ],
+        "parameters": [
+          {
+            "name": "pageNum",
+            "in": "query",
+            "description": "pagination control - page number",
+            "required": true,
+            "type": "string"
+          },
+          {
+            "name": "viewPerPage",
+            "in": "query",
+            "description": "pagination control - page size",
+            "required": true,
+            "type": "string"
+          },
+          {
+            "name": "_include",
+            "in": "query",
+            "description": "blueprint object properties need to be considered for filter",
+            "required": false,
+            "type": "array",
+            "items": {
+              "type": "string",
+              "enum": [
+                "typeName",
+                "typeId",
+                "typeVersion"
+              ],
+              "default": "typeName"
+            },
+            "collectionFormat": "multi"
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "List of `DCAEServiceType` objects",
+            "schema": {
+              "$ref": "#/definitions/InlineResponse200"
+            }
+          },
+          "400": {
+            "description": "Invalid tag value"
+          }
+        }
+      },
+      "post": {
+        "tags": [
+          "Blueprints"
+        ],
+        "summary": "Create/Upload a new blueprint template",
+        "description": "Upload a new blueprint template into inventory",
+        "operationId": "Create Blueprint",
+        "produces": [
+          "application/json"
+        ],
+        "parameters": [
+          {
+            "in": "body",
+            "name": "body",
+            "description": "upload blueprint request to inventory",
+            "required": true,
+            "schema": {
+              "$ref": "#/definitions/DCAEServiceTypeRequest"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "A `DCAEServiceType` object",
+            "schema": {
+              "$ref": "#/definitions/InlineResponse200"
+            }
+          },
+          "400": {
+            "description": "Invalid tag value"
+          }
+        }
+      }
+    },
+    "/blueprints/{typeId}": {
+      "delete": {
+        "tags": [
+          "Blueprints"
+        ],
+        "summary": "Delete a blueprint template",
+        "description": "Delete a blueprint template from inventory",
+        "operationId": "Delete Blueprint",
+        "produces": [
+          "application/json"
+        ],
+        "parameters": [
+          {
+            "name": "typeId",
+            "in": "path",
+            "description": "ID of blueprint to delete",
+            "required": true,
+            "type": "string"
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "successful operation"
+          }
+        }
+      }
+    },
+    "/blueprints/{typeId}/services": {
+      "get": {
+        "tags": [
+          "Blueprints"
+        ],
+        "summary": "Get Services mapped to a blueprint template",
+        "description": "Get Deployment References existing for a blueprint",
+        "operationId": "Get Deployments for a blueprint",
+        "produces": [
+          "application/json"
+        ],
+        "parameters": [
+          {
+            "name": "typeId",
+            "in": "path",
+            "description": "ID of blueprint to query",
+            "required": true,
+            "type": "string"
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "successful operation"
+          }
+        }
+      }
+    },
+    "/blueprints/findByName": {
+      "get": {
+        "tags": [
+          "Blueprints"
+        ],
+        "summary": "Find a blueprint by a name pattern",
+        "description": "Fetch the blueprint objects from inventory whose names match a string pattern",
+        "operationId": "Get Blueprint",
+        "produces": [
+          "application/json"
+        ],
+        "parameters": [
+          {
+            "name": "name",
+            "in": "query",
+            "description": "name pattern to filter by",
+            "required": true,
+            "type": "string"
+          },
+          {
+            "name": "_include",
+            "in": "query",
+            "description": "blueprint object properties need to be considered for filter",
+            "required": false,
+            "type": "array",
+            "items": {
+              "type": "string",
+              "enum": [
+                "typeName",
+                "typeId",
+                "typeVersion"
+              ],
+              "default": "typeName"
+            },
+            "collectionFormat": "multi"
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "List of `DCAEServiceType` objects",
+            "schema": {
+              "$ref": "#/definitions/InlineResponse200"
+            }
+          },
+          "400": {
+            "description": "Invalid tag value"
+          }
+        }
+      }
+    }
+  },
+  "responses": {
+    "UnauthorizedError": {
+      "description": "Authentication information is missing or invalid",
+      "headers": {
+        "WWW_Authenticate": {
+          "type": "string"
+        }
+      }
+    }
+  },
+  "definitions": {
+    "Tenant": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "type": "string",
+          "description": "cloudify tenant name"
+        }
+      }
+    },
+    "Component": {
+      "type": "object",
+      "properties": {
+        "compId": {
+          "type": "integer"
+        },
+        "cname": {
+          "type": "string",
+          "description": "component namespace name"
+        },
+        "dname": {
+          "type": "string",
+          "description": "component display name"
+        }
+      }
+    },
+    "ComponentInput": {
+      "type": "object",
+      "properties": {
+        "cname": {
+          "type": "string",
+          "description": "component namespace name"
+        },
+        "dname": {
+          "type": "string",
+          "description": "component display name"
+        }
+      }
+    },
+    "InlineResponse200": {
+      "type": "object",
+      "properties": {
+        "links": {
+          "$ref": "#/definitions/InlineResponse200Links"
+        },
+        "totalCount": {
+          "type": "integer",
+          "format": "int32"
+        },
+        "items": {
+          "type": "array",
+          "items": {
+            "$ref": "#/definitions/DCAEServiceType"
+          }
+        }
+      }
+    },
+    "InlineResponse200Links": {
+      "type": "object",
+      "properties": {
+        "previousLink": {
+          "$ref": "#/definitions/Link"
+        },
+        "nextLink": {
+          "$ref": "#/definitions/Link"
+        }
+      },
+      "description": "Pagination links"
+    },
+    "ApiResponseMessage": {
+      "type": "object",
+      "properties": {
+        "code": {
+          "type": "integer",
+          "format": "int32"
+        },
+        "type": {
+          "type": "string"
+        },
+        "message": {
+          "type": "string"
+        }
+      }
+    },
+    "DCAEService": {
+      "type": "object",
+      "properties": {
+        "serviceId": {
+          "type": "string"
+        },
+        "selfLink": {
+          "description": "Link.title is serviceId",
+          "$ref": "#/definitions/Link"
+        },
+        "created": {
+          "type": "string",
+          "format": "date-time"
+        },
+        "modified": {
+          "type": "string",
+          "format": "date-time"
+        },
+        "typeLink": {
+          "description": "Link.title is typeId",
+          "$ref": "#/definitions/Link"
+        },
+        "vnfId": {
+          "type": "string"
+        },
+        "vnfLink": {
+          "description": "Link.title is vnfId",
+          "$ref": "#/definitions/Link"
+        },
+        "vnfType": {
+          "type": "string"
+        },
+        "vnfLocation": {
+          "type": "string",
+          "description": "Location information of the associated VNF"
+        },
+        "deploymentRef": {
+          "type": "string",
+          "description": "Reference to a Cloudify deployment"
+        },
+        "components": {
+          "type": "array",
+          "items": {
+            "$ref": "#/definitions/DCAEServiceComponent"
+          }
+        },
+        "tenant": {
+          "type": "string",
+          "description": "cloudify tenant name"
+        }
+      }
+    },
+    "InlineResponse2001": {
+      "type": "object",
+      "properties": {
+        "links": {
+          "$ref": "#/definitions/InlineResponse200Links"
+        },
+        "totalCount": {
+          "type": "integer",
+          "format": "int32"
+        },
+        "items": {
+          "type": "array",
+          "items": {
+            "$ref": "#/definitions/DCAEService"
+          }
+        }
+      }
+    },
+    "UriBuilder": {
+      "type": "object"
+    },
+    "Link": {
+      "type": "object",
+      "properties": {
+        "title": {
+          "type": "string"
+        },
+        "rel": {
+          "type": "string"
+        },
+        "uri": {
+          "type": "string",
+          "format": "uri"
+        },
+        "uriBuilder": {
+          "$ref": "#/definitions/UriBuilder"
+        },
+        "rels": {
+          "type": "array",
+          "items": {
+            "type": "string"
+          }
+        },
+        "params": {
+          "type": "object",
+          "additionalProperties": {
+            "type": "string"
+          }
+        },
+        "type": {
+          "type": "string"
+        }
+      }
+    },
+    "DCAEServiceComponent": {
+      "type": "object",
+      "required": [
+        "componentId",
+        "componentLink",
+        "componentSource",
+        "componentType",
+        "created",
+        "modified",
+        "shareable"
+      ],
+      "properties": {
+        "componentId": {
+          "type": "string",
+          "description": "The id format is unique to the source"
+        },
+        "componentLink": {
+          "description": "Link to the underlying resource of this component",
+          "$ref": "#/definitions/Link"
+        },
+        "created": {
+          "type": "string",
+          "format": "date-time"
+        },
+        "modified": {
+          "type": "string",
+          "format": "date-time"
+        },
+        "componentType": {
+          "type": "string"
+        },
+        "componentSource": {
+          "type": "string",
+          "description": "Specifies the name of the underying source service that is responsible for this components",
+          "enum": [
+            "DCAEController",
+            "DMaaPController"
+          ]
+        },
+        "status": {
+          "type": "string"
+        },
+        "location": {
+          "type": "string",
+          "description": "Location information of the component"
+        },
+        "shareable": {
+          "type": "integer",
+          "format": "int32",
+          "description": "Used to determine if this component can be shared amongst different DCAE services"
+        }
+      }
+    },
+    "DCAEServiceTypeRequest": {
+      "type": "object",
+      "required": [
+        "blueprintTemplate",
+        "owner",
+        "typeName",
+        "typeVersion",
+        "application",
+        "component"
+      ],
+      "properties": {
+        "owner": {
+          "type": "string"
+        },
+        "typeName": {
+          "type": "string",
+          "description": "Descriptive name for this DCAE service type"
+        },
+        "typeVersion": {
+          "type": "integer",
+          "format": "int32",
+          "description": "Version number for this DCAE service type"
+        },
+        "blueprintTemplate": {
+          "type": "string",
+          "description": "String representation of a Cloudify blueprint with unbound variables"
+        },
+        "application": {
+          "type": "string",
+          "description": "controller application name"
+        },
+        "component": {
+          "type": "string",
+          "description": "onboarding component name"
+        }
+      }
+    },
+    "DCAEServiceType": {
+      "type": "object",
+      "required": [
+        "blueprintTemplate",
+        "created",
+        "owner",
+        "selfLink",
+        "typeId",
+        "typeName",
+        "typeVersion"
+      ],
+      "properties": {
+        "owner": {
+          "type": "string"
+        },
+        "typeName": {
+          "type": "string",
+          "description": "Descriptive name for this DCAE service type"
+        },
+        "typeVersion": {
+          "type": "integer",
+          "format": "int32",
+          "description": "Version number for this DCAE service type"
+        },
+        "blueprintTemplate": {
+          "type": "string",
+          "description": "String representation of a Cloudify blueprint with unbound variables"
+        },
+        "serviceIds": {
+          "type": "array",
+          "description": "List of service ids that are used to associate with DCAE service type. DCAE service types with this propery as null or empty means them apply for every service id.",
+          "items": {
+            "type": "string"
+          }
+        },
+        "vnfTypes": {
+          "type": "array",
+          "items": {
+            "type": "string"
+          }
+        },
+        "serviceLocations": {
+          "type": "array",
+          "description": "List of service locations that are used to associate with DCAE service type. DCAE service types with this propery as null or empty means them apply for every service location.",
+          "items": {
+            "type": "string"
+          }
+        },
+        "asdcServiceId": {
+          "type": "string",
+          "description": "Id of service this DCAE service type is associated with. Value source is from ASDC's notification event's field `serviceInvariantUUID`."
+        },
+        "asdcResourceId": {
+          "type": "string",
+          "description": "Id of vf/vnf instance this DCAE service type is associated with. Value source is from ASDC's notification event's field `resourceInvariantUUID`."
+        },
+        "asdcServiceURL": {
+          "type": "string",
+          "description": "URL to the ASDC service model"
+        },
+        "typeId": {
+          "type": "string",
+          "description": "Unique identifier for this DCAE service type"
+        },
+        "selfLink": {
+          "description": "Link to self where the Link.title is typeName",
+          "$ref": "#/definitions/Link"
+        },
+        "created": {
+          "type": "string",
+          "format": "date-time",
+          "description": "Created timestamp for this DCAE service type in epoch time"
+        },
+        "deactivated": {
+          "type": "string",
+          "format": "date-time",
+          "description": "Deactivated timestamp for this DCAE service type in epoch time"
+        }
+      }
+    },
+    "CloudifyDeploymentUpgradeRequest": {
+      "type": "object",
+      "required": [
+        "chartVersion",
+        "chartRepo",
+        "config_url",
+        "config_format",
+        "tenant",
+        "workflow"
+      ],
+      "properties": {
+        "chartVersion": {
+          "type": "string",
+          "description": "Helm package version used for install"
+        },
+        "chartRepo": {
+          "type": "string",
+          "description": "Helm repository URL for the chart"
+        },
+        "config_url": {
+          "type": "string",
+          "description": "Helm repository URL for the chart values to update"
+        },
+        "config_format": {
+          "type": "string",
+          "description": "yaml format or json format"
+        },
+        "tenant": {
+          "type": "string",
+          "description": "cloudify tenant name for the deployment upgrade"
+        },
+        "workflow": {
+          "type": "string",
+          "description": "input values are upgrade or rollback - helm upgrade workflow or helm rollback workflow "
+        }
+      }
+    },
+    "DeploymentInput": {
+      "type": "object",
+      "required": [
+        "component",
+        "tag",
+        "blueprintName",
+        "tenant",
+        "inputs"
+      ],
+      "properties": {
+        "component": {
+          "type": "string",
+          "description": "component or namespace for the service"
+        },
+        "tag": {
+          "type": "string",
+          "description": "tag to identify the deployment"
+        },
+        "blueprintId": {
+          "type": "string",
+          "description": "typeId from inventory, a unique Id for the blueprint"
+        },
+        "blueprintName": {
+          "type": "string",
+          "description": "Descriptive name for this DCAE service type"
+        },
+        "blueprintVersion": {
+          "type": "integer",
+          "format": "int32",
+          "description": "Version number for this DCAE service type, optional. Defaults to latest version."
+        },
+        "tenant": {
+          "type": "string",
+          "description": "cloudify tenant name"
+        },
+        "inputs": {
+          "type": "object",
+          "description": "JSON object containing the input parameter names and values"
+        }
+      }
+    },
+    "deploymentInputs": {
+      "type": "object"
+    },
+    "serviceHealth": {
+      "type": "object",
+      "properties": {
+        "node": {
+          "type": "string",
+          "description": "The node where service is deployed"
+        },
+        "checkID": {
+          "type": "string",
+          "description": "A unique identifier for the service health check"
+        },
+        "name": {
+          "type": "string",
+          "description": "A unique name for this service health check"
+        },
+        "status": {
+          "type": "string",
+          "description": "Health check status"
+        },
+        "serviceID": {
+          "type": "string",
+          "description": "An identifier containing combination of consul registration ID and consul service name"
+        },
+        "serviceName": {
+          "type": "string",
+          "description": "A unique consul service name"
+        }
+      }
+    },
+    "execution": {
+      "type": "object",
+      "properties": {
+        "created_at": {
+          "type": "string",
+          "description": "The time the execution was queued at"
+        },
+        "deployment_id": {
+          "type": "string",
+          "description": "The id of the deployment the execution is in the context of"
+        },
+        "id": {
+          "type": "string",
+          "description": "A unique identifier for the execution"
+        },
+        "status": {
+          "type": "string",
+          "description": "The executions status"
+        },
+        "workflow_id": {
+          "type": "string",
+          "description": "The id/name of the workflow the execution is of"
+        },
+        "tenant_name": {
+          "type": "string",
+          "description": "Cloudify tenant name where the deployment was done"
+        }
+      }
+    },
+    "DeploymentResourceLinks": {
+      "type": "object",
+      "properties": {
+        "self": {
+          "description": "Link to retrieve information about the service being deployed",
+          "type": "string"
+        },
+        "outcome": {
+          "description": "Link to retrieve information about deployment outcome",
+          "type": "string"
+        },
+        "status": {
+          "description": "Link to retrieve information about the status of the installation workflow",
+          "type": "string"
+        }
+      }
+    },
+    "DeploymentResource": {
+      "type": "object",
+      "properties": {
+        "deployment_id": {
+          "type": "string",
+          "description": "unique ID for the deployment resource"
+        },
+        "links": {
+          "$ref": "#/definitions/DeploymentResourceLinks",
+          "description": "Links that the API client can access"
+        }
+      }
+    }
+  },
+  "externalDocs": {
+    "description": "Find out more about Swagger",
+    "url": "http://swagger.io"
+  }
+}
\ No newline at end of file
index 2496647..9e221cd 100644 (file)
@@ -1,4 +1,23 @@
-# ATT dashboard.properties
+###############################################################################
+# =============LICENSE_START=========================================================
+#
+# =================================================================================
+#  Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#  
+#      http://www.apache.org/licenses/LICENSE-2.0
+#  
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+# ============LICENSE_END=========================================================
+#
+###############################################################################
 
 # Properties for the ONAP Controller Dashboard webapp
 
@@ -14,11 +33,12 @@ controller.env = dev
 controller.key.list = dev
 
 dev.name = Local
-dev.url = https://orcl.com/api/v3.1
-dev.inventory.url = https://inventory.com:30123/
-dev.dhandler.url = https://dplh.com:30125/
-dev.consul.url = http://consul.com:8500/
+dev.url = https://dashboard.onap.svc.cluster.local/api/v3.1
+dev.inventory.url = https://inventory.onap.svc.cluster.local:8443/
+dev.dhandler.url = https://dplh.onap.svc.cluster.local:8443/
+dev.consul.url = https://cnsl.onap.svc.cluster.local:9500/
 
 dev.username = admin
 dev.password =  admin
 dev.is_encrypted = false
+
index 4d66dba..940bcf1 100644 (file)
@@ -2,7 +2,7 @@
 # =============LICENSE_START=========================================================
 #
 # =================================================================================
-#  Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+#  Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
 # ================================================================================
 #  Licensed under the Apache License, Version 2.0 (the "License");
 #  you may not use this file except in compliance with the License.
 #  limitations under the License.
 # ============LICENSE_END=========================================================
 #
-#  ECOMP is a trademark and service mark of AT&T Intellectual Property.
 ###############################################################################
 # OS system.properties
 
-app_display_name = ONAP Operations UI
+app_display_name = DCAE Dashboard
 
 # Postgres
 db.driver=org.postgresql.Driver
index 01ba9f7..5374b1a 100644 (file)
@@ -2,7 +2,7 @@
 # =============LICENSE_START=========================================================
 #
 # =================================================================================
-#  Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+#  Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
 # ================================================================================
 #  Licensed under the Apache License, Version 2.0 (the "License");
 #  you may not use this file except in compliance with the License.
 #  limitations under the License.
 # ============LICENSE_END=========================================================
 #
-#  ECOMP is a trademark and service mark of AT&T Intellectual Property.
 ###############################################################################
-# OS fusion.properties
-
 # login settings
 #login_method_csp            = csp
 #login_method_web_junction   = web_junction
@@ -61,3 +58,4 @@ business_direct_menu_attribute_name  = businessDirectMenuData
 
 # Role settings
 sys_admin_role_id = 1
+
similarity index 94%
rename from ccsdk-app-os/src/main/webapp/oom-api.html
rename to ccsdk-app-os/src/main/webapp/api-specs.html
index 5ed224c..b43fbf4 100644 (file)
@@ -7,7 +7,7 @@
     <meta charset="utf-8">
     <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
-    <title>Operations Manager API</title>
+    <title>DCAE Dashboard API</title>
 
     <style>
     </style>
@@ -369,6 +369,21 @@ td,
 th {
   padding: 0; }
 
+/*
+Copyright 2008-2013 Concur Technologies, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may
+not use this file except in compliance with the License. You may obtain
+a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+*/
 .content h1, .content h2, .content h3, .content h4, .content h5, .content h6, html, body {
   font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
   font-size: 14px; }
@@ -413,7 +428,21 @@ th {
 .toc-wrapper > .search:before {
   content: "\e607"; }
 
+/*
+Copyright 2008-2013 Concur Technologies, Inc.
 
+Licensed under the Apache License, Version 2.0 (the "License"); you may
+not use this file except in compliance with the License. You may obtain
+a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+*/
 html, body {
   color: #333;
   padding: 0;
@@ -1138,7 +1167,21 @@ td,
 th {
   padding: 0; }
 
+/*
+Copyright 2008-2013 Concur Technologies, Inc.
 
+Licensed under the Apache License, Version 2.0 (the "License"); you may
+not use this file except in compliance with the License. You may obtain
+a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+*/
 .content h1, .content h2, .content h3, .content h4, body {
   font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
   font-size: 14px; }
@@ -1180,6 +1223,21 @@ th {
 .content aside.success:before {
   content: "\e606"; }
 
+/*
+Copyright 2008-2013 Concur Technologies, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may
+not use this file except in compliance with the License. You may obtain
+a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations
+under the License.
+*/
 .tocify, .toc-footer, .lang-selector, .search, #nav-button {
   display: none; }
 
@@ -1407,7 +1465,7 @@ Darkula color scheme from the JetBrains family of IDEs
 var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduce(function(e,t){return e+t.boost},0);return n.some(function(e){return this.tokenStore.has(e)},this)?(n.forEach(function(t,n,s){var a=1/s.length*this._fields.length*o,u=this,c=this.tokenStore.expand(t).reduce(function(n,i){var o=u.corpusTokens.indexOf(i),s=u.idf(i),c=1,l=new e.SortedSet;if(i!==t){var f=Math.max(3,i.length-t.length);c=1/Math.log(f)}return o>-1&&r.insert(o,a*s*c),Object.keys(u.tokenStore.get(i)).forEach(function(e){l.add(e)}),n.union(l)},new e.SortedSet);i.push(c)},this),i.reduce(function(e,t){return e.intersect(t)}).map(function(e){return{ref:e,score:r.similarity(this.documentVector(e))}},this).sort(function(e,t){return t.score-e.score})):[]},e.Index.prototype.documentVector=function(t){for(var n=this.documentStore.get(t),r=n.length,i=new e.Vector,o=0;o<r;o++){var s=n.elements[o],a=this.tokenStore.get(s)[t].tf,u=this.idf(s);i.insert(this.corpusTokens.indexOf(s),a*u)}return i},e.Index.prototype.toJSON=function(){return{version:e.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},e.Index.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},e.Store=function(){this.store={},this.length=0},e.Store.load=function(t){var n=new this;return n.length=t.length,n.store=Object.keys(t.store).reduce(function(n,r){return n[r]=e.SortedSet.load(t.store[r]),n},{}),n},e.Store.prototype.set=function(e,t){this.has(e)||this.length++,this.store[e]=t},e.Store.prototype.get=function(e){return this.store[e]},e.Store.prototype.has=function(e){return e in this.store},e.Store.prototype.remove=function(e){this.has(e)&&(delete this.store[e],this.length--)},e.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},e.stemmer=function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},t={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[aeiouy]",r="[^aeiou][^aeiouy]*",i=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*"),o=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*[aeiouy][aeiou]*[^aeiou][^aeiouy]*"),s=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy][aeiou]*[^aeiou][^aeiouy]*([aeiouy][aeiou]*)?$"),a=new RegExp("^([^aeiou][^aeiouy]*)?[aeiouy]"),u=/^(.+?)(ss|i)es$/,c=/^(.+?)([^s])s$/,l=/^(.+?)eed$/,f=/^(.+?)(ed|ing)$/,d=/.$/,p=/(at|bl|iz)$/,h=new RegExp("([^aeiouylsz])\\1$"),g=new RegExp("^"+r+n+"[^aeiouwxy]$"),v=/^(.+?[^aeiou])y$/,m=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,y=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,x=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,b=/^(.+?)(s|t)(ion)$/,w=/^(.+?)e$/,T=/ll$/,S=new RegExp("^"+r+n+"[^aeiouwxy]$");return function(n){var r,E,C,k,N,j,A;if(n.length<3)return n;if(C=n.substr(0,1),"y"==C&&(n=C.toUpperCase()+n.substr(1)),k=u,N=c,k.test(n)?n=n.replace(k,"$1$2"):N.test(n)&&(n=n.replace(N,"$1$2")),k=l,N=f,k.test(n)){var L=k.exec(n);k=i,k.test(L[1])&&(k=d,n=n.replace(k,""))}else if(N.test(n)){var L=N.exec(n);r=L[1],N=a,N.test(r)&&(n=r,N=p,j=h,A=g,N.test(n)?n+="e":j.test(n)?(k=d,n=n.replace(k,"")):A.test(n)&&(n+="e"))}if(k=v,k.test(n)){var L=k.exec(n);r=L[1],n=r+"i"}if(k=m,k.test(n)){var L=k.exec(n);r=L[1],E=L[2],k=i,k.test(r)&&(n=r+e[E])}if(k=y,k.test(n)){var L=k.exec(n);r=L[1],E=L[2],k=i,k.test(r)&&(n=r+t[E])}if(k=x,N=b,k.test(n)){var L=k.exec(n);r=L[1],k=o,k.test(r)&&(n=r)}else if(N.test(n)){var L=N.exec(n);r=L[1]+L[2],N=o,N.test(r)&&(n=r)}if(k=w,k.test(n)){var L=k.exec(n);r=L[1],k=o,N=s,j=S,(k.test(r)||N.test(r)&&!j.test(r))&&(n=r)}return k=T,N=o,k.test(n)&&N.test(n)&&(k=d,n=n.replace(k,"")),"y"==C&&(n=C.toLowerCase()+n.substr(1)),n}}(),e.Pipeline.registerFunction(e.stemmer,"stemmer"),e.stopWordFilter=function(t){if(-1===e.stopWordFilter.stopWords.indexOf(t))return t},e.stopWordFilter.stopWords=new e.SortedSet,e.stopWordFilter.stopWords.length=119,e.stopWordFilter.stopWords.elements=["","a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"],e.Pipeline.registerFunction(e.stopWordFilter,"stopWordFilter"),e.trimmer=function(e){return e.replace(/^\W+/,"").replace(/\W+$/,"")},e.Pipeline.registerFunction(e.trimmer,"trimmer"),e.TokenStore=function(){this.root={docs:{}},this.length=0},e.TokenStore.load=function(e){var t=new this;return t.root=e.root,t.length=e.length,t},e.TokenStore.prototype.add=function(e,t,n){var n=n||this.root,r=e[0],i=e.slice(1);return r in n||(n[r]={docs:{}}),0===i.length?(n[r].docs[t.ref]=t,void(this.length+=1)):this.add(i,t,n[r])},e.TokenStore.prototype.has=function(e){if(!e)return!1;for(var t=this.root,n=0;n<e.length;n++){if(!t[e[n]])return!1;t=t[e[n]]}return!0},e.TokenStore.prototype.getNode=function(e){if(!e)return{};for(var t=this.root,n=0;n<e.length;n++){if(!t[e[n]])return{};t=t[e[n]]}return t},e.TokenStore.prototype.get=function(e,t){return this.getNode(e,t).docs||{}},e.TokenStore.prototype.count=function(e,t){return Object.keys(this.get(e,t)).length},e.TokenStore.prototype.remove=function(e,t){if(e){for(var n=this.root,r=0;r<e.length;r++){if(!(e[r]in n))return;n=n[e[r]]}delete n.docs[t]}},e.TokenStore.prototype.expand=function(e,t){var n=this.getNode(e),r=n.docs||{},t=t||[];return Object.keys(r).length&&t.push(e),Object.keys(n).forEach(function(n){"docs"!==n&&t.concat(this.expand(e+n,t))},this),t},e.TokenStore.prototype.toJSON=function(){return{root:this.root,length:this.length}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(),function(){function e(){}function t(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function n(e){return function(){return this[e].apply(this,arguments)}}var r=e.prototype,i=this,o=i.EventEmitter;r.getListeners=function(e){var t,n,r=this._getEvents();if("object"==typeof e){t={};for(n in r)r.hasOwnProperty(n)&&e.test(n)&&(t[n]=r[n])}else t=r[e]||(r[e]=[]);return t},r.flattenListeners=function(e){var t,n=[];for(t=0;e.length>t;t+=1)n.push(e[t].listener);return n},r.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},r.addListener=function(e,n){var r,i=this.getListenersAsObject(e),o="object"==typeof n;for(r in i)i.hasOwnProperty(r)&&-1===t(i[r],n)&&i[r].push(o?n:{listener:n,once:!1});return this},r.on=n("addListener"),r.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},r.once=n("addOnceListener"),r.defineEvent=function(e){return this.getListeners(e),this},r.defineEvents=function(e){for(var t=0;e.length>t;t+=1)this.defineEvent(e[t]);return this},r.removeListener=function(e,n){var r,i,o=this.getListenersAsObject(e);for(i in o)o.hasOwnProperty(i)&&-1!==(r=t(o[i],n))&&o[i].splice(r,1);return this},r.off=n("removeListener"),r.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},r.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},r.manipulateListeners=function(e,t,n){var r,i,o=e?this.removeListener:this.addListener,s=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(r=n.length;r--;)o.call(this,t,n[r]);else for(r in t)t.hasOwnProperty(r)&&(i=t[r])&&("function"==typeof i?o.call(this,r,i):s.call(this,r,i));return this},r.removeEvent=function(e){var t,n=typeof e,r=this._getEvents();if("string"===n)delete r[e];else if("object"===n)for(t in r)r.hasOwnProperty(t)&&e.test(t)&&delete r[t];else delete this._events;return this},r.removeAllListeners=n("removeEvent"),r.emitEvent=function(e,t){var n,r,i,o=this.getListenersAsObject(e);for(i in o)if(o.hasOwnProperty(i))for(r=o[i].length;r--;)n=o[i][r],!0===n.once&&this.removeListener(e,n.listener),n.listener.apply(this,t||[])===this._getOnceReturnValue()&&this.removeListener(e,n.listener);return this},r.trigger=n("emitEvent"),r.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},r.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},r._getOnceReturnValue=function(){return!this.hasOwnProperty("_onceReturnValue")||this._onceReturnValue},r._getEvents=function(){return this._events||(this._events={})},e.noConflict=function(){return i.EventEmitter=o,e},"function"==typeof define&&define.amd?define("eventEmitter/EventEmitter",[],function(){return e}):"object"==typeof module&&module.exports?module.exports=e:this.EventEmitter=e}.call(this),function(e){function t(t){var n=e.event;return n.target=n.target||n.srcElement||t,n}var n=document.documentElement,r=function(){};n.addEventListener?r=function(e,t,n){e.addEventListener(t,n,!1)}:n.attachEvent&&(r=function(e,n,r){e[n+r]=r.handleEvent?function(){var n=t(e);r.handleEvent.call(r,n)}:function(){var n=t(e);r.call(e,n)},e.attachEvent("on"+n,e[n+r])});var i=function(){};n.removeEventListener?i=function(e,t,n){e.removeEventListener(t,n,!1)}:n.detachEvent&&(i=function(e,t,n){e.detachEvent("on"+t,e[t+n]);try{delete e[t+n]}catch(r){e[t+n]=void 0}});var o={bind:r,unbind:i};"function"==typeof define&&define.amd?define("eventie/eventie",o):e.eventie=o}(this),function(e,t){"function"==typeof define&&define.amd?define(["eventEmitter/EventEmitter","eventie/eventie"],function(n,r){return t(e,n,r)}):"object"==typeof exports?module.exports=t(e,require("wolfy87-eventemitter"),require("eventie")):e.imagesLoaded=t(e,e.EventEmitter,e.eventie)}(window,function(e,t,n){function r(e,t){for(var n in t)e[n]=t[n];return e}function i(e){return"[object Array]"===d.call(e)}function o(e){var t=[];if(i(e))t=e;else if("number"==typeof e.length)for(var n=0,r=e.length;r>n;n++)t.push(e[n]);else t.push(e);return t}function s(e,t,n){if(!(this instanceof s))return new s(e,t);"string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=o(e),this.options=r({},this.options),"function"==typeof t?n=t:r(this.options,t),n&&this.on("always",n),this.getImages(),c&&(this.jqDeferred=new c.Deferred);var i=this;setTimeout(function(){i.check()})}function a(e){this.img=e}function u(e){this.src=e,p[e]=this}var c=e.jQuery,l=e.console,f=void 0!==l,d=Object.prototype.toString;s.prototype=new t,s.prototype.options={},s.prototype.getImages=function(){this.images=[];for(var e=0,t=this.elements.length;t>e;e++){var n=this.elements[e];"IMG"===n.nodeName&&this.addImage(n);var r=n.nodeType;if(r&&(1===r||9===r||11===r))for(var i=n.querySelectorAll("img"),o=0,s=i.length;s>o;o++){var a=i[o];this.addImage(a)}}},s.prototype.addImage=function(e){var t=new a(e);this.images.push(t)},s.prototype.check=function(){function e(e,i){return t.options.debug&&f&&l.log("confirm",e,i),t.progress(e),n++,n===r&&t.complete(),!0}var t=this,n=0,r=this.images.length;if(this.hasAnyBroken=!1,!r)return void this.complete();for(var i=0;r>i;i++){var o=this.images[i];o.on("confirm",e),o.check()}},s.prototype.progress=function(e){this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded;var t=this;setTimeout(function(){t.emit("progress",t,e),t.jqDeferred&&t.jqDeferred.notify&&t.jqDeferred.notify(t,e)})},s.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";this.isComplete=!0;var t=this;setTimeout(function(){if(t.emit(e,t),t.emit("always",t),t.jqDeferred){var n=t.hasAnyBroken?"reject":"resolve";t.jqDeferred[n](t)}})},c&&(c.fn.imagesLoaded=function(e,t){return new s(this,e,t).jqDeferred.promise(c(this))}),a.prototype=new t,a.prototype.check=function(){var e=p[this.img.src]||new u(this.img.src);if(e.isConfirmed)return void this.confirm(e.isLoaded,"cached was confirmed");if(this.img.complete&&void 0!==this.img.naturalWidth)return void this.confirm(0!==this.img.naturalWidth,"naturalWidth");var t=this;e.on("confirm",function(e,n){return t.confirm(e.isLoaded,n),!0}),e.check()},a.prototype.confirm=function(e,t){this.isLoaded=e,this.emit("confirm",this,t)};var p={};return u.prototype=new t,u.prototype.check=function(){if(!this.isChecked){var e=new Image;n.bind(e,"load",this),n.bind(e,"error",this),e.src=this.src,this.isChecked=!0}},u.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},u.prototype.onload=function(e){this.confirm(!0,"onload"),this.unbindProxyEvents(e)},u.prototype.onerror=function(e){this.confirm(!1,"onerror"),this.unbindProxyEvents(e)},u.prototype.confirm=function(e,t){this.isConfirmed=!0,this.isLoaded=e,this.emit("confirm",this,t)},u.prototype.unbindProxyEvents=function(e){n.unbind(e.target,"load",this),n.unbind(e.target,"error",this)},s}),function(){if("ontouchstart"in window){var e,t,n,r,i,o,s={};e=function(e,t){return Math.abs(e[0]-t[0])>5||Math.abs(e[1]-t[1])>5},t=function(e){this.startXY=[e.touches[0].clientX,e.touches[0].clientY],this.threshold=!1},n=function(t){if(this.threshold)return!1;this.threshold=e(this.startXY,[t.touches[0].clientX,t.touches[0].clientY])},r=function(t){if(!this.threshold&&!e(this.startXY,[t.changedTouches[0].clientX,t.changedTouches[0].clientY])){var n=t.changedTouches[0],r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!0,window,0,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),r.simulated=!0,t.target.dispatchEvent(r)}},i=function(e){var t=Date.now(),n=t-s.time,r=e.clientX,i=e.clientY,a=[Math.abs(s.x-r),Math.abs(s.y-i)],u=o(e.target,"A")||e.target,c=u.nodeName,l="A"===c,f=window.navigator.standalone&&l&&e.target.getAttribute("href");if(s.time=t,s.x=r,s.y=i,(!e.simulated&&(n<500||n<1500&&a[0]<50&&a[1]<50)||f)&&(e.preventDefault(),e.stopPropagation(),!f))return!1;f&&(window.location=u.getAttribute("href")),u&&u.classList&&(u.classList.add("energize-focus"),window.setTimeout(function(){u.classList.remove("energize-focus")},150))},o=function(e,t){for(var n=e;n!==document.body;){if(!n||n.nodeName===t)return n;n=n.parentNode}return null},document.addEventListener("touchstart",t,!1),document.addEventListener("touchmove",n,!1),document.addEventListener("touchend",r,!1),document.addEventListener("click",i,!0)}}(),function(){"use strict";function e(e){if(e&&""!==e){$(".lang-selector a").removeClass("active"),$(".lang-selector a[data-language-name='"+e+"']").addClass("active");for(var t=0;t<a.length;t++)$(".highlight.tab-"+a[t]).hide(),$(".lang-specific."+a[t]).hide();$(".highlight.tab-"+e).show(),$(".lang-specific."+e).show(),window.recacheHeights(),$(window.location.hash).get(0)&&$(window.location.hash).get(0).scrollIntoView(!0)}}function t(e){return"string"!=typeof e?{}:(e=e.trim().replace(/^(\?|#|&)/,""),e?e.split("&").reduce(function(e,t){var n=t.replace(/\+/g," ").split("="),r=n[0],i=n[1];return r=decodeURIComponent(r),i=void 0===i?null:decodeURIComponent(i),e.hasOwnProperty(r)?Array.isArray(e[r])?e[r].push(i):e[r]=[e[r],i]:e[r]=i,e},{}):{})}function n(e){return e?Object.keys(e).sort().map(function(t){var n=e[t];return Array.isArray(n)?n.sort().map(function(e){return encodeURIComponent(t)+"="+encodeURIComponent(e)}).join("&"):encodeURIComponent(t)+"="+encodeURIComponent(n)}).join("&"):""}function r(){if(location.search.length>=1){var e=t(location.search).language;if(e)return e;if(-1!=jQuery.inArray(location.search.substr(1),a))return location.search.substr(1)}return!1}function i(e){var r=t(location.search);return r.language?(r.language=e,n(r)):e}function o(e){if(history){var t=window.location.hash;t&&(t=t.replace(/^#+/,"")),history.pushState({},"","?"+i(e)+"#"+t),localStorage.setItem("language",e)}}function s(t){var n=localStorage.getItem("language");a=t;var i=r();i?(e(i),localStorage.setItem("language",i)):e(null!==n&&-1!=jQuery.inArray(n,a)?n:a[0])}var a=[];window.setupLanguages=s,window.activateLanguage=e,window.getLanguageFromQueryString=r,$(function(){$(".lang-selector a").on("click",function(){var t=$(this).data("language-name");return o(t),e(t),!1})})}(),function(){"use strict";function e(){$("h1, h2").each(function(){var e=$(this),t=e.nextUntil("h1, h2");f.add({id:e.prop("id"),title:e.text(),body:t.text()})}),t()}function t(){f.tokenStore.length>5e3&&(c=300)}function n(){s=$(".content"),a=$(".search-results"),$("#input-search").on("keyup",function(e){!function(){return function(e,t){clearTimeout(l),l=setTimeout(e,t)}}()(function(){r(e)},c)})}function r(e){var t=$("#input-search")[0];if(o(),a.addClass("visible"),27===e.keyCode&&(t.value=""),t.value){var n=f.search(t.value).filter(function(e){return e.score>1e-4});n.length?(a.empty(),$.each(n,function(e,t){var n=document.getElementById(t.ref);a.append("<li><a href='#"+t.ref+"'>"+$(n).text()+"</a></li>")}),i.call(t)):(a.html("<li></li>"),$(".search-results li").text('No Results Found for "'+t.value+'"'))}else o(),a.removeClass("visible")}function i(){this.value&&s.highlight(this.value,u)}function o(){s.unhighlight(u)}var s,a,u={element:"span",className:"search-highlight"},c=0,l=0,f=new lunr.Index;f.ref("id"),f.field("title",{boost:10}),f.field("body"),f.pipeline.add(lunr.trimmer,lunr.stopWordFilter),$(e),$(n)}(),function(){"use strict";function e(e,i,o,s){var a={},u=0,c=0,l=document.title,f=function(){a={},u=$(document).height(),c=$(window).height(),e.find(i).each(function(){var e=$(this).attr("href");"#"===e[0]&&(a[e]=$(e).offset().top)})},d=function(){var n=$(document).scrollTop()+s;n+c>=u&&(n=u+1e3);var r=null;for(var f in a)(a[f]<n&&a[f]>a[r]||null===r)&&(r=f);n!=s||t||(r=window.location.hash,t=!0);var d=e.find("[href='"+r+"']").first();if(!d.hasClass("active")){e.find(".active").removeClass("active"),e.find(".active-parent").removeClass("active-parent"),d.addClass("active"),d.parents(o).addClass("active").siblings(i).addClass("active-parent"),d.siblings(o).addClass("active"),e.find(o).filter(":not(.active)").slideUp(150),e.find(o).filter(".active").slideDown(150),window.history.replaceState&&window.history.replaceState(null,"",r);var p=d.data("title");void 0!==p&&p.length>0?document.title=p+" â€“ "+l:document.title=l}};!function(){f(),d(),$("#nav-button").click(function(){return $(".toc-wrapper").toggleClass("open"),$("#nav-button").toggleClass("open"),!1}),$(".page-wrapper").click(r),$(".toc-link").click(r),e.find(i).click(function(){setTimeout(function(){d()},0)}),$(window).scroll(n(d,200)),$(window).resize(n(f,200))}(),window.recacheHeights=f,window.refreshToc=d}var t=!1,n=function(e,t){var n=!1;return function(){!1===n&&(setTimeout(function(){e(),n=!1},t),n=!0)}},r=function(){$(".toc-wrapper").removeClass("open"),$("#nav-button").removeClass("open")};window.loadToc=e}(),$(function(){loadToc($("#toc"),".toc-link",".toc-list-h2, .toc-list-h3, .toc-list-h4, .toc-list-h5, .toc-list-h6",10),setupLanguages($("body").data("languages")),$(".content").imagesLoaded(function(){window.recacheHeights(),window.refreshToc()})}),window.onpopstate=function(){activateLanguage(getLanguageFromQueryString())};</script>
     
     <meta name="theme-color" content="#F3F7F9" />
-
+<!-- Renderer: Shins v2.4.0 -->
   </head>
 
   <body data-languages="[&quot;python&quot;,&quot;shell&quot;]">
@@ -1442,42 +1500,37 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
                <ul class="toc-list-h1">
         
           <li>
-            <a href="#operations-manager-api" class="toc-h1 toc-link" data-title="Operations Manager API v1.0.0">Operations Manager API v1.0.0</a>
+            <a href="#dcae-dashboard-api" class="toc-h1 toc-link" data-title="DCAE Dashboard API v1.0.0">DCAE Dashboard API v1.0.0</a>
             
           </li>
         
           <li>
-            <a href="#authentication" class="toc-h1 toc-link" data-title="Authentication">Authentication</a>
-            
-          </li>
-        
-          <li>
-            <a href="#operations-manager-api-blueprints" class="toc-h1 toc-link" data-title="Blueprints">Blueprints</a>
+            <a href="#dcae-dashboard-api-blueprints" class="toc-h1 toc-link" data-title="Blueprints">Blueprints</a>
             
               <ul class="toc-list-h2">
                 
                   <li>
-                    <a href="#list-blueprints" class="toc-h2 toc-link" data-title="List Blueprints">List Blueprints</a>
+                    <a href="#find-all-blueprint-templates" class="toc-h2 toc-link" data-title="">Find all blueprint templates</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#create-blueprint" class="toc-h2 toc-link" data-title="Create Blueprint">Create Blueprint</a>
+                    <a href="#create-upload-a-new-blueprint-template" class="toc-h2 toc-link" data-title="">Create/Upload a new blueprint template</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#delete-blueprint" class="toc-h2 toc-link" data-title="Delete Blueprint">Delete Blueprint</a>
+                    <a href="#delete-a-blueprint-template" class="toc-h2 toc-link" data-title="">Delete a blueprint template</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#get-deployments-for-a-blueprint" class="toc-h2 toc-link" data-title="Get Deployments for a blueprint">Get Deployments for a blueprint</a>
+                    <a href="#get-services-mapped-to-a-blueprint-template" class="toc-h2 toc-link" data-title="">Get Services mapped to a blueprint template</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#get-blueprint" class="toc-h2 toc-link" data-title="Get Blueprint">Get Blueprint</a>
+                    <a href="#find-a-blueprint-by-a-name-pattern" class="toc-h2 toc-link" data-title="">Find a blueprint by a name pattern</a>
                     
                   </li>
                 
@@ -1486,47 +1539,52 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
           </li>
         
           <li>
-            <a href="#operations-manager-api-deployments" class="toc-h1 toc-link" data-title="Deployments">Deployments</a>
+            <a href="#dcae-dashboard-api-deployments" class="toc-h1 toc-link" data-title="Deployments">Deployments</a>
             
               <ul class="toc-list-h2">
                 
                   <li>
-                    <a href="#list-deployments" class="toc-h2 toc-link" data-title="List Deployments">List Deployments</a>
+                    <a href="#lists-all-deployments" class="toc-h2 toc-link" data-title="">Lists all Deployments</a>
+                    
+                  </li>
+                
+                  <li>
+                    <a href="#initiate-a-deployment--install--operation-for-an-application-or-service" class="toc-h2 toc-link" data-title="">Initiate a deployment (install) operation for an application or service</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#create-deployment" class="toc-h2 toc-link" data-title="Create Deployment">Create Deployment</a>
+                    <a href="#initiate-an-uninstall-operation-for-an-application-or-service" class="toc-h2 toc-link" data-title="">Initiate an uninstall operation for an application or service</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#delete-deployment" class="toc-h2 toc-link" data-title="Delete Deployment">Delete Deployment</a>
+                    <a href="#upgrade-or-rollback-an-existing-deployment-using-cloudify-helm-plugin" class="toc-h2 toc-link" data-title="">Upgrade or Rollback an existing deployment using Cloudify Helm plugin</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#upgrade_rollback-deployment" class="toc-h2 toc-link" data-title="Upgrade_Rollback Deployment">Upgrade_Rollback Deployment</a>
+                    <a href="#gets-a-deployment" class="toc-h2 toc-link" data-title="">Gets a Deployment</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#get-deployment" class="toc-h2 toc-link" data-title="Get Deployment">Get Deployment</a>
+                    <a href="#update-an-existing-deployment" class="toc-h2 toc-link" data-title="">Update an existing deployment</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#update-deployment" class="toc-h2 toc-link" data-title="Update Deployment">Update Deployment</a>
+                    <a href="#deployment-execution-status" class="toc-h2 toc-link" data-title="">Deployment execution status</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#deployment-status" class="toc-h2 toc-link" data-title="Deployment Status">Deployment Status</a>
+                    <a href="#deployment-health-status" class="toc-h2 toc-link" data-title="">Deployment health status</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#deployment-inputs" class="toc-h2 toc-link" data-title="Deployment Inputs">Deployment Inputs</a>
+                    <a href="#deployment-inputs" class="toc-h2 toc-link" data-title="">Deployment inputs</a>
                     
                   </li>
                 
@@ -1535,12 +1593,12 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
           </li>
         
           <li>
-            <a href="#operations-manager-api-tenants" class="toc-h1 toc-link" data-title="Tenants">Tenants</a>
+            <a href="#dcae-dashboard-api-tenants" class="toc-h1 toc-link" data-title="Tenants">Tenants</a>
             
               <ul class="toc-list-h2">
                 
                   <li>
-                    <a href="#list-tenants" class="toc-h2 toc-link" data-title="List Tenants">List Tenants</a>
+                    <a href="#lists-all-cloudify-tenants" class="toc-h2 toc-link" data-title="">Lists all Cloudify Tenants</a>
                     
                   </li>
                 
@@ -1549,17 +1607,17 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
           </li>
         
           <li>
-            <a href="#operations-manager-api-components" class="toc-h1 toc-link" data-title="Components">Components</a>
+            <a href="#dcae-dashboard-api-components" class="toc-h1 toc-link" data-title="Components">Components</a>
             
               <ul class="toc-list-h2">
                 
                   <li>
-                    <a href="#list-components" class="toc-h2 toc-link" data-title="List Components">List Components</a>
+                    <a href="#lists-all-application-components" class="toc-h2 toc-link" data-title="">Lists all application components</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#add-component" class="toc-h2 toc-link" data-title="Add Component">Add Component</a>
+                    <a href="#add-an-application-component" class="toc-h2 toc-link" data-title="">add an application component</a>
                     
                   </li>
                 
@@ -1573,97 +1631,102 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
               <ul class="toc-list-h2">
                 
                   <li>
-                    <a href="#tocStenant" class="toc-h2 toc-link" data-title="Tenant">Tenant</a>
+                    <a href="#tocstenant" class="toc-h2 toc-link" data-title="">Tenant</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#tocScomponent" class="toc-h2 toc-link" data-title="Component">Component</a>
+                    <a href="#tocscomponent" class="toc-h2 toc-link" data-title="">Component</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#tocScomponentinput" class="toc-h2 toc-link" data-title="ComponentInput">ComponentInput</a>
+                    <a href="#tocscomponentinput" class="toc-h2 toc-link" data-title="">ComponentInput</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#tocSinlineresponse200" class="toc-h2 toc-link" data-title="InlineResponse200">InlineResponse200</a>
+                    <a href="#tocsinlineresponse200" class="toc-h2 toc-link" data-title="">InlineResponse200</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#tocSinlineresponse200links" class="toc-h2 toc-link" data-title="InlineResponse200Links">InlineResponse200Links</a>
+                    <a href="#tocsinlineresponse200links" class="toc-h2 toc-link" data-title="">InlineResponse200Links</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#tocSapiresponsemessage" class="toc-h2 toc-link" data-title="ApiResponseMessage">ApiResponseMessage</a>
+                    <a href="#tocsapiresponsemessage" class="toc-h2 toc-link" data-title="">ApiResponseMessage</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#tocSdcaeservice" class="toc-h2 toc-link" data-title="DCAEService">DCAEService</a>
+                    <a href="#tocsdcaeservice" class="toc-h2 toc-link" data-title="">DCAEService</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#tocSinlineresponse2001" class="toc-h2 toc-link" data-title="InlineResponse2001">InlineResponse2001</a>
+                    <a href="#tocsinlineresponse2001" class="toc-h2 toc-link" data-title="">InlineResponse2001</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#tocSuribuilder" class="toc-h2 toc-link" data-title="UriBuilder">UriBuilder</a>
+                    <a href="#tocsuribuilder" class="toc-h2 toc-link" data-title="">UriBuilder</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#tocSlink" class="toc-h2 toc-link" data-title="Link">Link</a>
+                    <a href="#tocslink" class="toc-h2 toc-link" data-title="">Link</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#tocSdcaeservicecomponent" class="toc-h2 toc-link" data-title="DCAEServiceComponent">DCAEServiceComponent</a>
+                    <a href="#tocsdcaeservicecomponent" class="toc-h2 toc-link" data-title="">DCAEServiceComponent</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#tocSdcaeservicetyperequest" class="toc-h2 toc-link" data-title="DCAEServiceTypeRequest">DCAEServiceTypeRequest</a>
+                    <a href="#tocsdcaeservicetyperequest" class="toc-h2 toc-link" data-title="">DCAEServiceTypeRequest</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#tocSdcaeservicetype" class="toc-h2 toc-link" data-title="DCAEServiceType">DCAEServiceType</a>
+                    <a href="#tocsdcaeservicetype" class="toc-h2 toc-link" data-title="">DCAEServiceType</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#tocScloudifydeploymentupgraderequest" class="toc-h2 toc-link" data-title="CloudifyDeploymentUpgradeRequest">CloudifyDeploymentUpgradeRequest</a>
+                    <a href="#tocscloudifydeploymentupgraderequest" class="toc-h2 toc-link" data-title="">CloudifyDeploymentUpgradeRequest</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#tocSdeploymentinput" class="toc-h2 toc-link" data-title="DeploymentInput">DeploymentInput</a>
+                    <a href="#tocsdeploymentinput" class="toc-h2 toc-link" data-title="">DeploymentInput</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#tocSdeploymentinputs" class="toc-h2 toc-link" data-title="deploymentInputs">deploymentInputs</a>
+                    <a href="#tocsdeploymentinputs" class="toc-h2 toc-link" data-title="">deploymentInputs</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#tocSexecution" class="toc-h2 toc-link" data-title="execution">execution</a>
+                    <a href="#tocsservicehealth" class="toc-h2 toc-link" data-title="">serviceHealth</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#tocSdeploymentresourcelinks" class="toc-h2 toc-link" data-title="DeploymentResourceLinks">DeploymentResourceLinks</a>
+                    <a href="#tocsexecution" class="toc-h2 toc-link" data-title="">execution</a>
                     
                   </li>
                 
                   <li>
-                    <a href="#tocSdeploymentresource" class="toc-h2 toc-link" data-title="DeploymentResource">DeploymentResource</a>
+                    <a href="#tocsdeploymentresourcelinks" class="toc-h2 toc-link" data-title="">DeploymentResourceLinks</a>
+                    
+                  </li>
+                
+                  <li>
+                    <a href="#tocsdeploymentresource" class="toc-h2 toc-link" data-title="">DeploymentResource</a>
                     
                   </li>
                 
@@ -1684,28 +1747,24 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
     <div class="page-wrapper">
       <div class="dark-box"></div>
       <div class="content">
-        <h1 id="operations-manager-api">Operations Manager API v1.0.0</h1>
+        <h1 id="dcae-dashboard-api">DCAE Dashboard API v1.0.0</h1>
 <blockquote>
 <p>Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.</p>
 </blockquote>
-<p>API interface to manage deployments of blueprints. HTTP Basic authorization schema is required to authenticate users for all the resource endpoints.</p>
+<p>API to manage deployment of microservices using blueprints.</p>
 <p>Base URLs:</p>
 <ul>
 <li>
-<p><a href="https://oom-server:30129/ccsdk-app/api-if">https://oom-server:30129/ccsdk-app/api-if</a></p>
+<p><a href="https://dcae-dashboard:8080/ccsdk-app-os/nb-api">https://dcae-dashboard:8080/ccsdk-app-os/nb-api</a></p>
 </li>
 <li>
-<p><a href="http://oom-server:30129/ccsdk-app/api-if">http://oom-server:30129/ccsdk-app/api-if</a></p>
+<p><a href="http://dcae-dashboard:8080/ccsdk-app-os/nb-api">http://dcae-dashboard:8080/ccsdk-app-os/nb-api</a></p>
 </li>
 </ul>
 <p>Email: <a href="mailto:rp5662@att.com">Support</a></p>
-<h1 id="authentication">Authentication</h1>
-<ul>
-<li>HTTP Authentication, scheme: basic</li>
-</ul>
-<h1 id="operations-manager-api-blueprints">Blueprints</h1>
+<h1 id="dcae-dashboard-api-blueprints">Blueprints</h1>
 <p>Query blueprint information</p>
-<h2 id="list-blueprints">List Blueprints</h2>
+<h2 id="find-all-blueprint-templates">Find all blueprint templates</h2>
 <p><a id="opIdList Blueprints"></a></p>
 <blockquote>
 <p>Code samples</p>
@@ -1715,26 +1774,25 @@ headers = {
   <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
 }
 
-r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/blueprints'</span>, params={
-
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints'</span>, params={
+  <span class="hljs-string">'pageNum'</span>: <span class="hljs-string">'string'</span>,  <span class="hljs-string">'viewPerPage'</span>: <span class="hljs-string">'string'</span>
 }, headers = headers)
 
 <span class="hljs-keyword">print</span> r.json()
 
 </code></pre>
 <pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints \
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints?pageNum=string&amp;viewPerPage=string \
   -H <span class="hljs-string">'Accept: application/json'</span>
 
 </code></pre>
 <p><code>GET /blueprints</code></p>
-<p><em>Find all blueprint templates</em></p>
 <p>Fetch the blueprints data from inventory</p>
-<h3 id="list-blueprints-parameters">Parameters</h3>
+<h3 id="find-all-blueprint-templates-parameters">Parameters</h3>
 <table>
 <thead>
 <tr>
-<th>Parameter</th>
+<th>Name</th>
 <th>In</th>
 <th>Type</th>
 <th>Required</th>
@@ -1743,6 +1801,20 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints \
 </thead>
 <tbody>
 <tr>
+<td>pageNum</td>
+<td>query</td>
+<td>string</td>
+<td>true</td>
+<td>pagination control - page number</td>
+</tr>
+<tr>
+<td>viewPerPage</td>
+<td>query</td>
+<td>string</td>
+<td>true</td>
+<td>pagination control - page size</td>
+</tr>
+<tr>
 <td>_include</td>
 <td>query</td>
 <td>array[string]</td>
@@ -1845,13 +1917,13 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints \
         },
         <span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
       },
-      <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
-      <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>
+      <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+      <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>
     }
   ]
 }
 </code></pre>
-<h3 id="list-blueprints-responses">Responses</h3>
+<h3 id="find-all-blueprint-templates-responses">Responses</h3>
 <table>
 <thead>
 <tr>
@@ -1874,40 +1946,12 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints \
 <td>Invalid tag value</td>
 <td>None</td>
 </tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
 </tbody>
 </table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
 </aside>
-<h2 id="create-blueprint">Create Blueprint</h2>
+<h2 id="create-upload-a-new-blueprint-template">Create/Upload a new blueprint template</h2>
 <p><a id="opIdCreate Blueprint"></a></p>
 <blockquote>
 <p>Code samples</p>
@@ -1918,7 +1962,7 @@ headers = {
   <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
 }
 
-r = requests.post(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/blueprints'</span>, params={
+r = requests.post(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints'</span>, params={
 
 }, headers = headers)
 
@@ -1926,13 +1970,12 @@ r = requests.post(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/
 
 </code></pre>
 <pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X POST https://oom-server:30129/ccsdk-app/api-if/blueprints \
+curl -X POST https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints \
   -H <span class="hljs-string">'Content-Type: application/json'</span> \
   -H <span class="hljs-string">'Accept: application/json'</span>
 
 </code></pre>
 <p><code>POST /blueprints</code></p>
-<p><em>Create/Upload a new blueprint template</em></p>
 <p>Upload a new blueprint template into inventory</p>
 <blockquote>
 <p>Body parameter</p>
@@ -1946,11 +1989,11 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/blueprints \
   <span class="hljs-attr">"component"</span>: <span class="hljs-string">"string"</span>
 }
 </code></pre>
-<h3 id="create-blueprint-parameters">Parameters</h3>
+<h3 id="create-upload-a-new-blueprint-template-parameters">Parameters</h3>
 <table>
 <thead>
 <tr>
-<th>Parameter</th>
+<th>Name</th>
 <th>In</th>
 <th>Type</th>
 <th>Required</th>
@@ -2038,13 +2081,13 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/blueprints \
         },
         <span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
       },
-      <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
-      <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>
+      <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+      <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>
     }
   ]
 }
 </code></pre>
-<h3 id="create-blueprint-responses">Responses</h3>
+<h3 id="create-upload-a-new-blueprint-template-responses">Responses</h3>
 <table>
 <thead>
 <tr>
@@ -2067,47 +2110,19 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/blueprints \
 <td>Invalid tag value</td>
 <td>None</td>
 </tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
 </tbody>
 </table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
 </aside>
-<h2 id="delete-blueprint">Delete Blueprint</h2>
+<h2 id="delete-a-blueprint-template">Delete a blueprint template</h2>
 <p><a id="opIdDelete Blueprint"></a></p>
 <blockquote>
 <p>Code samples</p>
 </blockquote>
 <pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
 
-r = requests.delete(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/blueprints/{typeId}'</span>, params={
+r = requests.delete(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints/{typeId}'</span>, params={
 
 )
 
@@ -2115,17 +2130,16 @@ r = requests.delete(<span class="hljs-string">'https://oom-server:30129/ccsdk-ap
 
 </code></pre>
 <pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X DELETE https://oom-server:30129/ccsdk-app/api-if/blueprints/{typeId}
+curl -X DELETE https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints/{typeId}
 
 </code></pre>
 <p><code>DELETE /blueprints/{typeId}</code></p>
-<p><em>Delete a blueprint template</em></p>
 <p>Delete a blueprint template from inventory</p>
-<h3 id="delete-blueprint-parameters">Parameters</h3>
+<h3 id="delete-a-blueprint-template-parameters">Parameters</h3>
 <table>
 <thead>
 <tr>
-<th>Parameter</th>
+<th>Name</th>
 <th>In</th>
 <th>Type</th>
 <th>Required</th>
@@ -2142,7 +2156,7 @@ curl -X DELETE https://oom-server:30129/ccsdk-app/api-if/blueprints/{typeId}
 </tr>
 </tbody>
 </table>
-<h3 id="delete-blueprint-responses">Responses</h3>
+<h3 id="delete-a-blueprint-template-responses">Responses</h3>
 <table>
 <thead>
 <tr>
@@ -2161,18 +2175,17 @@ curl -X DELETE https://oom-server:30129/ccsdk-app/api-if/blueprints/{typeId}
 </tr>
 </tbody>
 </table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
 </aside>
-<h2 id="get-deployments-for-a-blueprint">Get Deployments for a blueprint</h2>
+<h2 id="get-services-mapped-to-a-blueprint-template">Get Services mapped to a blueprint template</h2>
 <p><a id="opIdGet Deployments for a blueprint"></a></p>
 <blockquote>
 <p>Code samples</p>
 </blockquote>
 <pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
 
-r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/blueprints/{typeId}/services'</span>, params={
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints/{typeId}/services'</span>, params={
 
 )
 
@@ -2180,17 +2193,16 @@ r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/a
 
 </code></pre>
 <pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints/{typeId}/services
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints/{typeId}/services
 
 </code></pre>
 <p><code>GET /blueprints/{typeId}/services</code></p>
-<p><em>Get Services mapped to a blueprint template</em></p>
 <p>Get Deployment References existing for a blueprint</p>
-<h3 id="get-deployments-for-a-blueprint-parameters">Parameters</h3>
+<h3 id="get-services-mapped-to-a-blueprint-template-parameters">Parameters</h3>
 <table>
 <thead>
 <tr>
-<th>Parameter</th>
+<th>Name</th>
 <th>In</th>
 <th>Type</th>
 <th>Required</th>
@@ -2207,7 +2219,7 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints/{typeId}/servic
 </tr>
 </tbody>
 </table>
-<h3 id="get-deployments-for-a-blueprint-responses">Responses</h3>
+<h3 id="get-services-mapped-to-a-blueprint-template-responses">Responses</h3>
 <table>
 <thead>
 <tr>
@@ -2226,11 +2238,10 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints/{typeId}/servic
 </tr>
 </tbody>
 </table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
 </aside>
-<h2 id="get-blueprint">Get Blueprint</h2>
+<h2 id="find-a-blueprint-by-a-name-pattern">Find a blueprint by a name pattern</h2>
 <p><a id="opIdGet Blueprint"></a></p>
 <blockquote>
 <p>Code samples</p>
@@ -2240,7 +2251,7 @@ headers = {
   <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
 }
 
-r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/blueprints/findByName'</span>, params={
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints/findByName'</span>, params={
   <span class="hljs-string">'name'</span>: <span class="hljs-string">'string'</span>
 }, headers = headers)
 
@@ -2248,18 +2259,17 @@ r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/a
 
 </code></pre>
 <pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints/findByName?name=string \
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/blueprints/findByName?name=string \
   -H <span class="hljs-string">'Accept: application/json'</span>
 
 </code></pre>
 <p><code>GET /blueprints/findByName</code></p>
-<p><em>Find a blueprint by a name pattern</em></p>
 <p>Fetch the blueprint objects from inventory whose names match a string pattern</p>
-<h3 id="get-blueprint-parameters">Parameters</h3>
+<h3 id="find-a-blueprint-by-a-name-pattern-parameters">Parameters</h3>
 <table>
 <thead>
 <tr>
-<th>Parameter</th>
+<th>Name</th>
 <th>In</th>
 <th>Type</th>
 <th>Required</th>
@@ -2377,13 +2387,13 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints/findByName?name
         },
         <span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
       },
-      <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
-      <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>
+      <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+      <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>
     }
   ]
 }
 </code></pre>
-<h3 id="get-blueprint-responses">Responses</h3>
+<h3 id="find-a-blueprint-by-a-name-pattern-responses">Responses</h3>
 <table>
 <thead>
 <tr>
@@ -2406,42 +2416,14 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/blueprints/findByName?name
 <td>Invalid tag value</td>
 <td>None</td>
 </tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
 </tbody>
 </table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
 </aside>
-<h1 id="operations-manager-api-deployments">Deployments</h1>
+<h1 id="dcae-dashboard-api-deployments">Deployments</h1>
 <p>Manage deployments</p>
-<h2 id="list-deployments">List Deployments</h2>
+<h2 id="lists-all-deployments">Lists all Deployments</h2>
 <p><a id="opIdList Deployments"></a></p>
 <blockquote>
 <p>Code samples</p>
@@ -2451,21 +2433,48 @@ headers = {
   <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
 }
 
-r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/deployments'</span>, params={
-
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments'</span>, params={
+  <span class="hljs-string">'pageNum'</span>: <span class="hljs-string">'string'</span>,  <span class="hljs-string">'viewPerPage'</span>: <span class="hljs-string">'string'</span>
 }, headers = headers)
 
 <span class="hljs-keyword">print</span> r.json()
 
 </code></pre>
 <pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments \
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments?pageNum=string&amp;viewPerPage=string \
   -H <span class="hljs-string">'Accept: application/json'</span>
 
 </code></pre>
 <p><code>GET /deployments</code></p>
-<p><em>Lists all Deployments</em></p>
 <p>Query all deployments or Service objects from Inventory</p>
+<h3 id="lists-all-deployments-parameters">Parameters</h3>
+<table>
+<thead>
+<tr>
+<th>Name</th>
+<th>In</th>
+<th>Type</th>
+<th>Required</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>pageNum</td>
+<td>query</td>
+<td>string</td>
+<td>true</td>
+<td>pagination control - page number</td>
+</tr>
+<tr>
+<td>viewPerPage</td>
+<td>query</td>
+<td>string</td>
+<td>true</td>
+<td>pagination control - page size</td>
+</tr>
+</tbody>
+</table>
 <blockquote>
 <p>Example responses</p>
 </blockquote>
@@ -2489,8 +2498,8 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments \
       },
       <span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
     },
-    <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
-    <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
+    <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+    <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
     <span class="hljs-attr">"typeLink"</span>: {
       <span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>,
       <span class="hljs-attr">"rel"</span>: <span class="hljs-string">"string"</span>,
@@ -2540,8 +2549,8 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments \
           },
           <span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
         },
-        <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
-        <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
+        <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+        <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
         <span class="hljs-attr">"componentType"</span>: <span class="hljs-string">"string"</span>,
         <span class="hljs-attr">"componentSource"</span>: <span class="hljs-string">"DCAEController"</span>,
         <span class="hljs-attr">"status"</span>: <span class="hljs-string">"string"</span>,
@@ -2553,7 +2562,7 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments \
   }
 ]
 </code></pre>
-<h3 id="list-deployments-responses">Responses</h3>
+<h3 id="lists-all-deployments-responses">Responses</h3>
 <table>
 <thead>
 <tr>
@@ -2576,15 +2585,9 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments \
 <td>Invalid status value</td>
 <td>None</td>
 </tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
 </tbody>
 </table>
-<h3 id="list-deployments-responseschema">Response Schema</h3>
+<h3 id="lists-all-deployments-responseschema">Response Schema</h3>
 <p>Status Code <strong>200</strong></p>
 <table>
 <thead>
@@ -2828,32 +2831,10 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments \
 </tr>
 </tbody>
 </table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
 </aside>
-<h2 id="create-deployment">Create Deployment</h2>
+<h2 id="initiate-a-deployment--install--operation-for-an-application-or-service">Initiate a deployment (install) operation for an application or service</h2>
 <p><a id="opIdCreate Deployment"></a></p>
 <blockquote>
 <p>Code samples</p>
@@ -2864,7 +2845,7 @@ headers = {
   <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
 }
 
-r = requests.post(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/deployments'</span>, params={
+r = requests.post(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments'</span>, params={
 
 }, headers = headers)
 
@@ -2872,13 +2853,12 @@ r = requests.post(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/
 
 </code></pre>
 <pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X POST https://oom-server:30129/ccsdk-app/api-if/deployments \
+curl -X POST https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments \
   -H <span class="hljs-string">'Content-Type: application/json'</span> \
   -H <span class="hljs-string">'Accept: application/json'</span>
 
 </code></pre>
 <p><code>POST /deployments</code></p>
-<p><em>Initiate a deployment (install) operation for an application or service</em></p>
 <p>Controller sends the blueprint and required inputs to Deployment Handler microservice to initiate the deployment process</p>
 <blockquote>
 <p>Body parameter</p>
@@ -2893,11 +2873,11 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/deployments \
   <span class="hljs-attr">"inputs"</span>: {}
 }
 </code></pre>
-<h3 id="create-deployment-parameters">Parameters</h3>
+<h3 id="initiate-a-deployment--install--operation-for-an-application-or-service-parameters">Parameters</h3>
 <table>
 <thead>
 <tr>
-<th>Parameter</th>
+<th>Name</th>
 <th>In</th>
 <th>Type</th>
 <th>Required</th>
@@ -2929,7 +2909,7 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/deployments \
   }
 }
 </code></pre>
-<h3 id="create-deployment-responses">Responses</h3>
+<h3 id="initiate-a-deployment--install--operation-for-an-application-or-service-responses">Responses</h3>
 <table>
 <thead>
 <tr>
@@ -2947,12 +2927,6 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/deployments \
 <td><a href="#schemadeploymentresource">DeploymentResource</a></td>
 </tr>
 <tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
-<tr>
 <td>405</td>
 <td><a href="https://tools.ietf.org/html/rfc7231#section-6.5.5">Method Not Allowed</a></td>
 <td>Invalid input</td>
@@ -2960,32 +2934,10 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/deployments \
 </tr>
 </tbody>
 </table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
 </aside>
-<h2 id="delete-deployment">Delete Deployment</h2>
+<h2 id="initiate-an-uninstall-operation-for-an-application-or-service">Initiate an uninstall operation for an application or service</h2>
 <p><a id="opIdDelete Deployment"></a></p>
 <blockquote>
 <p>Code samples</p>
@@ -2995,7 +2947,7 @@ headers = {
   <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
 }
 
-r = requests.delete(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}'</span>, params={
+r = requests.delete(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}'</span>, params={
   <span class="hljs-string">'tenant'</span>: <span class="hljs-string">'string'</span>
 }, headers = headers)
 
@@ -3003,18 +2955,17 @@ r = requests.delete(<span class="hljs-string">'https://oom-server:30129/ccsdk-ap
 
 </code></pre>
 <pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X DELETE https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}?tenant=string \
+curl -X DELETE https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}?tenant=string \
   -H <span class="hljs-string">'Accept: application/json'</span>
 
 </code></pre>
 <p><code>DELETE /deployments/{deploymentId}</code></p>
-<p><em>Initiate an uninstall operation for an application or service</em></p>
 <p>Controller sends the deployment reference to Deployment Handler microservice to initiate the uninstall process</p>
-<h3 id="delete-deployment-parameters">Parameters</h3>
+<h3 id="initiate-an-uninstall-operation-for-an-application-or-service-parameters">Parameters</h3>
 <table>
 <thead>
 <tr>
-<th>Parameter</th>
+<th>Name</th>
 <th>In</th>
 <th>Type</th>
 <th>Required</th>
@@ -3046,7 +2997,7 @@ curl -X DELETE https://oom-server:30129/ccsdk-app/api-if/deployments/{deployment
 </blockquote>
 <pre class="highlight tab tab-json"><code><span class="hljs-string">"string"</span>
 </code></pre>
-<h3 id="delete-deployment-responses">Responses</h3>
+<h3 id="initiate-an-uninstall-operation-for-an-application-or-service-responses">Responses</h3>
 <table>
 <thead>
 <tr>
@@ -3069,40 +3020,12 @@ curl -X DELETE https://oom-server:30129/ccsdk-app/api-if/deployments/{deployment
 <td>Invalid status value</td>
 <td>None</td>
 </tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
 </tbody>
 </table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
 </aside>
-<h2 id="upgrade_rollback-deployment">Upgrade_Rollback Deployment</h2>
+<h2 id="upgrade-or-rollback-an-existing-deployment-using-cloudify-helm-plugin">Upgrade or Rollback an existing deployment using Cloudify Helm plugin</h2>
 <p><a id="opIdUpgrade/Rollback Deployment"></a></p>
 <blockquote>
 <p>Code samples</p>
@@ -3112,7 +3035,7 @@ headers = {
   <span class="hljs-string">'Content-Type'</span>: <span class="hljs-string">'application/json'</span>
 }
 
-r = requests.put(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}'</span>, params={
+r = requests.put(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}'</span>, params={
 
 }, headers = headers)
 
@@ -3120,12 +3043,11 @@ r = requests.put(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/a
 
 </code></pre>
 <pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId} \
+curl -X PUT https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId} \
   -H <span class="hljs-string">'Content-Type: application/json'</span>
 
 </code></pre>
 <p><code>PUT /deployments/{deploymentId}</code></p>
-<p><em>Upgrade or Rollback an existing deployment using Cloudify Helm plugin</em></p>
 <p>Upgrade or Rollback an existing deployment using Cloudify Helm plugin</p>
 <blockquote>
 <p>Body parameter</p>
@@ -3139,11 +3061,11 @@ curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
   <span class="hljs-attr">"workflow"</span>: <span class="hljs-string">"string"</span>
 }
 </code></pre>
-<h3 id="upgrade_rollback-deployment-parameters">Parameters</h3>
+<h3 id="upgrade-or-rollback-an-existing-deployment-using-cloudify-helm-plugin-parameters">Parameters</h3>
 <table>
 <thead>
 <tr>
-<th>Parameter</th>
+<th>Name</th>
 <th>In</th>
 <th>Type</th>
 <th>Required</th>
@@ -3167,7 +3089,7 @@ curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
 </tr>
 </tbody>
 </table>
-<h3 id="upgrade_rollback-deployment-responses">Responses</h3>
+<h3 id="upgrade-or-rollback-an-existing-deployment-using-cloudify-helm-plugin-responses">Responses</h3>
 <table>
 <thead>
 <tr>
@@ -3185,12 +3107,6 @@ curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
 <td>None</td>
 </tr>
 <tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
-<tr>
 <td>404</td>
 <td><a href="https://tools.ietf.org/html/rfc7231#section-6.5.4">Not Found</a></td>
 <td>Deployment not found</td>
@@ -3204,32 +3120,10 @@ curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
 </tr>
 </tbody>
 </table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
 </aside>
-<h2 id="get-deployment">Get Deployment</h2>
+<h2 id="gets-a-deployment">Gets a Deployment</h2>
 <p><a id="opIdGet Deployment"></a></p>
 <blockquote>
 <p>Code samples</p>
@@ -3239,7 +3133,7 @@ headers = {
   <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
 }
 
-r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}'</span>, params={
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}'</span>, params={
 
 }, headers = headers)
 
@@ -3247,18 +3141,17 @@ r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/a
 
 </code></pre>
 <pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId} \
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId} \
   -H <span class="hljs-string">'Accept: application/json'</span>
 
 </code></pre>
 <p><code>GET /deployments/{deploymentId}</code></p>
-<p><em>Gets a Deployment</em></p>
 <p>Query a deployment or Service object from Inventory</p>
-<h3 id="get-deployment-parameters">Parameters</h3>
+<h3 id="gets-a-deployment-parameters">Parameters</h3>
 <table>
 <thead>
 <tr>
-<th>Parameter</th>
+<th>Name</th>
 <th>In</th>
 <th>Type</th>
 <th>Required</th>
@@ -3298,8 +3191,8 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
       },
       <span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
     },
-    <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
-    <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
+    <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+    <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
     <span class="hljs-attr">"typeLink"</span>: {
       <span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>,
       <span class="hljs-attr">"rel"</span>: <span class="hljs-string">"string"</span>,
@@ -3349,8 +3242,8 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
           },
           <span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
         },
-        <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
-        <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
+        <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+        <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
         <span class="hljs-attr">"componentType"</span>: <span class="hljs-string">"string"</span>,
         <span class="hljs-attr">"componentSource"</span>: <span class="hljs-string">"DCAEController"</span>,
         <span class="hljs-attr">"status"</span>: <span class="hljs-string">"string"</span>,
@@ -3362,7 +3255,7 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
   }
 ]
 </code></pre>
-<h3 id="get-deployment-responses">Responses</h3>
+<h3 id="gets-a-deployment-responses">Responses</h3>
 <table>
 <thead>
 <tr>
@@ -3385,15 +3278,9 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
 <td>Invalid status value</td>
 <td>None</td>
 </tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
 </tbody>
 </table>
-<h3 id="get-deployment-responseschema">Response Schema</h3>
+<h3 id="gets-a-deployment-responseschema">Response Schema</h3>
 <p>Status Code <strong>200</strong></p>
 <table>
 <thead>
@@ -3637,32 +3524,10 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
 </tr>
 </tbody>
 </table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
 </aside>
-<h2 id="update-deployment">Update Deployment</h2>
+<h2 id="update-an-existing-deployment">Update an existing deployment</h2>
 <p><a id="opIdUpdate Deployment"></a></p>
 <blockquote>
 <p>Code samples</p>
@@ -3672,7 +3537,7 @@ headers = {
   <span class="hljs-string">'Content-Type'</span>: <span class="hljs-string">'application/json'</span>
 }
 
-r = requests.put(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}/update'</span>, params={
+r = requests.put(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}/update'</span>, params={
 
 }, headers = headers)
 
@@ -3680,12 +3545,11 @@ r = requests.put(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/a
 
 </code></pre>
 <pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}/update \
+curl -X PUT https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}/update \
   -H <span class="hljs-string">'Content-Type: application/json'</span>
 
 </code></pre>
 <p><code>PUT /deployments/{deploymentId}/update</code></p>
-<p><em>Update an existing deployment</em></p>
 <p>Dispatch a request to Deployment handler mS to use Cloudify deployment update operation</p>
 <blockquote>
 <p>Body parameter</p>
@@ -3700,11 +3564,11 @@ curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
   <span class="hljs-attr">"inputs"</span>: {}
 }
 </code></pre>
-<h3 id="update-deployment-parameters">Parameters</h3>
+<h3 id="update-an-existing-deployment-parameters">Parameters</h3>
 <table>
 <thead>
 <tr>
-<th>Parameter</th>
+<th>Name</th>
 <th>In</th>
 <th>Type</th>
 <th>Required</th>
@@ -3728,7 +3592,7 @@ curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
 </tr>
 </tbody>
 </table>
-<h3 id="update-deployment-responses">Responses</h3>
+<h3 id="update-an-existing-deployment-responses">Responses</h3>
 <table>
 <thead>
 <tr>
@@ -3746,12 +3610,6 @@ curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
 <td>None</td>
 </tr>
 <tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
-<tr>
 <td>404</td>
 <td><a href="https://tools.ietf.org/html/rfc7231#section-6.5.4">Not Found</a></td>
 <td>Deployment not found</td>
@@ -3765,32 +3623,10 @@ curl -X PUT https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
 </tr>
 </tbody>
 </table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
 </aside>
-<h2 id="deployment-status">Deployment Status</h2>
+<h2 id="deployment-execution-status">Deployment execution status</h2>
 <p><a id="opIdDeployment Status"></a></p>
 <blockquote>
 <p>Code samples</p>
@@ -3800,7 +3636,7 @@ headers = {
   <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
 }
 
-r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}/executions'</span>, params={
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}/executions'</span>, params={
   <span class="hljs-string">'tenant'</span>: <span class="hljs-string">'string'</span>
 }, headers = headers)
 
@@ -3808,18 +3644,17 @@ r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/a
 
 </code></pre>
 <pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}/executions?tenant=string \
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}/executions?tenant=string \
   -H <span class="hljs-string">'Accept: application/json'</span>
 
 </code></pre>
 <p><code>GET /deployments/{deploymentId}/executions</code></p>
-<p><em>Deployment execution status</em></p>
 <p>Query deployment workflow execution status</p>
-<h3 id="deployment-status-parameters">Parameters</h3>
+<h3 id="deployment-execution-status-parameters">Parameters</h3>
 <table>
 <thead>
 <tr>
-<th>Parameter</th>
+<th>Name</th>
 <th>In</th>
 <th>Type</th>
 <th>Required</th>
@@ -3860,7 +3695,7 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
   }
 ]
 </code></pre>
-<h3 id="deployment-status-responses">Responses</h3>
+<h3 id="deployment-execution-status-responses">Responses</h3>
 <table>
 <thead>
 <tr>
@@ -3883,15 +3718,9 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
 <td>Invalid status value</td>
 <td>None</td>
 </tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
 </tbody>
 </table>
-<h3 id="deployment-status-responseschema">Response Schema</h3>
+<h3 id="deployment-execution-status-responseschema">Response Schema</h3>
 <p>Status Code <strong>200</strong></p>
 <table>
 <thead>
@@ -3955,32 +3784,92 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
 </tr>
 </tbody>
 </table>
-<h3 id="response-headers">Response Headers</h3>
+<aside class="success">
+This operation does not require authentication
+</aside>
+<h2 id="deployment-health-status">Deployment health status</h2>
+<p><a id="opIdDeployment health"></a></p>
+<blockquote>
+<p>Code samples</p>
+</blockquote>
+<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
+headers = {
+  <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
+}
+
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}/health'</span>, params={
+
+}, headers = headers)
+
+<span class="hljs-keyword">print</span> r.json()
+
+</code></pre>
+<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}/health \
+  -H <span class="hljs-string">'Accept: application/json'</span>
+
+</code></pre>
+<p><code>GET /deployments/{deploymentId}/health</code></p>
+<p>Query consul for service health using deployment ID filter</p>
+<h3 id="deployment-health-status-parameters">Parameters</h3>
 <table>
 <thead>
 <tr>
-<th>Status</th>
-<th>Header</th>
+<th>Name</th>
+<th>In</th>
 <th>Type</th>
-<th>Format</th>
+<th>Required</th>
 <th>Description</th>
 </tr>
 </thead>
 <tbody>
 <tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
+<td>deploymentId</td>
+<td>path</td>
 <td>string</td>
-<td></td>
-<td>none</td>
+<td>true</td>
+<td>ID of deployment to query service health</td>
+</tr>
+</tbody>
+</table>
+<blockquote>
+<p>Example responses</p>
+</blockquote>
+<blockquote>
+<p>200 Response</p>
+</blockquote>
+<pre class="highlight tab tab-json"><code>{
+  <span class="hljs-attr">"node"</span>: <span class="hljs-string">"string"</span>,
+  <span class="hljs-attr">"checkID"</span>: <span class="hljs-string">"string"</span>,
+  <span class="hljs-attr">"name"</span>: <span class="hljs-string">"string"</span>,
+  <span class="hljs-attr">"status"</span>: <span class="hljs-string">"string"</span>,
+  <span class="hljs-attr">"serviceID"</span>: <span class="hljs-string">"string"</span>,
+  <span class="hljs-attr">"serviceName"</span>: <span class="hljs-string">"string"</span>
+}
+</code></pre>
+<h3 id="deployment-health-status-responses">Responses</h3>
+<table>
+<thead>
+<tr>
+<th>Status</th>
+<th>Meaning</th>
+<th>Description</th>
+<th>Schema</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>200</td>
+<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
+<td>successful operation</td>
+<td><a href="#schemaservicehealth">serviceHealth</a></td>
 </tr>
 </tbody>
 </table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
 </aside>
-<h2 id="deployment-inputs">Deployment Inputs</h2>
+<h2 id="deployment-inputs">Deployment inputs</h2>
 <p><a id="opIdDeployment Inputs"></a></p>
 <blockquote>
 <p>Code samples</p>
@@ -3990,7 +3879,7 @@ headers = {
   <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
 }
 
-r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}/inputs'</span>, params={
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}/inputs'</span>, params={
   <span class="hljs-string">'tenant'</span>: <span class="hljs-string">'string'</span>
 }, headers = headers)
 
@@ -3998,18 +3887,17 @@ r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/a
 
 </code></pre>
 <pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}/inputs?tenant=string \
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/deployments/{deploymentId}/inputs?tenant=string \
   -H <span class="hljs-string">'Accept: application/json'</span>
 
 </code></pre>
 <p><code>GET /deployments/{deploymentId}/inputs</code></p>
-<p><em>Deployment inputs</em></p>
 <p>Get blueprint inputs used to create deployment</p>
 <h3 id="deployment-inputs-parameters">Parameters</h3>
 <table>
 <thead>
 <tr>
-<th>Parameter</th>
+<th>Name</th>
 <th>In</th>
 <th>Type</th>
 <th>Required</th>
@@ -4064,43 +3952,15 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/deployments/{deploymentId}
 <td>Invalid status value</td>
 <td>None</td>
 </tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
 </tbody>
 </table>
 <h3 id="deployment-inputs-responseschema">Response Schema</h3>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
 </aside>
-<h1 id="operations-manager-api-tenants">Tenants</h1>
+<h1 id="dcae-dashboard-api-tenants">Tenants</h1>
 <p>Query Cloudify Tenants</p>
-<h2 id="list-tenants">List Tenants</h2>
+<h2 id="lists-all-cloudify-tenants">Lists all Cloudify Tenants</h2>
 <p><a id="opIdList Tenants"></a></p>
 <blockquote>
 <p>Code samples</p>
@@ -4110,7 +3970,7 @@ headers = {
   <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
 }
 
-r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/tenants'</span>, params={
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/tenants'</span>, params={
 
 }, headers = headers)
 
@@ -4118,12 +3978,11 @@ r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/a
 
 </code></pre>
 <pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X GET https://oom-server:30129/ccsdk-app/api-if/tenants \
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/tenants \
   -H <span class="hljs-string">'Accept: application/json'</span>
 
 </code></pre>
 <p><code>GET /tenants</code></p>
-<p><em>Lists all Cloudify Tenants</em></p>
 <p>Query all Tenant names from Cloudify</p>
 <blockquote>
 <p>Example responses</p>
@@ -4137,7 +3996,7 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/tenants \
   }
 ]
 </code></pre>
-<h3 id="list-tenants-responses">Responses</h3>
+<h3 id="lists-all-cloudify-tenants-responses">Responses</h3>
 <table>
 <thead>
 <tr>
@@ -4160,15 +4019,9 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/tenants \
 <td>Invalid status value</td>
 <td>None</td>
 </tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
 </tbody>
 </table>
-<h3 id="list-tenants-responseschema">Response Schema</h3>
+<h3 id="lists-all-cloudify-tenants-responseschema">Response Schema</h3>
 <p>Status Code <strong>200</strong></p>
 <table>
 <thead>
@@ -4197,34 +4050,12 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/tenants \
 </tr>
 </tbody>
 </table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
 </aside>
-<h1 id="operations-manager-api-components">Components</h1>
+<h1 id="dcae-dashboard-api-components">Components</h1>
 <p>Query on-boarded components</p>
-<h2 id="list-components">List Components</h2>
+<h2 id="lists-all-application-components">Lists all application components</h2>
 <p><a id="opIdList Components"></a></p>
 <blockquote>
 <p>Code samples</p>
@@ -4234,7 +4065,7 @@ headers = {
   <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>
 }
 
-r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/components'</span>, params={
+r = requests.get(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/components'</span>, params={
 
 }, headers = headers)
 
@@ -4242,12 +4073,11 @@ r = requests.get(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/a
 
 </code></pre>
 <pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X GET https://oom-server:30129/ccsdk-app/api-if/components \
+curl -X GET https://dcae-dashboard:8080/ccsdk-app-os/nb-api/components \
   -H <span class="hljs-string">'Accept: application/json'</span>
 
 </code></pre>
 <p><code>GET /components</code></p>
-<p><em>Lists all application components</em></p>
 <p>Query all components from database</p>
 <blockquote>
 <p>Example responses</p>
@@ -4263,7 +4093,7 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/components \
   }
 ]
 </code></pre>
-<h3 id="list-components-responses">Responses</h3>
+<h3 id="lists-all-application-components-responses">Responses</h3>
 <table>
 <thead>
 <tr>
@@ -4286,15 +4116,9 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/components \
 <td>Invalid status value</td>
 <td>None</td>
 </tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
 </tbody>
 </table>
-<h3 id="list-components-responseschema">Response Schema</h3>
+<h3 id="lists-all-application-components-responseschema">Response Schema</h3>
 <p>Status Code <strong>200</strong></p>
 <table>
 <thead>
@@ -4337,32 +4161,10 @@ curl -X GET https://oom-server:30129/ccsdk-app/api-if/components \
 </tr>
 </tbody>
 </table>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
-</tbody>
-</table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<aside class="success">
+This operation does not require authentication
 </aside>
-<h2 id="add-component">Add Component</h2>
+<h2 id="add-an-application-component">add an application component</h2>
 <p><a id="opIdAdd Component"></a></p>
 <blockquote>
 <p>Code samples</p>
@@ -4373,7 +4175,7 @@ headers = {
   <span class="hljs-string">'Accept'</span>: <span class="hljs-string">'*/*'</span>
 }
 
-r = requests.post(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/api-if/components'</span>, params={
+r = requests.post(<span class="hljs-string">'https://dcae-dashboard:8080/ccsdk-app-os/nb-api/components'</span>, params={
 
 }, headers = headers)
 
@@ -4381,13 +4183,12 @@ r = requests.post(<span class="hljs-string">'https://oom-server:30129/ccsdk-app/
 
 </code></pre>
 <pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
-curl -X POST https://oom-server:30129/ccsdk-app/api-if/components \
+curl -X POST https://dcae-dashboard:8080/ccsdk-app-os/nb-api/components \
   -H <span class="hljs-string">'Content-Type: application/json'</span> \
   -H <span class="hljs-string">'Accept: */*'</span>
 
 </code></pre>
 <p><code>POST /components</code></p>
-<p><em>add an application component</em></p>
 <p>Insert a component into database</p>
 <blockquote>
 <p>Body parameter</p>
@@ -4397,11 +4198,11 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/components \
   <span class="hljs-attr">"dname"</span>: <span class="hljs-string">"string"</span>
 }
 </code></pre>
-<h3 id="add-component-parameters">Parameters</h3>
+<h3 id="add-an-application-component-parameters">Parameters</h3>
 <table>
 <thead>
 <tr>
-<th>Parameter</th>
+<th>Name</th>
 <th>In</th>
 <th>Type</th>
 <th>Required</th>
@@ -4424,7 +4225,7 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/components \
 <blockquote>
 <p>200 Response</p>
 </blockquote>
-<h3 id="add-component-responses">Responses</h3>
+<h3 id="add-an-application-component-responses">Responses</h3>
 <table>
 <thead>
 <tr>
@@ -4447,42 +4248,14 @@ curl -X POST https://oom-server:30129/ccsdk-app/api-if/components \
 <td>Invalid status value</td>
 <td>None</td>
 </tr>
-<tr>
-<td>401</td>
-<td><a href="https://tools.ietf.org/html/rfc7235#section-3.1">Unauthorized</a></td>
-<td>Authentication information is missing or invalid</td>
-<td>None</td>
-</tr>
-</tbody>
-</table>
-<h3 id="add-component-responseschema">Response Schema</h3>
-<h3 id="response-headers">Response Headers</h3>
-<table>
-<thead>
-<tr>
-<th>Status</th>
-<th>Header</th>
-<th>Type</th>
-<th>Format</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>401</td>
-<td>WWW_Authenticate</td>
-<td>string</td>
-<td></td>
-<td>none</td>
-</tr>
 </tbody>
 </table>
-<aside class="warning">
-To perform this operation, you must be authenticated by means of one of the following methods:
-basicAuth
+<h3 id="add-an-application-component-responseschema">Response Schema</h3>
+<aside class="success">
+This operation does not require authentication
 </aside>
 <h1 id="schemas">Schemas</h1>
-<h2 id="tocStenant">Tenant</h2>
+<h2 id="tocstenant">Tenant</h2>
 <p><a id="schematenant"></a></p>
 <pre class="highlight tab tab-json"><code>{
   <span class="hljs-attr">"name"</span>: <span class="hljs-string">"string"</span>
@@ -4510,7 +4283,7 @@ basicAuth
 </tr>
 </tbody>
 </table>
-<h2 id="tocScomponent">Component</h2>
+<h2 id="tocscomponent">Component</h2>
 <p><a id="schemacomponent"></a></p>
 <pre class="highlight tab tab-json"><code>{
   <span class="hljs-attr">"compId"</span>: <span class="hljs-number">0</span>,
@@ -4554,7 +4327,7 @@ basicAuth
 </tr>
 </tbody>
 </table>
-<h2 id="tocScomponentinput">ComponentInput</h2>
+<h2 id="tocscomponentinput">ComponentInput</h2>
 <p><a id="schemacomponentinput"></a></p>
 <pre class="highlight tab tab-json"><code>{
   <span class="hljs-attr">"cname"</span>: <span class="hljs-string">"string"</span>,
@@ -4590,7 +4363,7 @@ basicAuth
 </tr>
 </tbody>
 </table>
-<h2 id="tocSinlineresponse200">InlineResponse200</h2>
+<h2 id="tocsinlineresponse200">InlineResponse200</h2>
 <p><a id="schemainlineresponse200"></a></p>
 <pre class="highlight tab tab-json"><code>{
   <span class="hljs-attr">"links"</span>: {
@@ -4657,8 +4430,8 @@ basicAuth
         },
         <span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
       },
-      <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
-      <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>
+      <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+      <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>
     }
   ]
 }
@@ -4699,7 +4472,7 @@ basicAuth
 </tr>
 </tbody>
 </table>
-<h2 id="tocSinlineresponse200links">InlineResponse200Links</h2>
+<h2 id="tocsinlineresponse200links">InlineResponse200Links</h2>
 <p><a id="schemainlineresponse200links"></a></p>
 <pre class="highlight tab tab-json"><code>{
   <span class="hljs-attr">"previousLink"</span>: {
@@ -4762,7 +4535,7 @@ basicAuth
 </tr>
 </tbody>
 </table>
-<h2 id="tocSapiresponsemessage">ApiResponseMessage</h2>
+<h2 id="tocsapiresponsemessage">ApiResponseMessage</h2>
 <p><a id="schemaapiresponsemessage"></a></p>
 <pre class="highlight tab tab-json"><code>{
   <span class="hljs-attr">"code"</span>: <span class="hljs-number">0</span>,
@@ -4806,7 +4579,7 @@ basicAuth
 </tr>
 </tbody>
 </table>
-<h2 id="tocSdcaeservice">DCAEService</h2>
+<h2 id="tocsdcaeservice">DCAEService</h2>
 <p><a id="schemadcaeservice"></a></p>
 <pre class="highlight tab tab-json"><code>{
   <span class="hljs-attr">"serviceId"</span>: <span class="hljs-string">"string"</span>,
@@ -4824,8 +4597,8 @@ basicAuth
     },
     <span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
   },
-  <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
-  <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
+  <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+  <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
   <span class="hljs-attr">"typeLink"</span>: {
     <span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>,
     <span class="hljs-attr">"rel"</span>: <span class="hljs-string">"string"</span>,
@@ -4875,8 +4648,8 @@ basicAuth
         },
         <span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
       },
-      <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
-      <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
+      <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+      <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
       <span class="hljs-attr">"componentType"</span>: <span class="hljs-string">"string"</span>,
       <span class="hljs-attr">"componentSource"</span>: <span class="hljs-string">"DCAEController"</span>,
       <span class="hljs-attr">"status"</span>: <span class="hljs-string">"string"</span>,
@@ -4986,7 +4759,7 @@ basicAuth
 </tr>
 </tbody>
 </table>
-<h2 id="tocSinlineresponse2001">InlineResponse2001</h2>
+<h2 id="tocsinlineresponse2001">InlineResponse2001</h2>
 <p><a id="schemainlineresponse2001"></a></p>
 <pre class="highlight tab tab-json"><code>{
   <span class="hljs-attr">"links"</span>: {
@@ -5037,8 +4810,8 @@ basicAuth
         },
         <span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
       },
-      <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
-      <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
+      <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+      <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
       <span class="hljs-attr">"typeLink"</span>: {
         <span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>,
         <span class="hljs-attr">"rel"</span>: <span class="hljs-string">"string"</span>,
@@ -5088,8 +4861,8 @@ basicAuth
             },
             <span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
           },
-          <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
-          <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
+          <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+          <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
           <span class="hljs-attr">"componentType"</span>: <span class="hljs-string">"string"</span>,
           <span class="hljs-attr">"componentSource"</span>: <span class="hljs-string">"DCAEController"</span>,
           <span class="hljs-attr">"status"</span>: <span class="hljs-string">"string"</span>,
@@ -5138,14 +4911,14 @@ basicAuth
 </tr>
 </tbody>
 </table>
-<h2 id="tocSuribuilder">UriBuilder</h2>
+<h2 id="tocsuribuilder">UriBuilder</h2>
 <p><a id="schemauribuilder"></a></p>
 <pre class="highlight tab tab-json"><code>{}
 
 </code></pre>
 <h3 id="properties">Properties</h3>
 <p><em>None</em></p>
-<h2 id="tocSlink">Link</h2>
+<h2 id="tocslink">Link</h2>
 <p><a id="schemalink"></a></p>
 <pre class="highlight tab tab-json"><code>{
   <span class="hljs-attr">"title"</span>: <span class="hljs-string">"string"</span>,
@@ -5233,7 +5006,7 @@ basicAuth
 </tr>
 </tbody>
 </table>
-<h2 id="tocSdcaeservicecomponent">DCAEServiceComponent</h2>
+<h2 id="tocsdcaeservicecomponent">DCAEServiceComponent</h2>
 <p><a id="schemadcaeservicecomponent"></a></p>
 <pre class="highlight tab tab-json"><code>{
   <span class="hljs-attr">"componentId"</span>: <span class="hljs-string">"string"</span>,
@@ -5251,8 +5024,8 @@ basicAuth
     },
     <span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
   },
-  <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
-  <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
+  <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+  <span class="hljs-attr">"modified"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
   <span class="hljs-attr">"componentType"</span>: <span class="hljs-string">"string"</span>,
   <span class="hljs-attr">"componentSource"</span>: <span class="hljs-string">"DCAEController"</span>,
   <span class="hljs-attr">"status"</span>: <span class="hljs-string">"string"</span>,
@@ -5357,7 +5130,7 @@ basicAuth
 </tr>
 </tbody>
 </table>
-<h2 id="tocSdcaeservicetyperequest">DCAEServiceTypeRequest</h2>
+<h2 id="tocsdcaeservicetyperequest">DCAEServiceTypeRequest</h2>
 <p><a id="schemadcaeservicetyperequest"></a></p>
 <pre class="highlight tab tab-json"><code>{
   <span class="hljs-attr">"owner"</span>: <span class="hljs-string">"string"</span>,
@@ -5425,7 +5198,7 @@ basicAuth
 </tr>
 </tbody>
 </table>
-<h2 id="tocSdcaeservicetype">DCAEServiceType</h2>
+<h2 id="tocsdcaeservicetype">DCAEServiceType</h2>
 <p><a id="schemadcaeservicetype"></a></p>
 <pre class="highlight tab tab-json"><code>{
   <span class="hljs-attr">"owner"</span>: <span class="hljs-string">"string"</span>,
@@ -5459,8 +5232,8 @@ basicAuth
     },
     <span class="hljs-attr">"type"</span>: <span class="hljs-string">"string"</span>
   },
-  <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>,
-  <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2019-05-08T15:25:24Z"</span>
+  <span class="hljs-attr">"created"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>,
+  <span class="hljs-attr">"deactivated"</span>: <span class="hljs-string">"2020-02-05T21:21:26Z"</span>
 }
 
 </code></pre>
@@ -5576,7 +5349,7 @@ basicAuth
 </tr>
 </tbody>
 </table>
-<h2 id="tocScloudifydeploymentupgraderequest">CloudifyDeploymentUpgradeRequest</h2>
+<h2 id="tocscloudifydeploymentupgraderequest">CloudifyDeploymentUpgradeRequest</h2>
 <p><a id="schemacloudifydeploymentupgraderequest"></a></p>
 <pre class="highlight tab tab-json"><code>{
   <span class="hljs-attr">"chartVersion"</span>: <span class="hljs-string">"string"</span>,
@@ -5644,7 +5417,7 @@ basicAuth
 </tr>
 </tbody>
 </table>
-<h2 id="tocSdeploymentinput">DeploymentInput</h2>
+<h2 id="tocsdeploymentinput">DeploymentInput</h2>
 <p><a id="schemadeploymentinput"></a></p>
 <pre class="highlight tab tab-json"><code>{
   <span class="hljs-attr">"component"</span>: <span class="hljs-string">"string"</span>,
@@ -5720,14 +5493,82 @@ basicAuth
 </tr>
 </tbody>
 </table>
-<h2 id="tocSdeploymentinputs">deploymentInputs</h2>
+<h2 id="tocsdeploymentinputs">deploymentInputs</h2>
 <p><a id="schemadeploymentinputs"></a></p>
 <pre class="highlight tab tab-json"><code>{}
 
 </code></pre>
 <h3 id="properties">Properties</h3>
 <p><em>None</em></p>
-<h2 id="tocSexecution">execution</h2>
+<h2 id="tocsservicehealth">serviceHealth</h2>
+<p><a id="schemaservicehealth"></a></p>
+<pre class="highlight tab tab-json"><code>{
+  <span class="hljs-attr">"node"</span>: <span class="hljs-string">"string"</span>,
+  <span class="hljs-attr">"checkID"</span>: <span class="hljs-string">"string"</span>,
+  <span class="hljs-attr">"name"</span>: <span class="hljs-string">"string"</span>,
+  <span class="hljs-attr">"status"</span>: <span class="hljs-string">"string"</span>,
+  <span class="hljs-attr">"serviceID"</span>: <span class="hljs-string">"string"</span>,
+  <span class="hljs-attr">"serviceName"</span>: <span class="hljs-string">"string"</span>
+}
+
+</code></pre>
+<h3 id="properties">Properties</h3>
+<table>
+<thead>
+<tr>
+<th>Name</th>
+<th>Type</th>
+<th>Required</th>
+<th>Restrictions</th>
+<th>Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>node</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>The node where service is deployed</td>
+</tr>
+<tr>
+<td>checkID</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>A unique identifier for the service health check</td>
+</tr>
+<tr>
+<td>name</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>A unique name for this service health check</td>
+</tr>
+<tr>
+<td>status</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>Health check status</td>
+</tr>
+<tr>
+<td>serviceID</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>An identifier containing combination of consul registration ID and consul service name</td>
+</tr>
+<tr>
+<td>serviceName</td>
+<td>string</td>
+<td>false</td>
+<td>none</td>
+<td>A unique consul service name</td>
+</tr>
+</tbody>
+</table>
+<h2 id="tocsexecution">execution</h2>
 <p><a id="schemaexecution"></a></p>
 <pre class="highlight tab tab-json"><code>{
   <span class="hljs-attr">"created_at"</span>: <span class="hljs-string">"string"</span>,
@@ -5795,7 +5636,7 @@ basicAuth
 </tr>
 </tbody>
 </table>
-<h2 id="tocSdeploymentresourcelinks">DeploymentResourceLinks</h2>
+<h2 id="tocsdeploymentresourcelinks">DeploymentResourceLinks</h2>
 <p><a id="schemadeploymentresourcelinks"></a></p>
 <pre class="highlight tab tab-json"><code>{
   <span class="hljs-attr">"self"</span>: <span class="hljs-string">"string"</span>,
@@ -5839,7 +5680,7 @@ basicAuth
 </tr>
 </tbody>
 </table>
-<h2 id="tocSdeploymentresource">DeploymentResource</h2>
+<h2 id="tocsdeploymentresource">DeploymentResource</h2>
 <p><a id="schemadeploymentresource"></a></p>
 <pre class="highlight tab tab-json"><code>{
   <span class="hljs-attr">"deployment_id"</span>: <span class="hljs-string">"string"</span>,
@@ -5879,7 +5720,7 @@ basicAuth
 </tr>
 </tbody>
 </table>
-
+<!-- Renderer: Shins v2.4.0 -->
       </div>
       <div class="dark-box">
         
index 135ba23..b9b7809 100644 (file)
@@ -6,12 +6,12 @@
        <parent>
            <groupId>org.onap.ccsdk.dashboard</groupId>
            <artifactId>ccsdk-app-parent</artifactId>
-           <version>1.2.0-SNAPSHOT</version>
+           <version>1.3.0-SNAPSHOT</version>
        </parent>
 
        <groupId>org.onap.ccsdk.dashboard</groupId>
        <artifactId>ccsdk-app-overlay</artifactId>
-       <version>1.2.0-SNAPSHOT</version>
+       <version>1.3.0-SNAPSHOT</version>
        <packaging>war</packaging>
        <name>ONAP Operations Manager Dashboard overlay</name>
        <description>CCSDK Dashboard web resources</description>
diff --git a/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/api-docs-controller.js b/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/api-docs-controller.js
new file mode 100644 (file)
index 0000000..6ac9839
--- /dev/null
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * =============LICENSE_START=========================================================
+ *
+ * =================================================================================
+ *  Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *  
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ *******************************************************************************/
+
+appDS2.controller('apiDocsController',function(
+               $scope, ControllerService){
+       
+       'use strict';
+
+       // this object holds all app data and functions
+       $scope.ecdapp = {};
+       $scope.ecdapp.apiSpec = '';
+       
+       var getApiSpecs = function(){
+               ControllerService.getApiSwaggerSpec().then(function(jsonObj) {
+                       $scope.ecdapp.apiSpec = JSON.stringify(jsonObj, undefined, 4);
+               }, function(error) {
+                       alert('Failed to get REST API spec file');
+               });
+       }
+
+       // Populate the page on load
+       getApiSpecs();
+
+});
diff --git a/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/api_doc.html b/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/api_doc.html
new file mode 100644 (file)
index 0000000..342406c
--- /dev/null
@@ -0,0 +1,26 @@
+<!--
+  ============LICENSE_START==========================================
+  ===================================================================
+  Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+  ===================================================================
+  Unless otherwise specified, all software contained herein is licensed
+  under the Apache License, Version 2.0 (the "License");
+  you may not use this software except in compliance with the License.
+  You may obtain a copy of the License at
+              http://www.apache.org/licenses/LICENSE-2.0
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  ============LICENSE_END============================================
+ -->
+<div id="page-content">
+               <iframe  scrolling="yes" frameborder="0" style="width:100%; height: 800px;" 
+               ng-src="api-specs.html">
+       </iframe>
+</div>
\ No newline at end of file
index c8f7071..ebb35cd 100644 (file)
@@ -1,3 +1,24 @@
+/*******************************************************************************
+ * =============LICENSE_START=========================================================
+ *
+ * =================================================================================
+ *  Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *  
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ *******************************************************************************/
+
 /* Angular application for the EC Dashboard web UI */
 var appDS2 = angular.module("abs", 
                [
@@ -6,6 +27,4 @@ var appDS2 = angular.module("abs",
                        'b2b.att',
                        'modalServices'
                ]
-       ).config(function($sceDelegateProvider) {
-                 $sceDelegateProvider.resourceUrlWhitelist(['**']);
-       });
+       );
index 389a44c..65495f1 100644 (file)
@@ -1,3 +1,24 @@
+/*******************************************************************************
+ * =============LICENSE_START=========================================================
+ *
+ * =================================================================================
+ *  Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *  
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ *******************************************************************************/
+
 appDS2.factory('ControllerService', function ($http, $q, $log) {
        return {
                /**
@@ -18,6 +39,20 @@ appDS2.factory('ControllerService', function ($http, $q, $log) {
                                return $q.reject(error.statusText);
                        });
                },
+               getApiSwaggerSpec: function() {
+                       return $http({
+                               method: 'GET',
+                               url: 'nb-api/api-docs',
+                               cache: true,
+                               responseType: 'json'
+                       }).then(function(response) {
+                                       return response.data;
+                       }, 
+                       function(error) {
+                               $log.error('ControllerService.getApiSwaggerSpec failed: ' + JSON.stringify(error));
+                               return $q.reject(error.statusText);
+                       });                     
+               },
                /**
                 * Gets the cloudify tenant names.
                 * 
index f8acb8b..5623b1c 100644 (file)
@@ -1,5 +1,5 @@
 <div id="page-content">
 
-       <h4 class="heading-page" id="controllers">ONAP Operations Manager {{ecdapp.appLabel}}</h4>
+       <h4 class="heading-page" id="controllers">DCAE Dashboard</h4>
 </div>
 
index 7ec5537..592ab15 100644 (file)
@@ -2,7 +2,7 @@
  * =============LICENSE_START=========================================================
  *
  * =================================================================================
- *  Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+ *  Copyright (c) 2020 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
  *  limitations under the License.
  * ============LICENSE_END=========================================================
  *
- *  ECOMP is a trademark and service mark of AT&T Intellectual Property.
  *******************************************************************************/
 appDS2.config(function($routeProvider) {
        $routeProvider
-       .when('/orgchart', {
-               /* horizontal layout */
-               templateUrl: 'app/ccsdk/home/tree_view.html',
-               controller : 'treeViewController'
+       .when('/api', { 
+               templateUrl: 'app/ccsdk/home/api_doc.html',
+               controller : ''
+       })
+       .when('/api-spec', { 
+               templateUrl: 'app/ccsdk/home/rest-api-spec.html',
+               controller : 'apiDocsController'
        })
        .when('/ibp', { 
                templateUrl: 'app/ccsdk/inventory/inventory_blueprint_table.html',
@@ -82,34 +84,6 @@ appDS2.config(function($routeProvider) {
                templateUrl: 'app/fusion/scripts/DS2-view-models/ds2-admin/usage.html',
                controller: 'usageListControllerDS2'
        })
-       .when('/cfy', {
-               templateUrl: 'app/ccsdk/ops/tabs_view.html',
-               controller: 'tabsController',
-               item: 'cfy'
-       })
-       .when('/cnsl', {
-               templateUrl: 'app/ccsdk/ops/tabs_view.html',
-               controller: 'tabsController',
-               item: 'cnsl'
-       })
-       .when('/grf', {
-               templateUrl: 'app/ccsdk/ops/tabs_view.html',
-               controller: 'tabsController',
-               item: 'grf'
-       })
-       .when('/k8s', {
-               templateUrl: 'app/ccsdk/ops/tabs_view.html',
-               controller: 'tabsController',
-               item: 'k8s'
-       })
-       .when('/prom', {
-               templateUrl: 'app/ecdapp/ops/tabs_view.html',
-               controller: 'tabsController',
-               item: 'prom'
-       })
-       .when('/dbcl', {
-               templateUrl: 'app/ecdapp/ops/dbcl_view.html'
-       })
        .otherwise({
                templateUrl: 'app/ccsdk/home/executions_view.html',
                controller : 'executionsViewController'
index 74651a9..fabb450 100644 (file)
@@ -1,20 +1,42 @@
+<!--
+  ============LICENSE_START==========================================
+  ===================================================================
+  Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+  ===================================================================
+  Unless otherwise specified, all software contained herein is licensed
+  under the Apache License, Version 2.0 (the "License");
+  you may not use this software except in compliance with the License.
+  You may obtain a copy of the License at
+              http://www.apache.org/licenses/LICENSE-2.0
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  ============LICENSE_END============================================
+ -->
 <!DOCTYPE html>
-<!-- ONAP Operations Manager Dashboard single-page application using B2B/DS2. -->      
+<!-- DCAE Dashboard single-page application using B2B/DS2. --> 
 <html>
        <head>
        <meta charset="UTF-8">
-       <title>OOM Dashboard</title>
+       <title>DCAE Dashboard</title>
     <link rel="icon" type="image/ico" href="app/ccsdk/images/onap_32x32.ico" />
 
        <!-- Third-party scripts from EPSDK overlay --> 
-       <script src="app/fusion/external/angular-1.4.8/angular.js"></script>    
-       <script src="app/fusion/external/angular-1.4.8/angular-cookies.js"></script>    
-       <script src="app/fusion/external/angular-1.4.8/angular-messages.js"></script>   
-       <script src="app/fusion/external/angular-1.4.8/angular-route.js"></script>      
-       <script src="app/fusion/external/angular-1.4.8/angular-sanitize.js"></script>   
-       <script src="app/fusion/external/angular-1.4.8/angular-touch.js"></script>      
+       <script src="app/fusion/external/angular-1.4.13/angular.js"></script>   
+       <script src="app/fusion/external/angular-1.4.13/angular-cookies.js"></script>   
+       <script src="app/fusion/external/angular-1.4.13/angular-messages.js"></script>  
+       <script src="app/fusion/external/angular-1.4.13/angular-route.js"></script>     
+       <script src="app/fusion/external/angular-1.4.13/angular-sanitize.js"></script>  
+       <script src="app/fusion/external/angular-1.4.13/angular-touch.js"></script>
        <script src="app/fusion/external/jquery/dist/jquery.min.js"></script>
-       <script src="app/fusion/external/javascript-detect-element-resize/jquery.resize.js"></script>
+       <!--<script src="app/fusion/external/javascript-detect-element-resize/jquery.resize.js"></script>-->
        <script src="app/fusion/external/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
        
        <!-- Third-party scripts from app -->
        <script src="app/fusion/scripts/DS2-directives/b2b-leftnav-ext.js"></script> 
         
        <!-- OOM home -->
+       <script src="app/ccsdk/home/controller-service.js"></script>
+    <script src="app/ccsdk/home/executions-view-controller.js"></script>
+       <script src="app/ccsdk/home/api-docs-controller.js"></script>
+       <!--  
        <script src="app/ccsdk/home/tree-view-controller.js"></script>
        <script src="app/ccsdk/home/tree-view-directive.js"></script>
-       <script src="app/ccsdk/home/controller-service.js"></script>
        <script src="app/ccsdk/home/oom-instances-controller.js"></script>
-       <script src="app/ccsdk/home/executions-view-controller.js"></script>
        <script src="app/ccsdk/home/http-interceptor.js"></script>
+       -->
        <link rel="stylesheet" href="app/ccsdk/home/tree-view-style.css"/>
        <link rel="stylesheet" href="app/ccsdk/home/oom-style.css"/>    
 
diff --git a/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/rest-api-spec.html b/ccsdk-app-overlay/src/main/webapp/app/ccsdk/home/rest-api-spec.html
new file mode 100644 (file)
index 0000000..56ee149
--- /dev/null
@@ -0,0 +1,27 @@
+<!--
+  ============LICENSE_START==========================================
+  ===================================================================
+  Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+  ===================================================================
+  Unless otherwise specified, all software contained herein is licensed
+  under the Apache License, Version 2.0 (the "License");
+  you may not use this software except in compliance with the License.
+  You may obtain a copy of the License at
+              http://www.apache.org/licenses/LICENSE-2.0
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  ============LICENSE_END============================================
+ -->
+<div id="page-content" ng-controller="apiDocsController">
+       <h2 class="heading-page" id="controllers">REST API Specifications</h2>
+       <pre>
+{{ecdapp.apiSpec}}
+</pre>
+</div>
\ No newline at end of file
diff --git a/ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/footer.html b/ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/footer.html
new file mode 100644 (file)
index 0000000..65ac372
--- /dev/null
@@ -0,0 +1,13 @@
+<div style="width: 100%">
+       <footer class="b2b-footer-wrapper" role="contentinfo" aria-label="footer">
+               <div class="b2b-footer-container" >
+                       <div class="divider-bottom-footer">
+                               <div class="span12 footerLogo"> 
+                                        <p class="copyright-text">
+                                               &copy; 2020 ONAP. The Linux Foundation. <span class="build_number">Build Number: {{build_number}}</span>                                                                
+                                        </p>   
+                               </div>
+                       </div>
+               </div>
+       </footer>
+</div> 
\ No newline at end of file
diff --git a/ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/header-logo.html b/ccsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/header-logo.html
new file mode 100644 (file)
index 0000000..942af9b
--- /dev/null
@@ -0,0 +1,3 @@
+<div style="margin-right: 40px;"> <img src="app/ccsdk/images/onap_16x16.ico">
+       <span style="font-size: 16px;margin-left: 10px;">DCAE Dashboard</span>
+</div>
\ No newline at end of file
index 66c38e0..1c90f97 100644 (file)
@@ -10,7 +10,7 @@
   </head>    
   <body> 
     <p>
-       Redirecting to the <a href="ecd#">ONAP Operations Manager Dashboard</a>..
+       Redirecting to the <a href="ecd#">DCAE Dashboard</a>..
     </p> 
   </body>  
 </html>
diff --git a/pom.xml b/pom.xml
index a3fc796..903095a 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -14,7 +14,7 @@
     <!-- Maven parent project for convenience of building and cleaning -->
     <groupId>org.onap.ccsdk.dashboard</groupId>
     <artifactId>ccsdk-app-parent</artifactId>
-    <version>1.2.0-SNAPSHOT</version>
+    <version>1.3.0-SNAPSHOT</version>
     <packaging>pom</packaging>
     <name>ccsdk-dashboard</name>