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;
172 verticalScaleVnf?: VERTICALSCALEDATA;
175 /** Interface for changeVnfPackageData in Ns Update */
176 export interface CHANGEVNFDATA {
178 vnfInstanceId: string;
181 /** Interface for vertical scaling */
182 export interface VERTICALSCALEDATA {
184 vnfInstanceId: string;
188 /** Interface for terminate vnf in Ns Update */
189 export interface TERMINATEVNF {
190 lcmOperationType: string;
192 nsInstanceId: string;
193 removeVnfInstanceId: string;
196 /** Interface for Start, Stop & Rebuild */
197 export interface StartStopRebuild {
199 operateVnfData: OPERATEVNFDATA;
202 /** Interface for operateVnfData in Start, Stop and Rebuild */
203 export interface OPERATEVNFDATA {
204 additionalParam: ADDITIONALPARAMS;
205 vnfInstanceId: string;
206 changeStateTo: string;
209 /** Interface for additionalParam in Start, Stop and Rebuild */
210 export interface ADDITIONALPARAMS {
213 'count-index': string;
216 /** Interface for VerticalScaling */
217 export interface VerticalScaling {
218 lcmOperationType: string;
219 verticalScale: string;
220 nsInstanceId: string;
221 changeVnfFlavorData: CHANGEVNFFLAVORDATAPARAM;
224 /** Interface for changeVnfFlavorData in Vertical Scaling */
225 export interface CHANGEVNFFLAVORDATAPARAM {
226 vnfInstanceId: string;
227 additionalParams: ADDITIONALPARAM;
231 /** Interface for additionalParam in Vertical Scaling */
232 export interface ADDITIONALPARAM {
234 vduCountIndex: string;
235 virtualMemory: number;
236 sizeOfStorage: number;
237 numVirtualCpu: number;
241 /** Interface for InstantiateParam */
242 interface InstantiateParam {
245 nsDescription: string;
246 vimAccountId: string;
249 /** Interface for AdditionalParamForN */
250 interface AdditionalParamForN {
252 'ns-instance-config-ref': string;
253 'crete-time': string;
256 /** interface for the History nsdInstanceData */
257 export interface NSDInstanceData {
259 lcmOperationType?: string;
260 operationState?: string;
262 statusEnteredTime?: number;
266 OperationalStatus: string;
267 ConfigStatus: string;
268 DetailedStatus: string;
273 adminDetails?: object;
276 operationParams?: OPERATIONPARAMS;
278 constituent: string[];
279 'create-time'?: string;
282 /** Interface for the operationparams */
283 export interface OPERATIONPARAMS {
285 scaleVnfData?: SCALEVNFDATA;
288 /** Interface for the scaleVnfData */
289 export interface SCALEVNFDATA {
290 scaleVnfType?: string;
291 scaleByStepData?: SCALEBYSTEPDATA;
294 /** Interface for the scaleByStepData */
295 export interface SCALEBYSTEPDATA {
296 'scaling-group-descriptor'?: string;
297 'member-vnf-index'?: string;
300 /** Interface for the nsInfo */
301 export interface NSINFO {
302 nsInstanceID: string;
304 nsOperationalStatus: string;
305 nsConfigStatus: string;
306 nsDetailedStatus: string;
307 nsResourceOrchestrator: string;
310 /** Interface for the NSINSTANCENODES */
311 export interface NSINSTANCENODES {
313 nodeTypeRef?: string;
317 vimNetworkName?: string;
319 cp?: CONNECTIONPOINT[];
327 memberIndex?: string;
335 /** Interface for the connection-point */
336 export interface CONNECTIONPOINT {
337 'connection-point-id': string;
342 /** Interface for Exec NS Primitive */
343 export interface NSPrimitive {
345 'primitive_params': NSPrimitiveParams[];
346 'member_vnf_index': string;
349 /** Interface for Exec NS Primitive Params */
350 export interface NSPrimitiveParams {
351 primitive_params_name: string;
352 primitive_params_value: string;
355 /** Interface Nodes Creation */
356 export interface COMPOSERNODES {
368 vimNetworkName?: string;
371 memberIndex?: string;
379 /** Interface for the Virtual Link Info */
380 export interface VLINFO {
385 vimNetworkName: string;
388 /** Interface for the VNFR Info */
389 export interface VNFRINFO {
400 /** Interface for vdu mappings */
401 export interface VDUMAP {
402 vdu_mappings?: VDUMAPPINGS[];
405 /** Interface for vdu Mappings */
406 export interface VDUMAPPINGS {
410 'count-index'?: string;
412 'run-day1'?: Boolean;