package com.airlock.iam.saml2.domain.model;

import com.google.common.collect.MoreCollectors;
import java.util.Arrays;

public enum Saml2Binding {
   HTTP_REDIRECT_BINDING("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"),
   HTTP_ARTIFACT_BINDING("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"),
   HTTP_POST_BINDING("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"),
   SOAP_BINDING("urn:oasis:names:tc:SAML:2.0:bindings:SOAP");

   private final String value;

   Saml2Binding(String value) {
      this.value = value;
   }

   public String value() {
      return this.value;
   }

   public static Saml2Binding forValue(String inputValue) {
      return Arrays.stream(values()).filter(binding -> binding.value().equals(inputValue)).collect(MoreCollectors.onlyElement());
   }

   @Override
   public String toString() {
      return this.value;
   }
}
