package com.dbg.cloud.acheron.routing;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.ToString;
import java.util.Date;
import java.util.Set;
public interface Route {
String getId();
Set<String> getHttpMethods();
String getPath();
String getServiceId();
String getUrl();
boolean isKeepPrefix();
boolean isRetryable();
boolean isOverrideSensitiveHeaders();
Set<String> getSensitiveHeaders();
Date getCreatedAt();
@AllArgsConstructor
@Getter
@ToString
final class Smart implements Route {
private final String id;
private final Set<String> httpMethods;
private final String path;
private final String serviceId;
private final String url;
private final boolean keepPrefix;
private final boolean retryable;
private final boolean overrideSensitiveHeaders;
private final Set<String> sensitiveHeaders;
private final Date createdAt;
}
@AllArgsConstructor
@Getter
@ToString
final class ForCreation implements Route {
private final String id;
private final Set<String> httpMethods;
private final String path;
private final String serviceId;
private final String url;
private final boolean keepPrefix;
private final boolean retryable;
private final boolean overrideSensitiveHeaders;
private final Set<String> sensitiveHeaders;
// already set
private final Date createdAt = new Date();
}
}