package com.github.dockerjava.core.command;
import static com.google.common.base.Preconditions.checkNotNull;
import com.github.dockerjava.api.command.PushImageCmd;
import com.github.dockerjava.api.model.AuthConfig;
import com.github.dockerjava.api.model.PushResponseItem;
/**
* Push the latest image to the repository.
*
* @param name
* The name, e.g. "alexec/busybox" or just "busybox" if you want to default. Not null.
*/
public class PushImageCmdImpl extends AbstrAsyncDockerCmd<PushImageCmd, PushResponseItem> implements PushImageCmd {
private String name;
private String tag;
private AuthConfig authConfig;
public PushImageCmdImpl(PushImageCmd.Exec exec, String name) {
super(exec);
withName(name);
}
@Override
public String getName() {
return name;
}
@Override
public String getTag() {
return tag;
}
/**
* @param name
* The name, e.g. "alexec/busybox" or just "busybox" if you want to default. Not null.
*/
@Override
public PushImageCmd withName(String name) {
checkNotNull(name, "name was not specified");
this.name = name;
return this;
}
/**
* @param tag
* The image's tag. Can be null or empty.
*/
@Override
public PushImageCmd withTag(String tag) {
checkNotNull(tag, "tag was not specified");
this.tag = tag;
return this;
}
public AuthConfig getAuthConfig() {
return authConfig;
}
public PushImageCmd withAuthConfig(AuthConfig authConfig) {
checkNotNull(authConfig, "authConfig was not specified");
return withOptionalAuthConfig(authConfig);
}
private PushImageCmd withOptionalAuthConfig(AuthConfig authConfig) {
this.authConfig = authConfig;
return this;
}
}