protected TransportConfigurationBase(IConnectionPool connectionPool, IConnection connection, ITransportSerializer requestResponseSerializer, IProductRegistration productRegistration) { _connectionPool = connectionPool; _connection = connection ?? new HttpConnection(); _productRegistration = productRegistration ?? ProductRegistration.Default; var serializer = requestResponseSerializer ?? new LowLevelRequestResponseSerializer(); UseThisRequestResponseSerializer = new DiagnosticsSerializerProxy(serializer); _connectionLimit = TransportConfiguration.DefaultConnectionLimit; _requestTimeout = TransportConfiguration.DefaultTimeout; _dnsRefreshTimeout = TransportConfiguration.DefaultDnsRefreshTimeout; _memoryStreamFactory = TransportConfiguration.DefaultMemoryStreamFactory; _sniffOnConnectionFault = true; _sniffOnStartup = true; _sniffLifeSpan = TimeSpan.FromHours(1); _urlFormatter = new UrlFormatter(this); _statusCodeToResponseSuccess = (m, i) => HttpStatusCodeClassifier(m, i); _userAgent = Elastic.Transport.UserAgent.Create(_productRegistration.Name, _productRegistration.GetType()); if (connectionPool is CloudConnectionPool cloudPool) { _basicAuthCredentials = cloudPool.BasicCredentials; _apiKeyAuthCredentials = cloudPool.ApiKeyCredentials; _enableHttpCompression = true; } }
/// <summary> /// Api Key to send with all requests to Elasticsearch /// </summary> public T ApiKeyAuthentication(ApiKeyAuthenticationCredentials credentials) => Assign(credentials, (a, v) => a._apiKeyAuthCredentials = v);
/// <summary> /// Sets up the client to communicate to Elastic Cloud using <paramref name="cloudId"/>, /// <para><see cref="CloudConnectionPool"/> documentation for more information on how to obtain your Cloud Id</para> /// </summary> public TransportConfiguration(string cloudId, ApiKeyAuthenticationCredentials credentials) : this(new CloudConnectionPool(cloudId, credentials)) { }