Initial Commit - NG UI

* Roboto and font-awesome fonts are added in package.json
* Replace Nginx alpine varient to stable
* Devops files are added
* Docker file aligned as per community reviews
* Enhancement - NS primitive, Azure inclusion and domain name
* RWD changes

Change-Id: If543efbf127964cbd8f4be4c5a67260c91407fd9
Signed-off-by: kumaran.m <kumaran.m@tataelxsi.co.in>
diff --git a/src/models/CommonModel.ts b/src/models/CommonModel.ts
new file mode 100644
index 0000000..e3d44e2
--- /dev/null
+++ b/src/models/CommonModel.ts
@@ -0,0 +1,207 @@
+/*
+ Copyright 2020 TATA ELXSI
+
+ 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.
+
+ Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
+ */
+import { HttpHeaders } from '@angular/common/http';
+
+/**
+ * @file  Model for Commonly used information.
+ */
+/**
+ * handle count @enum
+ */
+export enum CONSTANTNUMBER {
+    randomNumber = 4,
+    osmapviewlong = 77.673,
+    osmapviewlat = 19.166,
+    chennailong = 80.2809,
+    chennailat = 13.0781,
+    bangalorelong = 77.5868,
+    bangalorelat = 12.9718,
+    mumbailong = 72.8342,
+    mumbailat = 18.9394,
+    tirvandrumlong = 76.9544,
+    tirvandrumlat = 8.5009,
+    oneMB = 1048576,
+    paginationDefaultValue = 10,
+    splitLongitude = 1,
+    splitLatitude = 2
+}
+/**
+ * handle count @enum
+ */
+export enum CONFIGCONSTANT {
+    operationalStateFirstStep = 'init',
+    operationalStateSecondStep = 'running',
+    operationalStateThirdStep = 'failed',
+    configStateFirstStep = 'init',
+    configStateSecondStep = 'configured',
+    configStateThirdStep = 'failed',
+    historyStateFirstStep = 'PROCESSING',
+    historyStateSecondStep = 'COMPLETED',
+    historyStateThirdStep = 'FAILED',
+    wimOperationalStateFirstStep = 'PROCESSING',
+    wimOperationalStateStateSecondStep = 'ENABLED',
+    wimOperationalStateThirdStep = 'ERROR',
+    vimOperationalStateFirstStep = 'PROCESSING',
+    vimOperationalStateStateSecondStep = 'ENABLED',
+    vimOperationalStateThirdStep = 'ERROR',
+    sdnOperationalStateFirstStep = 'PROCESSING',
+    sdnOperationalStateStateSecondStep = 'ENABLED',
+    sdnOperationalStateThirdStep = 'ERROR',
+    k8OperationalStateFirstStep = 'PROCESSING',
+    k8OperationalStateStateSecondStep = 'ENABLED',
+    k8OperationalStateThirdStep = 'ERROR'
+}
+/** Interface for Post options */
+export interface POSTAPIRESOURCE {
+    apiURLHeader: APIURLHEADER;
+    payload?: object;
+}
+/** Interface for ApiURL Header */
+export interface APIURLHEADER {
+    url: string;
+    httpOptions?: APIHEADERS;
+}
+/** Interface for the Get Method with response type */
+export interface GETAPIURLHEADER {
+    headers: HttpHeaders;
+    responseType: string;
+}
+/** Interface for Httpoptions Header */
+interface APIHEADERS {
+    headers: HttpHeaders;
+}
+/** Interface for the Error */
+export interface ERRORDATA {
+    error: ERRORDETAILSDATA;
+}
+/** Interface for the Error Details */
+interface ERRORDETAILSDATA {
+    detail: string;
+    code?: string;
+    status?: number;
+    text?: Function;
+}
+/** Handle the URL params */
+export interface URLPARAMS {
+    page: string;
+    id: string;
+    titleName?: string;
+    forceDeleteType?: boolean;
+    name?: string;
+    memberIndex?: object;
+    nsConfig?: object;
+    projectID?: string;
+    username?: string;
+}
+/** Handle the Delete params */
+export interface DELETEPARAMS {
+    identifier: string;
+    name?: string;
+    shortName: string;
+    projectName?: string;
+    userName?: string;
+    username?: string;
+    page?: string;
+    id?: string;
+}
+
+/** Interface for the Delete Details */
+export interface MODALCLOSERESPONSEDATA {
+    message: string;
+}
+
+/** Interface for the modal closer */
+export interface MODALCLOSERESPONSEWITHCP {
+    message: string;
+    connection_point?: string;
+}
+
+/** Interface for local storage settings */
+export interface LOCALSTORAGE {
+    id_token?: string;
+    project_id?: string;
+    expires?: string;
+    username?: string;
+    project?: string;
+    project_name?: string;
+    id?: string;
+    admin?: boolean;
+    isAdmin?: string;
+    token_state?: string;
+}
+/** Interface for Tar settings */
+export interface TARSETTINGS {
+    name?: string;
+    'type'?: string;
+    readAsString?: Function;
+    buffer: ArrayBuffer;
+}
+/** Interface for Package information */
+export interface PACKAGEINFO {
+    id?: string;
+    packageType?: string;
+    descriptor: string;
+}
+
+/** Interface For the Pagination pager in ng-smarttable */
+export interface PAGERSMARTTABLE {
+    display: boolean;
+    perPage: number;
+}
+/** Interface for breadcrumb item */
+export interface BREADCRUMBITEM {
+    title: string;
+    url: string;
+}
+/** Interface For the Pagination pager in ng-smarttable */
+export interface SMARTTABLECLASS {
+    // tslint:disable-next-line: no-reserved-keywords
+    class: string;
+}
+/** Constants of the VIM Types */
+export const VIM_TYPES: TYPESECTION[] = [
+    { value: 'openstack', title: 'Openstack' },
+    { value: 'aws', title: 'AWS' },
+    { value: 'vmware', title: 'VMware vCD' },
+    { value: 'openvim', title: 'OpenVIM' },
+    { value: 'opennebula', title: 'OpenNebula' },
+    { value: 'azure', title: 'Azure' }
+];
+/** Constants of the SDN Types */
+export const SDN_TYPES: TYPESECTION[] = [
+    { value: 'arista', title: 'Arista' },
+    { value: 'floodlightof', title: 'Floodlight openflow' },
+    { value: 'odlof', title: 'OpenDaylight openflow' },
+    { value: 'onosof', title: 'ONOS openflow' },
+    { value: 'onos_vpls', title: 'ONOS vpls' }
+];
+/** Constants of the WIM Types */
+export const WIM_TYPES: TYPESECTION[] = [
+    { value: 'arista', title: 'Arista' },
+    { value: 'dynpac', title: 'DynPac' },
+    { value: 'floodlightof', title: 'Floodlight openflow' },
+    { value: 'odlof', title: 'OpenDaylight openflow' },
+    { value: 'onosof', title: 'ONOS openflow' },
+    { value: 'onos_vpls', title: 'ONOS vpls' },
+    { value: 'tapi', title: 'TAPI' }
+];
+/** Interface for List, Add WIM & SDN Types */
+export interface TYPESECTION {
+    value: string;
+    title: string;
+}
diff --git a/src/models/K8sModel.ts b/src/models/K8sModel.ts
new file mode 100644
index 0000000..4e83483
--- /dev/null
+++ b/src/models/K8sModel.ts
@@ -0,0 +1,127 @@
+/*
+ Copyright 2020 TATA ELXSI
+
+ 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.
+
+ Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
+ */
+/**
+ * @file  Model for K8s related information.
+ */
+
+/** Interface for K8SCLUSTERDATA */
+export interface K8SCLUSTERDATA {
+    credentials: Credentials;
+    description: string;
+    k8s_version: number;
+    name: string;
+    namespace: string;
+    nets: Nets;
+    schema_version: string;
+    vim_account: string;
+    _admin: Admin;
+    _id: string;
+}
+/** Interface for K8SCLUSTERDATA */
+export interface K8SREPODATA {
+    description: string;
+    name: string;
+    schema_version: string;
+    'type': string;
+    url: string;
+    vim_account: string;
+    _admin: Admin;
+    _id: string;
+}
+/** Interface for the Credentials */
+interface Credentials{
+    apiVersion: string;
+    clusters: Clusters[];
+    contexts: Contexts[];
+    'current-context': string;
+    kind: string;
+    preferences: {};
+    users: Users[];
+}
+/** Interface for the Clusters */
+interface Clusters {
+    cluster: Cluster;
+    name: string;
+}
+/** Interface for the Cluster */
+interface Cluster {
+    'certificate-authority-data': string;
+    server: string;
+}
+/** Interface for the Contexts */
+interface Contexts{
+    context: Context;
+    name: string;
+}
+/** Interface for the Contexts */
+interface Context {
+    cluster: string;
+    user: string;
+}
+/** Interface for the Users */
+interface Users{
+    name: string;
+    user: User;
+}
+/** Interface for the Users */
+interface User {
+    'client-certificate-data': string;
+    'client-key-data': string;
+}
+/** Interface for the K8SCLUSTERDATA nets */
+interface Nets{
+    net1: string;
+}
+/** Interface for the K8SCLUSTERDATA _admin */
+interface Admin{
+    created: string;
+    current_operation: number;
+    'helm-chart': HelmChart;
+    'juju-bundle': JujuBundle;
+    operationalState: string;
+    modified: string;
+}
+/** Interface for the K8SCLUSTERDATA _admin Helm chart */
+interface HelmChart {
+    created: boolean;
+    id: string;
+}
+/** Interface for the K8SCLUSTERDATA _admin Juju Bundle */
+interface JujuBundle {
+    error_msg: string;
+}
+/** Interface for the K8SCLUSTERDATA Return to Display */
+export interface K8SCLUSTERDATADISPLAY{
+    name: string;
+    identifier: string;
+    operationalState: string;
+    version: number;
+    created: string;
+    modified: string;
+    pageType: string;
+}
+/** Interface for the K8SCLUSTERDATA Return to Display */
+export interface K8SREPODATADISPLAY {
+    name: string;
+    identifier: string;
+    url: string;
+    'type': string;
+    created: string;
+    modified: string;
+    pageType: string;
+}
diff --git a/src/models/MenuModel.ts b/src/models/MenuModel.ts
new file mode 100644
index 0000000..dd77e0d
--- /dev/null
+++ b/src/models/MenuModel.ts
@@ -0,0 +1,261 @@
+/*
+ Copyright 2020 TATA ELXSI
+
+ 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.
+
+ Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
+ */
+/**
+ * @file  Model for Commonly used information.
+ */
+/** Constants of the Menu child active class */
+const childActiveClass: string[] = ['active'];
+/** Constants of the Menu Items */
+export const MENU_ITEMS: MENUITEMS[] = [
+    {
+        liClass: 'round-edge-top-3',
+        anchorTagClass: 'link round-edge-top-3 individual',
+        clickFunction: 'nosubmenu',
+        routerLink: '/',
+        routerLinkActive: ['parentactive'],
+        routerLinkActiveOptions: true,
+        icon: 'fas fa-th-large',
+        menuName: 'PAGE.DASHBOARD.DASHBOARD',
+        isChildExists: false
+    },
+    {
+        liClass: 'header-menu',
+        anchorTagClass: 'heading text-uppercase',
+        menuName: 'PROJECT',
+        isChildExists: false
+    },
+    {
+        liClass: 'round-edge-top-3',
+        anchorTagClass: 'parentlink round-edge-top-3 mr-top-5',
+        clickFunction: 'packages',
+        routerLink: '/packages',
+        routerLinkActive: ['menu-open', 'parentactive'],
+        routerLinkActiveOptions: false,
+        icon: 'fas fa-box',
+        menuName: 'PACKAGES',
+        isChildExists: true,
+        ulClass: 'sidebar-submenu',
+        childItems: [
+            {
+                liClass: '',
+                anchorTagClass: 'link',
+                routerLink: '/packages/ns',
+                routerLinkActive: childActiveClass,
+                routerLinkActiveOptions: false,
+                icon: 'fas fa-box-open',
+                menuName: 'NSPACKAGES',
+                isChildExists: false
+            },
+            {
+                liClass: '',
+                anchorTagClass: 'link',
+                routerLink: '/packages/vnf',
+                routerLinkActive: childActiveClass,
+                routerLinkActiveOptions: false,
+                icon: 'fas fa-box-open',
+                menuName: 'VNFPACKAGES',
+                isChildExists: false
+            },
+            {
+                liClass: '',
+                anchorTagClass: 'link',
+                routerLink: '/packages/netslice',
+                routerLinkActive: childActiveClass,
+                routerLinkActiveOptions: false,
+                icon: 'fas fa-layer-group',
+                menuName: 'PAGE.DASHBOARD.NETSLICETEMPLATE',
+                isChildExists: false
+            }
+        ]
+    },
+    {
+        liClass: 'mt-1 round-edge-bottom-3 border-bottom-none',
+        anchorTagClass: 'parentlink round-edge-bottom-3 border-bottom-none',
+        clickFunction: 'instances',
+        routerLink: '/instances',
+        routerLinkActive: ['menu-open', 'parentactive'],
+        routerLinkActiveOptions: false,
+        icon: 'fa fa-paper-plane',
+        menuName: 'INSTANCES',
+        isChildExists: true,
+        ulClass: 'sidebar-submenu',
+        childItems: [
+            {
+                liClass: '',
+                anchorTagClass: 'link',
+                routerLink: '/instances/ns',
+                routerLinkActive: childActiveClass,
+                routerLinkActiveOptions: false,
+                icon: 'fas fa-sitemap',
+                menuName: 'NSINSTANCES',
+                isChildExists: false
+            },
+            {
+                liClass: '',
+                anchorTagClass: 'link',
+                routerLink: '/instances/vnf',
+                routerLinkActive: childActiveClass,
+                routerLinkActiveOptions: false,
+                icon: 'fas fa-hdd',
+                menuName: 'VNFINSTANCES',
+                isChildExists: false
+            },
+            {
+                liClass: '',
+                anchorTagClass: 'link',
+                routerLink: '/instances/pdu',
+                routerLinkActive: childActiveClass,
+                routerLinkActiveOptions: false,
+                icon: 'fas fa-hdd',
+                menuName: 'PDUINSTANCES',
+                isChildExists: false
+            },
+            {
+                liClass: '',
+                anchorTagClass: 'link',
+                routerLink: '/instances/netslice',
+                routerLinkActive: childActiveClass,
+                routerLinkActiveOptions: false,
+                icon: 'fas fa-layer-group',
+                menuName: 'PAGE.DASHBOARD.NETSLICEINSTANCE',
+                isChildExists: false
+            }
+        ]
+    },
+    {
+        liClass: 'round-edge-top-3 round-edge-bottom-3 mr-top-5',
+        anchorTagClass: 'link round-edge-top-3 round-edge-bottom-3 individual',
+        clickFunction: 'nosubmenu',
+        routerLink: '/sdn/details',
+        routerLinkActive: ['parentactive'],
+        routerLinkActiveOptions: true,
+        icon: 'fas fa-globe',
+        menuName: 'SDNCONTROLLER',
+        isChildExists: false
+    },
+    {
+        liClass: 'round-edge-top-3 round-edge-bottom-3 mr-top-5',
+        anchorTagClass: 'link round-edge-top-3 round-edge-bottom-3 individual',
+        clickFunction: 'nosubmenu',
+        routerLink: '/vim',
+        routerLinkActive: ['parentactive'],
+        routerLinkActiveOptions: false,
+        icon: 'fas fa-server',
+        menuName: 'VIMACCOUNTS',
+        isChildExists: false
+    },
+    {
+        liClass: 'round-edge-top-3 round-edge-bottom-3 mr-top-5',
+        anchorTagClass: 'parentlink round-edge-top-3 round-edge-bottom-3',
+        clickFunction: 'k8s',
+        routerLink: '/k8s',
+        routerLinkActive: ['menu-open', 'parentactive'],
+        routerLinkActiveOptions: false,
+        icon: 'fas fa-asterisk',
+        menuName: 'PAGE.K8S.MENUK8S',
+        isChildExists: true,
+        ulClass: 'sidebar-submenu',
+        childItems: [
+            {
+                liClass: '',
+                anchorTagClass: 'link',
+                routerLink: '/k8s/cluster',
+                routerLinkActive: childActiveClass,
+                routerLinkActiveOptions: false,
+                icon: 'fas fa-project-diagram',
+                menuName: 'PAGE.K8S.MENUK8SCLUSTER',
+                isChildExists: false
+            },
+            {
+                liClass: '',
+                anchorTagClass: 'link',
+                routerLink: '/k8s/repo',
+                routerLinkActive: childActiveClass,
+                routerLinkActiveOptions: false,
+                icon: 'fas fa-flag',
+                menuName: 'PAGE.K8S.MENUK8SREPO',
+                isChildExists: false
+            }
+        ]
+    },
+    {
+        liClass: 'round-edge-top-3 round-edge-bottom-3 mr-top-5',
+        anchorTagClass: 'link round-edge-top-3 round-edge-bottom-3 individual',
+        clickFunction: 'nosubmenu',
+        routerLink: '/wim/details',
+        routerLinkActive: ['parentactive'],
+        routerLinkActiveOptions: true,
+        icon: 'fas fa-sitemap',
+        menuName: 'WIMACCOUNTS',
+        isChildExists: false
+    },
+    {
+        liClass: 'header-menu',
+        anchorTagClass: 'heading text-uppercase',
+        menuName: 'ADMIN',
+        isChildExists: false
+    },
+    {
+        liClass: 'mt-1 round-edge-top-3',
+        anchorTagClass: 'link round-edge-top-3 individual',
+        clickFunction: 'nosubmenu',
+        routerLink: '/projects',
+        routerLinkActive: ['parentactive'],
+        routerLinkActiveOptions: true,
+        icon: 'fas fa-folder',
+        menuName: 'PAGE.DASHBOARD.PROJECTS',
+        isChildExists: false
+    },
+    {
+        liClass: 'mt-1 mb-1',
+        anchorTagClass: 'link individual',
+        clickFunction: 'nosubmenu',
+        routerLink: '/users/details',
+        routerLinkActive: ['parentactive'],
+        routerLinkActiveOptions: true,
+        icon: 'fas fa-users',
+        menuName: 'PAGE.DASHBOARD.USERS',
+        isChildExists: false
+    },
+    {
+        liClass: 'round-edge-bottom-3',
+        anchorTagClass: 'link round-edge-bottom-3 individual',
+        clickFunction: 'nosubmenu',
+        routerLink: '/roles',
+        routerLinkActive: ['parentactive'],
+        routerLinkActiveOptions: true,
+        icon: 'fas fa-user-tag',
+        menuName: 'ROLES',
+        isChildExists: false
+    }
+];
+
+/** Interface for Post options */
+export interface MENUITEMS {
+    ulClass?: string;
+    liClass: string;
+    anchorTagClass: string;
+    clickFunction?: string;
+    routerLink?: string;
+    routerLinkActive?: string[];
+    routerLinkActiveOptions?: boolean;
+    icon?: string;
+    menuName: string;
+    isChildExists: boolean;
+    childItems?: MENUITEMS[];
+}
diff --git a/src/models/NSDModel.ts b/src/models/NSDModel.ts
new file mode 100644
index 0000000..95331a2
--- /dev/null
+++ b/src/models/NSDModel.ts
@@ -0,0 +1,168 @@
+/*
+ Copyright 2020 TATA ELXSI
+
+ 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.
+
+ Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
+ */
+/**
+ * @file  Model for NSD related information.
+ */
+
+import { VNFDAdminDetails } from './VNFDModel';
+
+/** Interface for NSData */
+export interface NSData {
+    shortName: string;
+    identifier: string;
+    description: string;
+    vendor: string;
+    version: string;
+    page?: string;
+    name?: string;
+    projectName?: string;
+    userName?: string;
+    username?: string;
+}
+
+/** Interface for the nscompose descriptors content */
+export interface NSDDetails {
+    'connection-point': CONNECTIONPOINT[];
+    'constituent-vnfd': CONSTITUENTVNFD[];
+    description: string;
+    id: string;
+    logo: string;
+    name: string;
+    'short-name': string;
+    vendor: string;
+    version: string;
+    vld: VLD[];
+    _admin: VNFDAdminDetails;
+    _id: string;
+    'constituent-vnfr-ref': string[];
+}
+
+/** Interface for the connection-point */
+export interface CONNECTIONPOINT {
+    name: string;
+    'vld-id-ref': string;
+}
+
+/** Interface for the constituent-vnfd */
+export interface CONSTITUENTVNFD {
+    'member-vnf-index': number;
+    'vnfd-id-ref': string;
+}
+
+/** Interface for the vld */
+export interface VLD {
+    id: string;
+    'mgmt-network': boolean;
+    name: string;
+    'short-name'?: string;
+    'type': string;
+    'vnfd-connection-point-ref'?: VNFDCONNECTIONPOINTREF[];
+    'vim-network-name': string;
+}
+
+/** Interface for VNFDCONNECTIONPOINTREF */
+export interface VNFDCONNECTIONPOINTREF {
+    'member-vnf-index-ref': number;
+    'vnfd-connection-point-ref': string;
+    'vnfd-id-ref': string;
+}
+/** Interface Nodes Creation */
+export interface COMPOSERNODES {
+    id: string;
+    reflexive: Boolean;
+    'type': string;
+    name?: string;
+    nodeIndex?: number;
+    selectorId?: string;
+    x?: number;
+    y?: number;
+    fx?: number;
+    fy?: number;
+}
+
+/** Interface for the Tick */
+export interface Tick {
+    target: TickPath;
+    source: TickPath;
+    left: boolean;
+    right: boolean;
+}
+
+/** Interface for the Path */
+export interface TickPath {
+    x: number;
+    y: number;
+    id: string;
+    'type'?: string;
+}
+
+/** Interface for the NSD */
+interface NSD {
+    'constituent-vnfd': CONSTITUENTVNFD[];
+    description: string;
+    id: string;
+    name: string;
+    'short-name': string;
+    vendor: string;
+    version: string;
+    vld: VLD[];
+    _admin: VNFDAdminDetails;
+    _id: string;
+}
+/** Interface for the GRAPHDETAILS */
+export interface GRAPHDETAILS {
+    width: number;
+    height: number;
+    nodeHeight: number;
+    nodeWidth: number;
+    textX: number;
+    textY: number;
+    radius: number;
+    distance: number;
+    strength: number;
+    forcex: number;
+    forcey: number;
+    sourcePaddingYes: number;
+    sourcePaddingNo: number;
+    targetPaddingYes: number;
+    targetPaddingNo: number;
+    alphaTarget: number;
+    imageX: number;
+    imageY: number;
+    shiftKeyCode: number;
+}
+
+/** Interface for the NS Create params */
+export interface NSCREATEPARAMS {
+    nsName: string;
+    nsDescription: string;
+    nsdId: string;
+    vimAccountId: string;
+    vld: string;
+    ssh_keys: string[];
+}
+
+/** Interface for the NSI Create params */
+export interface NSICREATEPARAMS {
+    nsName: string;
+    nsDescription: string;
+    nstId: string;
+    vimAccountId: string;
+    'netslice-vld': string;
+    ssh_keys: string[];
+}
diff --git a/src/models/NSInstanceModel.ts b/src/models/NSInstanceModel.ts
new file mode 100644
index 0000000..72cd42b
--- /dev/null
+++ b/src/models/NSInstanceModel.ts
@@ -0,0 +1,282 @@
+/*
+ Copyright 2020 TATA ELXSI
+
+ 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.
+
+ Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
+ */
+/**
+ * @file  Model for NS Instance related information.
+ */
+
+import { CONSTITUENTVNFD, VLD, VNFDCONNECTIONPOINTREF } from 'NSDModel';
+import { VNFDAdminDetails } from 'VNFDModel';
+
+/** Interface for NSInstanceDetails */
+export interface NSInstanceDetails {
+    'orchestration-progress': JSON;
+    'constituent-vnfr-ref': string[];
+    'operational-events': string[];
+    admin: Admin;
+    'ssh-authorized-key': string;
+    _admin: _Admin;
+    'admin-status': string;
+    'operational-status': string;
+    'datacenter': string;
+    nsd: NSD;
+    name: string;
+    'name-ref': string;
+    'short-name': string;
+    id: string;
+    'nsd-name-ref': string;
+    description: string;
+    'detailed-status': string;
+    'config-status': string;
+    'resource-orchestrator': string;
+    'nsd-ref': string;
+    vld: VLD[];
+    instantiate_params: InstantiateParam;
+    additionalParamsForNs: AdditionalParamForN;
+    _id?: string;
+}
+
+/** Interface for Admin */
+interface Admin {
+    deployed: DeployedAdmin;
+}
+
+/** Interface for DeployedAdmin */
+interface DeployedAdmin {
+    RO: ROAdmin;
+}
+
+/** Interface for ROAdmin */
+interface ROAdmin {
+    'nsr_status': string;
+}
+
+/** Interface for _Admin */
+// tslint:disable-next-line:class-name
+interface _Admin {
+    'projects_write': string[];
+    deployed: DeployedAdmin;
+    nslcmop: string;
+    nsState: string;
+    modified: number;
+    projects_read: string[];
+    created: string;
+}
+
+/** Interface for Deployed_Admin */
+interface DeployedAdmin {
+    VCA: string[];
+    RO: ROAdmin;
+}
+
+/** Interface for RO_Admin */
+interface ROAdmin {
+    'nsr_status': string;
+    'nsr_id': string;
+    'nsd_id': string;
+    vnfd: VNFD[];
+}
+
+/** Interface for VNFD */
+interface VNFD {
+    'member-vnf-index': number;
+    id: string;
+}
+
+/** Interface for NSD */
+export interface NSD {
+    description: string;
+    vld: NSDVLD[];
+    _admin: VNFDAdminDetails;
+    name: string;
+    version: string;
+    _id: string;
+    'short-name': string;
+    id: string;
+    'constituent-vnfd': CONSTITUENTVNFD[];
+    vendor: string;
+    vdur: string[];
+    'connection-point': CONNECTIONPOINT[];
+}
+
+/** Interface for _AdminDetails */
+// tslint:disable-next-line:class-name
+export interface _AdminDetails {
+    usageState: string;
+    projects_write: string[];
+    projects_read: string[];
+    operationalState: string;
+    modified: string;
+    storage: Storage;
+    onboardingState: string;
+    userDefinedData: JSON;
+    created: number;
+}
+
+/** Interface for Storage */
+interface Storage {
+    path: string;
+    'pkg-dir': string;
+    zipfile: string;
+    folder: string;
+    descriptor: string;
+    fs: string;
+}
+
+/** Interface for NSDVLD */
+export interface NSDVLD {
+    'vim-id': string;
+    'status-detailed': string;
+    name: string;
+    status: string;
+    'vim-network-name': string;
+    id: string;
+    'type': string;
+    'vnfd-connection-point-ref': VNFDCONNECTIONPOINTREF[];
+    'short-name': string;
+}
+
+/** Interface for InstantiateParam */
+interface InstantiateParam {
+    nsdId: string;
+    nsName: string;
+    nsDescription: string;
+    vimAccountId: string;
+}
+
+/** Interface for AdditionalParamForN */
+interface AdditionalParamForN {
+    _id: string;
+    'ns-instance-config-ref': string;
+    'crete-time': string;
+}
+
+/** interface for the History nsdInstanceData */
+export interface NSDInstanceData {
+    id?: string;
+    lcmOperationType?: string;
+    operationState?: string;
+    startTime?: number;
+    statusEnteredTime?: number;
+    identifier: string;
+    name: string;
+    NsdName: string;
+    OperationalStatus: string;
+    ConfigStatus: string;
+    DetailedStatus: string;
+    state?: string;
+    memberIndex?: object;
+    nsConfig?: object;
+}
+
+/** Interface for the nsInfo */
+export interface NSINFO {
+    nsInstanceID: string;
+    nsName: string;
+    nsOperationalStatus: string;
+    nsConfigStatus: string;
+    nsDetailedStatus: string;
+    nsResourceOrchestrator: string;
+}
+
+/** Interface for the NSINSTANCENODES */
+export interface NSINSTANCENODES {
+    id?: string;
+    nodeTypeRef?: string;
+    name?: string;
+    'type'?: string;
+    vnfdCP?: VNFDCONNECTIONPOINTREF[];
+    vimNetworkName?: string;
+    shortName?: string;
+    cp?: CONNECTIONPOINT[];
+    vdur?: string[];
+    vld?: NSDVLD[];
+    nsID?: string;
+    vnfdID?: string;
+    vimID?: string;
+    vndfrID?: string;
+    ipAddress?: string;
+    memberIndex?: string;
+    vnfdRef?: string;
+    vndfCPRef?: string;
+    selectorId?: string;
+}
+
+/** Interface for the connection-point */
+export interface CONNECTIONPOINT {
+    'connection-point-id': string;
+    name: string;
+    id: string;
+}
+
+/** Interface for Exec NS Primitive */
+export interface NSPrimitive {
+    'primitive': string;
+    'primitive_params': NSPrimitiveParams[];
+    'member_vnf_index': string;
+}
+
+/** Interface for Exec NS Primitive Params */
+export interface NSPrimitiveParams {
+    primitive_params_name: string;
+    primitive_params_value: string;
+}
+
+/** Interface Nodes Creation */
+export interface COMPOSERNODES {
+    id: string;
+    reflexive: Boolean;
+    nodeTypeRef: string;
+    name?: string;
+    nodeIndex?: number;
+    selectorId?: string;
+    x?: number;
+    y?: number;
+    fx?: number;
+    fy?: number;
+    shortName?: string;
+    vimNetworkName?: string;
+    'type'?: string;
+    vnfdRef?: string;
+    memberIndex?: string;
+    vimID?: string;
+    vndfrID?: string;
+    ipAddress?: string;
+    nsID?: string;
+    vnfdID?: string;
+}
+
+/** Interface for the Virtual Link Info */
+export interface VLINFO {
+    id: string;
+    name: string;
+    'type': string;
+    shortName: string;
+    vimNetworkName: string;
+}
+
+/** Interface for the VNFR Info */
+export interface VNFRINFO{
+    vimID: string;
+    _id: string;
+    ip: string;
+    nsrID: string;
+    id: string;
+    vnfdRef: string;
+    vnfdId: string;
+    memberIndex: string;
+}
diff --git a/src/models/NSTopologyModel.ts b/src/models/NSTopologyModel.ts
new file mode 100644
index 0000000..7a1dc62
--- /dev/null
+++ b/src/models/NSTopologyModel.ts
@@ -0,0 +1,57 @@
+/*
+ Copyright 2020 TATA ELXSI
+
+ 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.
+
+ Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
+ */
+/**
+ * @file  Model for NS topology related information.
+ */
+
+/** Interface for the GRAPHDETAILS */
+export interface GRAPHDETAILS {
+    width: number;
+    height: number;
+    nodeHeight: number;
+    nodeWidth: number;
+    textX: number;
+    textY: number;
+    radius: number;
+    distance: number;
+    strength: number;
+    forcex: number;
+    forcey: number;
+    sourcePaddingYes: number;
+    sourcePaddingNo: number;
+    targetPaddingYes: number;
+    targetPaddingNo: number;
+    alphaTarget: number;
+    imageX: number;
+    imageY: number;
+    shiftKeyCode: number;
+}
+/** Interface for the Path */
+export interface TickPath {
+    x: number;
+    y: number;
+    id: string;
+    'type'?: string;
+}
+/** Interface for the Tick */
+export interface Tick {
+    target: TickPath;
+    source: TickPath;
+    left: boolean;
+    right: boolean;
+}
diff --git a/src/models/NetworkSliceModel.ts b/src/models/NetworkSliceModel.ts
new file mode 100644
index 0000000..eda0b92
--- /dev/null
+++ b/src/models/NetworkSliceModel.ts
@@ -0,0 +1,113 @@
+/*
+ Copyright 2020 TATA ELXSI
+
+ 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.
+
+ Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
+ */
+/**
+ * @file  Model for Network Slice Template related information.
+ */
+
+/** Interface for MetricModel */
+export interface NetworkSliceModel {
+    'netslice-subnet': NetsliceSubnet[];
+    id: string;
+    'SNSSAI-identifier': SNSSAIIdentifier;
+    'quality-of-service': QualityOfService;
+    name: string;
+    _id: string;
+    _admin: ADMIN;
+    'netslice-vld': NetsliceVld[];
+}
+
+/** Interface for NetsliceSubnet */
+interface NetsliceSubnet {
+    description : string;
+    id: string;
+    'is-shared-nss': string;
+    'nsd-ref': string;
+}
+
+/** Interface for SNSSAIIdentifier */
+interface SNSSAIIdentifier {
+    'slice-service-type': string;
+}
+
+/** Interface for SNSSAIIdentifier */
+interface QualityOfService {
+    id: number;
+}
+
+/** Interface for Admin */
+interface ADMIN {
+    operationalState: string;
+    created: string;
+    projects_write: string[];
+    projects_read: string[];
+    usageState: string;
+    modified: string;
+    onboardingState: string;
+    userDefinedData: {};
+    storage : Storage;
+}
+
+/** Interface for Storage */
+interface Storage {
+    fs: string;
+    folder: string;
+    descriptor: string;
+    path: string;
+}
+
+/** Interface for NetsliceVld */
+interface NetsliceVld {
+    name: string;
+    id: string;
+    'nss-connection-point-ref': NssConnectionPointRef[];
+    'mgmt-network': boolean;
+    // tslint:disable-next-line:no-reserved-keywords
+    type: string;
+}
+
+/** Interface for NssConnectionPointRef */
+interface NssConnectionPointRef {
+    'nss-ref': string;
+    'nsd-connection-point-ref': string;
+}
+
+/** Interface for NetworkSliceData */
+export interface NetworkSliceData {
+    name: string;
+    identifier: string;
+    usageState: string;
+}
+
+/** Interface for Network Slice instance Data */
+export interface NSTInstanceDetails {
+    name: string;
+    id: string;
+    'nst-ref': string;
+    'operational-status': string;
+    'config-status': string;
+    'detailed-status': string;
+}
+/** interface for the Network Slice instance Data in datasource Table */
+export interface NSTInstanceData {
+    name: string;
+    identifier: string;
+    NstName: string;
+    OperationalStatus: string;
+    ConfigStatus: string;
+    DetailedStatus: string;
+}
diff --git a/src/models/PDUInstanceModel.ts b/src/models/PDUInstanceModel.ts
new file mode 100644
index 0000000..b628bdb
--- /dev/null
+++ b/src/models/PDUInstanceModel.ts
@@ -0,0 +1,51 @@
+/*
+ Copyright 2020 TATA ELXSI
+
+ 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.
+
+ Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
+ */
+/**
+ * @file  Model for PDU Instance related information.
+ */
+
+/** Interface for PDUInstanceDetails */
+export interface PDUInstanceDetails {
+    description: string;
+    interfaces: PDUInterfaces[];
+    name: string;
+    'type': string;
+    vim_accounts: string[];
+    _admin: ADMIN;
+    _id: string;
+    identifier?: string;
+}
+
+/** Interface for PDU interfaces */
+export interface PDUInterfaces {
+    'ip-address': string;
+    mgmt: boolean;
+    name: string;
+    'vim-network-name': string;
+}
+
+/** Interface for Admin */
+interface ADMIN {
+    created: string;
+    modified: string;
+    onboardingState: string;
+    operationalState: string;
+    projects_write: string[];
+    projects_read: string[];
+    usageState: string;
+}
diff --git a/src/models/ProjectModel.ts b/src/models/ProjectModel.ts
new file mode 100644
index 0000000..878bb47
--- /dev/null
+++ b/src/models/ProjectModel.ts
@@ -0,0 +1,44 @@
+/*
+ Copyright 2020 TATA ELXSI
+
+ 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.
+
+ Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
+ */
+/**
+ * @file  Model for project related information.
+ */
+
+/** Interface for ProjectDetails */
+export interface ProjectDetails {
+    _admin?: Admin;
+    _id?: string;
+    name?: string;
+    id?: string;
+}
+
+/** Interface for Admin */
+interface Admin {
+    created: number;
+    modified: number;
+    projects_read?: string[];
+}
+/** Interface for ProjectDetails in smarttable */
+export interface ProjectData {
+    projectName: string;
+    modificationDate: string;
+    creationDate: string;
+    page?: string;
+    id?: string;
+    project?: string;
+}
diff --git a/src/models/RoleModel.ts b/src/models/RoleModel.ts
new file mode 100644
index 0000000..3629b6c
--- /dev/null
+++ b/src/models/RoleModel.ts
@@ -0,0 +1,57 @@
+/*
+ Copyright 2020 TATA ELXSI
+
+ 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.
+
+ Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
+ */
+/**
+ * @file  Model for role related information.
+ */
+
+/** Interface for ProjectDetails */
+export interface RoleDetails {
+    _admin?: Admin;
+    _id?: string;
+    name?: string;
+    id?: string;
+    permissions?: {};
+}
+
+/** Interface for Admin */
+interface Admin {
+    created: number;
+    modified: number;
+}
+/** Interface for Role data in smarttable */
+export interface RoleData {
+    name: string;
+    identifier: string;
+    modified: string;
+    created: string;
+    permissions: {};
+}
+/** Interface for Role configuration from role config file */
+export interface RoleConfig {
+    rolePermissions: PermissionGroup[];
+}
+/** Interface for Role permission group */
+export interface PermissionGroup {
+    title: string;
+    permissions: Permission[];
+}
+/** Interface for Role permission group */
+export interface Permission {
+    operation: string;
+    value: string | boolean;
+}
diff --git a/src/models/SDNControllerModel.ts b/src/models/SDNControllerModel.ts
new file mode 100644
index 0000000..2b5ab87
--- /dev/null
+++ b/src/models/SDNControllerModel.ts
@@ -0,0 +1,75 @@
+/*
+ Copyright 2020 TATA ELXSI
+
+ 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.
+
+ Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
+ */
+/**
+ * @file  Model For SDN Controller model Information.
+ */
+
+/** Interface for SDNControllerModel */
+export interface SDNControllerModel {
+    dpid: string;
+    ip: string;
+    name: string;
+    password: string;
+    port: string;
+    schema_version: string;
+    'type': string;
+    user: string;
+    version: string;
+    _admin: ADMIN;
+    _id: string;
+}
+
+/** Interface for _ADMIN */
+interface ADMIN {
+    created: number;
+    current_operation: boolean;
+    deployed: Deployed;
+    'detailed-status': string;
+    modified: number;
+    operationalState: string;
+    operations: Operation[];
+    projects_read: string[];
+    projects_write: string[];
+}
+
+/** Interface for Deployed */
+interface Deployed {
+    RO: string;
+}
+
+/** Interface for Operations */
+interface Operation {
+    'detailed-status': string;
+    lcmOperationType: string;
+    operationParams: string;
+    operationState: string;
+    startTime: number;
+    statusEnteredTime: number;
+    worker: string;
+}
+
+/** Interface for SDNControllerList */
+export interface SDNControllerList {
+    name: string;
+    id?: string;
+    identifier: string;
+    'type': string;
+    operationalState: string;
+    ip: string;
+    port: string;
+}
diff --git a/src/models/UserModel.ts b/src/models/UserModel.ts
new file mode 100644
index 0000000..83dd08b
--- /dev/null
+++ b/src/models/UserModel.ts
@@ -0,0 +1,68 @@
+/*
+ Copyright 2020 TATA ELXSI
+
+ 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.
+
+ Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
+ */
+
+/**
+ * @file  Model for user related information.
+ */
+
+/** Interface for UserDetails */
+export interface UserDetails {
+    userDetail: UserDetail[];
+}
+
+/** Interface for UserDetail */
+export interface UserDetail {
+    username: string;
+    password?: string;
+    _id?: string;
+    projects: string[];
+    _admin?: Admin;
+    modified: string;
+    created: string;
+    identifier: string;
+    projectListName?: string;
+    project_role_mappings?: ProjectRoleMappings[];
+}
+
+/** Interface for user role mappings */
+export interface UserRoleMap {
+    project_role_mappings?: ProjectRoleMappings[];
+}
+
+/** Interface for Admin */
+interface Admin {
+    salt: string;
+    created: number;
+    modified: number;
+}
+/** Interface for UserDetail */
+export interface UserData {
+    username: string;
+    projects: string;
+    modified: string;
+    created: string;
+    identifier: string;
+}
+
+/** Interface for Project Roles Mappings */
+export interface ProjectRoleMappings {
+    project?: string;
+    project_name?: string;
+    role?: string;
+    role_name?: string;
+}
diff --git a/src/models/VNFDModel.ts b/src/models/VNFDModel.ts
new file mode 100644
index 0000000..908f552
--- /dev/null
+++ b/src/models/VNFDModel.ts
@@ -0,0 +1,274 @@
+/*
+ Copyright 2020 TATA ELXSI
+
+ 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.
+
+ Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
+ */
+/**
+ * @file  Model for VNFD related information.
+ */
+
+/** Interface for Project */
+export interface ProjectModel {
+    project_id: string;
+    project?: string;
+    project_name?: string;
+    expires: number;
+    _id: string;
+    id: string;
+    issued_at: number;
+    remote_port: number;
+    username: string;
+    remote_host: string;
+    admin: boolean;
+}
+
+/** Interface for ProjectDetails */
+export interface ProjectDetails {
+    _admin: AdminDetails;
+    name: string;
+    _id: string;
+}
+
+/** Interface for AdminDetails */
+interface AdminDetails {
+    modified: string;
+    created: string;
+}
+
+/** Interface for VNFD NODE Details */
+export interface VNFDNODE {
+    nodeTypeRef?: string;
+    'connection-point'?: CONNECTIONPOINT[];
+    description?: string;
+    id: string;
+    'internal-vld'?: InternalVLD[];
+    version?: string;
+    name?: string;
+    'mgmt-interface'?: MGMT;
+    _id?: string;
+    vdu?: VDU[];
+    _admin?: VNFDAdminDetails;
+    'short-name'?: string;
+    shortName?: string;
+    vendor?: string;
+    'type'?: string;
+    'cloud-init-file'?: string;
+    count?: number;
+    vduID?: string;
+    'interface'?: VNFDInterface[];
+    'vm-flavor'?: VMFlavor;
+    intVLID?: string;
+    'internal-connection-point'?: VLDInternalConnectionPoint[];
+    'monitoring-param'?: MonitoringParam[];
+    'ip-profile-ref'?: string;
+    'id-ref'?: string;
+    'ip-address'?: string;
+    reflexive?: boolean;
+    image?: string;
+}
+
+/** Interface for VNFDDetails */
+export interface VNFDDetails {
+    'connection-point': CONNECTIONPOINT[];
+    description: string;
+    id: string;
+    'internal-vld': InternalVLD[];
+    version: string;
+    name: string;
+    'mgmt-interface': MGMT;
+    _id: string;
+    vdu: VDU[];
+    _admin: VNFDAdminDetails;
+    'short-name': string;
+    vendor: string;
+}
+
+/** Interface for MGMT */
+interface MGMT {
+    cp: string;
+}
+
+/** Interface for VDU */
+export interface VDU {
+    nodeTypeRef?: string;
+    'cloud-init-file'?: string;
+    count?: number;
+    description?: string;
+    id?: string;
+    image?: string;
+    'interface'?: VNFDInterface[];
+    'internal-connection-point'?: VDUInternalConnectionPoint[];
+    name?: string;
+    'vm-flavor'?: VMFlavor;
+    vduInterface?: string;
+    'monitoring-param'?: MonitoringParam[];
+}
+
+/** Interface for VMFlavor */
+interface VMFlavor {
+    'storage-gb'?: string;
+    'memory-mb'?: string;
+    'vcpu-count'?: string;
+}
+
+/** Interface for VNFDInterface */
+export interface VNFDInterface {
+    'external-connection-point-ref'?: string;
+    'internal-connection-point-ref'?: string;
+    'mgmt-interface'?: boolean;
+    name?: string;
+    'type'?: string;
+    position?: boolean;
+    'virtual-interface'?: VirtualInterface;
+}
+
+/** Interface for VDU Internal Connection Point */
+export interface VDUInternalConnectionPoint {
+    id: string;
+    name?: string;
+    'short-name'?: string;
+    'type'?: string;
+}
+
+/** Interface for VirutalInterface */
+interface VirtualInterface {
+    'type': string;
+}
+
+/** Interface for the connection-point */
+export interface CONNECTIONPOINT {
+    nodeTypeRef?: string;
+    'connection-point-id'?: string;
+    name?: string;
+    id: string;
+    'type'?: string;
+}
+
+/** Interface for Internal VLD */
+export interface InternalVLD {
+    nodeTypeRef?: string;
+    id?: string;
+    'internal-connection-point'?: VLDInternalConnectionPoint[];
+    'ip-profile-ref'?: string;
+    name?: string;
+    'short-name'?: string;
+    'type'?: string;
+    'shortName'?: string;
+    'ipProfileRef'?: string;
+}
+
+/** Interface for VLD Internal Connection Point */
+export interface VLDInternalConnectionPoint {
+    nodeTypeRef?: string;
+    'ip-address'?: string;
+    'id-ref'?: string;
+    'shortName'?: string;
+}
+
+/** Interface for monitoring params */
+export interface MonitoringParam {
+    id: string;
+    'nfvi-metric'?: string;
+    'interface-name-ref'?: string;
+}
+
+/** Interface for _AdminDetails */
+// tslint:disable-next-line:class-name
+export interface VNFDAdminDetails {
+    created: number;
+    modified: string;
+    onboardingState: string;
+    operationalState: string;
+    projects_read: string[];
+    projects_write: string[];
+    storage: Storage;
+    'type': string;
+    usageState: string;
+    userDefinedData: JSON;
+}
+
+/** Interface for Storage */
+interface Storage {
+    descriptor: string;
+    folder: string;
+    fs: string;
+    path: string;
+    'pkg-dir': string;
+    zipfile: string;
+}
+
+/** Interface for VNFData */
+export interface VNFData {
+    name?: string;
+    id?: string;
+    shortName: string;
+    identifier: string;
+    description: string;
+    vendor: string;
+    version: string;
+    'type'?: string;
+}
+
+/** Interface for the Tick */
+export interface Tick {
+    target: TickPath;
+    source: TickPath;
+    left: boolean;
+    right: boolean;
+}
+
+/** Interface for the Path */
+export interface TickPath {
+    x: number;
+    y: number;
+    id: string;
+    'type'?: string;
+}
+
+/** Interface Nodes Creation */
+export interface COMPOSERNODES {
+    id: string;
+    reflexive?: boolean;
+    'type'?: string;
+    name?: string;
+    nodeTypeRef?: string;
+    x?: number;
+    y?: number;
+    fx?: number;
+    fy?: number;
+}
+
+/** Interface for the GRAPHDETAILS */
+export interface GRAPHDETAILS {
+    width: number;
+    height: number;
+    nodeHeight: number;
+    nodeWidth: number;
+    textX: number;
+    textY: number;
+    radius: number;
+    distance: number;
+    strength: number;
+    forcex: number;
+    forcey: number;
+    sourcePaddingYes: number;
+    sourcePaddingNo: number;
+    targetPaddingYes: number;
+    targetPaddingNo: number;
+    alphaTarget: number;
+    imageX: number;
+    imageY: number;
+    shiftKeyCode: number;
+}
diff --git a/src/models/VNFInstanceModel.ts b/src/models/VNFInstanceModel.ts
new file mode 100644
index 0000000..37f3bf3
--- /dev/null
+++ b/src/models/VNFInstanceModel.ts
@@ -0,0 +1,81 @@
+/*
+ Copyright 2020 TATA ELXSI
+
+ 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.
+
+ Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
+ */
+/**
+ * @file  Model for VNF Instance related information.
+ */
+
+/** Interface for VNFInstanceDetails */
+export interface VNFInstanceDetails {
+    id: string;
+    'ip-address': string;
+    'vnfd-id': string;
+    'created-time': string;
+    'vim-account-id': string;
+    vdur: VDUR[];
+    'vnfd-ref': string;
+    'member-vnf-index-ref': string;
+    _id: string;
+    additionalParamsForVnf: string;
+    _admin: Admin;
+    'connection-point': ConnectionPoint[];
+    'nsr-id-ref': string;
+}
+
+/** Interface for VDUR */
+interface VDUR {
+    'ip-address': string;
+    'vim-id': string;
+    'internal-connection-point': string[];
+    name: string;
+    'vdu-id-ref': string;
+    'status-detailed': string;
+    'count-index': number;
+    interfaces: VDURInterface[];
+    _id: string;
+    status: string;
+}
+
+/** Interface for VDURInterface */
+interface VDURInterface {
+    'mac-address': string;
+    name: string;
+    'ns-vld-id': string;
+    'mgmt-vnf': string;
+    'ip-address': string;
+}
+
+/** Interface for _Admin */
+interface Admin {
+    created: number;
+    projects_read: string[];
+    modified: string;
+    projects_write: string[];
+}
+
+/** Interface for ConnectionPoint */
+interface ConnectionPoint {
+    id: string;
+    name: string;
+    'connection-point-id': string;
+}
+/** interface for the History nsdInstanceData */
+export interface VNFInstanceData {
+    identifier: string;
+    VNFD?: string;
+    VNFID?: string;
+}
diff --git a/src/models/VimAccountModel.ts b/src/models/VimAccountModel.ts
new file mode 100644
index 0000000..ea1cb71
--- /dev/null
+++ b/src/models/VimAccountModel.ts
@@ -0,0 +1,136 @@
+/*
+ Copyright 2020 TATA ELXSI
+
+ 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.
+
+ Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
+ */
+/**
+ * @file  Model for VimAccount Details related information.
+ */
+
+import { NSInstanceDetails } from 'NSInstanceModel';
+
+/** Interface for VimAccountDetails */
+export interface VimAccountDetails {
+    description: string;
+    'vim_tenant_name': string;
+    schema_version: string;
+    schema_type: string;
+    config: CONFIG;
+    _id: string;
+    vim_password: string;
+    _admin: ADMIN;
+    vim_url: string;
+    vim_user: string;
+    vim_type: string;
+    name: string;
+}
+
+/** Interface for _ADMIN */
+interface ADMIN {
+    projects_write: string[];
+    deployed: Deployed;
+    operationalState: string;
+    modified: string;
+    projects_read: string[];
+    'detailed-status': string;
+    created: string;
+}
+
+/** Interface for Deployed */
+interface Deployed {
+    'RO-account': string;
+    RO: string;
+}
+
+/** Interface for Config */
+export interface CONFIG {
+    sdn_controller?: string;
+    use_floating_ip?: string;
+    location?: string;
+    sdn_port_mapping?: string;
+    vim_network_name?: string;
+    security_groups?: string;
+    availabilityZone?: string;
+    region_name?: string;
+    insecure?: string;
+    use_existing_flavors?: string;
+    use_internal_endpoint?: string;
+    additional_conf?: string;
+    APIversion?: string;
+    project_domain_id?: string;
+    project_domain_name?: string;
+    user_domain_id?: string;
+    user_domain_name?: string;
+    keypair?: string;
+    dataplane_physical_net?: string;
+    microversion?: string;
+    vpc_cidr_block?: string;
+    flavor_info?: string;
+    orgname?: string;
+    vcenter_ip?: string;
+    vcenter_port?: string;
+    admin_username?: string;
+    vcenter_user?: string;
+    admin_password?: string;
+    vcenter_password?: string;
+    nsx_manager?: string;
+    vrops_site?: string;
+    nsx_user?: string;
+    vrops_user?: string;
+    nsx_password?: string;
+    vrops_password?: string;
+    subscription_id?: string;
+    resource_group?: string;
+    vnet_name?: string;
+    flavors_pattern?: string;
+}
+
+/** Interface for VIMData */
+export interface VIMData {
+    name?: string;
+    identifier: string;
+    'type': string;
+    operationalState: string;
+    description: string;
+    page?: string;
+    instancesData?: NSInstanceDetails[];
+}
+/** Interface for VIMLOCATION */
+export interface VIMLOCATION {
+    features: FEATURES[];
+    'type': string;
+}
+/** Interface for FEATURES */
+export interface FEATURES {
+    geometry: GEOMETRY;
+    'type': string;
+    properties: PROPERTIES;
+}
+/** Interface for GEOMETRY */
+interface GEOMETRY {
+    coordinates: [];
+}
+/** Interface for PROPERTIES */
+interface PROPERTIES {
+    extent: [];
+    country: string;
+    name: string;
+    state: string;
+}
+/** Interface for the VIMLOCATIONDATA */
+export interface VIMLOCATIONDATA {
+    label: string;
+    value: string;
+}
diff --git a/src/models/WIMAccountModel.ts b/src/models/WIMAccountModel.ts
new file mode 100644
index 0000000..190dfcd
--- /dev/null
+++ b/src/models/WIMAccountModel.ts
@@ -0,0 +1,80 @@
+/*
+ Copyright 2020 TATA ELXSI
+
+ 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.
+
+ Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
+ */
+/**
+ * @file  Model For WIM Account Details Information.
+ */
+
+/** Interface for WIMAccountModel */
+export interface WIMAccountModel {
+    config: {};
+    description: string;
+    name: string;
+    password: string;
+    schema_version: string;
+    user: string;
+    wim_type: string;
+    wim_url: string;
+    _admin: ADMIN;
+    _id: string;
+}
+
+/** Interface for _ADMIN */
+interface ADMIN {
+    created: number;
+    current_operation: boolean;
+    deployed: Deployed;
+    'detailed-status': string;
+    modified: number;
+    operationalState: string;
+    operations: Operation[];
+    projects_read: string[];
+    projects_write: string[];
+}
+
+/** Interface for Deployed */
+interface Deployed {
+    'RO-account': string;
+    RO: string;
+}
+
+/** Interface for Operations */
+interface Operation {
+    'detailed-status': string;
+    lcmOperationType: string;
+    operationParams: string;
+    operationState: string;
+    startTime: number;
+    statusEnteredTime: number;
+    worker: string;
+}
+
+/** Interface for WIMAccountData */
+export interface WIMAccountData {
+    name?: string;
+    identifier: string;
+    'type': string;
+    operationalState: string;
+    description: string;
+    page?: string;
+}
+
+/** Interface for WIM Row Values */
+export interface WIMValue {
+    name: string;
+    identifier: string;
+}