2 Copyright 2020 TATA ELXSI
4 Licensed under the Apache License, Version 2.0 (the 'License');
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
8 http://www.apache.org/licenses/LICENSE-2.0
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
16 Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
19 * @file Model for NS Instance related information.
22 import { DF, VLD } from 'NSDModel';
23 import { VNFDAdminDetails } from 'VNFDModel';
25 /** Interface for NSInstanceDetails */
26 export interface NSInstanceDetails {
27 'orchestration-progress': JSON;
28 'constituent-vnfr-ref': string[];
29 'operational-events': string[];
31 'ssh-authorized-key': string;
33 'admin-status': string;
34 'operational-status': string;
41 'nsd-name-ref': string;
43 'detailed-status': string;
44 'config-status': string;
45 'resource-orchestrator': string;
48 instantiate_params: InstantiateParam;
49 additionalParamsForNs: AdditionalParamForN;
53 'create-time'?: string;
56 /** Interface for Admin */
58 deployed: DeployedAdmin;
61 /** Interface for DeployedAdmin */
62 interface DeployedAdmin {
66 /** Interface for ROAdmin */
71 /** Interface for _Admin */
73 'projects_write': string[];
74 deployed: DeployedAdmin;
78 projects_read: string[];
82 /** Interface for Deployed_Admin */
83 interface DeployedAdmin {
88 /** Interface for RO_Admin */
96 /** Interface for VNFD */
98 'member-vnf-index': number;
102 /** Interface for NSD */
103 export interface NSD {
105 _admin: VNFDAdminDetails;
112 'connection-point': CONNECTIONPOINT[];
113 'virtual-link-desc': NSDVLD[];
117 /** Interface for _AdminDetails */
118 export interface _AdminDetails {
120 projects_write: string[];
121 projects_read: string[];
122 operationalState: string;
125 onboardingState: string;
126 userDefinedData: JSON;
130 /** Interface for Storage */
140 /** Interface for NSDVLD */
141 export interface NSDVLD {
143 'status-detailed': string;
146 'vim-network-name': string;
152 /** Interface for Vm Migration */
153 export interface VMMIGRATION {
154 lcmOperationType: string;
155 vnfInstanceId: string;
156 migrateToHost?: string;
160 /** Interface for vdu for Vm Migration */
161 export interface VDUPARAM {
163 vduCountIndex?: string;
166 /** Interface for Ns Update */
167 export interface NSUPDATE {
168 lcmOperationType: string;
170 nsInstanceId: string;
171 changeVnfPackageData: CHANGEVNFDATA;
174 /** Interface for changeVnfPackageData in Ns Update */
175 export interface CHANGEVNFDATA {
177 vnfInstanceId: string;
180 /** Interface for terminate vnf in Ns Update */
181 export interface TERMINATEVNF {
182 lcmOperationType: string;
184 nsInstanceId: string;
185 removeVnfInstanceId: string;
188 /** Interface for Start, Stop & Rebuild */
189 export interface StartStopRebuild {
191 operateVnfData: OPERATEVNFDATA;
194 /** Interface for operateVnfData in Start, Stop and Rebuild */
195 export interface OPERATEVNFDATA {
196 additionalParam: ADDITIONALPARAMS;
197 vnfInstanceId: string;
198 changeStateTo: string;
201 /** Interface for additionalParam in Start, Stop and Rebuild */
202 export interface ADDITIONALPARAMS {
205 'count-index': string;
208 /** Interface for VerticalScaling */
209 export interface VerticalScaling {
210 lcmOperationType: string;
211 verticalScale: string;
212 nsInstanceId: string;
213 changeVnfFlavorData: CHANGEVNFFLAVORDATAPARAM;
216 /** Interface for changeVnfFlavorData in Vertical Scaling */
217 export interface CHANGEVNFFLAVORDATAPARAM {
218 vnfInstanceId: string;
219 additionalParams: ADDITIONALPARAM;
223 /** Interface for additionalParam in Vertical Scaling */
224 export interface ADDITIONALPARAM {
226 vduCountIndex: string;
227 virtualMemory: number;
228 sizeOfStorage: number;
229 numVirtualCpu: number;
233 /** Interface for InstantiateParam */
234 interface InstantiateParam {
237 nsDescription: string;
238 vimAccountId: string;
241 /** Interface for AdditionalParamForN */
242 interface AdditionalParamForN {
244 'ns-instance-config-ref': string;
245 'crete-time': string;
248 /** interface for the History nsdInstanceData */
249 export interface NSDInstanceData {
251 lcmOperationType?: string;
252 operationState?: string;
254 statusEnteredTime?: number;
258 OperationalStatus: string;
259 ConfigStatus: string;
260 DetailedStatus: string;
265 adminDetails?: object;
268 operationParams?: OPERATIONPARAMS;
270 constituent: string[];
271 'create-time'?: string;
274 /** Interface for the operationparams */
275 export interface OPERATIONPARAMS {
277 scaleVnfData?: SCALEVNFDATA;
280 /** Interface for the scaleVnfData */
281 export interface SCALEVNFDATA {
282 scaleVnfType?: string;
283 scaleByStepData?: SCALEBYSTEPDATA;
286 /** Interface for the scaleByStepData */
287 export interface SCALEBYSTEPDATA {
288 'scaling-group-descriptor'?: string;
289 'member-vnf-index'?: string;
292 /** Interface for the nsInfo */
293 export interface NSINFO {
294 nsInstanceID: string;
296 nsOperationalStatus: string;
297 nsConfigStatus: string;
298 nsDetailedStatus: string;
299 nsResourceOrchestrator: string;
302 /** Interface for the NSINSTANCENODES */
303 export interface NSINSTANCENODES {
305 nodeTypeRef?: string;
309 vimNetworkName?: string;
311 cp?: CONNECTIONPOINT[];
319 memberIndex?: string;
327 /** Interface for the connection-point */
328 export interface CONNECTIONPOINT {
329 'connection-point-id': string;
334 /** Interface for Exec NS Primitive */
335 export interface NSPrimitive {
337 'primitive_params': NSPrimitiveParams[];
338 'member_vnf_index': string;
341 /** Interface for Exec NS Primitive Params */
342 export interface NSPrimitiveParams {
343 primitive_params_name: string;
344 primitive_params_value: string;
347 /** Interface Nodes Creation */
348 export interface COMPOSERNODES {
360 vimNetworkName?: string;
363 memberIndex?: string;
371 /** Interface for the Virtual Link Info */
372 export interface VLINFO {
377 vimNetworkName: string;
380 /** Interface for the VNFR Info */
381 export interface VNFRINFO {