/*
 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;
    message?: string;
    user_id?: string;
    roles?: RolesData[];
    last_login?: number;
    login_count?: string;
    user_show?: boolean;
    admin_show?: boolean;
    timeout?: string;
}

/** Interface for Roles */
export interface RolesData {
    name?: string;
    id?: string;
}

/** Interface for ProjectDetails */
export interface ProjectDetails {
    _admin: AdminDetails;
    name: string;
    _id: string;
}

/** Interface for AdminDetails */
interface AdminDetails {
    modified: string;
    created: string;
}

/** Interface for VNFD Details */
export interface VNFD {
    description?: string;
    df?: DF[];
    'ext-cpd'?: EXTCPD[];
    id: string;
    'int-virtual-link-desc'?: IVLD[];
    'mgmt-cp'?: string;
    onboardingState?: string;
    operationalState?: string;
    'product-name'?: string;
    provider?: string;
    'sw-image-desc'?: SWIMAGEDESCRIPTION[];
    usageState?: string;
    vdu?: VDU[];
    version?: string;
    'software-version'?: string;
    'virtual-compute-desc'?: string;
    'virtual-storage-desc'?: string[];
    _admin?: VNFDAdminDetails;
    _id?: string;
    _links?: string;
    'vnf-configuration'?: VNFCONFIG[];
    kdu?: [];
    name?: string;
    state?: string;
    resourceState?: string;
    profile_type?: string;
}
/** Interface for DF */
export interface VNFCONFIG {
    id: string;
    'config-primitive'?: CONFIGPRIMITIVE[];
    'initial-config-primitive'?: INITIALCONFIGPRIMITIVE[];
}
/** Interface for DF */
export interface DF {
    id: string;
    'instantiation-level'?: INSTANTIATIONLEVEL[];
    'vdu-profile'?: VDUPROFILE[];
    'vnf-configuration-id'?: string;
    'scaling-aspect'?: SCALING[];
}
/** Interface for INSTANTIATIONLEVEL */
export interface INSTANTIATIONLEVEL {
    id: string;
    'vdu-level': VDULEVEL[];
}
/** Interface for VDULEVEL */
export interface VDULEVEL {
    'number-of-instances': number;
    'vdu-id': string;
}
/** Interface for VDULEVEL */
export interface VDUPROFILE {
    id: string;
    name?: string;
    'min-number-of-instances'?: number;
    'max-number-of-instances'?: number;
    'vdu-configuration-id'?: string;
    'vdu-configuration'?: VDUCONFIG;
}
/** Interface for SCALING */
export interface SCALING {
    'aspect-delta-details'?: object;
    id: string;
    name?: string;
    'max-scale-level'?: number;
    'scaling-policy'?: SCALINGPOLICY[];
}
/** Interface for SCALINGPOLICY */
export interface SCALINGPOLICY {
    'cooldown-time': number;
    name?: string;
    'scaling-criteria': SCALINGCRITERIA[];
    'scaling-type'?: string;
    'threshold-time'?: number;
}
/** Interface for SCALINGCRITERIA */
export interface SCALINGCRITERIA {
    name?: string;
    'scale-in-relational-operation': string;
    'scale-in-threshold'?: string;
    'scale-out-relational-operation'?: string;
    'scale-out-threshold'?: string;
    'vnf-monitoring-param-ref'?: string;
}
/** Interface for VDUCONFIG */
export interface VDUCONFIG {
    id: string;
    'config-primitive': CONFIGPRIMITIVE[];
    'initial-config-primitive': INITIALCONFIGPRIMITIVE[];
}
/** Interface for CONFIGPRIMITIVE */
export interface CONFIGPRIMITIVE {
    name: string;
}
/** Interface for INITIALCONFIGPRIMITIVE */
export interface INITIALCONFIGPRIMITIVE {
    seq: string;
    name: string;
}
/** Interface for the ext-cpd */
export interface EXTCPD {
    id?: string;
    'int-cpd'?: INTCPD;
}
/** Interface for the int-cpd */
export interface INTCPD {
    cpd?: string;
    'vdu-id'?: string;
}
/** Interface for IVLD */
export interface IVLD {
    id?: string;
    description?: string;
}
/** Interface for SWIMAGEDESCRIPTION */
export interface SWIMAGEDESCRIPTION {
    id: string;
    name: string;
    version: string;
}
/** Interface for VDU */
export interface VDU {
    'cloud-init-file'?: string;
    description?: string;
    id?: string;
    'int-cpd'?: VDUINTCPD[];
    'monitoring-parameter'?: MonitoringParam[];
    name?: string;
    'sw-image-desc'?: string;
    'virtual-compute-desc'?: string;
    'virtual-storage-desc'?: string[];
}
/** Interface for the vdu int-cpd */
export interface VDUINTCPD {
    id: string;
    'int-virtual-link-desc'?: string;
    'virtual-network-interface-requirement': VNIR[];
}
/** Interface for the vdu int-cpd => VNIR */
export interface VNIR {
    name: string;
    position: number;
    'virtual-interface': VIRTUALINTERFACE;
}
/** Interface for the VIRTUALINTERFACE */
export interface VIRTUALINTERFACE {
    'type': string;
}
/** Interface for monitoring params */
export interface MonitoringParam {
    id: string;
    name?: string;
    'performance-metric'?: string;
    'collection-period'?: number;
}
/** Interface for VNFDATA */
export interface VNFDATA {
    vnfd?: VNFD;
}

/** Interface for VDU InternalCPD */
export interface InternalCPD {
    id: string;
    'int-virtual-link-desc'?: string;
    'virtual-network-interface-requirement'?: VIRTUALNETWORKINTERFACEREQUIREMENT;
}

/** Interface for VIRTUALNETWORKINTERFACEREQUIREMENT */
export interface VIRTUALNETWORKINTERFACEREQUIREMENT {
    name: string;
    position?: number;
    'virtual-interface'?: VirtualInterface;
}

/** Interface for VirutalInterface */
interface VirtualInterface {
    'type': string;
}

/** Interface for _AdminDetails */
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 {
    identifier?: string;
    id?: string;
    name?: string;
    description?: string;
    version?: string;
    'type'?: string;
    productName?: string;
    provider?: string;
    onboardingState?: string;
    usageState?: string;
    created?: string;
    state?: 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;
    nodeIndex?: number;
    selectorId?: 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;
}
