1 /* 2 * This file is part of Waarp Project (named also Waarp or GG). 3 * 4 * Copyright (c) 2019, Waarp SAS, and individual contributors by the @author 5 * tags. See the COPYRIGHT.txt in the distribution for a full listing of 6 * individual contributors. 7 * 8 * All Waarp Project is free software: you can redistribute it and/or 9 * modify it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation, either version 3 of the License, or (at your 11 * option) any later version. 12 * 13 * Waarp is distributed in the hope that it will be useful, but WITHOUT ANY 14 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 15 * A PARTICULAR PURPOSE. See the GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License along with 18 * Waarp . If not, see <http://www.gnu.org/licenses/>. 19 */ 20 21 package org.waarp.openr66.protocol.monitoring; 22 23 import org.apache.http.HttpHost; 24 25 /** 26 * ElasticsearchMonitoringExporterClient Factory (only available in JRE 8 and over and if a 27 * Factory is set into ElasticsearchMonitoringExporterClientBuilder) 28 */ 29 public interface ElasticsearchMonitoringExporterClientFactory { 30 /** 31 * Will use something like:<br> 32 * setCompressionEnabled(true);<br> 33 * setPathPrefix(prefix); if not null<br> 34 * Index will be used as final Elasticsearch index name 35 * 36 * @param username username to connect to Elasticsearch if any (Basic 37 * authentication) (nullable) 38 * @param pwd password to connect to Elasticsearch if any (Basic 39 * authentication) (nullable) 40 * @param token access token (Bearer Token authorization 41 * by Header) (nullable) 42 * @param apiKey API Key (Base64 of 'apiId:apiKey') (ApiKey authorization 43 * by Header) (nullable) 44 * @param prefix Path to set as Prefix for every requests, can be null 45 * @param index Index name within Elasticsearch 46 * @param compression True to compress REST exchanges between the client 47 * and the Elasticsearch server 48 * @param httpHosts 1 or more HttpHost pointing to Elasticsearch nodes 49 * 50 * @return a new ElasticsearchMonitoringExporterClient 51 */ 52 ElasticsearchMonitoringExporterClient createElasticsearchClient( 53 final String username, final String pwd, final String token, 54 final String apiKey, final String prefix, final String index, 55 final boolean compression, final HttpHost... httpHosts); 56 }