Class: NgrokAPI::Services::EndpointsClient

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

Overview

Endpoints provides an API for querying the endpoint objects which define what tunnel or edge is used to serve a hostport. Only active endpoints associated with a tunnel or backend are returned.

ngrok.com/docs/api#api-endpoints

Constant Summary collapse

PATH =

The API path for the requests

'/endpoints'
LIST_PROPERTY =

The List Property from the resulting API for list calls

'endpoints'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ EndpointsClient

Returns a new instance of EndpointsClient.



21
22
23
# File 'lib/ngrokapi/services/endpoints_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/endpoints_client.rb', line 19

def client
  @client
end

Instance Method Details

#create(url:, type:, traffic_policy:, description: nil, metadata: nil, bindings: nil, pooling_enabled: nil) ⇒ NgrokAPI::Models::Endpoint

Create an endpoint, currently available only for cloud endpoints

ngrok.com/docs/api#api-endpoints-create

Parameters:

  • url (string)

    the url of the endpoint

  • type (string)

    Type of endpoint. Only ‘cloud’ is currently supported (represents a cloud endpoint). Defaults to ‘cloud’ if not specified.

  • traffic_policy (string)

    The traffic policy attached to this endpoint

  • description (string) (defaults to: nil)

    user-supplied description of the associated tunnel

  • metadata (string) (defaults to: nil)

    user-supplied metadata of the associated tunnel or edge object

  • bindings (List<string>) (defaults to: nil)

    the bindings associated with this endpoint

  • pooling_enabled (boolean) (defaults to: nil)

Returns:



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/ngrokapi/services/endpoints_client.rb', line 38

def create(url:, type:, traffic_policy:, description: nil, metadata: nil, bindings: nil, pooling_enabled: nil)
  path = '/endpoints'
  replacements = {
  }
  data = {}
  data[:url] = url if url
  data[:type] = type if type
  data[:traffic_policy] = traffic_policy if traffic_policy
  data[:description] = description if description
  data[:metadata] =  if 
  data[:bindings] = bindings if bindings
  data[:pooling_enabled] = pooling_enabled if pooling_enabled
  result = @client.post(path % replacements, data: data)
  NgrokAPI::Models::Endpoint.new(client: self, attrs: result)
end

#create!(url:, type:, traffic_policy:, description: nil, metadata: nil, bindings: nil, pooling_enabled: nil) ⇒ NgrokAPI::Models::Endpoint

Create an endpoint, currently available only for cloud endpoints Throws an exception if API error.

ngrok.com/docs/api#api-endpoints-create

Parameters:

  • url (string)

    the url of the endpoint

  • type (string)

    Type of endpoint. Only ‘cloud’ is currently supported (represents a cloud endpoint). Defaults to ‘cloud’ if not specified.

  • traffic_policy (string)

    The traffic policy attached to this endpoint

  • description (string) (defaults to: nil)

    user-supplied description of the associated tunnel

  • metadata (string) (defaults to: nil)

    user-supplied metadata of the associated tunnel or edge object

  • bindings (List<string>) (defaults to: nil)

    the bindings associated with this endpoint

  • pooling_enabled (boolean) (defaults to: nil)

Returns:



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/ngrokapi/services/endpoints_client.rb', line 68

def create!(url:, type:, traffic_policy:, description: nil, metadata: nil, bindings: nil, pooling_enabled: nil)
  path = '/endpoints'
  replacements = {
  }
  data = {}
  data[:url] = url if url
  data[:type] = type if type
  data[:traffic_policy] = traffic_policy if traffic_policy
  data[:description] = description if description
  data[:metadata] =  if 
  data[:bindings] = bindings if bindings
  data[:pooling_enabled] = pooling_enabled if pooling_enabled
  result = @client.post(path % replacements, data: data, danger: true)
  NgrokAPI::Models::Endpoint.new(client: self, attrs: result)
end

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

Delete an Endpoint by ID, currently available only for cloud endpoints

ngrok.com/docs/api#api-endpoints-delete

Parameters:

  • id (string) (defaults to: "")

    a resource identifier

Returns:

  • (NgrokAPI::Models::Empty)

    result from the API request



260
261
262
263
264
265
266
# File 'lib/ngrokapi/services/endpoints_client.rb', line 260

def delete(id: "")
  path = '/endpoints/%{id}'
  replacements = {
    id: id,
  }
  @client.delete(path % replacements)
end

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

Delete an Endpoint by ID, currently available only for cloud endpoints Throws an exception if API error.

ngrok.com/docs/api#api-endpoints-delete

Parameters:

  • id (string) (defaults to: "")

    a resource identifier

Returns:

  • (NgrokAPI::Models::Empty)

    result from the API request



276
277
278
279
280
281
282
# File 'lib/ngrokapi/services/endpoints_client.rb', line 276

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

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

Get the status of an endpoint by ID

ngrok.com/docs/api#api-endpoints-get

Parameters:

  • id (string) (defaults to: "")

    a resource identifier

Returns:



166
167
168
169
170
171
172
173
174
# File 'lib/ngrokapi/services/endpoints_client.rb', line 166

def get(id: "")
  path = '/endpoints/%{id}'
  replacements = {
    id: id,
  }
  data = {}
  result = @client.get(path % replacements, data: data)
  NgrokAPI::Models::Endpoint.new(client: self, attrs: result)
end

#get!(id: "") ⇒ NgrokAPI::Models::Endpoint

Get the status of an endpoint by ID Throws an exception if API error.

ngrok.com/docs/api#api-endpoints-get

Parameters:

  • id (string) (defaults to: "")

    a resource identifier

Returns:



184
185
186
187
188
189
190
191
192
# File 'lib/ngrokapi/services/endpoints_client.rb', line 184

def get!(id: "")
  path = '/endpoints/%{id}'
  replacements = {
    id: id,
  }
  data = {}
  result = @client.get(path % replacements, data: data, danger: true)
  NgrokAPI::Models::Endpoint.new(client: self, attrs: result)
end

#list(before_id: nil, limit: nil, id: [], filter: nil, url: nil) ⇒ NgrokAPI::Models::Listable

List all active endpoints on the account

ngrok.com/docs/api#api-endpoints-list

Parameters:

  • before_id (string) (defaults to: nil)
  • limit (string) (defaults to: nil)
  • id (List<string>) (defaults to: [])
  • url (List<string>) (defaults to: nil)
  • filter (string) (defaults to: nil)
  • url (string) (defaults to: nil)

    optional and mutually exclusive from before_id and limit

Returns:



96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/ngrokapi/services/endpoints_client.rb', line 96

def list(
  before_id: nil,
  limit: nil,
  id: [],
  filter: nil,
  url: nil
)
  result = @client.list(
    before_id: before_id,
    limit: limit,
    id: id,
    filter: filter,
    url: url,
    path: PATH
  )

  NgrokAPI::Models::Listable.new(
    client: self,
    attrs: result,
    list_property: LIST_PROPERTY,
    klass: NgrokAPI::Models::Endpoint
  )
end

#list!(before_id: nil, limit: nil, id: [], filter: nil, url: nil) ⇒ NgrokAPI::Models::Listable

List all active endpoints on the account Throws an exception if API error.

ngrok.com/docs/api#api-endpoints-list

Parameters:

  • before_id (string) (defaults to: nil)
  • limit (string) (defaults to: nil)
  • id (List<string>) (defaults to: [])
  • url (List<string>) (defaults to: nil)
  • filter (string) (defaults to: nil)
  • url (string) (defaults to: nil)

    optional and mutually exclusive from before_id and limit

Returns:



133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# File 'lib/ngrokapi/services/endpoints_client.rb', line 133

def list!(
  before_id: nil,
  limit: nil,
  id: [],
  filter: nil,
  url: nil
)
  result = @client.list(
    before_id: before_id,
    limit: limit,
    id: id,
    filter: filter,
    danger: true,
    url: url,
    path: PATH
  )

  NgrokAPI::Models::Listable.new(
    client: self,
    attrs: result,
    list_property: LIST_PROPERTY,
    klass: NgrokAPI::Models::Endpoint,
    danger: true
  )
end

#update(id: "", url: nil, traffic_policy: nil, description: nil, metadata: nil, bindings: nil, pooling_enabled: nil) ⇒ NgrokAPI::Models::Endpoint

Update an Endpoint by ID, currently available only for cloud endpoints

ngrok.com/docs/api#api-endpoints-update

Parameters:

  • id (string) (defaults to: "")

    unique endpoint resource identifier

  • url (string) (defaults to: nil)

    the url of the endpoint

  • traffic_policy (string) (defaults to: nil)

    The traffic policy attached to this endpoint

  • description (string) (defaults to: nil)

    user-supplied description of the associated tunnel

  • metadata (string) (defaults to: nil)

    user-supplied metadata of the associated tunnel or edge object

  • bindings (List<string>) (defaults to: nil)

    the bindings associated with this endpoint

  • pooling_enabled (boolean) (defaults to: nil)

Returns:



207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
# File 'lib/ngrokapi/services/endpoints_client.rb', line 207

def update(id: "", url: nil, traffic_policy: nil, description: nil, metadata: nil, bindings: nil, pooling_enabled: nil)
  path = '/endpoints/%{id}'
  replacements = {
    id: id,
  }
  data = {}
  data[:url] = url if url
  data[:traffic_policy] = traffic_policy if traffic_policy
  data[:description] = description if description
  data[:metadata] =  if 
  data[:bindings] = bindings if bindings
  data[:pooling_enabled] = pooling_enabled if pooling_enabled
  result = @client.patch(path % replacements, data: data)
  NgrokAPI::Models::Endpoint.new(client: self, attrs: result)
end

#update!(id: "", url: nil, traffic_policy: nil, description: nil, metadata: nil, bindings: nil, pooling_enabled: nil) ⇒ NgrokAPI::Models::Endpoint

Update an Endpoint by ID, currently available only for cloud endpoints Throws an exception if API error.

ngrok.com/docs/api#api-endpoints-update

Parameters:

  • id (string) (defaults to: "")

    unique endpoint resource identifier

  • url (string) (defaults to: nil)

    the url of the endpoint

  • traffic_policy (string) (defaults to: nil)

    The traffic policy attached to this endpoint

  • description (string) (defaults to: nil)

    user-supplied description of the associated tunnel

  • metadata (string) (defaults to: nil)

    user-supplied metadata of the associated tunnel or edge object

  • bindings (List<string>) (defaults to: nil)

    the bindings associated with this endpoint

  • pooling_enabled (boolean) (defaults to: nil)

Returns:



237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
# File 'lib/ngrokapi/services/endpoints_client.rb', line 237

def update!(id: "", url: nil, traffic_policy: nil, description: nil, metadata: nil, bindings: nil, pooling_enabled: nil)
  path = '/endpoints/%{id}'
  replacements = {
    id: id,
  }
  data = {}
  data[:url] = url if url
  data[:traffic_policy] = traffic_policy if traffic_policy
  data[:description] = description if description
  data[:metadata] =  if 
  data[:bindings] = bindings if bindings
  data[:pooling_enabled] = pooling_enabled if pooling_enabled
  result = @client.patch(path % replacements, data: data, danger: true)
  NgrokAPI::Models::Endpoint.new(client: self, attrs: result)
end