/******************************************************************************* * 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 org.eclipse.che.commons.annotation.Nullable; import java.util.List; import java.util.Map; /** * @author gazarenkov */ public interface MachineConfig { /** * Display name. */ String getName(); /** * From where to create this Machine (Recipe/Snapshot). */ MachineSource getSource(); /** * Is workspace bound to machine or not. */ boolean isDev(); /** * Machine type (i.e. "docker"). */ String getType(); /** * Machine limits such as RAM size. */ @Nullable MachineLimits getLimits(); /** * Get configuration of servers inside of machine. * * <p>Key is port/transport protocol, e.g. 8080/tcp or 100100/udp */ List<? extends ServerConf> getServers(); /** * Get predefined environment variables of machine. */ Map<String, String> getEnvVariables(); }