/*******************************************************************************
* Copyright (c) 2015 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is 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:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package com.openshift.restclient.model;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.openshift.restclient.api.models.INameSetable;
import com.openshift.restclient.images.DockerImageURI;
import com.openshift.restclient.model.volume.IVolume;
import com.openshift.restclient.model.volume.IVolumeMount;
public interface IContainer extends INameSetable{
String getName();
void setImage(DockerImageURI tag);
DockerImageURI getImage();
/**
* replace the env vars
* @param vars
*/
void setEnvVars(Map<String, String> vars);
/**
*
* @return an unmodifiable map of env vars
*/
Map<String, String> getEnvVars();
void addEnvVar(String key, String value);
/**
* replaces the set of ports
* @param ports
*/
void setPorts(Set<IPort> ports);
/**
*
* @return an unmodifiable set of the container ports
*/
Set<IPort> getPorts();
void setImagePullPolicy(String policy);
String getImagePullPolicy();
void setLifecycle(ILifecycle lifecycle);
ILifecycle getLifecycle();
void setCommand(List<String> command);
List<String> getCommand();
void setCommandArgs(List<String> args);
List<String> getCommandArgs();
@Deprecated
void setVolumes(Set<IVolume> volumes);
@Deprecated
Set<IVolume> getVolumes();
void setVolumeMounts(Set<IVolumeMount> volumes);
Set<IVolumeMount> getVolumeMounts();
/**
* Add a volumemount with the given name
* @param name
* @return IVolumeMount
*/
IVolumeMount addVolumeMount(String name);
String toJSONString();
}