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

public enum OAuth2Param {
   RESPONSE_TYPE("response_type"),
   RESPONSE_MODE("response_mode"),
   NONCE("nonce"),
   CLIENT_ID("client_id"),
   REDIRECT_URI("redirect_uri"),
   CLIENT_SECRET("client_secret"),
   SCOPE("scope"),
   STATE("state"),
   GRANT_TYPE("grant_type"),
   AUTHZ_CODE("code"),
   ACCESS_TOKEN("access_token"),
   ID_TOKEN("id_token"),
   REFRESH_TOKEN("refresh_token"),
   TOKEN_TYPE("token_type"),
   ERROR("error"),
   ERROR_DESCRIPTION("error_description"),
   ERROR_URI("error_uri"),
   PKCE_CODE_CHALLENGE("code_challenge"),
   PKCE_CODE_CHALLENGE_METHOD("code_challenge_method"),
   PKCE_CODE_VERIFIER("code_verifier"),
   SESSION_STATE("session_state"),
   REQUEST_URI("request_uri"),
   EXPIRES_IN("expires_in"),
   CLIENT_ASSERTION_TYPE("client_assertion_type"),
   CLIENT_ASSERTION("client_assertion");

   private final String parameterName;

   OAuth2Param(String value) {
      this.parameterName = value;
   }

   public String getParameterName() {
      return this.parameterName;
   }
}
