/*
 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)
 */
import { HttpHeaders } from '@angular/common/http';
import { NSD } from 'NSInstanceModel';
import { EXECUTEDACTIONS } from 'OperationalModel';
import { VNFD } from 'VNFDModel';

/**
 * @file  Model for Commonly used information.
 */
/* eslint-disable */
/**
 * handle count @enum
 */
export enum CONSTANTNUMBER {
    randomNumber = 4,
    osmapviewlong = 77.673,
    osmapviewlat = 19.166,
    chennailong = 80.2809,
    chennailat = 13.0781,
    bangalorelong = 77.5868,
    bangalorelat = 12.9718,
    mumbailong = 72.8342,
    mumbailat = 18.9394,
    tirvandrumlong = 76.9544,
    tirvandrumlat = 8.5009,
    oneMB = 1048576,
    paginationDefaultValue = 10,
    splitLongitude = 1,
    splitLatitude = 2,
    timeOutDefaultSeconds = 5,
    oneGB = 1024
}
/**
 * handle count @enum
 */
export enum CONFIGCONSTANT {
    operationalStateFirstStep = 'init',
    operationalStateSecondStep = 'running',
    operationalStateThirdStep = 'failed',
    operationalStateFourthStep = 'scaling',
    operationalStateFifthStep = 'healing',
    configStateFirstStep = 'init',
    configStateSecondStep = 'configured',
    configStateThirdStep = 'failed',
    historyStateFirstStep = 'PROCESSING',
    historyStateSecondStep = 'COMPLETED',
    historyStateThirdStep = 'FAILED',
    wimOperationalStateFirstStep = 'PROCESSING',
    wimOperationalStateStateSecondStep = 'ENABLED',
    wimOperationalStateThirdStep = 'ERROR',
    vimOperationalStateFirstStep = 'PROCESSING',
    vimOperationalStateStateSecondStep = 'ENABLED',
    vimOperationalStateThirdStep = 'ERROR',
    sdnOperationalStateFirstStep = 'PROCESSING',
    sdnOperationalStateStateSecondStep = 'ENABLED',
    sdnOperationalStateThirdStep = 'ERROR',
    k8OperationalStateFirstStep = 'CREATED',
    k8OperationalStateStateSecondStep = 'IN_CREATION',
    k8OperationalStateThirdStep = 'IN_DELETION',
    k8OperationalStateFourthStep = 'FAILED_DELETION',
    k8OperationalStateFifthStep = 'FAILED_CREATION',
    k8OperationalStateSixthStep = 'N/A',
    clusterModeFirstStep = 'MANAGED',
    clusterModeSecondStep = 'REGISTERED',
    done = 'done',
    close = 'close',
    userActive = 'active',
    userLocked = 'locked',
    userExpired = 'expired',
    userAlwaysActive = 'always-active'
}
/** Interface for Post options */
export interface POSTAPIRESOURCE {
    apiURLHeader: APIURLHEADER;
    payload?: object;
}
/** Interface for ApiURL Header */
export interface APIURLHEADER {
    url: string;
    httpOptions?: APIHEADERS;
}
/** Interface for the Get Method with response type */
export interface GETAPIURLHEADER {
    headers: HttpHeaders;
    responseType: string;
}
/** Interface for Httpoptions Header */
interface APIHEADERS {
    headers: HttpHeaders;
}
/** Interface for the Error */
export interface ERRORDATA {
    error: ERRORDETAILSDATA;
}
/** Interface for the Error Details */
interface ERRORDETAILSDATA {
    detail: string;
    code?: string;
    status?: number;
    text?: Function;
}
/** Handle the URL params */
export interface URLPARAMS {
    page: string;
    id: string;
    titleName?: string;
    forceDeleteType?: boolean;
    name?: string;
    memberIndex?: object;
    nsConfig?: object;
    projectID?: string;
    username?: string;
    vnfID?: [];
    nsID?: string;
    nsd?: NSD;
    data?: VNFD[];
    configs?: object;
    actions?: object;
    executedActions?: EXECUTEDACTIONS[];
    identifierList: [];
    createdbyosm?: string;
    bootstrap?: boolean;
    key?: boolean;
}
/** Handle the Delete params */
export interface DELETEPARAMS {
    identifier: string;
    name?: string;
    projectName?: string;
    userName?: string;
    username?: string;
    page?: string;
    id?: string;
    productName?: string;
    createdbyosm?: string;
    bootstrap?: boolean;
    key?: boolean;
}

/** Interface for the Delete Details */
export interface MODALCLOSERESPONSEDATA {
    message: string;
}

/** Interface for the modal closer */
export interface MODALCLOSERESPONSEWITHCP {
    message: string;
    connection_point?: string;
}

/** Interface for local storage settings */
export interface LOCALSTORAGE {
    id_token?: string;
    project_id?: string;
    expires?: string;
    username?: string;
    project?: string;
    project_name?: string;
    id?: string;
    admin?: boolean;
    isAdmin?: string;
    token_state?: string;
}
/** Interface for Tar settings */
export interface TARSETTINGS {
    name?: string;
    'type'?: string;
    readAsString?: Function;
    buffer: ArrayBuffer;
    header_offset?: Number;
    size?: number;
    linkname?: string;
    uname?: string;
    gname?: string;
}
/** Interface for File Settings */
export interface FILESETTINGS {
    'type'?: string;
    linkname?: string;
    owner?: string;
    group?: string;
}
/** Interface for Package information */
export interface PACKAGEINFO {
    id?: string;
    packageType?: string;
    descriptor: string;
}

/** Interface For the Pagination pager in ng-smarttable */
export interface PAGERSMARTTABLE {
    display: boolean;
    perPage: number;
}
/** Interface for breadcrumb item */
export interface BREADCRUMBITEM {
    title: string;
    url: string;
}
/** Interface For the Pagination pager in ng-smarttable */
export interface SMARTTABLECLASS {
    class: string;
}
/** Constants of the VIM Types */
export const VIM_TYPES: TYPESECTION[] = [
    { value: 'openstack', title: 'Openstack' },
    { value: 'aws', title: 'AWS' },
    { value: 'vmware', title: 'VMware vCD' },
    { value: 'openvim', title: 'OpenVIM' },
    { value: 'opennebula', title: 'OpenNebula' },
    { value: 'azure', title: 'Azure' },
    { value: 'dummy', title: 'Dummy' }
];
/** Constants of the SDN Types */
export const SDN_TYPES: TYPESECTION[] = [
    { value: 'arista', title: 'Arista' },
    { value: 'floodlightof', title: 'Floodlight openflow' },
    { value: 'odlof', title: 'OpenDaylight openflow' },
    { value: 'onosof', title: 'ONOS openflow' },
    { value: 'onos_vpls', title: 'ONOS vpls' }
];
/** Constants of the WIM Types */
export const WIM_TYPES: TYPESECTION[] = [
    { value: 'arista', title: 'Arista' },
    { value: 'dynpac', title: 'DynPac' },
    { value: 'floodlightof', title: 'Floodlight openflow' },
    { value: 'odlof', title: 'OpenDaylight openflow' },
    { value: 'onosof', title: 'ONOS openflow' },
    { value: 'onos_vpls', title: 'ONOS vpls' },
    { value: 'tapi', title: 'TAPI' }
];
/** Constants of the OSM Repo Types */
export const OSMREPO_TYPES: TYPESECTION[] = [
    { value: 'osm', title: 'OSM' }
];
/** Interface for List, Add WIM & SDN Types */
export interface TYPESECTION {
    value: string;
    title: string;
}
/** Interface for PRIMITIVETYPES */
export interface PRIMITIVETYPES {
    title: string;
    value: string;
}
/** Interface for the PRIMITIVEDATA */
export interface PRIMITIVEDATA {
    parameter: {}[];
}
/** Constant for VIM type Openstack's Config */
export const TYPEOPENSTACK: {} = {
    sdn_controller: '',
    APIversion: '',
    sdn_port_mapping: '',
    project_domain_id: '',
    vim_network_name: '',
    project_domain_name: '',
    config_vim_ype: '',
    user_domain_id: '',
    security_groups: '',
    user_domain_name: '',
    availability_zone: '',
    keypair: '',
    region_name: '',
    dataplane_physical_net: '',
    insecure: '',
    use_floating_ip: '',
    use_internal_endpoint: '',
    microversion: '',
    additional_conf: '',
    use_existing_flavors: ''
};
/** Constant for VIM type AWS's Config */
export const TYPEAWS: {} = {
    sdn_controller: '',
    vpc_cidr_block: '',
    sdn_port_mapping: '',
    security_groups: '',
    vim_network_name: '',
    keypair: '',
    region_name: '',
    flavor_info: '',
    additional_conf: ''
};
/** Constant for VIM type VMWARE's Config */
export const TYPEVMWARE: {} = {
    sdn_controller: '',
    orgname: '',
    sdn_port_mapping: '',
    vcenter_ip: '',
    vim_network_name: '',
    admin_username: '',
    admin_password: '',
    vcenter_port: '',
    vcenter_user: '',
    vcenter_password: '',
    nsx_manager: '',
    nsx_user: '',
    nsx_password: '',
    vrops_site: '',
    vrops_user: '',
    vrops_password: '',
    additional_conf: ''
};
/** Constant for VIM type OPENVIMNEBULA's Config */
export const TYPEOPENVIMNEBULA: {} = {
    sdn_controller: '',
    sdn_port_mapping: '',
    vim_network_name: '',
    additional_conf: ''
};
/** Constant for VIM type AZURE's Config */
export const TYPEAZURE: {} = {
    subscription_id: '',
    region_name: '',
    resource_group: '',
    vnet_name: '',
    flavors_pattern: ''
};
/** Constant for VIM other type Config */
export const TYPEOTERS: {} = {
    sdn_controller: '',
    sdn_port_mapping: '',
    vim_network_name: '',
    use_floating_ip: '',
    use_internal_endpoint: '',
    additional_conf: '',
    use_existing_flavors: ''
};
/** Interface for Domains */
export interface DOMAINS {
    project_domain_name: string;
    user_domain_name: string;
}
/** Interface for Login */
export interface LOGINPARAMS {
    username?: string;
    password?: string;
    old_password?: string;
    email_id?: string;
}
/** Interface for the LABELVALUE */
export interface LABELVALUE {
    label: string;
    value: string;
}
/** Interface for Login */
export interface UNLOCKPARAMS {
    system_admin_id?: string;
    unlock?: boolean;
    renew?: boolean;
}
