package com.hubspot.singularity; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.Optional; public enum LoadBalancerRequestType { ADD, REMOVE, DEPLOY, DELETE; public static class LoadBalancerRequestId { private final String id; private final LoadBalancerRequestType requestType; private final int attemptNumber; @JsonCreator public LoadBalancerRequestId(@JsonProperty("id") String id, @JsonProperty("requestType") LoadBalancerRequestType requestType, @JsonProperty("attemptNumber") Optional<Integer> attemptNumber) { this.id = id; this.requestType = requestType; this.attemptNumber = attemptNumber.or(1); } @Override public String toString() { return String.format("%s-%s-%s", id, requestType, attemptNumber); } public String getId() { return id; } public LoadBalancerRequestType getRequestType() { return requestType; } public int getAttemptNumber() { return attemptNumber; } } }