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 }