package mousio.etcd4j.responses;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Date;
import static mousio.etcd4j.EtcdUtil.convertDate;
/**
* Etcd Self Stats response
*/
@JsonIgnoreProperties( ignoreUnknown = true )
public class EtcdSelfStatsResponse implements EtcdResponse {
// The json
public static final EtcdResponseDecoder<EtcdSelfStatsResponse> DECODER =
EtcdResponseDecoders.json(EtcdSelfStatsResponse.class);
private final String id;
private final String name;
private final long recvAppendRequestCnt;
private final double recvBandwidthRate;
private final double recvPkgRate;
private final long sendAppendRequestCnt;
private final Date startTime;
private final String state;
private final LeaderInfo leaderInfo;
EtcdSelfStatsResponse(
@JsonProperty("id") String id,
@JsonProperty("name") String name,
@JsonProperty("recvAppendRequestCnt") long recvAppendRequestCnt,
@JsonProperty("recvBandwidthRate") double recvBandwidthRate,
@JsonProperty("recvPkgRate") double recvPkgRate,
@JsonProperty("sendAppendRequestCnt") long sendAppendRequestCnt,
@JsonProperty("startTime") String startTime,
@JsonProperty("state") String state,
@JsonProperty("leaderInfo") LeaderInfo leaderInfo) {
this.id = id;
this.name = name;
this.recvAppendRequestCnt = recvAppendRequestCnt;
this.recvBandwidthRate = recvBandwidthRate;
this.recvPkgRate = recvPkgRate;
this.sendAppendRequestCnt = sendAppendRequestCnt;
this.state = state;
this.leaderInfo = leaderInfo;
this.startTime = convertDate(startTime);
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public long getRecvAppendRequestCnt() {
return recvAppendRequestCnt;
}
public double getRecvBandwidthRate() {
return recvBandwidthRate;
}
public double getRecvPkgRate() {
return recvPkgRate;
}
public long getSendAppendRequestCnt() {
return sendAppendRequestCnt;
}
public Date getStartTime() {
return startTime;
}
public String getState() {
return state;
}
public LeaderInfo getLeaderInfo() {
return leaderInfo;
}
@JsonIgnoreProperties( ignoreUnknown = true )
public static class LeaderInfo {
private final String leader;
private final Date startTime;
private final String uptime;
LeaderInfo(
@JsonProperty("leader") String leader,
@JsonProperty("startTime") String startTime,
@JsonProperty("uptime") String uptime) {
this.leader = leader;
this.uptime = uptime;
this.startTime = convertDate(startTime);
}
public String getLeader() {
return leader;
}
public Date getStartTime() {
return startTime;
}
public String getUptime() {
return uptime;
}
}
}