///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2000-2017 Ericsson Telecom AB
//
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// which accompanies this distribution, and is available at
// http://www.eclipse.org/legal/epl-v10.html
///////////////////////////////////////////////////////////////////////////////
//  File:               IOT_App_Definitions.ttcn
//  Description:
//  Rev:                R1A
//  Prodnr:             LPA 108 661
//  Updated:            2017-09-01
//  Contact:            http://ttcn.ericsson.se
///////////////////////////////////////////////////////////////////////////////
module IOT_App_Definitions
{
  import from EPTF_CLL_Base_Definitions all;
  import from EPTF_CLL_DsRestAPI_Definitions all;
  
  modulepar charstring 	tsp_EPTF_DsRestAPI_HTTPServer_RemoteAddress := "127.0.0.1";
  modulepar integer 	tsp_EPTF_DsRestAPI_HTTPServer_RemotePort := 4040;
  modulepar charstring	tsp_EPTF_DsRestAPI_HTTPServer_directory := "./WebGUI/WebGUI_link/";

  modulepar charstring 	tsp_EPTF_DsRestAPI_customizableApp_directory := "./WebGUI/GUICustomization_link";
  modulepar charstring 	tsp_EPTF_DsRestAPI_API_directory := "./WebGUI/Js_link";  

  type component IOT_App_CT extends EPTF_Base_CT, EPTF_DsRestAPI_CT
  {
    var boolean v_ready := false; 
  }
}
