package Etcd::Error;
$Etcd::Error::VERSION = '0.004';
use namespace::autoclean;
use JSON qw(decode_json);
use Carp qw(longmess);
use Moo;
use Types::Standard qw(Str Int);
has error_code => ( is =>
a => Str, required => 1 );
sub new_from_http {
my ($class, $res) = @_;
my $data = decode_json($res->{content});
$class->new(%$data, trace => longmess());
}
use overload
q{""} => sub
ponse;
$Etcd::Response::VERSION = '0.004';
use namespace::autoclean;
use Etcd::Node;
use JSON qw(decode_json);
use Moo;
use Type::Utils qw(class_type);
use Types::Standard qw(Str Int);
has action
init_arg => 'prevNode' );
sub new_from_http {
my ($class, $res) = @_;
my $data = decode_json($res->{content});
my %headers;
@headers{qw(etcd_index raft_index raft_term)} = @{$res->{h
package Etcd::Stats;
$Etcd::Stats::VERSION = '0.004';
use namespace::autoclean;
use JSON qw(decode_json);
use Carp qw(croak);
use Moo::Role;
use Types::Standard qw(Str);
requires qw(version_prefix
eader|store|self", [%args])' if !defined $type || $type !~ m/^(?:leader|store|self)$/;
decode_json($self->api_exec($self->_stats_endpoint."/$type", 'GET', %args)->{content});
}
1;
__END__
=pod