/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.camel.builder.endpoint.dsl;

import java.util.Map;
import javax.annotation.Generated;
import org.apache.camel.builder.EndpointConsumerBuilder;
import org.apache.camel.builder.EndpointProducerBuilder;
import org.apache.camel.builder.endpoint.AbstractEndpointBuilder;
import org.apache.camel.spi.HeaderFilterStrategy;

/**
 * Send requests to external HTTP servers using Apache HTTP Client 4.x.
 * 
 * Generated by camel build tools - do NOT edit this file!
 */
@Generated("org.apache.camel.maven.packaging.EndpointDslMojo")
public interface HttpEndpointBuilderFactory {


    /**
     * Builder for endpoint for the HTTP component.
     */
    public interface HttpEndpointBuilder extends EndpointProducerBuilder {
        default AdvancedHttpEndpointBuilder advanced() {
            return (AdvancedHttpEndpointBuilder) this;
        }
        /**
         * Determines whether or not the raw input stream from Servlet is cached
         * or not (Camel will read the stream into a in memory/overflow to file,
         * Stream caching) cache. By default Camel will cache the Servlet input
         * stream to support reading it multiple times to ensure it Camel can
         * retrieve all data from the stream. However you can set this option to
         * true when you for example need to access the raw stream, such as
         * streaming it directly to a file or other persistent store.
         * DefaultHttpBinding will copy the request input stream into a stream
         * cache and put it into message body if this option is false to support
         * reading the stream multiple times. If you use Servlet to bridge/proxy
         * an endpoint then consider enabling this option to improve
         * performance, in case you do not need to read the message payload
         * multiple times. The http producer will by default cache the response
         * body stream. If setting this option to true, then the producers will
         * not cache the response body stream but use the response stream as-is
         * as the message body.
         * 
         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
         * 
         * Default: false
         * Group: common
         * 
         * @param disableStreamCache the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder disableStreamCache(
                boolean disableStreamCache) {
            doSetProperty("disableStreamCache", disableStreamCache);
            return this;
        }
        /**
         * Determines whether or not the raw input stream from Servlet is cached
         * or not (Camel will read the stream into a in memory/overflow to file,
         * Stream caching) cache. By default Camel will cache the Servlet input
         * stream to support reading it multiple times to ensure it Camel can
         * retrieve all data from the stream. However you can set this option to
         * true when you for example need to access the raw stream, such as
         * streaming it directly to a file or other persistent store.
         * DefaultHttpBinding will copy the request input stream into a stream
         * cache and put it into message body if this option is false to support
         * reading the stream multiple times. If you use Servlet to bridge/proxy
         * an endpoint then consider enabling this option to improve
         * performance, in case you do not need to read the message payload
         * multiple times. The http producer will by default cache the response
         * body stream. If setting this option to true, then the producers will
         * not cache the response body stream but use the response stream as-is
         * as the message body.
         * 
         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
         * type.
         * 
         * Default: false
         * Group: common
         * 
         * @param disableStreamCache the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder disableStreamCache(String disableStreamCache) {
            doSetProperty("disableStreamCache", disableStreamCache);
            return this;
        }
        /**
         * To use a custom HeaderFilterStrategy to filter header to and from
         * Camel message.
         * 
         * The option is a:
         * &lt;code&gt;org.apache.camel.spi.HeaderFilterStrategy&lt;/code&gt;
         * type.
         * 
         * Group: common
         * 
         * @param headerFilterStrategy the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder headerFilterStrategy(
                HeaderFilterStrategy headerFilterStrategy) {
            doSetProperty("headerFilterStrategy", headerFilterStrategy);
            return this;
        }
        /**
         * To use a custom HeaderFilterStrategy to filter header to and from
         * Camel message.
         * 
         * The option will be converted to a
         * &lt;code&gt;org.apache.camel.spi.HeaderFilterStrategy&lt;/code&gt;
         * type.
         * 
         * Group: common
         * 
         * @param headerFilterStrategy the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder headerFilterStrategy(
                String headerFilterStrategy) {
            doSetProperty("headerFilterStrategy", headerFilterStrategy);
            return this;
        }
        /**
         * If the option is true, HttpProducer will ignore the Exchange.HTTP_URI
         * header, and use the endpoint's URI for request. You may also set the
         * option throwExceptionOnFailure to be false to let the HttpProducer
         * send all the fault response back.
         * 
         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
         * 
         * Default: false
         * Group: producer
         * 
         * @param bridgeEndpoint the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder bridgeEndpoint(boolean bridgeEndpoint) {
            doSetProperty("bridgeEndpoint", bridgeEndpoint);
            return this;
        }
        /**
         * If the option is true, HttpProducer will ignore the Exchange.HTTP_URI
         * header, and use the endpoint's URI for request. You may also set the
         * option throwExceptionOnFailure to be false to let the HttpProducer
         * send all the fault response back.
         * 
         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
         * type.
         * 
         * Default: false
         * Group: producer
         * 
         * @param bridgeEndpoint the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder bridgeEndpoint(String bridgeEndpoint) {
            doSetProperty("bridgeEndpoint", bridgeEndpoint);
            return this;
        }
        /**
         * If this option is false the Servlet will disable the HTTP streaming
         * and set the content-length header on the response.
         * 
         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
         * 
         * Default: true
         * Group: producer
         * 
         * @param chunked the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder chunked(boolean chunked) {
            doSetProperty("chunked", chunked);
            return this;
        }
        /**
         * If this option is false the Servlet will disable the HTTP streaming
         * and set the content-length header on the response.
         * 
         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
         * type.
         * 
         * Default: true
         * Group: producer
         * 
         * @param chunked the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder chunked(String chunked) {
            doSetProperty("chunked", chunked);
            return this;
        }
        /**
         * Whether to clear expired cookies before sending the HTTP request.
         * This ensures the cookies store does not keep growing by adding new
         * cookies which is newer removed when they are expired. If the
         * component has disabled cookie management then this option is disabled
         * too.
         * 
         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
         * 
         * Default: true
         * Group: producer
         * 
         * @param clearExpiredCookies the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder clearExpiredCookies(
                boolean clearExpiredCookies) {
            doSetProperty("clearExpiredCookies", clearExpiredCookies);
            return this;
        }
        /**
         * Whether to clear expired cookies before sending the HTTP request.
         * This ensures the cookies store does not keep growing by adding new
         * cookies which is newer removed when they are expired. If the
         * component has disabled cookie management then this option is disabled
         * too.
         * 
         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
         * type.
         * 
         * Default: true
         * Group: producer
         * 
         * @param clearExpiredCookies the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder clearExpiredCookies(
                String clearExpiredCookies) {
            doSetProperty("clearExpiredCookies", clearExpiredCookies);
            return this;
        }
        /**
         * Specifies whether a Connection Close header must be added to HTTP
         * Request. By default connectionClose is false.
         * 
         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
         * 
         * Default: false
         * Group: producer
         * 
         * @param connectionClose the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder connectionClose(boolean connectionClose) {
            doSetProperty("connectionClose", connectionClose);
            return this;
        }
        /**
         * Specifies whether a Connection Close header must be added to HTTP
         * Request. By default connectionClose is false.
         * 
         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
         * type.
         * 
         * Default: false
         * Group: producer
         * 
         * @param connectionClose the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder connectionClose(String connectionClose) {
            doSetProperty("connectionClose", connectionClose);
            return this;
        }
        /**
         * If this option is true then IN exchange headers will be copied to OUT
         * exchange headers according to copy strategy. Setting this to false,
         * allows to only include the headers from the HTTP response (not
         * propagating IN headers).
         * 
         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
         * 
         * Default: true
         * Group: producer
         * 
         * @param copyHeaders the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder copyHeaders(boolean copyHeaders) {
            doSetProperty("copyHeaders", copyHeaders);
            return this;
        }
        /**
         * If this option is true then IN exchange headers will be copied to OUT
         * exchange headers according to copy strategy. Setting this to false,
         * allows to only include the headers from the HTTP response (not
         * propagating IN headers).
         * 
         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
         * type.
         * 
         * Default: true
         * Group: producer
         * 
         * @param copyHeaders the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder copyHeaders(String copyHeaders) {
            doSetProperty("copyHeaders", copyHeaders);
            return this;
        }
        /**
         * To use custom host header for producer. When not set in query will be
         * ignored. When set will override host header derived from url.
         * 
         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
         * 
         * Group: producer
         * 
         * @param customHostHeader the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder customHostHeader(String customHostHeader) {
            doSetProperty("customHostHeader", customHostHeader);
            return this;
        }
        /**
         * Configure the HTTP method to use. The HttpMethod header cannot
         * override this option if set.
         * 
         * The option is a:
         * &lt;code&gt;org.apache.camel.http.common.HttpMethods&lt;/code&gt;
         * type.
         * 
         * Group: producer
         * 
         * @param httpMethod the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder httpMethod(HttpMethods httpMethod) {
            doSetProperty("httpMethod", httpMethod);
            return this;
        }
        /**
         * Configure the HTTP method to use. The HttpMethod header cannot
         * override this option if set.
         * 
         * The option will be converted to a
         * &lt;code&gt;org.apache.camel.http.common.HttpMethods&lt;/code&gt;
         * type.
         * 
         * Group: producer
         * 
         * @param httpMethod the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder httpMethod(String httpMethod) {
            doSetProperty("httpMethod", httpMethod);
            return this;
        }
        /**
         * If this option is true, The http producer won't read response body
         * and cache the input stream.
         * 
         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
         * 
         * Default: false
         * Group: producer
         * 
         * @param ignoreResponseBody the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder ignoreResponseBody(
                boolean ignoreResponseBody) {
            doSetProperty("ignoreResponseBody", ignoreResponseBody);
            return this;
        }
        /**
         * If this option is true, The http producer won't read response body
         * and cache the input stream.
         * 
         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
         * type.
         * 
         * Default: false
         * Group: producer
         * 
         * @param ignoreResponseBody the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder ignoreResponseBody(String ignoreResponseBody) {
            doSetProperty("ignoreResponseBody", ignoreResponseBody);
            return this;
        }
        /**
         * Whether the producer should be started lazy (on the first message).
         * By starting lazy you can use this to allow CamelContext and routes to
         * startup in situations where a producer may otherwise fail during
         * starting and cause the route to fail being started. By deferring this
         * startup to be lazy then the startup failure can be handled during
         * routing messages via Camel's routing error handlers. Beware that when
         * the first message is processed then creating and starting the
         * producer may take a little time and prolong the total processing time
         * of the processing.
         * 
         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
         * 
         * Default: false
         * Group: producer
         * 
         * @param lazyStartProducer the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder lazyStartProducer(boolean lazyStartProducer) {
            doSetProperty("lazyStartProducer", lazyStartProducer);
            return this;
        }
        /**
         * Whether the producer should be started lazy (on the first message).
         * By starting lazy you can use this to allow CamelContext and routes to
         * startup in situations where a producer may otherwise fail during
         * starting and cause the route to fail being started. By deferring this
         * startup to be lazy then the startup failure can be handled during
         * routing messages via Camel's routing error handlers. Beware that when
         * the first message is processed then creating and starting the
         * producer may take a little time and prolong the total processing time
         * of the processing.
         * 
         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
         * type.
         * 
         * Default: false
         * Group: producer
         * 
         * @param lazyStartProducer the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder lazyStartProducer(String lazyStartProducer) {
            doSetProperty("lazyStartProducer", lazyStartProducer);
            return this;
        }
        /**
         * If the option is true, HttpProducer will set the Host header to the
         * value contained in the current exchange Host header, useful in
         * reverse proxy applications where you want the Host header received by
         * the downstream server to reflect the URL called by the upstream
         * client, this allows applications which use the Host header to
         * generate accurate URL's for a proxied service.
         * 
         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
         * 
         * Default: false
         * Group: producer
         * 
         * @param preserveHostHeader the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder preserveHostHeader(
                boolean preserveHostHeader) {
            doSetProperty("preserveHostHeader", preserveHostHeader);
            return this;
        }
        /**
         * If the option is true, HttpProducer will set the Host header to the
         * value contained in the current exchange Host header, useful in
         * reverse proxy applications where you want the Host header received by
         * the downstream server to reflect the URL called by the upstream
         * client, this allows applications which use the Host header to
         * generate accurate URL's for a proxied service.
         * 
         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
         * type.
         * 
         * Default: false
         * Group: producer
         * 
         * @param preserveHostHeader the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder preserveHostHeader(String preserveHostHeader) {
            doSetProperty("preserveHostHeader", preserveHostHeader);
            return this;
        }
        /**
         * Option to disable throwing the HttpOperationFailedException in case
         * of failed responses from the remote server. This allows you to get
         * all responses regardless of the HTTP status code.
         * 
         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
         * 
         * Default: true
         * Group: producer
         * 
         * @param throwExceptionOnFailure the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder throwExceptionOnFailure(
                boolean throwExceptionOnFailure) {
            doSetProperty("throwExceptionOnFailure", throwExceptionOnFailure);
            return this;
        }
        /**
         * Option to disable throwing the HttpOperationFailedException in case
         * of failed responses from the remote server. This allows you to get
         * all responses regardless of the HTTP status code.
         * 
         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
         * type.
         * 
         * Default: true
         * Group: producer
         * 
         * @param throwExceptionOnFailure the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder throwExceptionOnFailure(
                String throwExceptionOnFailure) {
            doSetProperty("throwExceptionOnFailure", throwExceptionOnFailure);
            return this;
        }
        /**
         * If enabled and an Exchange failed processing on the consumer side,
         * and if the caused Exception was send back serialized in the response
         * as a application/x-java-serialized-object content type. On the
         * producer side the exception will be deserialized and thrown as is,
         * instead of the HttpOperationFailedException. The caused exception is
         * required to be serialized. This is by default turned off. If you
         * enable this then be aware that Java will deserialize the incoming
         * data from the request to Java and that can be a potential security
         * risk.
         * 
         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
         * 
         * Default: false
         * Group: producer
         * 
         * @param transferException the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder transferException(boolean transferException) {
            doSetProperty("transferException", transferException);
            return this;
        }
        /**
         * If enabled and an Exchange failed processing on the consumer side,
         * and if the caused Exception was send back serialized in the response
         * as a application/x-java-serialized-object content type. On the
         * producer side the exception will be deserialized and thrown as is,
         * instead of the HttpOperationFailedException. The caused exception is
         * required to be serialized. This is by default turned off. If you
         * enable this then be aware that Java will deserialize the incoming
         * data from the request to Java and that can be a potential security
         * risk.
         * 
         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
         * type.
         * 
         * Default: false
         * Group: producer
         * 
         * @param transferException the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder transferException(String transferException) {
            doSetProperty("transferException", transferException);
            return this;
        }
        /**
         * Proxy authentication domain to use with NTML.
         * 
         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
         * 
         * Group: proxy
         * 
         * @param proxyAuthDomain the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder proxyAuthDomain(String proxyAuthDomain) {
            doSetProperty("proxyAuthDomain", proxyAuthDomain);
            return this;
        }
        /**
         * Proxy authentication host.
         * 
         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
         * 
         * Group: proxy
         * 
         * @param proxyAuthHost the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder proxyAuthHost(String proxyAuthHost) {
            doSetProperty("proxyAuthHost", proxyAuthHost);
            return this;
        }
        /**
         * Proxy authentication method to use.
         * 
         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
         * 
         * Group: proxy
         * 
         * @param proxyAuthMethod the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder proxyAuthMethod(String proxyAuthMethod) {
            doSetProperty("proxyAuthMethod", proxyAuthMethod);
            return this;
        }
        /**
         * Proxy authentication domain (workstation name) to use with NTML.
         * 
         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
         * 
         * Group: proxy
         * 
         * @param proxyAuthNtHost the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder proxyAuthNtHost(String proxyAuthNtHost) {
            doSetProperty("proxyAuthNtHost", proxyAuthNtHost);
            return this;
        }
        /**
         * Proxy authentication password.
         * 
         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
         * 
         * Group: proxy
         * 
         * @param proxyAuthPassword the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder proxyAuthPassword(String proxyAuthPassword) {
            doSetProperty("proxyAuthPassword", proxyAuthPassword);
            return this;
        }
        /**
         * Proxy authentication port.
         * 
         * The option is a: &lt;code&gt;java.lang.Integer&lt;/code&gt; type.
         * 
         * Group: proxy
         * 
         * @param proxyAuthPort the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder proxyAuthPort(Integer proxyAuthPort) {
            doSetProperty("proxyAuthPort", proxyAuthPort);
            return this;
        }
        /**
         * Proxy authentication port.
         * 
         * The option will be converted to a
         * &lt;code&gt;java.lang.Integer&lt;/code&gt; type.
         * 
         * Group: proxy
         * 
         * @param proxyAuthPort the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder proxyAuthPort(String proxyAuthPort) {
            doSetProperty("proxyAuthPort", proxyAuthPort);
            return this;
        }
        /**
         * Proxy authentication scheme to use.
         * 
         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
         * 
         * Group: proxy
         * 
         * @param proxyAuthScheme the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder proxyAuthScheme(String proxyAuthScheme) {
            doSetProperty("proxyAuthScheme", proxyAuthScheme);
            return this;
        }
        /**
         * Proxy authentication username.
         * 
         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
         * 
         * Group: proxy
         * 
         * @param proxyAuthUsername the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder proxyAuthUsername(String proxyAuthUsername) {
            doSetProperty("proxyAuthUsername", proxyAuthUsername);
            return this;
        }
        /**
         * Proxy hostname to use.
         * 
         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
         * 
         * Group: proxy
         * 
         * @param proxyHost the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder proxyHost(String proxyHost) {
            doSetProperty("proxyHost", proxyHost);
            return this;
        }
        /**
         * Proxy port to use.
         * 
         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
         * 
         * Group: proxy
         * 
         * @param proxyPort the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder proxyPort(int proxyPort) {
            doSetProperty("proxyPort", proxyPort);
            return this;
        }
        /**
         * Proxy port to use.
         * 
         * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
         * 
         * Group: proxy
         * 
         * @param proxyPort the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder proxyPort(String proxyPort) {
            doSetProperty("proxyPort", proxyPort);
            return this;
        }
        /**
         * Authentication domain to use with NTML.
         * 
         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
         * 
         * Group: security
         * 
         * @param authDomain the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder authDomain(String authDomain) {
            doSetProperty("authDomain", authDomain);
            return this;
        }
        /**
         * If this option is true, camel-http sends preemptive basic
         * authentication to the server.
         * 
         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
         * 
         * Default: false
         * Group: security
         * 
         * @param authenticationPreemptive the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder authenticationPreemptive(
                boolean authenticationPreemptive) {
            doSetProperty("authenticationPreemptive", authenticationPreemptive);
            return this;
        }
        /**
         * If this option is true, camel-http sends preemptive basic
         * authentication to the server.
         * 
         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
         * type.
         * 
         * Default: false
         * Group: security
         * 
         * @param authenticationPreemptive the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder authenticationPreemptive(
                String authenticationPreemptive) {
            doSetProperty("authenticationPreemptive", authenticationPreemptive);
            return this;
        }
        /**
         * Authentication host to use with NTML.
         * 
         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
         * 
         * Group: security
         * 
         * @param authHost the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder authHost(String authHost) {
            doSetProperty("authHost", authHost);
            return this;
        }
        /**
         * Authentication methods allowed to use as a comma separated list of
         * values Basic, Digest or NTLM.
         * 
         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
         * 
         * Group: security
         * 
         * @param authMethod the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder authMethod(String authMethod) {
            doSetProperty("authMethod", authMethod);
            return this;
        }
        /**
         * Which authentication method to prioritize to use, either as Basic,
         * Digest or NTLM.
         * 
         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
         * 
         * Group: security
         * 
         * @param authMethodPriority the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder authMethodPriority(String authMethodPriority) {
            doSetProperty("authMethodPriority", authMethodPriority);
            return this;
        }
        /**
         * Authentication password.
         * 
         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
         * 
         * Group: security
         * 
         * @param authPassword the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder authPassword(String authPassword) {
            doSetProperty("authPassword", authPassword);
            return this;
        }
        /**
         * Authentication username.
         * 
         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
         * 
         * Group: security
         * 
         * @param authUsername the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder authUsername(String authUsername) {
            doSetProperty("authUsername", authUsername);
            return this;
        }
        /**
         * To configure security using SSLContextParameters. Important: Only one
         * instance of org.apache.camel.util.jsse.SSLContextParameters is
         * supported per HttpComponent. If you need to use 2 or more different
         * instances, you need to define a new HttpComponent per instance you
         * need.
         * 
         * The option is a:
         * &lt;code&gt;org.apache.camel.support.jsse.SSLContextParameters&lt;/code&gt; type.
         * 
         * Group: security
         * 
         * @param sslContextParameters the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder sslContextParameters(
                Object sslContextParameters) {
            doSetProperty("sslContextParameters", sslContextParameters);
            return this;
        }
        /**
         * To configure security using SSLContextParameters. Important: Only one
         * instance of org.apache.camel.util.jsse.SSLContextParameters is
         * supported per HttpComponent. If you need to use 2 or more different
         * instances, you need to define a new HttpComponent per instance you
         * need.
         * 
         * The option will be converted to a
         * &lt;code&gt;org.apache.camel.support.jsse.SSLContextParameters&lt;/code&gt; type.
         * 
         * Group: security
         * 
         * @param sslContextParameters the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder sslContextParameters(
                String sslContextParameters) {
            doSetProperty("sslContextParameters", sslContextParameters);
            return this;
        }
        /**
         * To use a custom X509HostnameVerifier such as DefaultHostnameVerifier
         * or NoopHostnameVerifier.
         * 
         * The option is a:
         * &lt;code&gt;javax.net.ssl.HostnameVerifier&lt;/code&gt; type.
         * 
         * Group: security
         * 
         * @param x509HostnameVerifier the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder x509HostnameVerifier(
                Object x509HostnameVerifier) {
            doSetProperty("x509HostnameVerifier", x509HostnameVerifier);
            return this;
        }
        /**
         * To use a custom X509HostnameVerifier such as DefaultHostnameVerifier
         * or NoopHostnameVerifier.
         * 
         * The option will be converted to a
         * &lt;code&gt;javax.net.ssl.HostnameVerifier&lt;/code&gt; type.
         * 
         * Group: security
         * 
         * @param x509HostnameVerifier the value to set
         * @return the dsl builder
         */
        default HttpEndpointBuilder x509HostnameVerifier(
                String x509HostnameVerifier) {
            doSetProperty("x509HostnameVerifier", x509HostnameVerifier);
            return this;
        }
    }

    /**
     * Advanced builder for endpoint for the HTTP component.
     */
    public interface AdvancedHttpEndpointBuilder
            extends
                EndpointProducerBuilder {
        default HttpEndpointBuilder basic() {
            return (HttpEndpointBuilder) this;
        }
        /**
         * To use a custom HttpBinding to control the mapping between Camel
         * message and HttpClient.
         * 
         * The option is a:
         * &lt;code&gt;org.apache.camel.http.common.HttpBinding&lt;/code&gt;
         * type.
         * 
         * Group: common (advanced)
         * 
         * @param httpBinding the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder httpBinding(Object httpBinding) {
            doSetProperty("httpBinding", httpBinding);
            return this;
        }
        /**
         * To use a custom HttpBinding to control the mapping between Camel
         * message and HttpClient.
         * 
         * The option will be converted to a
         * &lt;code&gt;org.apache.camel.http.common.HttpBinding&lt;/code&gt;
         * type.
         * 
         * Group: common (advanced)
         * 
         * @param httpBinding the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder httpBinding(String httpBinding) {
            doSetProperty("httpBinding", httpBinding);
            return this;
        }
        /**
         * Configure a cookie handler to maintain a HTTP session.
         * 
         * The option is a:
         * &lt;code&gt;org.apache.camel.http.base.cookie.CookieHandler&lt;/code&gt; type.
         * 
         * Group: producer (advanced)
         * 
         * @param cookieHandler the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder cookieHandler(Object cookieHandler) {
            doSetProperty("cookieHandler", cookieHandler);
            return this;
        }
        /**
         * Configure a cookie handler to maintain a HTTP session.
         * 
         * The option will be converted to a
         * &lt;code&gt;org.apache.camel.http.base.cookie.CookieHandler&lt;/code&gt; type.
         * 
         * Group: producer (advanced)
         * 
         * @param cookieHandler the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder cookieHandler(String cookieHandler) {
            doSetProperty("cookieHandler", cookieHandler);
            return this;
        }
        /**
         * To use a custom CookieStore. By default the BasicCookieStore is used
         * which is an in-memory only cookie store. Notice if
         * bridgeEndpoint=true then the cookie store is forced to be a noop
         * cookie store as cookie shouldn't be stored as we are just bridging
         * (eg acting as a proxy). If a cookieHandler is set then the cookie
         * store is also forced to be a noop cookie store as cookie handling is
         * then performed by the cookieHandler.
         * 
         * The option is a:
         * &lt;code&gt;org.apache.http.client.CookieStore&lt;/code&gt; type.
         * 
         * Group: producer (advanced)
         * 
         * @param cookieStore the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder cookieStore(Object cookieStore) {
            doSetProperty("cookieStore", cookieStore);
            return this;
        }
        /**
         * To use a custom CookieStore. By default the BasicCookieStore is used
         * which is an in-memory only cookie store. Notice if
         * bridgeEndpoint=true then the cookie store is forced to be a noop
         * cookie store as cookie shouldn't be stored as we are just bridging
         * (eg acting as a proxy). If a cookieHandler is set then the cookie
         * store is also forced to be a noop cookie store as cookie handling is
         * then performed by the cookieHandler.
         * 
         * The option will be converted to a
         * &lt;code&gt;org.apache.http.client.CookieStore&lt;/code&gt; type.
         * 
         * Group: producer (advanced)
         * 
         * @param cookieStore the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder cookieStore(String cookieStore) {
            doSetProperty("cookieStore", cookieStore);
            return this;
        }
        /**
         * Whether the HTTP DELETE should include the message body or not. By
         * default HTTP DELETE do not include any HTTP body. However in some
         * rare cases users may need to be able to include the message body.
         * 
         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
         * 
         * Default: false
         * Group: producer (advanced)
         * 
         * @param deleteWithBody the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder deleteWithBody(
                boolean deleteWithBody) {
            doSetProperty("deleteWithBody", deleteWithBody);
            return this;
        }
        /**
         * Whether the HTTP DELETE should include the message body or not. By
         * default HTTP DELETE do not include any HTTP body. However in some
         * rare cases users may need to be able to include the message body.
         * 
         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
         * type.
         * 
         * Default: false
         * Group: producer (advanced)
         * 
         * @param deleteWithBody the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder deleteWithBody(String deleteWithBody) {
            doSetProperty("deleteWithBody", deleteWithBody);
            return this;
        }
        /**
         * Whether the HTTP GET should include the message body or not. By
         * default HTTP GET do not include any HTTP body. However in some rare
         * cases users may need to be able to include the message body.
         * 
         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
         * 
         * Default: false
         * Group: producer (advanced)
         * 
         * @param getWithBody the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder getWithBody(boolean getWithBody) {
            doSetProperty("getWithBody", getWithBody);
            return this;
        }
        /**
         * Whether the HTTP GET should include the message body or not. By
         * default HTTP GET do not include any HTTP body. However in some rare
         * cases users may need to be able to include the message body.
         * 
         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
         * type.
         * 
         * Default: false
         * Group: producer (advanced)
         * 
         * @param getWithBody the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder getWithBody(String getWithBody) {
            doSetProperty("getWithBody", getWithBody);
            return this;
        }
        /**
         * The status codes which are considered a success response. The values
         * are inclusive. Multiple ranges can be defined, separated by comma,
         * e.g. 200-204,209,301-304. Each range must be a single number or
         * from-to with the dash included.
         * 
         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
         * 
         * Default: 200-299
         * Group: producer (advanced)
         * 
         * @param okStatusCodeRange the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder okStatusCodeRange(
                String okStatusCodeRange) {
            doSetProperty("okStatusCodeRange", okStatusCodeRange);
            return this;
        }
        /**
         * Whether to skip mapping all the Camel headers as HTTP request
         * headers. If there are no data from Camel headers needed to be
         * included in the HTTP request then this can avoid parsing overhead
         * with many object allocations for the JVM garbage collector.
         * 
         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
         * 
         * Default: false
         * Group: producer (advanced)
         * 
         * @param skipRequestHeaders the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder skipRequestHeaders(
                boolean skipRequestHeaders) {
            doSetProperty("skipRequestHeaders", skipRequestHeaders);
            return this;
        }
        /**
         * Whether to skip mapping all the Camel headers as HTTP request
         * headers. If there are no data from Camel headers needed to be
         * included in the HTTP request then this can avoid parsing overhead
         * with many object allocations for the JVM garbage collector.
         * 
         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
         * type.
         * 
         * Default: false
         * Group: producer (advanced)
         * 
         * @param skipRequestHeaders the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder skipRequestHeaders(
                String skipRequestHeaders) {
            doSetProperty("skipRequestHeaders", skipRequestHeaders);
            return this;
        }
        /**
         * Whether to skip mapping all the HTTP response headers to Camel
         * headers. If there are no data needed from HTTP headers then this can
         * avoid parsing overhead with many object allocations for the JVM
         * garbage collector.
         * 
         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
         * 
         * Default: false
         * Group: producer (advanced)
         * 
         * @param skipResponseHeaders the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder skipResponseHeaders(
                boolean skipResponseHeaders) {
            doSetProperty("skipResponseHeaders", skipResponseHeaders);
            return this;
        }
        /**
         * Whether to skip mapping all the HTTP response headers to Camel
         * headers. If there are no data needed from HTTP headers then this can
         * avoid parsing overhead with many object allocations for the JVM
         * garbage collector.
         * 
         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
         * type.
         * 
         * Default: false
         * Group: producer (advanced)
         * 
         * @param skipResponseHeaders the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder skipResponseHeaders(
                String skipResponseHeaders) {
            doSetProperty("skipResponseHeaders", skipResponseHeaders);
            return this;
        }
        /**
         * Provide access to the http client request parameters used on new
         * RequestConfig instances used by producers or consumers of this
         * endpoint.
         * 
         * The option is a:
         * &lt;code&gt;org.apache.http.impl.client.HttpClientBuilder&lt;/code&gt; type.
         * 
         * Group: advanced
         * 
         * @param clientBuilder the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder clientBuilder(Object clientBuilder) {
            doSetProperty("clientBuilder", clientBuilder);
            return this;
        }
        /**
         * Provide access to the http client request parameters used on new
         * RequestConfig instances used by producers or consumers of this
         * endpoint.
         * 
         * The option will be converted to a
         * &lt;code&gt;org.apache.http.impl.client.HttpClientBuilder&lt;/code&gt; type.
         * 
         * Group: advanced
         * 
         * @param clientBuilder the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder clientBuilder(String clientBuilder) {
            doSetProperty("clientBuilder", clientBuilder);
            return this;
        }
        /**
         * To use a custom HttpClientConnectionManager to manage connections.
         * 
         * The option is a:
         * &lt;code&gt;org.apache.http.conn.HttpClientConnectionManager&lt;/code&gt; type.
         * 
         * Group: advanced
         * 
         * @param clientConnectionManager the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder clientConnectionManager(
                Object clientConnectionManager) {
            doSetProperty("clientConnectionManager", clientConnectionManager);
            return this;
        }
        /**
         * To use a custom HttpClientConnectionManager to manage connections.
         * 
         * The option will be converted to a
         * &lt;code&gt;org.apache.http.conn.HttpClientConnectionManager&lt;/code&gt; type.
         * 
         * Group: advanced
         * 
         * @param clientConnectionManager the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder clientConnectionManager(
                String clientConnectionManager) {
            doSetProperty("clientConnectionManager", clientConnectionManager);
            return this;
        }
        /**
         * The maximum number of connections per route.
         * 
         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
         * 
         * Default: 20
         * Group: advanced
         * 
         * @param connectionsPerRoute the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder connectionsPerRoute(
                int connectionsPerRoute) {
            doSetProperty("connectionsPerRoute", connectionsPerRoute);
            return this;
        }
        /**
         * The maximum number of connections per route.
         * 
         * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
         * 
         * Default: 20
         * Group: advanced
         * 
         * @param connectionsPerRoute the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder connectionsPerRoute(
                String connectionsPerRoute) {
            doSetProperty("connectionsPerRoute", connectionsPerRoute);
            return this;
        }
        /**
         * Sets a custom HttpClient to be used by the producer.
         * 
         * The option is a:
         * &lt;code&gt;org.apache.http.client.HttpClient&lt;/code&gt; type.
         * 
         * Group: advanced
         * 
         * @param httpClient the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder httpClient(Object httpClient) {
            doSetProperty("httpClient", httpClient);
            return this;
        }
        /**
         * Sets a custom HttpClient to be used by the producer.
         * 
         * The option will be converted to a
         * &lt;code&gt;org.apache.http.client.HttpClient&lt;/code&gt; type.
         * 
         * Group: advanced
         * 
         * @param httpClient the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder httpClient(String httpClient) {
            doSetProperty("httpClient", httpClient);
            return this;
        }
        /**
         * Register a custom configuration strategy for new HttpClient instances
         * created by producers or consumers such as to configure authentication
         * mechanisms etc.
         * 
         * The option is a:
         * &lt;code&gt;org.apache.camel.component.http.HttpClientConfigurer&lt;/code&gt; type.
         * 
         * Group: advanced
         * 
         * @param httpClientConfigurer the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder httpClientConfigurer(
                Object httpClientConfigurer) {
            doSetProperty("httpClientConfigurer", httpClientConfigurer);
            return this;
        }
        /**
         * Register a custom configuration strategy for new HttpClient instances
         * created by producers or consumers such as to configure authentication
         * mechanisms etc.
         * 
         * The option will be converted to a
         * &lt;code&gt;org.apache.camel.component.http.HttpClientConfigurer&lt;/code&gt; type.
         * 
         * Group: advanced
         * 
         * @param httpClientConfigurer the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder httpClientConfigurer(
                String httpClientConfigurer) {
            doSetProperty("httpClientConfigurer", httpClientConfigurer);
            return this;
        }
        /**
         * To configure the HttpClient using the key/values from the Map.
         * 
         * The option is a: &lt;code&gt;java.util.Map&amp;lt;java.lang.String,
         * java.lang.Object&amp;gt;&lt;/code&gt; type.
         * The option is multivalued, and you can use the
         * httpClientOptions(String, Object) method to add a value (call the
         * method multiple times to set more values).
         * 
         * Group: advanced
         * 
         * @param key the option key
         * @param value the option value
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder httpClientOptions(
                String key,
                Object value) {
            doSetMultiValueProperty("httpClientOptions", "httpClient." + key, value);
            return this;
        }
        /**
         * To configure the HttpClient using the key/values from the Map.
         * 
         * The option is a: &lt;code&gt;java.util.Map&amp;lt;java.lang.String,
         * java.lang.Object&amp;gt;&lt;/code&gt; type.
         * The option is multivalued, and you can use the
         * httpClientOptions(String, Object) method to add a value (call the
         * method multiple times to set more values).
         * 
         * Group: advanced
         * 
         * @param values the values
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder httpClientOptions(Map values) {
            doSetMultiValueProperties("httpClientOptions", "httpClient.", values);
            return this;
        }
        /**
         * To use a custom HttpContext instance.
         * 
         * The option is a:
         * &lt;code&gt;org.apache.http.protocol.HttpContext&lt;/code&gt; type.
         * 
         * Group: advanced
         * 
         * @param httpContext the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder httpContext(Object httpContext) {
            doSetProperty("httpContext", httpContext);
            return this;
        }
        /**
         * To use a custom HttpContext instance.
         * 
         * The option will be converted to a
         * &lt;code&gt;org.apache.http.protocol.HttpContext&lt;/code&gt; type.
         * 
         * Group: advanced
         * 
         * @param httpContext the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder httpContext(String httpContext) {
            doSetProperty("httpContext", httpContext);
            return this;
        }
        /**
         * The maximum number of connections.
         * 
         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
         * 
         * Default: 200
         * Group: advanced
         * 
         * @param maxTotalConnections the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder maxTotalConnections(
                int maxTotalConnections) {
            doSetProperty("maxTotalConnections", maxTotalConnections);
            return this;
        }
        /**
         * The maximum number of connections.
         * 
         * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
         * 
         * Default: 200
         * Group: advanced
         * 
         * @param maxTotalConnections the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder maxTotalConnections(
                String maxTotalConnections) {
            doSetProperty("maxTotalConnections", maxTotalConnections);
            return this;
        }
        /**
         * To use System Properties as fallback for configuration.
         * 
         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
         * 
         * Default: false
         * Group: advanced
         * 
         * @param useSystemProperties the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder useSystemProperties(
                boolean useSystemProperties) {
            doSetProperty("useSystemProperties", useSystemProperties);
            return this;
        }
        /**
         * To use System Properties as fallback for configuration.
         * 
         * The option will be converted to a &lt;code&gt;boolean&lt;/code&gt;
         * type.
         * 
         * Default: false
         * Group: advanced
         * 
         * @param useSystemProperties the value to set
         * @return the dsl builder
         */
        default AdvancedHttpEndpointBuilder useSystemProperties(
                String useSystemProperties) {
            doSetProperty("useSystemProperties", useSystemProperties);
            return this;
        }
    }

    /**
     * Proxy enum for <code>org.apache.camel.http.common.HttpMethods</code>
     * enum.
     */
    enum HttpMethods {
        GET,
        POST,
        PUT,
        DELETE,
        HEAD,
        OPTIONS,
        TRACE,
        PATCH;
    }

    public interface HttpBuilders {
        /**
         * HTTP (camel-http)
         * Send requests to external HTTP servers using Apache HTTP Client 4.x.
         * 
         * Category: http
         * Since: 2.3
         * Maven coordinates: org.apache.camel:camel-http
         * 
         * Syntax: <code>http://httpUri</code>
         * 
         * Path parameter: httpUri (required)
         * The url of the HTTP endpoint to call.
         * 
         * @param path //httpUri
         * @return the dsl builder
         */
        default HttpEndpointBuilder http(String path) {
            return HttpEndpointBuilderFactory.endpointBuilder("http", path);
        }
        /**
         * HTTP (camel-http)
         * Send requests to external HTTP servers using Apache HTTP Client 4.x.
         * 
         * Category: http
         * Since: 2.3
         * Maven coordinates: org.apache.camel:camel-http
         * 
         * Syntax: <code>http://httpUri</code>
         * 
         * Path parameter: httpUri (required)
         * The url of the HTTP endpoint to call.
         * 
         * @param componentName to use a custom component name for the endpoint
         * instead of the default name
         * @param path //httpUri
         * @return the dsl builder
         */
        default HttpEndpointBuilder http(String componentName, String path) {
            return HttpEndpointBuilderFactory.endpointBuilder(componentName, path);
        }
        /**
         * HTTPS (Secure) (camel-http)
         * Send requests to external HTTP servers using Apache HTTP Client 4.x.
         * 
         * Category: http
         * Since: 2.3
         * Maven coordinates: org.apache.camel:camel-http
         * 
         * Syntax: <code>https://httpUri</code>
         * 
         * Path parameter: httpUri (required)
         * The url of the HTTP endpoint to call.
         * 
         * @param path //httpUri
         * @return the dsl builder
         */
        default HttpEndpointBuilder https(String path) {
            return HttpEndpointBuilderFactory.endpointBuilder("https", path);
        }
    }
    static HttpEndpointBuilder endpointBuilder(String componentName, String path) {
        class HttpEndpointBuilderImpl extends AbstractEndpointBuilder implements HttpEndpointBuilder, AdvancedHttpEndpointBuilder {
            public HttpEndpointBuilderImpl(String path) {
                super(componentName, path);
            }
        }
        return new HttpEndpointBuilderImpl(path);
    }
}