Class: NgrokAPI::Services::TunnelSessionsClient

Inherits:
Object
  • Object
show all
Defined in:
lib/ngrokapi/services/tunnel_sessions_client.rb

Overview

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.

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

Constant Summary collapse

LIST_PROPERTY =

The List Property from the resulting API for list calls

'tunnel_sessions'
PATH =

The API path for the requests

'/tunnel_sessions'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ TunnelSessionsClient



21
22
23
# File 'lib/ngrokapi/services/tunnel_sessions_client.rb', line 21

def initialize(client:)
  @client = client
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



19
20
21
# File 'lib/ngrokapi/services/tunnel_sessions_client.rb', line 19

def client
  @client
end

Instance Method Details

#get(id: "") ⇒ NgrokAPI::Models::TunnelSession

Get the detailed status of a tunnel session by ID

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



85
86
87
88
89
90
91
92
93
# File 'lib/ngrokapi/services/tunnel_sessions_client.rb', line 85

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: "") ⇒ NgrokAPI::Models::TunnelSession

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

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



103
104
105
106
107
108
109
110
111
# File 'lib/ngrokapi/services/tunnel_sessions_client.rb', line 103

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) ⇒ NgrokAPI::Models::Listable

List all online tunnel sessions running on this account.

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



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/ngrokapi/services/tunnel_sessions_client.rb', line 34

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) ⇒ NgrokAPI::Models::Listable

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

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



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/ngrokapi/services/tunnel_sessions_client.rb', line 60

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: "") ⇒ NgrokAPI::Models::Empty

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.

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



123
124
125
126
127
128
129
# File 'lib/ngrokapi/services/tunnel_sessions_client.rb', line 123

def restart(id: "")
  path = '/tunnel_sessions/%{id}/restart'
  replacements = {
    id: id,
  }
  @client.post(path % replacements)
end

#restart!(id: "") ⇒ NgrokAPI::Models::Empty

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.

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



142
143
144
145
146
147
148
# File 'lib/ngrokapi/services/tunnel_sessions_client.rb', line 142

def restart!(id: "")
  path = '/tunnel_sessions/%{id}/restart'
  replacements = {
    id: id,
  }
  @client.post(path % replacements, danger: true)
end

#stop(id: "") ⇒ NgrokAPI::Models::Empty

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

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



158
159
160
161
162
163
164
# File 'lib/ngrokapi/services/tunnel_sessions_client.rb', line 158

def stop(id: "")
  path = '/tunnel_sessions/%{id}/stop'
  replacements = {
    id: id,
  }
  @client.post(path % replacements)
end

#stop!(id: "") ⇒ NgrokAPI::Models::Empty

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

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



175
176
177
178
179
180
181
# File 'lib/ngrokapi/services/tunnel_sessions_client.rb', line 175

def stop!(id: "")
  path = '/tunnel_sessions/%{id}/stop'
  replacements = {
    id: id,
  }
  @client.post(path % replacements, danger: true)
end

#update(id: "", version: "") ⇒ NgrokAPI::Models::Empty

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

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



201
202
203
204
205
206
207
# File 'lib/ngrokapi/services/tunnel_sessions_client.rb', line 201

def update(id: "", version: "")
  path = '/tunnel_sessions/%{id}/update'
  replacements = {
    id: id,
  }
  @client.post(path % replacements)
end

#update!(id: "", version: "") ⇒ NgrokAPI::Models::Empty

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.

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



228
229
230
231
232
233
234
# File 'lib/ngrokapi/services/tunnel_sessions_client.rb', line 228

def update!(id: "", version: "")
  path = '/tunnel_sessions/%{id}/update'
  replacements = {
    id: id,
  }
  @client.post(path % replacements, danger: true)
end