/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.camel.component.docker;
import java.util.HashMap;
import java.util.Map;
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.spi.Metadata;
import org.apache.camel.spi.UriParam;
import org.apache.camel.spi.UriParams;
import org.apache.camel.spi.UriPath;
@UriParams
public class DockerConfiguration implements Cloneable {
@UriPath(enums = "events,stats,auth,info,ping,version,imagebuild,imagecreate,imageinspect,imagelist,imagepull,imagepush"
+ "imageremove,imagesearch,imagetag,containerattach,containercommit,containercopyfile,containercreate,containerdiff"
+ "inspectcontainer,containerkill,containerlist,containerlog,containerpause,containerrestart,containerremove,containerstart"
+ "containerstop,containertop,containerunpause,containerwait,execcreate,execstart") @Metadata(required = "true")
private DockerOperation operation;
@UriParam(defaultValue = "localhost") @Metadata(required = "true")
private String host = "localhost";
@UriParam(defaultValue = "2375") @Metadata(required = "true")
private Integer port = 2375;
@UriParam(label = "security", secret = true)
private String username;
@UriParam(label = "security", secret = true)
private String password;
@UriParam
private String email;
@UriParam(label = "advanced", defaultValue = "https://index.docker.io/v1/")
private String serverAddress = "https://index.docker.io/v1/";
@UriParam
private Integer requestTimeout;
@UriParam(label = "security")
private boolean secure;
@UriParam(label = "security")
private String certPath;
@UriParam(label = "advanced", defaultValue = "100")
private Integer maxTotalConnections = 100;
@UriParam(label = "advanced", defaultValue = "100")
private Integer maxPerRouteConnections = 100;
@UriParam(label = "advanced")
private boolean loggingFilter;
@UriParam(label = "advanced")
private boolean followRedirectFilter;
@UriParam(label = "security", defaultValue = "false")
private boolean tlsVerify;
@UriParam(label = "advanced", defaultValue = "true")
private boolean socket;
@UriParam(label = "advanced", defaultValue = "com.github.dockerjava.jaxrs.JerseyDockerCmdExecFactory")
private String cmdExecFactory = "com.github.dockerjava.jaxrs.JerseyDockerCmdExecFactory";
private Map<String, Object> parameters = new HashMap<String, Object>();
public String getHost() {
return host;
}
/**
* Docker host
*/
public void setHost(String host) {
this.host = host;
}
public Integer getPort() {
return port;
}
/**
* Docker port
*/
public void setPort(Integer port) {
this.port = port;
}
public String getUsername() {
return username;
}
/**
* User name to authenticate with
*/
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
/**
* Password to authenticate with
*/
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
/**
* Email address associated with the user
*/
public void setEmail(String email) {
this.email = email;
}
public String getServerAddress() {
return serverAddress;
}
/**
* Server address for docker registry.
*/
public void setServerAddress(String serverAddress) {
this.serverAddress = serverAddress;
}
public Integer getRequestTimeout() {
return requestTimeout;
}
/**
* Request timeout for response (in seconds)
*/
public void setRequestTimeout(Integer requestTimeout) {
this.requestTimeout = requestTimeout;
}
public boolean isSecure() {
return secure;
}
/**
* Use HTTPS communication
*/
public void setSecure(boolean secure) {
this.secure = secure;
}
public String getCertPath() {
return certPath;
}
/**
* Location containing the SSL certificate chain
*/
public void setCertPath(String certPath) {
this.certPath = certPath;
}
public Integer getMaxTotalConnections() {
return maxTotalConnections;
}
/**
* Maximum total connections
*/
public void setMaxTotalConnections(Integer maxTotalConnections) {
this.maxTotalConnections = maxTotalConnections;
}
public Integer getMaxPerRouteConnections() {
return maxPerRouteConnections;
}
/**
* Maximum route connections
*/
public void setMaxPerRouteConnections(Integer maxPerRouteConnections) {
this.maxPerRouteConnections = maxPerRouteConnections;
}
public boolean isLoggingFilterEnabled() {
return loggingFilter;
}
/**
* Whether to use logging filter
*/
public void setLoggingFilter(boolean loggingFilterEnabled) {
this.loggingFilter = loggingFilterEnabled;
}
public boolean isFollowRedirectFilterEnabled() {
return followRedirectFilter;
}
/**
* Whether to follow redirect filter
*/
public void setFollowRedirectFilter(boolean followRedirectFilterEnabled) {
this.followRedirectFilter = followRedirectFilterEnabled;
}
public Map<String, Object> getParameters() {
return parameters;
}
/**
* Additional configuration parameters as key/value pairs
*/
public void setParameters(Map<String, Object> parameters) {
this.parameters = parameters;
}
public DockerOperation getOperation() {
return operation;
}
/**
* Which operation to use
*/
public void setOperation(DockerOperation operation) {
this.operation = operation;
}
public boolean isTlsVerify() {
return tlsVerify;
}
/**
* Check TLS
*/
public void setTlsVerify(boolean tlsVerify) {
this.tlsVerify = tlsVerify;
}
public boolean isSocket() {
return socket;
}
/**
* Socket connection mode
*/
public void setSocket(boolean socket) {
this.socket = socket;
}
public String getCmdExecFactory() {
return cmdExecFactory;
}
/**
* The fully qualified class name of the DockerCmdExecFactory implementation to use
*/
public void setCmdExecFactory(String cmdExecFactory) {
this.cmdExecFactory = cmdExecFactory;
}
public DockerConfiguration copy() {
try {
return (DockerConfiguration) clone();
} catch (CloneNotSupportedException e) {
throw new RuntimeCamelException(e);
}
}
}