package com.airlock.iam.oauth2.domain.model.settings;

import com.airlock.iam.oauth2.api.domain.model.OAuth2Scope;
import com.airlock.iam.oauth2.application.configuration.scopepolicy.ScopePolicyConfig;
import com.airlock.iam.oauth2.domain.model.PkceCodeChallengeMethod;
import java.util.Set;

public interface OAuth2OidcAuthorizationCodeGrantSettings {
   boolean isRequireRedirectUri();

   ScopePolicyConfig getScopePolicy();

   Set<OAuth2Scope> getAlwaysGrantedScopes();

   PkceCodeChallengeMethod getPkceCodeChallengeMethod();

   boolean isLogOnInfo();

   boolean isAllowEmptyScope();

   int getAuthorizationCodeExpiresIn();

   OAuth2ApplicationFlowSelectionSettings getFlowSelectionSettings();

   boolean isPushedAuthorizationRequestsEnabled();

   boolean isPushedAuthorizationRequestsRequired();
}
