/**
* 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.elasticsearch;
import java.io.File;
import java.util.List;
import org.apache.camel.spi.Metadata;
import org.apache.camel.spi.UriParam;
import org.apache.camel.spi.UriParams;
import org.apache.camel.spi.UriPath;
import org.elasticsearch.action.WriteConsistencyLevel;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
@UriParams
public class ElasticsearchConfiguration {
private boolean local;
private List<InetSocketTransportAddress> transportAddressesList;
@UriPath @Metadata(required = "true")
private String clusterName;
@UriParam(enums = "INDEX,UPDATE,BULK,BULK_INDEX,GET_BY_ID,MULTIGET,DELETE,EXISTS,SEARCH,MULTISEARCH,DELETE_INDEX")
private String operation;
@UriParam
private String indexName;
@UriParam
private String indexType;
@UriParam(defaultValue = "DEFAULT")
private WriteConsistencyLevel consistencyLevel = ElasticsearchConstants.DEFAULT_CONSISTENCY_LEVEL;
@UriParam
private Boolean data;
@UriParam
private String ip;
@UriParam
private String transportAddresses;
@UriParam(defaultValue = "9300")
private int port = ElasticsearchConstants.DEFAULT_PORT;
@UriParam(defaultValue = "true")
private Boolean clientTransportSniff = true;
@UriParam(defaultValue = "${user.home}/.elasticsearch")
private String pathHome = System.getProperty("user.home") + File.separator + ".elasticsearch";
/**
* Name of cluster or use local for local mode
*/
public String getClusterName() {
return clusterName;
}
public void setClusterName(String clusterName) {
this.clusterName = clusterName;
}
/**
* What operation to perform
*/
public String getOperation() {
return operation;
}
public void setOperation(String operation) {
this.operation = operation;
}
/**
* The name of the index to act against
*/
public String getIndexName() {
return indexName;
}
public void setIndexName(String indexName) {
this.indexName = indexName;
}
/**
* The type of the index to act against
*/
public String getIndexType() {
return indexType;
}
public void setIndexType(String indexType) {
this.indexType = indexType;
}
/**
* The write consistency level to use with INDEX and BULK operations (can be any of ONE, QUORUM, ALL or DEFAULT)
*/
public WriteConsistencyLevel getConsistencyLevel() {
return consistencyLevel;
}
public void setConsistencyLevel(WriteConsistencyLevel consistencyLevel) {
this.consistencyLevel = consistencyLevel;
}
/**
* Is the node going to be allowed to allocate data (shards) to it or not. This setting map to the <tt>node.data</tt> setting.
*/
public Boolean getData() {
return data;
}
public void setData(Boolean data) {
this.data = data;
}
/**
* The TransportClient remote host ip to use
*/
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
/**
* Comma separated list with ip:port formatted remote transport addresses to use.
* The ip and port options must be left blank for transportAddresses to be considered instead.
*/
public String getTransportAddresses() {
return transportAddresses;
}
public void setTransportAddresses(String transportAddresses) {
this.transportAddresses = transportAddresses;
}
/**
* The TransportClient remote port to use (defaults to 9300)
*/
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
/**
* Is the client allowed to sniff the rest of the cluster or not (default true). This setting map to the <tt>client.transport.sniff</tt> setting.
*/
public Boolean getClientTransportSniff() {
return clientTransportSniff;
}
public void setClientTransportSniff(Boolean clientTransportSniff) {
this.clientTransportSniff = clientTransportSniff;
}
public boolean isLocal() {
return local;
}
public void setLocal(boolean local) {
this.local = local;
}
public List<InetSocketTransportAddress> getTransportAddressesList() {
return transportAddressesList;
}
public void setTransportAddressesList(List<InetSocketTransportAddress> transportAddressesList) {
this.transportAddressesList = transportAddressesList;
}
/**
* The path.home property of ElasticSearch configuration. You need to provide a valid path, otherwise the default, ${user.home}/.elasticsearch, will be used.
*/
public String getPathHome() {
return pathHome;
}
public void setPathHome(String pathHome) {
this.pathHome = pathHome;
}
}