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;
54 /** Interface for Admin */
56 deployed: DeployedAdmin;
59 /** Interface for DeployedAdmin */
60 interface DeployedAdmin {
64 /** Interface for ROAdmin */
69 /** Interface for _Admin */
71 'projects_write': string[];
72 deployed: DeployedAdmin;
76 projects_read: string[];
80 /** Interface for Deployed_Admin */
81 interface DeployedAdmin {
86 /** Interface for RO_Admin */
94 /** Interface for VNFD */
96 'member-vnf-index': number;
100 /** Interface for NSD */
101 export interface NSD {
103 _admin: VNFDAdminDetails;
110 'connection-point': CONNECTIONPOINT[];
111 'virtual-link-desc': NSDVLD[];
115 /** Interface for _AdminDetails */
116 export interface _AdminDetails {
118 projects_write: string[];
119 projects_read: string[];
120 operationalState: string;
123 onboardingState: string;
124 userDefinedData: JSON;
128 /** Interface for Storage */
138 /** Interface for NSDVLD */
139 export interface NSDVLD {
141 'status-detailed': string;
144 'vim-network-name': string;
150 /** Interface for Vm Migration */
151 export interface VMMIGRATION {
152 lcmOperationType: string;
153 vnfInstanceId: string;
154 migrateToHost?: string;
158 /** Interface for vdu for Vm Migration */
159 export interface VDUPARAM {
161 vduCountIndex?: string;
164 /** Interface for Ns Update */
165 export interface NSUPDATE {
166 lcmOperationType: string;
168 nsInstanceId: string;
169 changeVnfPackageData: CHANGEVNFDATA;
172 /** Interface for changeVnfPackageData in Ns Update */
173 export interface CHANGEVNFDATA {
175 vnfInstanceId: string;
178 /** Interface for terminate vnf in Ns Update */
179 export interface TERMINATEVNF {
180 lcmOperationType: string;
182 nsInstanceId: string;
183 removeVnfInstanceId: string;
186 /** Interface for Start, Stop & Rebuild */
187 export interface StartStopRebuild {
189 operateVnfData: OPERATEVNFDATA;
192 /** Interface for operateVnfData in Start, Stop and Rebuild */
193 export interface OPERATEVNFDATA {
194 additionalParam: ADDITIONALPARAMS;
195 vnfInstanceId: string;
196 changeStateTo: string;
199 /** Interface for additionalParam in Start, Stop and Rebuild */
200 export interface ADDITIONALPARAMS {
203 'count-index': string;
206 /** Interface for VerticalScaling */
207 export interface VerticalScaling {
208 lcmOperationType: string;
209 verticalScale: string;
210 nsInstanceId: string;
211 changeVnfFlavorData: CHANGEVNFFLAVORDATAPARAM;
214 /** Interface for changeVnfFlavorData in Vertical Scaling */
215 export interface CHANGEVNFFLAVORDATAPARAM {
216 vnfInstanceId: string;
217 additionalParams: ADDITIONALPARAM;
221 /** Interface for additionalParam in Vertical Scaling */
222 export interface ADDITIONALPARAM {
224 vduCountIndex: string;
225 virtualMemory: number;
226 sizeOfStorage: number;
227 numVirtualCpu: number;
231 /** Interface for InstantiateParam */
232 interface InstantiateParam {
235 nsDescription: string;
236 vimAccountId: string;
239 /** Interface for AdditionalParamForN */
240 interface AdditionalParamForN {
242 'ns-instance-config-ref': string;
243 'crete-time': string;
246 /** interface for the History nsdInstanceData */
247 export interface NSDInstanceData {
249 lcmOperationType?: string;
250 operationState?: string;
252 statusEnteredTime?: number;
256 OperationalStatus: string;
257 ConfigStatus: string;
258 DetailedStatus: string;
263 adminDetails?: object;
266 operationParams?: OPERATIONPARAMS;
268 constituent: string[];
271 /** Interface for the operationparams */
272 export interface OPERATIONPARAMS {
274 scaleVnfData?: SCALEVNFDATA;
277 /** Interface for the scaleVnfData */
278 export interface SCALEVNFDATA {
279 scaleVnfType?: string;
280 scaleByStepData?: SCALEBYSTEPDATA;
283 /** Interface for the scaleByStepData */
284 export interface SCALEBYSTEPDATA {
285 'scaling-group-descriptor'?: string;
286 'member-vnf-index'?: string;
289 /** Interface for the nsInfo */
290 export interface NSINFO {
291 nsInstanceID: string;
293 nsOperationalStatus: string;
294 nsConfigStatus: string;
295 nsDetailedStatus: string;
296 nsResourceOrchestrator: string;
299 /** Interface for the NSINSTANCENODES */
300 export interface NSINSTANCENODES {
302 nodeTypeRef?: string;
306 vimNetworkName?: string;
308 cp?: CONNECTIONPOINT[];
316 memberIndex?: string;
324 /** Interface for the connection-point */
325 export interface CONNECTIONPOINT {
326 'connection-point-id': string;
331 /** Interface for Exec NS Primitive */
332 export interface NSPrimitive {
334 'primitive_params': NSPrimitiveParams[];
335 'member_vnf_index': string;
338 /** Interface for Exec NS Primitive Params */
339 export interface NSPrimitiveParams {
340 primitive_params_name: string;
341 primitive_params_value: string;
344 /** Interface Nodes Creation */
345 export interface COMPOSERNODES {
357 vimNetworkName?: string;
360 memberIndex?: string;
368 /** Interface for the Virtual Link Info */
369 export interface VLINFO {
374 vimNetworkName: string;
377 /** Interface for the VNFR Info */
378 export interface VNFRINFO {