001
002package io.vrap.rmf.base.client.http;
003
004import java.util.Objects;
005
006import io.vrap.rmf.base.client.ApiHttpResponse;
007
008import dev.failsafe.RetryPolicyBuilder;
009
010/**
011 * Interface to enable the configuration of Failsafe instances
012 */
013@FunctionalInterface
014public interface FailsafeRetryPolicyBuilderOptions {
015    RetryPolicyBuilder<ApiHttpResponse<byte[]>> apply(RetryPolicyBuilder<ApiHttpResponse<byte[]>> options);
016
017    default FailsafeRetryPolicyBuilderOptions andThen(FailsafeRetryPolicyBuilderOptions after) {
018        Objects.requireNonNull(after);
019        return (t) -> after.apply(apply(t));
020    }
021}