class ConfigurationRequest extends
        BaseRequest<ProviderConfiguration, AuthorizationException> {

    @WorkerThread
    @Override
    public ProviderConfiguration executeRequest(OktaHttpClient client)
            throws AuthorizationException {
        AuthorizationException exception = null;
        HttpResponse response = null;
        try {
            response = openConnection(client);

            JSONObject json = response.asJson();
            ProviderConfiguration configuration = new Gson()
                    .fromJson(json.toString(), ProviderConfiguration.class);
            configuration.validate(mIsOAuth2);
            return configuration;
        } catch (IOException ex) {
            exception = new AuthorizationException(ex.getMessage(), ex);
        } catch (JSONException ex) {
            exception = AuthorizationException.fromTemplate(
                    AuthorizationException.GeneralErrors.JSON_DESERIALIZATION_ERROR,
                    ex);
        } catch (IllegalArgumentException ex) {
            exception = AuthorizationException.fromTemplate(
                    AuthorizationException.GeneralErrors.INVALID_DISCOVERY_DOCUMENT,
                    ex);
        } catch (Exception e) {
            exception = new AuthorizationException(e.getMessage(), e);
        } finally {
            if (response != null) {
                response.disconnect();
            }
            if (exception != null) {
                throw exception;
            }
        }
        return null;
    }

      ConfigurationRequest(HttpRequestBuilder.Configuration b);

}