Class: NgrokAPI::Services::WeightedBackendsClient

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

Overview

A Weighted Backend balances traffic among the referenced backends. Traffic is assigned proportionally to each based on its weight. The percentage of traffic is calculated by dividing a backend’s weight by the sum of all weights.

ngrok.com/docs/api#api-weighted-backends

Constant Summary collapse

PATH =

The API path for the requests

'/backends/weighted'
LIST_PROPERTY =

The List Property from the resulting API for list calls

'backends'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ WeightedBackendsClient

Returns a new instance of WeightedBackendsClient.



22
23
24
# File 'lib/ngrokapi/services/weighted_backends_client.rb', line 22

def initialize(client:)
  @client = client
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



20
21
22
# File 'lib/ngrokapi/services/weighted_backends_client.rb', line 20

def client
  @client
end

Instance Method Details

#create(description: "", metadata: "", backends: {}) ⇒ NgrokAPI::Models::WeightedBackend

Create a new Weighted backend

ngrok.com/docs/api#api-weighted-backends-create

Parameters:

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

    human-readable description of this backend. Optional

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

    arbitrary user-defined machine-readable data of this backend. Optional

  • backends (Map<string, int64>) (defaults to: {})

    the ids of the child backends to their weights [0-10000]

Returns:



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/ngrokapi/services/weighted_backends_client.rb', line 35

def create(description: "", metadata: "", backends: {})
  path = '/backends/weighted'
  replacements = {
  }
  data = {}
  data[:description] = description if description
  data[:metadata] =  if 
  data[:backends] = backends if backends
  result = @client.post(path % replacements, data: data)
  NgrokAPI::Models::WeightedBackend.new(client: self, attrs: result)
end

#create!(description: "", metadata: "", backends: {}) ⇒ NgrokAPI::Models::WeightedBackend

Create a new Weighted backend Throws an exception if API error.

ngrok.com/docs/api#api-weighted-backends-create

Parameters:

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

    human-readable description of this backend. Optional

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

    arbitrary user-defined machine-readable data of this backend. Optional

  • backends (Map<string, int64>) (defaults to: {})

    the ids of the child backends to their weights [0-10000]

Returns:



57
58
59
60
61
62
63
64
65
66
67
# File 'lib/ngrokapi/services/weighted_backends_client.rb', line 57

def create!(description: "", metadata: "", backends: {})
  path = '/backends/weighted'
  replacements = {
  }
  data = {}
  data[:description] = description if description
  data[:metadata] =  if 
  data[:backends] = backends if backends
  result = @client.post(path % replacements, data: data, danger: true)
  NgrokAPI::Models::WeightedBackend.new(client: self, attrs: result)
end

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

Delete a Weighted backend by ID.

ngrok.com/docs/api#api-weighted-backends-delete

Parameters:

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

    a resource identifier

Returns:

  • (NgrokAPI::Models::Empty)

    result from the API request



76
77
78
79
80
81
82
# File 'lib/ngrokapi/services/weighted_backends_client.rb', line 76

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

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

Delete a Weighted backend by ID. Throws an exception if API error.

ngrok.com/docs/api#api-weighted-backends-delete

Parameters:

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

    a resource identifier

Returns:

  • (NgrokAPI::Models::Empty)

    result from the API request



92
93
94
95
96
97
98
# File 'lib/ngrokapi/services/weighted_backends_client.rb', line 92

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

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

Get detailed information about a Weighted backend by ID

ngrok.com/docs/api#api-weighted-backends-get

Parameters:

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

    a resource identifier

Returns:



107
108
109
110
111
112
113
114
115
# File 'lib/ngrokapi/services/weighted_backends_client.rb', line 107

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

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

Get detailed information about a Weighted backend by ID Throws an exception if API error.

ngrok.com/docs/api#api-weighted-backends-get

Parameters:

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

    a resource identifier

Returns:



125
126
127
128
129
130
131
132
133
# File 'lib/ngrokapi/services/weighted_backends_client.rb', line 125

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

#list(before_id: nil, limit: nil, url: nil) ⇒ NgrokAPI::Models::Listable

List all Weighted backends on this account

ngrok.com/docs/api#api-weighted-backends-list

Parameters:

  • before_id (string) (defaults to: nil)
  • limit (string) (defaults to: nil)
  • url (string) (defaults to: nil)

    optional and mutually exclusive from before_id and limit

Returns:



144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
# File 'lib/ngrokapi/services/weighted_backends_client.rb', line 144

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::WeightedBackend
  )
end

#list!(before_id: nil, limit: nil, url: nil) ⇒ NgrokAPI::Models::Listable

List all Weighted backends on this account Throws an exception if API error.

ngrok.com/docs/api#api-weighted-backends-list

Parameters:

  • before_id (string) (defaults to: nil)
  • limit (string) (defaults to: nil)
  • url (string) (defaults to: nil)

    optional and mutually exclusive from before_id and limit

Returns:



170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
# File 'lib/ngrokapi/services/weighted_backends_client.rb', line 170

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::WeightedBackend,
    danger: true
  )
end

#update(id: "", description: nil, metadata: nil, backends: {}) ⇒ NgrokAPI::Models::WeightedBackend

Update Weighted backend by ID

ngrok.com/docs/api#api-weighted-backends-update

Parameters:

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

    human-readable description of this backend. Optional

  • metadata (string) (defaults to: nil)

    arbitrary user-defined machine-readable data of this backend. Optional

  • backends (Map<string, int64>) (defaults to: {})

    the ids of the child backends to their weights [0-10000]

Returns:



198
199
200
201
202
203
204
205
206
207
208
209
# File 'lib/ngrokapi/services/weighted_backends_client.rb', line 198

def update(id: "", description: nil, metadata: nil, backends: {})
  path = '/backends/weighted/%{id}'
  replacements = {
    id: id,
  }
  data = {}
  data[:description] = description if description
  data[:metadata] =  if 
  data[:backends] = backends if backends
  result = @client.patch(path % replacements, data: data)
  NgrokAPI::Models::WeightedBackend.new(client: self, attrs: result)
end

#update!(id: "", description: nil, metadata: nil, backends: {}) ⇒ NgrokAPI::Models::WeightedBackend

Update Weighted backend by ID Throws an exception if API error.

ngrok.com/docs/api#api-weighted-backends-update

Parameters:

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

    human-readable description of this backend. Optional

  • metadata (string) (defaults to: nil)

    arbitrary user-defined machine-readable data of this backend. Optional

  • backends (Map<string, int64>) (defaults to: {})

    the ids of the child backends to their weights [0-10000]

Returns:



222
223
224
225
226
227
228
229
230
231
232
233
# File 'lib/ngrokapi/services/weighted_backends_client.rb', line 222

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