class NgrokAPI::Services::TunnelSessionsClient

Tunnel Sessions represent instances of ngrok agents or SSH reverse tunnel

sessions that are running and connected to the ngrok service. Each tunnel
session can include one or more Tunnels.

ngrok.com/docs/api#api-tunnel-sessions

Constants

LIST_PROPERTY

The List Property from the resulting API for list calls

PATH

The API path for the requests

Attributes

client[R]

Public Class Methods

new(client:) click to toggle source
# File lib/ngrokapi/services/tunnel_sessions_client.rb, line 19
def initialize(client:)
  @client = client
end

Public Instance Methods

get(id: "") click to toggle source

Get the detailed status of a tunnel session by ID

@param [string] id a resource identifier @return [NgrokAPI::Models::TunnelSession] result from the API request

ngrok.com/docs/api#api-tunnel-sessions-get

# File lib/ngrokapi/services/tunnel_sessions_client.rb, line 83
def get(id: "")
  path = '/tunnel_sessions/%{id}'
  replacements = {
    id: id,
  }
  data = {}
  result = @client.get(path % replacements, data: data)
  NgrokAPI::Models::TunnelSession.new(client: self, attrs: result)
end
get!(id: "") click to toggle source

Get the detailed status of a tunnel session by ID Throws an exception if API error.

@param [string] id a resource identifier @return [NgrokAPI::Models::TunnelSession] result from the API request

ngrok.com/docs/api#api-tunnel-sessions-get

# File lib/ngrokapi/services/tunnel_sessions_client.rb, line 101
def get!(id: "")
  path = '/tunnel_sessions/%{id}'
  replacements = {
    id: id,
  }
  data = {}
  result = @client.get(path % replacements, data: data, danger: true)
  NgrokAPI::Models::TunnelSession.new(client: self, attrs: result)
end
list(before_id: nil, limit: nil, url: nil) click to toggle source

List all online tunnel sessions running on this account.

@param [string] before_id @param [string] limit @param [string] url optional and mutually exclusive from before_id and limit @return [NgrokAPI::Models::Listable] result from the API request

ngrok.com/docs/api#api-tunnel-sessions-list

# File lib/ngrokapi/services/tunnel_sessions_client.rb, line 32
def list(before_id: nil, limit: nil, url: nil)
  result = @client.list(
    before_id: before_id,
    limit: limit,
    url: url,
    path: PATH
  )

  NgrokAPI::Models::Listable.new(
    client: self,
    attrs: result,
    list_property: LIST_PROPERTY,
    klass: NgrokAPI::Models::TunnelSession
  )
end
list!(before_id: nil, limit: nil, url: nil) click to toggle source

List all online tunnel sessions running on this account. Throws an exception if API error.

@param [string] before_id @param [string] limit @param [string] url optional and mutually exclusive from before_id and limit @return [NgrokAPI::Models::Listable] result from the API request

ngrok.com/docs/api#api-tunnel-sessions-list

# File lib/ngrokapi/services/tunnel_sessions_client.rb, line 58
def list!(before_id: nil, limit: nil, url: nil)
  result = @client.list(
    before_id: before_id,
    limit: limit,
    danger: true,
    url: url,
    path: PATH
  )

  NgrokAPI::Models::Listable.new(
    client: self,
    attrs: result,
    list_property: LIST_PROPERTY,
    klass: NgrokAPI::Models::TunnelSession,
    danger: true
  )
end
restart(id: "") click to toggle source

Issues a command instructing the ngrok agent to restart. The agent restarts itself by calling exec() on platforms that support it. This operation is notably not supported on Windows. When an agent restarts, it reconnects with a new tunnel session ID.

@param [string] id a resource identifier @return [NgrokAPI::Models::Empty] result from the API request

ngrok.com/docs/api#api-tunnel-sessions-restart

# File lib/ngrokapi/services/tunnel_sessions_client.rb, line 121
def restart(id: "")
  path = '/tunnel_sessions/%{id}/restart'
  replacements = {
    id: id,
  }
  @client.post(path % replacements)
end
restart!(id: "") click to toggle source

Issues a command instructing the ngrok agent to restart. The agent restarts itself by calling exec() on platforms that support it. This operation is notably not supported on Windows. When an agent restarts, it reconnects with a new tunnel session ID. Throws an exception if API error.

@param [string] id a resource identifier @return [NgrokAPI::Models::Empty] result from the API request

ngrok.com/docs/api#api-tunnel-sessions-restart

# File lib/ngrokapi/services/tunnel_sessions_client.rb, line 140
def restart!(id: "")
  path = '/tunnel_sessions/%{id}/restart'
  replacements = {
    id: id,
  }
  @client.post(path % replacements, danger: true)
end
stop(id: "") click to toggle source

Issues a command instructing the ngrok agent that started this tunnel session to exit.

@param [string] id a resource identifier @return [NgrokAPI::Models::Empty] result from the API request

ngrok.com/docs/api#api-tunnel-sessions-stop

# File lib/ngrokapi/services/tunnel_sessions_client.rb, line 156
def stop(id: "")
  path = '/tunnel_sessions/%{id}/stop'
  replacements = {
    id: id,
  }
  @client.post(path % replacements)
end
stop!(id: "") click to toggle source

Issues a command instructing the ngrok agent that started this tunnel session to exit. Throws an exception if API error.

@param [string] id a resource identifier @return [NgrokAPI::Models::Empty] result from the API request

ngrok.com/docs/api#api-tunnel-sessions-stop

# File lib/ngrokapi/services/tunnel_sessions_client.rb, line 173
def stop!(id: "")
  path = '/tunnel_sessions/%{id}/stop'
  replacements = {
    id: id,
  }
  @client.post(path % replacements, danger: true)
end
update(id: "", version: "") click to toggle source

Issues a command instructing the ngrok agent to update itself to the latest version. After this call completes successfully, the ngrok agent will be in the update process. A caller should wait some amount of time to allow the update to complete (at least 10 seconds) before making a call to the Restart endpoint to request that the agent restart itself to start using the new code. This call will never update an ngrok agent to a new major version which could cause breaking compatibility issues. If you wish to update to a new major version, that must be done manually. Still, please be aware that updating your ngrok agent could break your integration. This call will fail in any of the following circumstances: there is no update available the ngrok agent’s configuration disabled update checks the agent is currently in process of updating the agent has already successfully updated but has not yet been restarted

@param [string] id @return [NgrokAPI::Models::Empty] result from the API request

ngrok.com/docs/api#api-tunnel-sessions-update

# File lib/ngrokapi/services/tunnel_sessions_client.rb, line 199
def update(id: "", version: "")
  path = '/tunnel_sessions/%{id}/update'
  replacements = {
    id: id,
  }
  @client.post(path % replacements)
end
update!(id: "", version: "") click to toggle source

Issues a command instructing the ngrok agent to update itself to the latest version. After this call completes successfully, the ngrok agent will be in the update process. A caller should wait some amount of time to allow the update to complete (at least 10 seconds) before making a call to the Restart endpoint to request that the agent restart itself to start using the new code. This call will never update an ngrok agent to a new major version which could cause breaking compatibility issues. If you wish to update to a new major version, that must be done manually. Still, please be aware that updating your ngrok agent could break your integration. This call will fail in any of the following circumstances: there is no update available the ngrok agent’s configuration disabled update checks the agent is currently in process of updating the agent has already successfully updated but has not yet been restarted Throws an exception if API error.

@param [string] id @return [NgrokAPI::Models::Empty] result from the API request

ngrok.com/docs/api#api-tunnel-sessions-update

# File lib/ngrokapi/services/tunnel_sessions_client.rb, line 226
def update!(id: "", version: "")
  path = '/tunnel_sessions/%{id}/update'
  replacements = {
    id: id,
  }
  @client.post(path % replacements, danger: true)
end