package com.airlock.iam.oauth2.application.configuration;

import com.airlock.iam.plugin.api.annotation.config.Plugin;
import com.airlock.iam.plugin.api.annotation.license.PluginLicenseRestriction;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;

@Plugin(
   description = "Configures the contents of the \"<code>acr</code>\" (Authentication Context Class Reference) claim in the ID Token. The flow selection is configured in \"ACR to Flow Application ID Mapping\" plugin. If no flow could be determined by the requested ACRs, the ID Token will not have a ACR claim. Note that requesting ACR values is only supported using the \"<code>acr_values</code>\" claim, but not using the \"<code>claims</code>\" request parameter. ",
   displayName = "Flow Selection-based OIDC ID Token ACR Value"
)
@PluginLicenseRestriction(moduleAffiliation = "OAuthServer")
public final class OpenIdConnectDefaultAcrClaimConfig implements OpenIdConnectAcrClaimConfig {
   @SuppressFBWarnings(justification = "generated code")
   public static OpenIdConnectDefaultAcrClaimConfig.OpenIdConnectDefaultAcrClaimConfigBuilder builder() {
      return new OpenIdConnectDefaultAcrClaimConfig.OpenIdConnectDefaultAcrClaimConfigBuilder();
   }

   @SuppressFBWarnings(justification = "generated code")
   public static class OpenIdConnectDefaultAcrClaimConfigBuilder {
      @SuppressFBWarnings(justification = "generated code")
      OpenIdConnectDefaultAcrClaimConfigBuilder() {
      }

      @SuppressFBWarnings(justification = "generated code")
      public OpenIdConnectDefaultAcrClaimConfig build() {
         return new OpenIdConnectDefaultAcrClaimConfig();
      }

      @SuppressFBWarnings(justification = "generated code")
      @Override
      public String toString() {
         return "OpenIdConnectDefaultAcrClaimConfig.OpenIdConnectDefaultAcrClaimConfigBuilder()";
      }
   }
}
