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

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

@Plugin(displayName = "Technical Client Registration Settings", description = "Configuration of technical client registration flows.")
@PluginLicenseRestriction(moduleAffiliation = "TechClientRegistration")
public final class TechClientRegistrationRestConfig {
   @PluginProperty(description = "The default technical client registration flow.", optional = false)
   private TechClientRegFlowConfig defaultFlow;

   public TechClientRegFlowConfig getDefaultFlow() {
      return this.defaultFlow;
   }

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

   @SuppressFBWarnings(justification = "generated code")
   public TechClientRegistrationRestConfig() {
   }

   @SuppressFBWarnings(justification = "generated code")
   public TechClientRegistrationRestConfig(TechClientRegFlowConfig defaultFlow) {
      this.defaultFlow = defaultFlow;
   }

   @SuppressFBWarnings(justification = "generated code")
   public static class TechClientRegistrationRestConfigBuilder {
      @SuppressFBWarnings(justification = "generated code")
      private TechClientRegFlowConfig defaultFlow;

      @SuppressFBWarnings(justification = "generated code")
      TechClientRegistrationRestConfigBuilder() {
      }

      @SuppressFBWarnings(justification = "generated code")
      public TechClientRegistrationRestConfig.TechClientRegistrationRestConfigBuilder defaultFlow(TechClientRegFlowConfig defaultFlow) {
         this.defaultFlow = defaultFlow;
         return this;
      }

      @SuppressFBWarnings(justification = "generated code")
      public TechClientRegistrationRestConfig build() {
         return new TechClientRegistrationRestConfig(this.defaultFlow);
      }

      @SuppressFBWarnings(justification = "generated code")
      @Override
      public String toString() {
         return "TechClientRegistrationRestConfig.TechClientRegistrationRestConfigBuilder(defaultFlow=" + this.defaultFlow + ")";
      }
   }
}
