| /* |
| 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; |
| } |