/*******************************************************************************
* Copyright (c) 2012-2017 Codenvy, S.A.
* 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
*
* Contributors:
* Codenvy, S.A. - initial API and implementation
*******************************************************************************/
package org.eclipse.che.api.core.model.machine;
import java.util.Map;
/**
* Runtime information about machine.
*
* @author Alexander Garagatyi
*/
public interface MachineRuntimeInfo {
/**
* Returns environment variables of machine.
*/
Map<String, String> getEnvVariables();
/**
* Returns machine specific properties.
*/
Map<String, String> getProperties();
/**
* It is supposed that this methods returns the same as {@code getEnvVariables().get("CHE_PROJECTS_ROOT")}.
*/
String projectsRoot();
/**
* Returns mapping of exposed ports to {@link Server}.
*
* <p>Key consist of port number and transport protocol - tcp or udp with slash between these parts.
* <br>Example:
* <pre>
* {
* 8080/tcp : {
* "ref" : "server_reference",
* "address" : "server-with-machines.com",
* "url" : "http://server-with-machines.com:8080"
* }
* }
* </pre>
*/
Map<String, ? extends Server> getServers();
}