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

import com.airlock.iam.flow.api.application.configuration.valueprovider.ValueMapProviderConfig;
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 = "Provides all context data of the OAuth 2.0 / OpenId Connect credential that may have been used for authentication. The credential contains all resources from the resource requests (in case of OpenID connect, additionally the ID Token resources), that were configured in the client settings.",
   displayName = "OAuth 2.0 Credential Context Data Map"
)
@PluginLicenseRestriction(moduleAffiliation = "OAuthClient")
public class OAuth2CredentialContextDataValueMapProviderConfig implements ValueMapProviderConfig {
   public static final String OAUTH2_CREDENTIAL_CONTEXT_DATA_MAP_PROVIDER_DISPLAY_NAME = "OAuth 2.0 Credential Context Data Map";

   @SuppressFBWarnings(justification = "generated code")
   public static OAuth2CredentialContextDataValueMapProviderConfig.OAuth2CredentialContextDataValueMapProviderConfigBuilder builder() {
      return new OAuth2CredentialContextDataValueMapProviderConfig.OAuth2CredentialContextDataValueMapProviderConfigBuilder();
   }

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

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

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