Initial Commit - NG UI
[osm/NG-UI.git] / src / models / NSDModel.ts
diff --git a/src/models/NSDModel.ts b/src/models/NSDModel.ts
new file mode 100644 (file)
index 0000000..95331a2
--- /dev/null
@@ -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[];
+}