View Javadoc
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  }