001
002package io.vrap.rmf.base.client.http;
003
004import java.util.concurrent.ExecutorService;
005import java.util.concurrent.ScheduledExecutorService;
006
007import dev.failsafe.spi.Scheduler;
008
009/**
010 * Middleware to add an oauth authentication header to requests
011 */
012public interface OAuthMiddleware extends Middleware {
013
014    static OAuthMiddleware of(final ScheduledExecutorService executor, final OAuthHandler oAuthHandler) {
015        return new OAuthMiddlewareImpl(executor, oAuthHandler, 1, false);
016    }
017
018    static OAuthMiddleware of(final ExecutorService executor, final OAuthHandler oAuthHandler) {
019        return new OAuthMiddlewareImpl(executor, oAuthHandler, 1, false);
020    }
021
022    static OAuthMiddleware of(final Scheduler scheduler, final OAuthHandler oAuthHandler) {
023        return new OAuthMiddlewareImpl(scheduler, oAuthHandler, 1, false);
024    }
025
026    static OAuthMiddleware of(final OAuthHandler oAuthHandler) {
027        return new OAuthMiddlewareImpl(oAuthHandler, 1, false);
028    }
029
030    static OAuthMiddleware of(final ScheduledExecutorService executor, final OAuthHandler oauthHandler,
031            final int maxRetries) {
032        return new OAuthMiddlewareImpl(executor, oauthHandler, maxRetries, false);
033    }
034
035    static OAuthMiddleware of(final ExecutorService executor, final OAuthHandler oauthHandler, final int maxRetries) {
036        return new OAuthMiddlewareImpl(executor, oauthHandler, maxRetries, false);
037    }
038
039    static OAuthMiddleware of(final Scheduler scheduler, final OAuthHandler oauthHandler, final int maxRetries) {
040        return new OAuthMiddlewareImpl(scheduler, oauthHandler, maxRetries, false);
041    }
042
043    static OAuthMiddleware of(final OAuthHandler oauthHandler, final int maxRetries) {
044        return new OAuthMiddlewareImpl(oauthHandler, maxRetries, false);
045    }
046
047    static OAuthMiddleware of(final ScheduledExecutorService executor, final OAuthHandler oauthHandler,
048            final int maxRetries, final boolean useCircuitBreaker) {
049        return new OAuthMiddlewareImpl(executor, oauthHandler, maxRetries, useCircuitBreaker);
050    }
051
052    static OAuthMiddleware of(final ExecutorService executor, final OAuthHandler oauthHandler, final int maxRetries,
053            final boolean useCircuitBreaker) {
054        return new OAuthMiddlewareImpl(executor, oauthHandler, maxRetries, useCircuitBreaker);
055    }
056
057    static OAuthMiddleware of(final Scheduler scheduler, final OAuthHandler oauthHandler, final int maxRetries,
058            final boolean useCircuitBreaker) {
059        return new OAuthMiddlewareImpl(scheduler, oauthHandler, maxRetries, useCircuitBreaker);
060    }
061
062    static OAuthMiddleware of(final OAuthHandler oauthHandler, final int maxRetries, final boolean useCircuitBreaker) {
063        return new OAuthMiddlewareImpl(oauthHandler, maxRetries, useCircuitBreaker);
064    }
065}