package com.github.dockerjava.api.command;
import java.io.InputStream;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.model.Frame;
/**
* Attach to container
*
* @param logs
* - true or false, includes logs. Defaults to false.
*
* @param followStream
* - true or false, return stream. Defaults to false.
* @param stdout
* - true or false, includes stdout log. Defaults to false.
* @param stderr
* - true or false, includes stderr log. Defaults to false.
* @param timestamps
* - true or false, if true, print timestamps for every log line. Defaults to false.
*/
public interface AttachContainerCmd extends AsyncDockerCmd<AttachContainerCmd, Frame> {
@CheckForNull
String getContainerId();
@CheckForNull
Boolean hasLogsEnabled();
@CheckForNull
Boolean hasFollowStreamEnabled();
@CheckForNull
Boolean hasTimestampsEnabled();
@CheckForNull
Boolean hasStdoutEnabled();
@CheckForNull
Boolean hasStderrEnabled();
@CheckForNull
InputStream getStdin();
AttachContainerCmd withContainerId(@Nonnull String containerId);
/**
* Following the stream means the resulting {@link InputStream} returned by {@link #exec()} reads infinitely. So a
* {@link InputStream#read()} MAY BLOCK FOREVER as long as no data is streamed from the docker host to {@link DockerClient}!
*/
AttachContainerCmd withFollowStream(Boolean followStream);
AttachContainerCmd withTimestamps(Boolean timestamps);
AttachContainerCmd withStdOut(Boolean stdout);
AttachContainerCmd withStdErr(Boolean stderr);
AttachContainerCmd withStdIn(InputStream stdin);
AttachContainerCmd withLogs(Boolean logs);
interface Exec extends DockerCmdAsyncExec<AttachContainerCmd, Frame> {
}
}