Provided by: libsearch-elasticsearch-perl_8.12-1_all 

NAME
Search::Elasticsearch::Cxn::HTTPTiny - A Cxn implementation which uses HTTP::Tiny
VERSION
version 8.12
DESCRIPTION
Provides the default HTTP Cxn class and is based on HTTP::Tiny. The HTTP::Tiny backend is fast, uses
pure Perl, support proxies and https and provides persistent connections.
This class does Search::Elasticsearch::Role::Cxn, whose documentation provides more information, and
Search::Elasticsearch::Role::Is_Sync.
CONFIGURATION
Inherited configuration
From Search::Elasticsearch::Role::Cxn
• node
• max_content_length
• deflate
• deflate
• request_timeout
• ping_timeout
• dead_timeout
• max_dead_timeout
• sniff_request_timeout
• sniff_timeout
• handle_args
• handle_args
SSL/TLS
Search::Elasticsearch::Cxn::HTTPTiny uses IO::Socket::SSL to support HTTPS. By default, no validation of
the remote host is performed.
This behaviour can be changed by passing the "ssl_options" parameter with any options accepted by
IO::Socket::SSL. For instance, to check that the remote host has a trusted certificate, and to avoid man-
in-the-middle attacks, you could do the following:
use Search::Elasticsearch;
use IO::Socket::SSL;
my $es = Search::Elasticsearch->new(
nodes => [
"https://node1.mydomain.com:9200",
"https://node2.mydomain.com:9200",
],
ssl_options => {
SSL_verify_mode => SSL_VERIFY_PEER,
SSL_ca_file => '/path/to/cacert.pem'
}
);
If the remote server cannot be verified, an Search::Elasticsearch::Error will be thrown.
If you want your client to present its own certificate to the remote server, then use:
use Search::Elasticsearch;
use IO::Socket::SSL;
my $es = Search::Elasticsearch->new(
nodes => [
"https://node1.mydomain.com:9200",
"https://node2.mydomain.com:9200",
],
ssl_options => {
SSL_verify_mode => SSL_VERIFY_PEER,
SSL_use_cert => 1,
SSL_ca_file => '/path/to/cacert.pem',
SSL_cert_file => '/path/to/client.pem',
SSL_key_file => '/path/to/client.pem',
}
);
METHODS
perform_request()
($status,$body) = $self->perform_request({
# required
method => 'GET|HEAD|POST|PUT|DELETE',
path => '/path/of/request',
qs => \%query_string_params,
# optional
data => $body_as_string,
mime_type => 'application/json',
timeout => $timeout
});
Sends the request to the associated Elasticsearch node and returns a $status code and the decoded
response $body, or throws an error if the request failed.
Inherited methods
From Search::Elasticsearch::Role::Cxn
• scheme()
• is_https()
• userinfo()
• default_headers()
• max_content_length()
• build_uri()
• host()
• port()
• uri()
• is_dead()
• is_live()
• next_ping()
• ping_failures()
• mark_dead()
• mark_live()
• force_ping()
• pings_ok()
• sniff()
• process_response()
SEE ALSO
• Search::Elasticsearch::Role::Cxn
• Search::Elasticsearch::Cxn::LWP
• Search::Elasticsearch::Cxn::NetCurl
AUTHOR
Enrico Zimuel <enrico.zimuel@elastic.co>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2024 by Elasticsearch BV.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004
perl v5.38.2 2024-02-04 Search::Elastic...::Cxn::HTTPTiny(3pm)