/// <summary>
        /// Create a new connector.
        /// </summary>
        /// <param name="connectorMetadata">Configuration parameters for the connector.</param>
        /// <param name="connectorName">Name of the connector to create</param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task <HttpResponseMessage> PostConnectorAsync(ConnectorMetadata connectorMetadata, string connectorName, CancellationToken cancellationToken = default)
        {
            if (connectorMetadata == null)
            {
                throw new ArgumentNullException(nameof(connectorMetadata));
            }
            if (string.IsNullOrWhiteSpace(connectorName))
            {
                throw new ArgumentException("Cannot be null, empty, or contain only whitespace.", nameof(connectorName));
            }

            using var httpClient = httpClientFactory.CreateClient();

            var connector = new Connector
            {
                Name   = connectorName,
                Config = connectorMetadata.Properties
            };

            var httpRequestMessage = CreateHttpRequestMessage(connector, HttpMethod.Post, @"/connectors");

            httpClient.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue(MediaType));

            var httpResponseMessage = await httpClient.SendAsync(httpRequestMessage, cancellationToken)
                                      .ConfigureAwait(false);

            return(httpResponseMessage);
        }
Esempio n. 2
0
 protected virtual HttpClient OnCreateHttpClient()
 {
     return(httpClientFactory.CreateClient());
 }