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;
+}