All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.orbitz.consul.model.agent.Registration Maven / Gradle / Ivy
package com.orbitz.consul.model.agent;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.util.Optional;
import org.immutables.value.Value;
import java.util.List;
import static com.google.common.base.Preconditions.checkState;
@Value.Immutable
@JsonSerialize(as = ImmutableRegistration.class)
@JsonDeserialize(as = ImmutableRegistration.class)
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public abstract class Registration {
@JsonProperty("Name")
public abstract String getName();
@JsonProperty("Id")
public abstract String getId();
@JsonProperty("Address")
public abstract Optional getAddress();
@JsonProperty("Port")
public abstract Optional getPort();
@JsonProperty("Check")
public abstract Optional getCheck();
@JsonProperty("Checks")
public abstract List getChecks();
@JsonProperty("Tags")
public abstract List getTags();
@JsonProperty("EnableTagOverride")
public abstract Optional getEnableTagOverride();
@Value.Immutable
@JsonSerialize(as = ImmutableRegCheck.class)
@JsonDeserialize(as = ImmutableRegCheck.class)
@JsonInclude(JsonInclude.Include.NON_NULL)
public abstract static class RegCheck {
@JsonProperty("Script")
public abstract Optional getScript();
@JsonProperty("Interval")
public abstract Optional getInterval();
@JsonProperty("TTL")
public abstract Optional getTtl();
@JsonProperty("HTTP")
public abstract Optional getHttp();
@JsonProperty("TCP")
public abstract Optional getTcp();
@JsonProperty("Timeout")
public abstract Optional getTimeout();
@JsonProperty("Notes")
public abstract Optional getNotes();
@JsonProperty("DeregisterCriticalServiceAfter")
public abstract Optional getDeregisterCriticalServiceAfter();
@JsonProperty("TLSSkipVerify")
public abstract Optional getTlsSkipVerify();
@JsonProperty("Status")
public abstract Optional getStatus();
public static RegCheck ttl(long ttl) {
return ImmutableRegCheck
.builder()
.ttl(String.format("%ss", ttl))
.build();
}
public static RegCheck script(String script, long interval) {
return ImmutableRegCheck
.builder()
.script(script)
.interval(String.format("%ss", interval))
.build();
}
public static RegCheck script(String script, long interval, long timeout) {
return ImmutableRegCheck
.builder()
.script(script)
.interval(String.format("%ss", interval))
.timeout(String.format("%ss", timeout))
.build();
}
public static RegCheck script(String script, long interval, long timeout, String notes) {
return ImmutableRegCheck
.builder()
.script(script)
.interval(String.format("%ss", interval))
.timeout(String.format("%ss", timeout))
.notes(notes)
.build();
}
public static RegCheck http(String http, long interval) {
return ImmutableRegCheck
.builder()
.http(http)
.interval(String.format("%ss", interval))
.build();
}
public static RegCheck http(String http, long interval, long timeout) {
return ImmutableRegCheck
.builder()
.http(http)
.interval(String.format("%ss", interval))
.timeout(String.format("%ss", timeout))
.build();
}
public static RegCheck http(String http, long interval, long timeout, String notes) {
return ImmutableRegCheck
.builder()
.http(http)
.interval(String.format("%ss", interval))
.timeout(String.format("%ss", timeout))
.notes(notes)
.build();
}
public static RegCheck tcp(String tcp, long interval) {
return ImmutableRegCheck
.builder()
.tcp(tcp)
.interval(String.format("%ss", interval))
.build();
}
public static RegCheck tcp(String tcp, long interval, long timeout) {
return ImmutableRegCheck
.builder()
.tcp(tcp)
.interval(String.format("%ss", interval))
.timeout(String.format("%ss", timeout))
.build();
}
public static RegCheck tcp(String tcp, long interval, long timeout, String notes) {
return ImmutableRegCheck
.builder()
.tcp(tcp)
.interval(String.format("%ss", interval))
.timeout(String.format("%ss", timeout))
.notes(notes)
.build();
}
@Value.Check
protected void validate() {
checkState(getHttp().isPresent() || getTtl().isPresent()
|| getScript().isPresent() || getTcp().isPresent(),
"Check must specify either http, tcp, ttl, or script");
if (getHttp().isPresent() || getScript().isPresent() || getTcp().isPresent()) {
checkState(getInterval().isPresent(),
"Interval must be set if check type is http, tcp or script");
}
}
}
}