paid_ruby 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. checksums.yaml +7 -0
  2. data/lib/environment.rb +9 -0
  3. data/lib/extensions/batch.rb +41 -0
  4. data/lib/gemconfig.rb +13 -0
  5. data/lib/paid_ruby/agents/client.rb +543 -0
  6. data/lib/paid_ruby/contacts/client.rb +437 -0
  7. data/lib/paid_ruby/customers/client.rb +604 -0
  8. data/lib/paid_ruby/orders/client.rb +379 -0
  9. data/lib/paid_ruby/orders/lines/client.rb +99 -0
  10. data/lib/paid_ruby/types/address.rb +91 -0
  11. data/lib/paid_ruby/types/agent.rb +109 -0
  12. data/lib/paid_ruby/types/agent_attribute.rb +74 -0
  13. data/lib/paid_ruby/types/agent_price_point.rb +81 -0
  14. data/lib/paid_ruby/types/agent_price_point_tiers.rb +70 -0
  15. data/lib/paid_ruby/types/agent_update.rb +95 -0
  16. data/lib/paid_ruby/types/api_error.rb +54 -0
  17. data/lib/paid_ruby/types/billing_frequency.rb +11 -0
  18. data/lib/paid_ruby/types/charge_type.rb +12 -0
  19. data/lib/paid_ruby/types/contact.rb +155 -0
  20. data/lib/paid_ruby/types/creation_source.rb +12 -0
  21. data/lib/paid_ruby/types/creation_state.rb +10 -0
  22. data/lib/paid_ruby/types/customer.rb +142 -0
  23. data/lib/paid_ruby/types/customer_update.rb +120 -0
  24. data/lib/paid_ruby/types/error.rb +58 -0
  25. data/lib/paid_ruby/types/order.rb +172 -0
  26. data/lib/paid_ruby/types/order_line.rb +158 -0
  27. data/lib/paid_ruby/types/order_line_attribute.rb +83 -0
  28. data/lib/paid_ruby/types/order_line_attribute_pricing.rb +93 -0
  29. data/lib/paid_ruby/types/order_line_create.rb +77 -0
  30. data/lib/paid_ruby/types/price_point.rb +81 -0
  31. data/lib/paid_ruby/types/pricing.rb +97 -0
  32. data/lib/paid_ruby/types/pricing_model_type.rb +11 -0
  33. data/lib/paid_ruby/types/salutation.rb +14 -0
  34. data/lib/paid_ruby/types/signal.rb +77 -0
  35. data/lib/paid_ruby/types/tax_exempt_status.rb +11 -0
  36. data/lib/paid_ruby/types/tier.rb +70 -0
  37. data/lib/paid_ruby/usage/client.rb +97 -0
  38. data/lib/paid_ruby.rb +83 -0
  39. data/lib/requests.rb +166 -0
  40. data/lib/types_export.rb +28 -0
  41. metadata +163 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 0c2cc435a3cbb67bf93ad28e23dec59285d96a02cf2670a8fed1f8d7249703fb
4
+ data.tar.gz: 80e63a017a128c9645e1bb939984253f886dc731f9c2795a42dc77ed20708419
5
+ SHA512:
6
+ metadata.gz: 18d335c77bc4eaf2055888ed8e2ffa72a8d1c357303f3edb9b4a3d24eb6aaf9394f6d068e083dac4819cf465250b6f636d6d04857c21cb1561e11883c61f91f5
7
+ data.tar.gz: 504f1bc8b2d4e90bcacf7deda7b17028d6bb5965b56bab6f2a300732d8f7ce9d2268d4dca144d9a4a016282ab26feb1a6fec093bd5def1c5b9fbb87f4fb302f7
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Paid
4
+ class Environment
5
+
6
+ PRODUCTION = "https://api.agentpaid.io/api/v1"
7
+
8
+ end
9
+ end
@@ -0,0 +1,41 @@
1
+
2
+ # frozen_string_literal: true
3
+
4
+ module Paid
5
+ class BatchUsageClient < Paid::UsageClient
6
+ def flush(request_options: nil)
7
+ record_bulk(signals: @signals, request_options: request_options)
8
+ @signals = []
9
+ end
10
+
11
+ def record_usage(signal: nil, request_options: nil)
12
+ @signals ||= []
13
+ @signals << signal
14
+ if @signals.length >= 100
15
+ record_bulk(signals: @signals, request_options: request_options)
16
+ @signals = []
17
+ end
18
+ end
19
+ end
20
+
21
+
22
+ class AsyncBatchUsageClient < Paid::AsyncUsageClient
23
+ def flush(request_options: nil)
24
+ Async do
25
+ record_bulk(signals: @signals, request_options: request_options)
26
+ @signals = []
27
+ end
28
+ end
29
+
30
+ def record_usage(signal: nil, request_options: nil)
31
+ Async do
32
+ @signals ||= []
33
+ @signals << signal
34
+ if @signals.length >= 100
35
+ record_bulk(signals: @signals, request_options: request_options)
36
+ @signals = []
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
data/lib/gemconfig.rb ADDED
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+ module Paid
3
+ module Gemconfig
4
+ VERSION = ""
5
+ AUTHORS = [""].freeze
6
+ EMAIL = ""
7
+ SUMMARY = ""
8
+ DESCRIPTION = ""
9
+ HOMEPAGE = "https://github.com/AgentPaid/paid-ruby"
10
+ SOURCE_CODE_URI = "https://github.com/AgentPaid/paid-ruby"
11
+ CHANGELOG_URI = "https://github.com/AgentPaid/paid-ruby/blob/master/CHANGELOG.md"
12
+ end
13
+ end
@@ -0,0 +1,543 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../requests"
3
+ require_relative "../types/agent"
4
+ require "json"
5
+ require_relative "../types/agent_update"
6
+ require "async"
7
+ require "async"
8
+ require "async"
9
+ require "async"
10
+ require "async"
11
+ require "async"
12
+ require "async"
13
+ require "async"
14
+ require_relative "../../requests"
15
+
16
+ module Paid
17
+ class AgentsClient
18
+ # @return [Paid::RequestClient]
19
+ attr_reader :request_client
20
+
21
+
22
+ # @param request_client [Paid::RequestClient]
23
+ # @return [Paid::AgentsClient]
24
+ def initialize(request_client:)
25
+ @request_client = request_client
26
+ end
27
+ # @param request_options [Paid::RequestOptions]
28
+ # @return [Array<Paid::Agent>]
29
+ # @example
30
+ # api = Paid::Client.new(
31
+ # base_url: "https://api.example.com",
32
+ # environment: Paid::Environment::PRODUCTION,
33
+ # token: "YOUR_AUTH_TOKEN"
34
+ # )
35
+ # api.agents.list
36
+ def list(request_options: nil)
37
+ response = @request_client.conn.get do | req |
38
+ unless request_options&.timeout_in_seconds.nil?
39
+ req.options.timeout = request_options.timeout_in_seconds
40
+ end
41
+ unless request_options&.token.nil?
42
+ req.headers["Authorization"] = request_options.token
43
+ end
44
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
45
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
46
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
47
+ end
48
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
49
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
50
+ end
51
+ req.url "#{@request_client.get_url(request_options: request_options)}/agents"
52
+ end
53
+ parsed_json = JSON.parse(response.body)
54
+ parsed_json&.map do | item |
55
+ item = item.to_json
56
+ Paid::Agent.from_json(json_object: item)
57
+ end
58
+ end
59
+ # @param name [String]
60
+ # @param description [String]
61
+ # @param agent_code [String]
62
+ # @param external_id [String]
63
+ # @param request_options [Paid::RequestOptions]
64
+ # @return [Paid::Agent]
65
+ # @example
66
+ # api = Paid::Client.new(
67
+ # base_url: "https://api.example.com",
68
+ # environment: Paid::Environment::PRODUCTION,
69
+ # token: "YOUR_AUTH_TOKEN"
70
+ # )
71
+ # api.agents.create(name: "name", description: "description")
72
+ def create(name:, description:, agent_code: nil, external_id: nil, request_options: nil)
73
+ response = @request_client.conn.post do | req |
74
+ unless request_options&.timeout_in_seconds.nil?
75
+ req.options.timeout = request_options.timeout_in_seconds
76
+ end
77
+ unless request_options&.token.nil?
78
+ req.headers["Authorization"] = request_options.token
79
+ end
80
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
81
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
82
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
83
+ end
84
+ req.body = { **(request_options&.additional_body_parameters || {}), name: name, description: description, agentCode: agent_code, externalId: external_id }.compact
85
+ req.url "#{@request_client.get_url(request_options: request_options)}/agents"
86
+ end
87
+ Paid::Agent.from_json(json_object: response.body)
88
+ end
89
+ # @param agent_id [String]
90
+ # @param request_options [Paid::RequestOptions]
91
+ # @return [Paid::Agent]
92
+ # @example
93
+ # api = Paid::Client.new(
94
+ # base_url: "https://api.example.com",
95
+ # environment: Paid::Environment::PRODUCTION,
96
+ # token: "YOUR_AUTH_TOKEN"
97
+ # )
98
+ # api.agents.get(agent_id: "agentId")
99
+ def get(agent_id:, request_options: nil)
100
+ response = @request_client.conn.get do | req |
101
+ unless request_options&.timeout_in_seconds.nil?
102
+ req.options.timeout = request_options.timeout_in_seconds
103
+ end
104
+ unless request_options&.token.nil?
105
+ req.headers["Authorization"] = request_options.token
106
+ end
107
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
108
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
109
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
110
+ end
111
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
112
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
113
+ end
114
+ req.url "#{@request_client.get_url(request_options: request_options)}/agents/#{agent_id}"
115
+ end
116
+ Paid::Agent.from_json(json_object: response.body)
117
+ end
118
+ # @param agent_id [String]
119
+ # @param request [Hash] Request of type Paid::AgentUpdate, as a Hash
120
+ # * :name (String)
121
+ # * :description (String)
122
+ # * :external_id (String)
123
+ # * :active (Boolean)
124
+ # * :agent_code (String)
125
+ # * :agent_attributes (Array<Paid::AgentAttribute>)
126
+ # @param request_options [Paid::RequestOptions]
127
+ # @return [Paid::Agent]
128
+ # @example
129
+ # api = Paid::Client.new(
130
+ # base_url: "https://api.example.com",
131
+ # environment: Paid::Environment::PRODUCTION,
132
+ # token: "YOUR_AUTH_TOKEN"
133
+ # )
134
+ # api.agents.update(agent_id: "agentId", request: { })
135
+ def update(agent_id:, request:, request_options: nil)
136
+ response = @request_client.conn.put do | req |
137
+ unless request_options&.timeout_in_seconds.nil?
138
+ req.options.timeout = request_options.timeout_in_seconds
139
+ end
140
+ unless request_options&.token.nil?
141
+ req.headers["Authorization"] = request_options.token
142
+ end
143
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
144
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
145
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
146
+ end
147
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
148
+ req.url "#{@request_client.get_url(request_options: request_options)}/agents/#{agent_id}"
149
+ end
150
+ Paid::Agent.from_json(json_object: response.body)
151
+ end
152
+ # @param agent_id [String]
153
+ # @param request_options [Paid::RequestOptions]
154
+ # @return [Void]
155
+ # @example
156
+ # api = Paid::Client.new(
157
+ # base_url: "https://api.example.com",
158
+ # environment: Paid::Environment::PRODUCTION,
159
+ # token: "YOUR_AUTH_TOKEN"
160
+ # )
161
+ # api.agents.delete(agent_id: "agentId")
162
+ def delete(agent_id:, request_options: nil)
163
+ response = @request_client.conn.delete do | req |
164
+ unless request_options&.timeout_in_seconds.nil?
165
+ req.options.timeout = request_options.timeout_in_seconds
166
+ end
167
+ unless request_options&.token.nil?
168
+ req.headers["Authorization"] = request_options.token
169
+ end
170
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
171
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
172
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
173
+ end
174
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
175
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
176
+ end
177
+ req.url "#{@request_client.get_url(request_options: request_options)}/agents/#{agent_id}"
178
+ end
179
+ end
180
+ # @param external_id [String]
181
+ # @param request_options [Paid::RequestOptions]
182
+ # @return [Paid::Agent]
183
+ # @example
184
+ # api = Paid::Client.new(
185
+ # base_url: "https://api.example.com",
186
+ # environment: Paid::Environment::PRODUCTION,
187
+ # token: "YOUR_AUTH_TOKEN"
188
+ # )
189
+ # api.agents.get_by_external_id(external_id: "externalId")
190
+ def get_by_external_id(external_id:, request_options: nil)
191
+ response = @request_client.conn.get do | req |
192
+ unless request_options&.timeout_in_seconds.nil?
193
+ req.options.timeout = request_options.timeout_in_seconds
194
+ end
195
+ unless request_options&.token.nil?
196
+ req.headers["Authorization"] = request_options.token
197
+ end
198
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
199
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
200
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
201
+ end
202
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
203
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
204
+ end
205
+ req.url "#{@request_client.get_url(request_options: request_options)}/agents/external/#{external_id}"
206
+ end
207
+ Paid::Agent.from_json(json_object: response.body)
208
+ end
209
+ # @param external_id [String]
210
+ # @param request [Hash] Request of type Paid::AgentUpdate, as a Hash
211
+ # * :name (String)
212
+ # * :description (String)
213
+ # * :external_id (String)
214
+ # * :active (Boolean)
215
+ # * :agent_code (String)
216
+ # * :agent_attributes (Array<Paid::AgentAttribute>)
217
+ # @param request_options [Paid::RequestOptions]
218
+ # @return [Paid::Agent]
219
+ # @example
220
+ # api = Paid::Client.new(
221
+ # base_url: "https://api.example.com",
222
+ # environment: Paid::Environment::PRODUCTION,
223
+ # token: "YOUR_AUTH_TOKEN"
224
+ # )
225
+ # api.agents.update_by_external_id(external_id: "externalId", request: { })
226
+ def update_by_external_id(external_id:, request:, request_options: nil)
227
+ response = @request_client.conn.put do | req |
228
+ unless request_options&.timeout_in_seconds.nil?
229
+ req.options.timeout = request_options.timeout_in_seconds
230
+ end
231
+ unless request_options&.token.nil?
232
+ req.headers["Authorization"] = request_options.token
233
+ end
234
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
235
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
236
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
237
+ end
238
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
239
+ req.url "#{@request_client.get_url(request_options: request_options)}/agents/external/#{external_id}"
240
+ end
241
+ Paid::Agent.from_json(json_object: response.body)
242
+ end
243
+ # @param external_id [String]
244
+ # @param request_options [Paid::RequestOptions]
245
+ # @return [Void]
246
+ # @example
247
+ # api = Paid::Client.new(
248
+ # base_url: "https://api.example.com",
249
+ # environment: Paid::Environment::PRODUCTION,
250
+ # token: "YOUR_AUTH_TOKEN"
251
+ # )
252
+ # api.agents.delete_by_external_id(external_id: "externalId")
253
+ def delete_by_external_id(external_id:, request_options: nil)
254
+ response = @request_client.conn.delete do | req |
255
+ unless request_options&.timeout_in_seconds.nil?
256
+ req.options.timeout = request_options.timeout_in_seconds
257
+ end
258
+ unless request_options&.token.nil?
259
+ req.headers["Authorization"] = request_options.token
260
+ end
261
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
262
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
263
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
264
+ end
265
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
266
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
267
+ end
268
+ req.url "#{@request_client.get_url(request_options: request_options)}/agents/external/#{external_id}"
269
+ end
270
+ end
271
+ end
272
+ class AsyncAgentsClient
273
+ # @return [Paid::AsyncRequestClient]
274
+ attr_reader :request_client
275
+
276
+
277
+ # @param request_client [Paid::RequestClient]
278
+ # @return [Paid::AsyncAgentsClient]
279
+ def initialize(request_client:)
280
+ @request_client = request_client
281
+ end
282
+ # @param request_options [Paid::RequestOptions]
283
+ # @return [Array<Paid::Agent>]
284
+ # @example
285
+ # api = Paid::Client.new(
286
+ # base_url: "https://api.example.com",
287
+ # environment: Paid::Environment::PRODUCTION,
288
+ # token: "YOUR_AUTH_TOKEN"
289
+ # )
290
+ # api.agents.list
291
+ def list(request_options: nil)
292
+ Async do
293
+ response = @request_client.conn.get do | req |
294
+ unless request_options&.timeout_in_seconds.nil?
295
+ req.options.timeout = request_options.timeout_in_seconds
296
+ end
297
+ unless request_options&.token.nil?
298
+ req.headers["Authorization"] = request_options.token
299
+ end
300
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
301
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
302
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
303
+ end
304
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
305
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
306
+ end
307
+ req.url "#{@request_client.get_url(request_options: request_options)}/agents"
308
+ end
309
+ parsed_json = JSON.parse(response.body)
310
+ parsed_json&.map do | item |
311
+ item = item.to_json
312
+ Paid::Agent.from_json(json_object: item)
313
+ end
314
+ end
315
+ end
316
+ # @param name [String]
317
+ # @param description [String]
318
+ # @param agent_code [String]
319
+ # @param external_id [String]
320
+ # @param request_options [Paid::RequestOptions]
321
+ # @return [Paid::Agent]
322
+ # @example
323
+ # api = Paid::Client.new(
324
+ # base_url: "https://api.example.com",
325
+ # environment: Paid::Environment::PRODUCTION,
326
+ # token: "YOUR_AUTH_TOKEN"
327
+ # )
328
+ # api.agents.create(name: "name", description: "description")
329
+ def create(name:, description:, agent_code: nil, external_id: nil, request_options: nil)
330
+ Async do
331
+ response = @request_client.conn.post do | req |
332
+ unless request_options&.timeout_in_seconds.nil?
333
+ req.options.timeout = request_options.timeout_in_seconds
334
+ end
335
+ unless request_options&.token.nil?
336
+ req.headers["Authorization"] = request_options.token
337
+ end
338
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
339
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
340
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
341
+ end
342
+ req.body = { **(request_options&.additional_body_parameters || {}), name: name, description: description, agentCode: agent_code, externalId: external_id }.compact
343
+ req.url "#{@request_client.get_url(request_options: request_options)}/agents"
344
+ end
345
+ Paid::Agent.from_json(json_object: response.body)
346
+ end
347
+ end
348
+ # @param agent_id [String]
349
+ # @param request_options [Paid::RequestOptions]
350
+ # @return [Paid::Agent]
351
+ # @example
352
+ # api = Paid::Client.new(
353
+ # base_url: "https://api.example.com",
354
+ # environment: Paid::Environment::PRODUCTION,
355
+ # token: "YOUR_AUTH_TOKEN"
356
+ # )
357
+ # api.agents.get(agent_id: "agentId")
358
+ def get(agent_id:, request_options: nil)
359
+ Async do
360
+ response = @request_client.conn.get do | req |
361
+ unless request_options&.timeout_in_seconds.nil?
362
+ req.options.timeout = request_options.timeout_in_seconds
363
+ end
364
+ unless request_options&.token.nil?
365
+ req.headers["Authorization"] = request_options.token
366
+ end
367
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
368
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
369
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
370
+ end
371
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
372
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
373
+ end
374
+ req.url "#{@request_client.get_url(request_options: request_options)}/agents/#{agent_id}"
375
+ end
376
+ Paid::Agent.from_json(json_object: response.body)
377
+ end
378
+ end
379
+ # @param agent_id [String]
380
+ # @param request [Hash] Request of type Paid::AgentUpdate, as a Hash
381
+ # * :name (String)
382
+ # * :description (String)
383
+ # * :external_id (String)
384
+ # * :active (Boolean)
385
+ # * :agent_code (String)
386
+ # * :agent_attributes (Array<Paid::AgentAttribute>)
387
+ # @param request_options [Paid::RequestOptions]
388
+ # @return [Paid::Agent]
389
+ # @example
390
+ # api = Paid::Client.new(
391
+ # base_url: "https://api.example.com",
392
+ # environment: Paid::Environment::PRODUCTION,
393
+ # token: "YOUR_AUTH_TOKEN"
394
+ # )
395
+ # api.agents.update(agent_id: "agentId", request: { })
396
+ def update(agent_id:, request:, request_options: nil)
397
+ Async do
398
+ response = @request_client.conn.put do | req |
399
+ unless request_options&.timeout_in_seconds.nil?
400
+ req.options.timeout = request_options.timeout_in_seconds
401
+ end
402
+ unless request_options&.token.nil?
403
+ req.headers["Authorization"] = request_options.token
404
+ end
405
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
406
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
407
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
408
+ end
409
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
410
+ req.url "#{@request_client.get_url(request_options: request_options)}/agents/#{agent_id}"
411
+ end
412
+ Paid::Agent.from_json(json_object: response.body)
413
+ end
414
+ end
415
+ # @param agent_id [String]
416
+ # @param request_options [Paid::RequestOptions]
417
+ # @return [Void]
418
+ # @example
419
+ # api = Paid::Client.new(
420
+ # base_url: "https://api.example.com",
421
+ # environment: Paid::Environment::PRODUCTION,
422
+ # token: "YOUR_AUTH_TOKEN"
423
+ # )
424
+ # api.agents.delete(agent_id: "agentId")
425
+ def delete(agent_id:, request_options: nil)
426
+ Async do
427
+ response = @request_client.conn.delete do | req |
428
+ unless request_options&.timeout_in_seconds.nil?
429
+ req.options.timeout = request_options.timeout_in_seconds
430
+ end
431
+ unless request_options&.token.nil?
432
+ req.headers["Authorization"] = request_options.token
433
+ end
434
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
435
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
436
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
437
+ end
438
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
439
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
440
+ end
441
+ req.url "#{@request_client.get_url(request_options: request_options)}/agents/#{agent_id}"
442
+ end
443
+ end
444
+ end
445
+ # @param external_id [String]
446
+ # @param request_options [Paid::RequestOptions]
447
+ # @return [Paid::Agent]
448
+ # @example
449
+ # api = Paid::Client.new(
450
+ # base_url: "https://api.example.com",
451
+ # environment: Paid::Environment::PRODUCTION,
452
+ # token: "YOUR_AUTH_TOKEN"
453
+ # )
454
+ # api.agents.get_by_external_id(external_id: "externalId")
455
+ def get_by_external_id(external_id:, request_options: nil)
456
+ Async do
457
+ response = @request_client.conn.get do | req |
458
+ unless request_options&.timeout_in_seconds.nil?
459
+ req.options.timeout = request_options.timeout_in_seconds
460
+ end
461
+ unless request_options&.token.nil?
462
+ req.headers["Authorization"] = request_options.token
463
+ end
464
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
465
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
466
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
467
+ end
468
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
469
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
470
+ end
471
+ req.url "#{@request_client.get_url(request_options: request_options)}/agents/external/#{external_id}"
472
+ end
473
+ Paid::Agent.from_json(json_object: response.body)
474
+ end
475
+ end
476
+ # @param external_id [String]
477
+ # @param request [Hash] Request of type Paid::AgentUpdate, as a Hash
478
+ # * :name (String)
479
+ # * :description (String)
480
+ # * :external_id (String)
481
+ # * :active (Boolean)
482
+ # * :agent_code (String)
483
+ # * :agent_attributes (Array<Paid::AgentAttribute>)
484
+ # @param request_options [Paid::RequestOptions]
485
+ # @return [Paid::Agent]
486
+ # @example
487
+ # api = Paid::Client.new(
488
+ # base_url: "https://api.example.com",
489
+ # environment: Paid::Environment::PRODUCTION,
490
+ # token: "YOUR_AUTH_TOKEN"
491
+ # )
492
+ # api.agents.update_by_external_id(external_id: "externalId", request: { })
493
+ def update_by_external_id(external_id:, request:, request_options: nil)
494
+ Async do
495
+ response = @request_client.conn.put do | req |
496
+ unless request_options&.timeout_in_seconds.nil?
497
+ req.options.timeout = request_options.timeout_in_seconds
498
+ end
499
+ unless request_options&.token.nil?
500
+ req.headers["Authorization"] = request_options.token
501
+ end
502
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
503
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
504
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
505
+ end
506
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
507
+ req.url "#{@request_client.get_url(request_options: request_options)}/agents/external/#{external_id}"
508
+ end
509
+ Paid::Agent.from_json(json_object: response.body)
510
+ end
511
+ end
512
+ # @param external_id [String]
513
+ # @param request_options [Paid::RequestOptions]
514
+ # @return [Void]
515
+ # @example
516
+ # api = Paid::Client.new(
517
+ # base_url: "https://api.example.com",
518
+ # environment: Paid::Environment::PRODUCTION,
519
+ # token: "YOUR_AUTH_TOKEN"
520
+ # )
521
+ # api.agents.delete_by_external_id(external_id: "externalId")
522
+ def delete_by_external_id(external_id:, request_options: nil)
523
+ Async do
524
+ response = @request_client.conn.delete do | req |
525
+ unless request_options&.timeout_in_seconds.nil?
526
+ req.options.timeout = request_options.timeout_in_seconds
527
+ end
528
+ unless request_options&.token.nil?
529
+ req.headers["Authorization"] = request_options.token
530
+ end
531
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
532
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
533
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
534
+ end
535
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
536
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
537
+ end
538
+ req.url "#{@request_client.get_url(request_options: request_options)}/agents/external/#{external_id}"
539
+ end
540
+ end
541
+ end
542
+ end
543
+ end