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

import com.airlock.iam.oauth2.domain.model.client.OAuth2GetRequestBuilder;
import com.airlock.iam.oauth2.domain.model.client.OAuth2RequestBuilder;
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 = "Plugin to build an HTTP GET request. The parameters (e.g. scope) will be transmitted as HTTP query parameters.",
   displayName = "OAuth 2.0 GET Request"
)
@PluginLicenseRestriction(moduleAffiliation = "OAuthClient")
public final class OAuth2GetRequestBuilderConfig implements OAuth2RequestBuilderConfig {
   @Override
   public OAuth2RequestBuilder logic() {
      return new OAuth2GetRequestBuilder();
   }

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

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

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

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