class GoogleStorageSession extends HttpSession<Storage> {

    @Override
    public Storage connect(final Proxy proxy, final HostKeyCallback key, final LoginCallback prompt) {
        final HttpClientBuilder configuration = builder.build(proxy, this, prompt);
        authorizationService = new OAuth2RequestInterceptor(configuration.build(), host.getProtocol())
            .withRedirectUri(host.getProtocol().getOAuthRedirectUrl());
        configuration.addInterceptorLast(authorizationService);
        configuration.setServiceUnavailableRetryStrategy(new OAuth2ErrorResponseInterceptor(host, authorizationService, prompt));
        this.transport = new ApacheHttpTransport(configuration.build());
        final UseragentProvider ua = new PreferencesUseragentProvider();
        return new Storage.Builder(transport, new JacksonFactory(), new UserAgentHttpRequestInitializer(ua))
            .setApplicationName(ua.get())
            .build();
    }

    public  GoogleStorageSession(final Host host, final X509TrustManager trust, final X509KeyManager key);

}