/// <summary>
 ///     Multi-user Constructor for use with IVimeoClientFactory
 /// </summary>
 /// <param name="authClientFactory">The IAuthorizationClientFactory</param>
 /// <param name="apiRequestFactory">The IApiRequestFactory</param>
 /// <param name="clientId">ClientId</param>
 /// <param name="clientSecret">ClientSecret</param>
 internal VimeoClient(IAuthorizationClientFactory authClientFactory, IApiRequestFactory apiRequestFactory,
                      string clientId, string clientSecret)
     : this(clientId, clientSecret)
 {
     AuthClientFactory = authClientFactory;
     ApiRequestFactory = apiRequestFactory;
 }
예제 #2
0
 /// <summary>
 ///     Multi-user Constructor for use with IVimeoClientFactory
 /// </summary>
 /// <param name="authClientFactory">The IAuthorizationClientFactory</param>
 /// <param name="apiRequestFactory">The IApiRequestFactory</param>
 internal VimeoClient(IAuthorizationClientFactory authClientFactory, IApiRequestFactory apiRequestFactory,
     string clientId, string clientSecret)
     : this(clientId, clientSecret)
 {
     _authClientFactory = authClientFactory;
     _apiRequestFactory = apiRequestFactory;
 }
 /// <summary>
 ///     Single-user Constructor for use with IVimeoClientFactory
 /// </summary>
 /// <param name="authClientFactory">The IAuthorizationClientFactory</param>
 /// <param name="apiRequestFactory">The IApiRequestFactory</param>
 /// <param name="accessToken">AccessToken</param>
 internal VimeoClient(IAuthorizationClientFactory authClientFactory, IApiRequestFactory apiRequestFactory,
                      string accessToken)
     : this(accessToken)
 {
     AuthClientFactory = authClientFactory;
     ApiRequestFactory = apiRequestFactory;
 }
예제 #4
0
 public LogsApi(string apiKey, IApiRequestFactory apiRequestFactory)
 {
     _apiKey             = apiKey;
     _apiRequestFactory  = apiRequestFactory;
     _logsIntakeEndpoint = _apiRequestFactory.GetEndpoint(LogIntakePath);
     Log.Debug("Using logs intake endpoint {LogsIntakeEndpoint}", _logsIntakeEndpoint.ToString());
 }
예제 #5
0
 public Api(Uri baseEndpoint, IApiRequestFactory apiRequestFactory, IDogStatsd statsd)
 {
     Log.Debug("Creating new Api");
     _tracesEndpoint    = new Uri(baseEndpoint, TracesPath);
     _statsd            = statsd;
     _containerId       = ContainerMetadata.GetContainerId();
     _apiRequestFactory = apiRequestFactory ?? CreateRequestFactory();
 }
 private VimeoClient()
 {
     AuthClientFactory  = new AuthorizationClientFactory();
     ApiRequestFactory  = new ApiRequestFactory();
     RateLimit          = 0;
     RateLimitRemaining = 0;
     RateLimitReset     = DateTime.UtcNow;
 }
예제 #7
0
        public LogsApi(Uri baseEndpoint, string apiKey, IApiRequestFactory apiRequestFactory)
        {
            var builder = new UriBuilder(baseEndpoint);

            builder.Path = builder.Path.EndsWith("/")
                               ? builder.Path + LogIntakePath
                               : builder.Path + "/" + LogIntakePath;

            _logsIntakeEndpoint = builder.Uri;
            _apiKey             = apiKey;
            _apiRequestFactory  = apiRequestFactory;
        }
예제 #8
0
 public Api(
     IApiRequestFactory apiRequestFactory,
     IDogStatsd statsd,
     Action <Dictionary <string, float> > updateSampleRates,
     bool isPartialFlushEnabled,
     IDatadogLogger log = null)
 {
     // optionally injecting a log instance in here for testing purposes
     _log = log ?? StaticLog;
     _log.Debug("Creating new Api");
     _updateSampleRates     = updateSampleRates;
     _statsd                = statsd;
     _containerId           = ContainerMetadata.GetContainerId();
     _apiRequestFactory     = apiRequestFactory;
     _isPartialFlushEnabled = isPartialFlushEnabled;
     _tracesEndpoint        = _apiRequestFactory.GetEndpoint(TracesPath);
     _log.Debug("Using traces endpoint {TracesEndpoint}", _tracesEndpoint.ToString());
 }
        private IApiRequestFactory GetRequestFactory(ImmutableTracerSettings settings)
        {
            IApiRequestFactory factory          = null;
            TimeSpan           agentlessTimeout = TimeSpan.FromSeconds(15);

#if NETCOREAPP
            Log.Information("Using {FactoryType} for trace transport.", nameof(HttpClientRequestFactory));
            factory = new HttpClientRequestFactory(settings.ExporterSettings.AgentUri, AgentHttpHeaderNames.DefaultHeaders, timeout: agentlessTimeout);
#else
            Log.Information("Using {FactoryType} for trace transport.", nameof(ApiWebRequestFactory));
            factory = new ApiWebRequestFactory(settings.ExporterSettings.AgentUri, AgentHttpHeaderNames.DefaultHeaders, timeout: agentlessTimeout);
#endif

            if (!string.IsNullOrWhiteSpace(_settings.ProxyHttps))
            {
                var proxyHttpsUriBuilder = new UriBuilder(_settings.ProxyHttps);

                var userName = proxyHttpsUriBuilder.UserName;
                var password = proxyHttpsUriBuilder.Password;

                proxyHttpsUriBuilder.UserName = string.Empty;
                proxyHttpsUriBuilder.Password = string.Empty;

                if (proxyHttpsUriBuilder.Scheme == "https")
                {
                    // HTTPS proxy is not supported by .NET BCL
                    Log.Error($"HTTPS proxy is not supported. ({proxyHttpsUriBuilder})");
                    return(factory);
                }

                NetworkCredential credential = null;
                if (!string.IsNullOrWhiteSpace(userName))
                {
                    credential = new NetworkCredential(userName, password);
                }

                Log.Information("Setting proxy to: {ProxyHttps}", proxyHttpsUriBuilder.Uri.ToString());
                factory.SetProxy(new WebProxy(proxyHttpsUriBuilder.Uri, true, _settings.ProxyNoProxy, credential), credential);
            }

            return(factory);
        }
예제 #10
0
        public Api(Uri baseEndpoint, IApiRequestFactory apiRequestFactory, IStatsd statsd)
        {
            Log.Debug("Creating new Api");

            _tracesEndpoint    = new Uri(baseEndpoint, TracesPath);
            _statsd            = statsd;
            _containerId       = ContainerMetadata.GetContainerId();
            _apiRequestFactory = apiRequestFactory ?? new ApiWebRequestFactory();

            // report runtime details
            try
            {
                _frameworkDescription = FrameworkDescription.Create();

                if (_frameworkDescription != null)
                {
                    Log.Information(_frameworkDescription.ToString());
                }
            }
            catch (Exception e)
            {
                Log.SafeLogError(e, "Error getting framework description");
            }
        }
예제 #11
0
 public CIWriterHttpSender(IApiRequestFactory apiRequestFactory)
 {
     _apiRequestFactory = apiRequestFactory;
     _globalSettings    = GlobalSettings.FromDefaultSources();
     Log.Information("CIWriterHttpSender Initialized.");
 }
예제 #12
0
 public VimeoClientFactory()
 {
     _authClientFactory = new AuthorizationClientFactory();
     _apiRequestFactory = new ApiRequestFactory();
 }
예제 #13
0
 /// <summary>
 ///     IOC Constructor for use with IVimeoClientFactory
 /// </summary>
 /// <param name="authClientFactory">The IAuthorizationClientFactory</param>
 /// <param name="apiRequestFactory">The IApiRequestFactory</param>
 public VimeoClientFactory(IAuthorizationClientFactory authClientFactory, IApiRequestFactory apiRequestFactory)
 {
     _authClientFactory = authClientFactory;
     _apiRequestFactory = apiRequestFactory;
 }
예제 #14
0
 /// <summary>
 /// Create new Vimeo client factory
 /// </summary>
 public VimeoClientFactory()
 {
     AuthClientFactory = new AuthorizationClientFactory();
     ApiRequestFactory = new ApiRequestFactory();
 }
 public JsonTelemetryTransport(IApiRequestFactory requestFactory)
 {
     _requestFactory = requestFactory;
     _endpoint       = _requestFactory.GetEndpoint(TelemetryConstants.TelemetryPath);
 }
예제 #16
0
 /// <summary>
 /// IOC Constructor for use with IVimeoClientFactory
 /// </summary>
 /// <param name="authClientFactory">The IAuthorizationClientFactory</param>
 /// <param name="apiRequestFactory">The IApiRequestFactory</param>
 public VimeoClientFactory(IAuthorizationClientFactory authClientFactory, IApiRequestFactory apiRequestFactory)
 {
     AuthClientFactory = authClientFactory;
     ApiRequestFactory = apiRequestFactory;
 }
예제 #17
0
 /// <summary>
 ///     Single-user Constructor for use with IVimeoClientFactory
 /// </summary>
 /// <param name="authClientFactory">The IAuthorizationClientFactory</param>
 /// <param name="apiRequestFactory">The IApiRequestFactory</param>
 internal VimeoClient(IAuthorizationClientFactory authClientFactory, IApiRequestFactory apiRequestFactory,
     string accessToken)
     : this(accessToken)
 {
     _authClientFactory = authClientFactory;
     _apiRequestFactory = apiRequestFactory;
 }
예제 #18
0
 protected VimeoClient()
 {
     _authClientFactory = new AuthorizationClientFactory();
     _apiRequestFactory = new ApiRequestFactory();
 }
예제 #19
0
 protected VimeoClient()
 {
     _authClientFactory = new AuthorizationClientFactory();
     _apiRequestFactory = new ApiRequestFactory();
 }
예제 #20
0
 public Api(Uri baseEndpoint, IApiRequestFactory apiRequestFactory, IDogStatsd statsd)
     : this(baseEndpoint, apiRequestFactory, statsd, tracer : null)
 {
 }