Struct HttpTunnelBuilder

Source
pub struct HttpTunnelBuilder { /* private fields */ }
Expand description

A builder for a tunnel backing an HTTP endpoint.

https://ngrok.com/docs/http/

Implementations§

Source§

impl HttpTunnelBuilder

Source

pub fn allow_cidr(&mut self, cidr: impl Into<String>) -> &mut Self

Add the provided CIDR to the allowlist.

https://ngrok.com/docs/http/ip-restrictions/

Source

pub fn deny_cidr(&mut self, cidr: impl Into<String>) -> &mut Self

Add the provided CIDR to the denylist.

https://ngrok.com/docs/http/ip-restrictions/

Source

pub fn proxy_proto(&mut self, proxy_proto: ProxyProto) -> &mut Self

Sets the PROXY protocol version for connections over this tunnel.

Source

pub fn metadata(&mut self, metadata: impl Into<String>) -> &mut Self

Sets the opaque metadata string for this tunnel.

https://ngrok.com/docs/api/resources/tunnels/#tunnel-fields

Source

pub fn binding(&mut self, binding: impl Into<String>) -> &mut Self

Sets the ingress configuration for this endpoint.

Valid binding values are:

  • "public" - Publicly accessible endpoint
  • "internal" - Internal-only endpoint
  • "kubernetes" - Kubernetes cluster binding

If not specified, the ngrok service will use its default binding configuration.

§Panics

Panics if called more than once or if an invalid binding value is provided.

§Examples
let session = Session::builder().authtoken_from_env().connect().await?;

// Using string
let tunnel = session.http_endpoint().binding("internal").listen().await?;

// Using typed enum
use ngrok::config::Binding;
let tunnel = session.http_endpoint().binding(Binding::Public).listen().await?;
Source

pub fn forwards_to(&mut self, forwards_to: impl Into<String>) -> &mut Self

Sets the ForwardsTo string for this tunnel. This can be viewed via the API or dashboard.

This overrides the default process info if using TunnelBuilder::listen, and is in turn overridden by the url provided to ForwarderBuilder::listen_and_forward.

https://ngrok.com/docs/api/resources/tunnels/#tunnel-fields

Source

pub fn app_protocol(&mut self, app_protocol: impl Into<String>) -> &mut Self

Sets the L7 protocol for this tunnel.

Source

pub fn verify_upstream_tls(&mut self, verify_upstream_tls: bool) -> &mut Self

Disables backend TLS certificate verification for forwards from this tunnel.

Source

pub fn scheme(&mut self, scheme: Scheme) -> &mut Self

Sets the scheme for this edge.

Source

pub fn domain(&mut self, domain: impl Into<String>) -> &mut Self

Sets the domain to request for this edge.

https://ngrok.com/docs/network-edge/domains-and-tcp-addresses/#domains

Source

pub fn mutual_tlsca(&mut self, mutual_tlsca: Bytes) -> &mut Self

Adds a certificate in PEM format to use for mutual TLS authentication.

These will be used to authenticate client certificates for requests at the ngrok edge.

https://ngrok.com/docs/http/mutual-tls/

Source

pub fn compression(&mut self) -> &mut Self

Enables gzip compression.

https://ngrok.com/docs/http/compression/

Source

pub fn websocket_tcp_conversion(&mut self) -> &mut Self

Enables the websocket-to-tcp converter.

https://ngrok.com/docs/http/websocket-tcp-converter/

Source

pub fn circuit_breaker(&mut self, circuit_breaker: f64) -> &mut Self

Sets the 5XX response ratio at which the ngrok edge will stop sending requests to this tunnel.

https://ngrok.com/docs/http/circuit-breaker/

Source

pub fn host_header_rewrite(&mut self, rewrite: bool) -> &mut Self

Automatically rewrite the host header to the one in the provided URL when calling ForwarderBuilder::listen_and_forward. Does nothing if using TunnelBuilder::listen. Defaults to false.

If you need to set the host header to a specific value, use cfg.request_header("host", "some.host.com") instead.

Source

pub fn request_header( &mut self, name: impl Into<String>, value: impl Into<String>, ) -> &mut Self

Adds a header to all requests to this edge.

https://ngrok.com/docs/http/request-headers/

Source

pub fn response_header( &mut self, name: impl Into<String>, value: impl Into<String>, ) -> &mut Self

Adds a header to all responses coming from this edge.

https://ngrok.com/docs/http/response-headers/

Source

pub fn remove_request_header(&mut self, name: impl Into<String>) -> &mut Self

Removes a header from requests to this edge.

https://ngrok.com/docs/http/request-headers/

Source

pub fn remove_response_header(&mut self, name: impl Into<String>) -> &mut Self

Removes a header from responses from this edge.

https://ngrok.com/docs/http/response-headers/

Source

pub fn basic_auth( &mut self, username: impl Into<String>, password: impl Into<String>, ) -> &mut Self

Adds the provided credentials to the list of basic authentication credentials.

https://ngrok.com/docs/http/basic-auth/

Source

pub fn oauth(&mut self, oauth: impl Borrow<OauthOptions>) -> &mut Self

Set the OAuth configuraton for this edge.

https://ngrok.com/docs/http/oauth/

Source

pub fn oidc(&mut self, oidc: impl Borrow<OidcOptions>) -> &mut Self

Set the OIDC configuration for this edge.

https://ngrok.com/docs/http/openid-connect/

Source

pub fn webhook_verification( &mut self, provider: impl Into<String>, secret: impl Into<String>, ) -> &mut Self

Configures webhook verification for this edge.

https://ngrok.com/docs/http/webhook-verification/

Source

pub fn allow_user_agent(&mut self, regex: impl Into<String>) -> &mut Self

Add the provided regex to the allowlist.

https://ngrok.com/docs/http/user-agent-filter/

Source

pub fn deny_user_agent(&mut self, regex: impl Into<String>) -> &mut Self

Add the provided regex to the denylist.

https://ngrok.com/docs/http/user-agent-filter/

Source

pub fn policy<S>(&mut self, s: S) -> Result<&mut Self, S::Error>
where S: TryInto<Policy>,

DEPRECATED: use traffic_policy instead.

Source

pub fn traffic_policy(&mut self, policy_str: impl Into<String>) -> &mut Self

Set policy for this edge.

Source

pub fn pooling_enabled(&mut self, pooling_enabled: impl Into<bool>) -> &mut Self

Allows the endpoint to pool with other endpoints with the same host/port/binding

Trait Implementations§

Source§

impl Clone for HttpTunnelBuilder

Source§

fn clone(&self) -> HttpTunnelBuilder

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl ForwarderBuilder for HttpTunnelBuilder

Source§

fn listen_and_forward<'life0, 'async_trait>( &'life0 self, to_url: Url, ) -> Pin<Box<dyn Future<Output = Result<Forwarder<HttpTunnel>, RpcError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Start listening for new connections on this tunnel and forward all connections to the provided URL. Read more
Source§

impl From<Session> for HttpTunnelBuilder

Source§

fn from(session: Session) -> Self

Converts to this type from the input type.
Source§

impl TunnelBuilder for HttpTunnelBuilder

Source§

type Tunnel = HttpTunnel

The ngrok tunnel type that this builder produces.
Source§

fn listen<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<HttpTunnel, RpcError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Begin listening for new connections on this tunnel.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromRef<T> for T
where T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,