dub 0.2.2.pre.alpha.61 → 0.2.2.pre.alpha.63

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 (58) hide show
  1. checksums.yaml +4 -4
  2. data/lib/dub.rb +1 -0
  3. data/lib/open_api_sdk/dub.rb +2 -1
  4. data/lib/open_api_sdk/folders.rb +359 -0
  5. data/lib/open_api_sdk/models/operations/{createpartner_interval.rb → accesslevel.rb} +4 -4
  6. data/lib/open_api_sdk/models/operations/createcustomer_responsebody.rb +1 -1
  7. data/lib/open_api_sdk/models/operations/createfolder_requestbody.rb +27 -0
  8. data/lib/open_api_sdk/models/operations/createfolder_response.rb +60 -0
  9. data/lib/open_api_sdk/models/operations/createlink_requestbody.rb +5 -2
  10. data/lib/open_api_sdk/models/operations/createpartner_responsebody.rb +11 -23
  11. data/lib/open_api_sdk/models/operations/createpartnerlink_linkprops.rb +5 -2
  12. data/lib/open_api_sdk/models/operations/createpartnerlink_requestbody.rb +5 -5
  13. data/lib/open_api_sdk/models/operations/createpartnerlink_response.rb +1 -1
  14. data/lib/open_api_sdk/models/operations/data.rb +5 -2
  15. data/lib/open_api_sdk/models/operations/deletecustomer_request.rb +1 -1
  16. data/lib/open_api_sdk/models/operations/deletecustomer_responsebody.rb +1 -1
  17. data/lib/open_api_sdk/models/operations/deletefolder_request.rb +24 -0
  18. data/lib/open_api_sdk/models/operations/deletefolder_response.rb +60 -0
  19. data/lib/open_api_sdk/models/operations/deletefolder_responsebody.rb +24 -0
  20. data/lib/open_api_sdk/models/operations/getcustomer_request.rb +1 -1
  21. data/lib/open_api_sdk/models/operations/getcustomer_responsebody.rb +1 -1
  22. data/lib/open_api_sdk/models/operations/getlinks_request.rb +5 -2
  23. data/lib/open_api_sdk/models/operations/getlinkscount_request.rb +5 -2
  24. data/lib/open_api_sdk/models/operations/interval.rb +3 -1
  25. data/lib/open_api_sdk/models/operations/linkprops.rb +5 -2
  26. data/lib/open_api_sdk/models/operations/listevents_request.rb +5 -2
  27. data/lib/open_api_sdk/models/operations/listfolders_request.rb +24 -0
  28. data/lib/open_api_sdk/models/operations/listfolders_response.rb +60 -0
  29. data/lib/open_api_sdk/models/operations/queryparam_groupby.rb +19 -0
  30. data/lib/open_api_sdk/models/operations/queryparam_interval.rb +3 -1
  31. data/lib/open_api_sdk/models/operations/requestbody.rb +5 -2
  32. data/lib/open_api_sdk/models/operations/responsebody.rb +1 -1
  33. data/lib/open_api_sdk/models/operations/retrieveanalytics_request.rb +5 -2
  34. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_queryparam_interval.rb +26 -0
  35. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_request.rb +45 -0
  36. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_response.rb +60 -0
  37. data/lib/open_api_sdk/models/operations/updatecustomer_request.rb +1 -1
  38. data/lib/open_api_sdk/models/operations/updatecustomer_responsebody.rb +1 -1
  39. data/lib/open_api_sdk/models/operations/{createpartner_type.rb → updatefolder_accesslevel.rb} +4 -4
  40. data/lib/open_api_sdk/models/operations/updatefolder_request.rb +27 -0
  41. data/lib/open_api_sdk/models/operations/updatefolder_requestbody.rb +27 -0
  42. data/lib/open_api_sdk/models/operations/updatefolder_response.rb +60 -0
  43. data/lib/open_api_sdk/models/operations/updatelink_requestbody.rb +5 -2
  44. data/lib/open_api_sdk/models/operations/upsertlink_requestbody.rb +5 -2
  45. data/lib/open_api_sdk/models/operations/upsertpartnerlink_linkprops.rb +102 -0
  46. data/lib/open_api_sdk/models/operations/upsertpartnerlink_requestbody.rb +39 -0
  47. data/lib/open_api_sdk/models/operations/upsertpartnerlink_response.rb +60 -0
  48. data/lib/open_api_sdk/models/operations.rb +19 -3
  49. data/lib/open_api_sdk/models/shared/accesslevel.rb +18 -0
  50. data/lib/open_api_sdk/models/shared/folderschema.rb +39 -0
  51. data/lib/open_api_sdk/models/shared/link.rb +5 -2
  52. data/lib/open_api_sdk/models/shared/linkschema.rb +5 -2
  53. data/lib/open_api_sdk/models/shared/workspaceschema.rb +5 -2
  54. data/lib/open_api_sdk/models/shared.rb +2 -0
  55. data/lib/open_api_sdk/partners.rb +166 -1
  56. data/lib/open_api_sdk/sdkconfiguration.rb +3 -3
  57. metadata +24 -5
  58. data/lib/open_api_sdk/models/operations/createpartner_discount.rb +0 -42
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 44081d1ebd3c2256f1a92129db2263cb64962d94e809691a0c5e9bf3289ed034
4
- data.tar.gz: 3e75b504e802b928e6c042d4f24821d697d222ddd07ebf5a69a08bfcc1baacc0
3
+ metadata.gz: f5e9a9142d62e2ef8dcd6d7a9a76a2071678d3866c6912d061232937a12f10d3
4
+ data.tar.gz: 2bb8729664a48335a7839edd40bc4e87ec0cd9d0dbb60e96039a6304c3744105
5
5
  SHA512:
6
- metadata.gz: f818d866e17043b0ccbd1ce99fefba287a53f3ba79dbb8ca1833e7fbffa8b95942fece6636370d6251502cd89a6fa3f3e9bcd8d390a7892224484ac87d3696b9
7
- data.tar.gz: 99980b966b3143afbe709dfc777f662780cfd6dc3f098e4defe4a97cb92152bd4fe19c902c9faffd9b8f911faa61b7d0d4044bb0cb5add9cdfff5aad9aacef87
6
+ metadata.gz: 6820c9e500cc08ed6f1e3144b6c4e827bbc3dde9846368e4452d3f2a00a3abf57564440591f79160276ada0478a289cb303a5eb09f312c87f8ec806711d023aa
7
+ data.tar.gz: 11754a82bff785e980ada07e55cd8a89fdc68b9d7ada09f3d58b10e013cc3b7c889c896ea8c7b1f06d31b3d79f25e0498aebccddf6ee648365ea496dcd3530d8
data/lib/dub.rb CHANGED
@@ -11,6 +11,7 @@ module OpenApiSDK
11
11
  autoload :Analytics, 'open_api_sdk/analytics'
12
12
  autoload :Events, 'open_api_sdk/events'
13
13
  autoload :Tags, 'open_api_sdk/tags'
14
+ autoload :Folders, 'open_api_sdk/folders'
14
15
  autoload :Domains, 'open_api_sdk/domains'
15
16
  autoload :Track, 'open_api_sdk/track'
16
17
  autoload :Customers, 'open_api_sdk/customers'
@@ -13,7 +13,7 @@ module OpenApiSDK
13
13
  class Dub
14
14
  extend T::Sig
15
15
 
16
- attr_accessor :links, :analytics, :events, :tags, :domains, :track, :customers, :partners, :workspaces, :embed_tokens, :qr_codes, :metatags
16
+ attr_accessor :links, :analytics, :events, :tags, :folders, :domains, :track, :customers, :partners, :workspaces, :embed_tokens, :qr_codes, :metatags
17
17
 
18
18
  sig do
19
19
  params(client: Faraday::Request,
@@ -79,6 +79,7 @@ module OpenApiSDK
79
79
  @analytics = Analytics.new(@sdk_configuration)
80
80
  @events = Events.new(@sdk_configuration)
81
81
  @tags = Tags.new(@sdk_configuration)
82
+ @folders = Folders.new(@sdk_configuration)
82
83
  @domains = Domains.new(@sdk_configuration)
83
84
  @track = Track.new(@sdk_configuration)
84
85
  @customers = Customers.new(@sdk_configuration)
@@ -0,0 +1,359 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'faraday'
7
+ require 'faraday/multipart'
8
+ require 'sorbet-runtime'
9
+
10
+ module OpenApiSDK
11
+ extend T::Sig
12
+ class Folders
13
+ extend T::Sig
14
+
15
+
16
+ sig { params(sdk_config: SDKConfiguration).void }
17
+ def initialize(sdk_config)
18
+ @sdk_configuration = sdk_config
19
+ end
20
+
21
+
22
+ sig { params(request: T.nilable(::OpenApiSDK::Operations::CreateFolderRequestBody)).returns(::OpenApiSDK::Operations::CreateFolderResponse) }
23
+ def create(request)
24
+ # create - Create a new folder
25
+ # Create a new folder for the authenticated workspace.
26
+ url, params = @sdk_configuration.get_server_details
27
+ base_url = Utils.template_url(url, params)
28
+ url = "#{base_url}/folders"
29
+ headers = {}
30
+ req_content_type, data, form = Utils.serialize_request_body(request, :request, :json)
31
+ headers['content-type'] = req_content_type
32
+ headers['Accept'] = 'application/json'
33
+ headers['user-agent'] = @sdk_configuration.user_agent
34
+
35
+ r = @sdk_configuration.client.post(url) do |req|
36
+ req.headers = headers
37
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
38
+ if form
39
+ req.body = Utils.encode_form(form)
40
+ elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
41
+ req.body = URI.encode_www_form(data)
42
+ else
43
+ req.body = data
44
+ end
45
+ end
46
+
47
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
48
+
49
+ res = ::OpenApiSDK::Operations::CreateFolderResponse.new(
50
+ status_code: r.status, content_type: content_type, raw_response: r
51
+ )
52
+ if r.status == 201
53
+ if Utils.match_content_type(content_type, 'application/json')
54
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::FolderSchema)
55
+ res.folder_schema = out
56
+ end
57
+ elsif r.status == 400
58
+ if Utils.match_content_type(content_type, 'application/json')
59
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::BadRequest)
60
+ res.bad_request = out
61
+ end
62
+ elsif r.status == 401
63
+ if Utils.match_content_type(content_type, 'application/json')
64
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Unauthorized)
65
+ res.unauthorized = out
66
+ end
67
+ elsif r.status == 403
68
+ if Utils.match_content_type(content_type, 'application/json')
69
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Forbidden)
70
+ res.forbidden = out
71
+ end
72
+ elsif r.status == 404
73
+ if Utils.match_content_type(content_type, 'application/json')
74
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::NotFound)
75
+ res.not_found = out
76
+ end
77
+ elsif r.status == 409
78
+ if Utils.match_content_type(content_type, 'application/json')
79
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Conflict)
80
+ res.conflict = out
81
+ end
82
+ elsif r.status == 410
83
+ if Utils.match_content_type(content_type, 'application/json')
84
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::InviteExpired)
85
+ res.invite_expired = out
86
+ end
87
+ elsif r.status == 422
88
+ if Utils.match_content_type(content_type, 'application/json')
89
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::UnprocessableEntity)
90
+ res.unprocessable_entity = out
91
+ end
92
+ elsif r.status == 429
93
+ if Utils.match_content_type(content_type, 'application/json')
94
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::RateLimitExceeded)
95
+ res.rate_limit_exceeded = out
96
+ end
97
+ elsif r.status == 500
98
+ if Utils.match_content_type(content_type, 'application/json')
99
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::InternalServerError)
100
+ res.internal_server_error = out
101
+ end
102
+ end
103
+
104
+ res
105
+ end
106
+
107
+
108
+ sig { params(request: T.nilable(::OpenApiSDK::Operations::ListFoldersRequest)).returns(::OpenApiSDK::Operations::ListFoldersResponse) }
109
+ def list(request)
110
+ # list - Retrieve a list of folders
111
+ # Retrieve a list of folders for the authenticated workspace.
112
+ url, params = @sdk_configuration.get_server_details
113
+ base_url = Utils.template_url(url, params)
114
+ url = "#{base_url}/folders"
115
+ headers = {}
116
+ query_params = Utils.get_query_params(::OpenApiSDK::Operations::ListFoldersRequest, request)
117
+ headers['Accept'] = 'application/json'
118
+ headers['user-agent'] = @sdk_configuration.user_agent
119
+
120
+ r = @sdk_configuration.client.get(url) do |req|
121
+ req.headers = headers
122
+ req.params = query_params
123
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
124
+ end
125
+
126
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
127
+
128
+ res = ::OpenApiSDK::Operations::ListFoldersResponse.new(
129
+ status_code: r.status, content_type: content_type, raw_response: r
130
+ )
131
+ if r.status == 200
132
+ if Utils.match_content_type(content_type, 'application/json')
133
+ out = Utils.unmarshal_complex(r.env.response_body, T::Array[::OpenApiSDK::Shared::FolderSchema])
134
+ res.folder_schemas = out
135
+ end
136
+ elsif r.status == 400
137
+ if Utils.match_content_type(content_type, 'application/json')
138
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::BadRequest)
139
+ res.bad_request = out
140
+ end
141
+ elsif r.status == 401
142
+ if Utils.match_content_type(content_type, 'application/json')
143
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Unauthorized)
144
+ res.unauthorized = out
145
+ end
146
+ elsif r.status == 403
147
+ if Utils.match_content_type(content_type, 'application/json')
148
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Forbidden)
149
+ res.forbidden = out
150
+ end
151
+ elsif r.status == 404
152
+ if Utils.match_content_type(content_type, 'application/json')
153
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::NotFound)
154
+ res.not_found = out
155
+ end
156
+ elsif r.status == 409
157
+ if Utils.match_content_type(content_type, 'application/json')
158
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Conflict)
159
+ res.conflict = out
160
+ end
161
+ elsif r.status == 410
162
+ if Utils.match_content_type(content_type, 'application/json')
163
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::InviteExpired)
164
+ res.invite_expired = out
165
+ end
166
+ elsif r.status == 422
167
+ if Utils.match_content_type(content_type, 'application/json')
168
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::UnprocessableEntity)
169
+ res.unprocessable_entity = out
170
+ end
171
+ elsif r.status == 429
172
+ if Utils.match_content_type(content_type, 'application/json')
173
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::RateLimitExceeded)
174
+ res.rate_limit_exceeded = out
175
+ end
176
+ elsif r.status == 500
177
+ if Utils.match_content_type(content_type, 'application/json')
178
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::InternalServerError)
179
+ res.internal_server_error = out
180
+ end
181
+ end
182
+
183
+ res
184
+ end
185
+
186
+
187
+ sig { params(request: T.nilable(::OpenApiSDK::Operations::UpdateFolderRequest)).returns(::OpenApiSDK::Operations::UpdateFolderResponse) }
188
+ def update(request)
189
+ # update - Update a folder
190
+ # Update a folder in the workspace.
191
+ url, params = @sdk_configuration.get_server_details
192
+ base_url = Utils.template_url(url, params)
193
+ url = Utils.generate_url(
194
+ ::OpenApiSDK::Operations::UpdateFolderRequest,
195
+ base_url,
196
+ '/folders/{id}',
197
+ request
198
+ )
199
+ headers = {}
200
+ req_content_type, data, form = Utils.serialize_request_body(request, :request_body, :json)
201
+ headers['content-type'] = req_content_type
202
+ headers['Accept'] = 'application/json'
203
+ headers['user-agent'] = @sdk_configuration.user_agent
204
+
205
+ r = @sdk_configuration.client.patch(url) do |req|
206
+ req.headers = headers
207
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
208
+ if form
209
+ req.body = Utils.encode_form(form)
210
+ elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
211
+ req.body = URI.encode_www_form(data)
212
+ else
213
+ req.body = data
214
+ end
215
+ end
216
+
217
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
218
+
219
+ res = ::OpenApiSDK::Operations::UpdateFolderResponse.new(
220
+ status_code: r.status, content_type: content_type, raw_response: r
221
+ )
222
+ if r.status == 200
223
+ if Utils.match_content_type(content_type, 'application/json')
224
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::FolderSchema)
225
+ res.folder_schema = out
226
+ end
227
+ elsif r.status == 400
228
+ if Utils.match_content_type(content_type, 'application/json')
229
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::BadRequest)
230
+ res.bad_request = out
231
+ end
232
+ elsif r.status == 401
233
+ if Utils.match_content_type(content_type, 'application/json')
234
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Unauthorized)
235
+ res.unauthorized = out
236
+ end
237
+ elsif r.status == 403
238
+ if Utils.match_content_type(content_type, 'application/json')
239
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Forbidden)
240
+ res.forbidden = out
241
+ end
242
+ elsif r.status == 404
243
+ if Utils.match_content_type(content_type, 'application/json')
244
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::NotFound)
245
+ res.not_found = out
246
+ end
247
+ elsif r.status == 409
248
+ if Utils.match_content_type(content_type, 'application/json')
249
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Conflict)
250
+ res.conflict = out
251
+ end
252
+ elsif r.status == 410
253
+ if Utils.match_content_type(content_type, 'application/json')
254
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::InviteExpired)
255
+ res.invite_expired = out
256
+ end
257
+ elsif r.status == 422
258
+ if Utils.match_content_type(content_type, 'application/json')
259
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::UnprocessableEntity)
260
+ res.unprocessable_entity = out
261
+ end
262
+ elsif r.status == 429
263
+ if Utils.match_content_type(content_type, 'application/json')
264
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::RateLimitExceeded)
265
+ res.rate_limit_exceeded = out
266
+ end
267
+ elsif r.status == 500
268
+ if Utils.match_content_type(content_type, 'application/json')
269
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::InternalServerError)
270
+ res.internal_server_error = out
271
+ end
272
+ end
273
+
274
+ res
275
+ end
276
+
277
+
278
+ sig { params(request: T.nilable(::OpenApiSDK::Operations::DeleteFolderRequest)).returns(::OpenApiSDK::Operations::DeleteFolderResponse) }
279
+ def delete(request)
280
+ # delete - Delete a folder
281
+ # Delete a folder from the workspace. All existing links will still work, but they will no longer be associated with this folder.
282
+ url, params = @sdk_configuration.get_server_details
283
+ base_url = Utils.template_url(url, params)
284
+ url = Utils.generate_url(
285
+ ::OpenApiSDK::Operations::DeleteFolderRequest,
286
+ base_url,
287
+ '/folders/{id}',
288
+ request
289
+ )
290
+ headers = {}
291
+ headers['Accept'] = 'application/json'
292
+ headers['user-agent'] = @sdk_configuration.user_agent
293
+
294
+ r = @sdk_configuration.client.delete(url) do |req|
295
+ req.headers = headers
296
+ Utils.configure_request_security(req, @sdk_configuration.security) if !@sdk_configuration.nil? && !@sdk_configuration.security.nil?
297
+ end
298
+
299
+ content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
300
+
301
+ res = ::OpenApiSDK::Operations::DeleteFolderResponse.new(
302
+ status_code: r.status, content_type: content_type, raw_response: r
303
+ )
304
+ if r.status == 200
305
+ if Utils.match_content_type(content_type, 'application/json')
306
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Operations::DeleteFolderResponseBody)
307
+ res.object = out
308
+ end
309
+ elsif r.status == 400
310
+ if Utils.match_content_type(content_type, 'application/json')
311
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::BadRequest)
312
+ res.bad_request = out
313
+ end
314
+ elsif r.status == 401
315
+ if Utils.match_content_type(content_type, 'application/json')
316
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Unauthorized)
317
+ res.unauthorized = out
318
+ end
319
+ elsif r.status == 403
320
+ if Utils.match_content_type(content_type, 'application/json')
321
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Forbidden)
322
+ res.forbidden = out
323
+ end
324
+ elsif r.status == 404
325
+ if Utils.match_content_type(content_type, 'application/json')
326
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::NotFound)
327
+ res.not_found = out
328
+ end
329
+ elsif r.status == 409
330
+ if Utils.match_content_type(content_type, 'application/json')
331
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::Conflict)
332
+ res.conflict = out
333
+ end
334
+ elsif r.status == 410
335
+ if Utils.match_content_type(content_type, 'application/json')
336
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::InviteExpired)
337
+ res.invite_expired = out
338
+ end
339
+ elsif r.status == 422
340
+ if Utils.match_content_type(content_type, 'application/json')
341
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::UnprocessableEntity)
342
+ res.unprocessable_entity = out
343
+ end
344
+ elsif r.status == 429
345
+ if Utils.match_content_type(content_type, 'application/json')
346
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::RateLimitExceeded)
347
+ res.rate_limit_exceeded = out
348
+ end
349
+ elsif r.status == 500
350
+ if Utils.match_content_type(content_type, 'application/json')
351
+ out = Utils.unmarshal_complex(r.env.response_body, ::OpenApiSDK::Shared::InternalServerError)
352
+ res.internal_server_error = out
353
+ end
354
+ end
355
+
356
+ res
357
+ end
358
+ end
359
+ end
@@ -7,11 +7,11 @@
7
7
  module OpenApiSDK
8
8
  module Operations
9
9
 
10
-
11
- class CreatePartnerInterval < T::Enum
10
+ # AccessLevel - The access level of the folder within the workspace.
11
+ class AccessLevel < T::Enum
12
12
  enums do
13
- MONTH = new('month')
14
- YEAR = new('year')
13
+ READ = new('read')
14
+ WRITE = new('write')
15
15
  end
16
16
  end
17
17
  end
@@ -15,7 +15,7 @@ module OpenApiSDK
15
15
  field :created_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('createdAt') } }
16
16
  # Unique identifier for the customer in the client's app.
17
17
  field :external_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('externalId') } }
18
- # The unique identifier of the customer in Dub.
18
+ # The unique ID of the customer. You may use either the customer's `id` on Dub (obtained via `/customers` endpoint) or their `externalId` (unique ID within your system, prefixed with `ext_`, e.g. `ext_123`).
19
19
  field :id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('id') } }
20
20
  # Name of the customer.
21
21
  field :name, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('name') } }
@@ -0,0 +1,27 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module OpenApiSDK
8
+ module Operations
9
+
10
+
11
+ class CreateFolderRequestBody < ::OpenApiSDK::Utils::FieldAugmented
12
+ extend T::Sig
13
+
14
+ # The name of the folder.
15
+ field :name, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('name') } }
16
+ # The access level of the folder within the workspace.
17
+ field :access_level, T.nilable(::OpenApiSDK::Operations::AccessLevel), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('accessLevel'), 'decoder': Utils.enum_from_string(::OpenApiSDK::Operations::AccessLevel, true) } }
18
+
19
+
20
+ sig { params(name: ::String, access_level: T.nilable(::OpenApiSDK::Operations::AccessLevel)).void }
21
+ def initialize(name: nil, access_level: nil)
22
+ @name = name
23
+ @access_level = access_level
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,60 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module OpenApiSDK
8
+ module Operations
9
+
10
+
11
+ class CreateFolderResponse < ::OpenApiSDK::Utils::FieldAugmented
12
+ extend T::Sig
13
+
14
+ # HTTP response content type for this operation
15
+ field :content_type, ::String
16
+ # Raw HTTP response; suitable for custom response parsing
17
+ field :raw_response, ::Faraday::Response
18
+ # HTTP response status code for this operation
19
+ field :status_code, ::Integer
20
+ # The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
21
+ field :bad_request, T.nilable(::OpenApiSDK::Shared::BadRequest)
22
+ # This response is sent when a request conflicts with the current state of the server.
23
+ field :conflict, T.nilable(::OpenApiSDK::Shared::Conflict)
24
+ # The created folder
25
+ field :folder_schema, T.nilable(::OpenApiSDK::Shared::FolderSchema)
26
+ # The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401 Unauthorized, the client's identity is known to the server.
27
+ field :forbidden, T.nilable(::OpenApiSDK::Shared::Forbidden)
28
+ # The server has encountered a situation it does not know how to handle.
29
+ field :internal_server_error, T.nilable(::OpenApiSDK::Shared::InternalServerError)
30
+ # This response is sent when the requested content has been permanently deleted from server, with no forwarding address.
31
+ field :invite_expired, T.nilable(::OpenApiSDK::Shared::InviteExpired)
32
+ # The server cannot find the requested resource.
33
+ field :not_found, T.nilable(::OpenApiSDK::Shared::NotFound)
34
+ # The user has sent too many requests in a given amount of time ("rate limiting")
35
+ field :rate_limit_exceeded, T.nilable(::OpenApiSDK::Shared::RateLimitExceeded)
36
+ # Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response.
37
+ field :unauthorized, T.nilable(::OpenApiSDK::Shared::Unauthorized)
38
+ # The request was well-formed but was unable to be followed due to semantic errors.
39
+ field :unprocessable_entity, T.nilable(::OpenApiSDK::Shared::UnprocessableEntity)
40
+
41
+
42
+ sig { params(content_type: ::String, raw_response: ::Faraday::Response, status_code: ::Integer, bad_request: T.nilable(::OpenApiSDK::Shared::BadRequest), conflict: T.nilable(::OpenApiSDK::Shared::Conflict), folder_schema: T.nilable(::OpenApiSDK::Shared::FolderSchema), forbidden: T.nilable(::OpenApiSDK::Shared::Forbidden), internal_server_error: T.nilable(::OpenApiSDK::Shared::InternalServerError), invite_expired: T.nilable(::OpenApiSDK::Shared::InviteExpired), not_found: T.nilable(::OpenApiSDK::Shared::NotFound), rate_limit_exceeded: T.nilable(::OpenApiSDK::Shared::RateLimitExceeded), unauthorized: T.nilable(::OpenApiSDK::Shared::Unauthorized), unprocessable_entity: T.nilable(::OpenApiSDK::Shared::UnprocessableEntity)).void }
43
+ def initialize(content_type: nil, raw_response: nil, status_code: nil, bad_request: nil, conflict: nil, folder_schema: nil, forbidden: nil, internal_server_error: nil, invite_expired: nil, not_found: nil, rate_limit_exceeded: nil, unauthorized: nil, unprocessable_entity: nil)
44
+ @content_type = content_type
45
+ @raw_response = raw_response
46
+ @status_code = status_code
47
+ @bad_request = bad_request
48
+ @conflict = conflict
49
+ @folder_schema = folder_schema
50
+ @forbidden = forbidden
51
+ @internal_server_error = internal_server_error
52
+ @invite_expired = invite_expired
53
+ @not_found = not_found
54
+ @rate_limit_exceeded = rate_limit_exceeded
55
+ @unauthorized = unauthorized
56
+ @unprocessable_entity = unprocessable_entity
57
+ end
58
+ end
59
+ end
60
+ end
@@ -31,6 +31,8 @@ module OpenApiSDK
31
31
  field :expires_at, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('expiresAt') } }
32
32
  # The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.
33
33
  field :external_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('externalId') } }
34
+ # The unique ID existing folder to assign the short link to.
35
+ field :folder_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('folderId') } }
34
36
  # Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`.
35
37
  field :geo, T.nilable(::OpenApiSDK::Shared::LinkGeoTargeting), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('geo') } }
36
38
  # The custom link preview image (og:image). Will be used for Custom Social Media Cards if `proxy` is true. Learn more: https://d.to/og
@@ -87,8 +89,8 @@ module OpenApiSDK
87
89
  field :webhook_ids, T.nilable(T::Array[::String]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('webhookIds') } }
88
90
 
89
91
 
90
- sig { params(url: ::String, android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), domain: T.nilable(::String), expired_url: T.nilable(::String), expires_at: T.nilable(::String), external_id: T.nilable(::String), geo: T.nilable(::OpenApiSDK::Shared::LinkGeoTargeting), image: T.nilable(::String), ios: T.nilable(::String), key: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), prefix: T.nilable(::String), program_id: T.nilable(::String), proxy: T.nilable(T::Boolean), public_stats: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), track_conversion: T.nilable(T::Boolean), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String), webhook_ids: T.nilable(T::Array[::String])).void }
91
- def initialize(url: nil, android: nil, archived: nil, comments: nil, description: nil, do_index: nil, domain: nil, expired_url: nil, expires_at: nil, external_id: nil, geo: nil, image: nil, ios: nil, key: nil, partner_id: nil, password: nil, prefix: nil, program_id: nil, proxy: nil, public_stats: nil, ref: nil, rewrite: nil, tag_id: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, track_conversion: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil, webhook_ids: nil)
92
+ sig { params(url: ::String, android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), domain: T.nilable(::String), expired_url: T.nilable(::String), expires_at: T.nilable(::String), external_id: T.nilable(::String), folder_id: T.nilable(::String), geo: T.nilable(::OpenApiSDK::Shared::LinkGeoTargeting), image: T.nilable(::String), ios: T.nilable(::String), key: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), prefix: T.nilable(::String), program_id: T.nilable(::String), proxy: T.nilable(T::Boolean), public_stats: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_id: T.nilable(::String), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), track_conversion: T.nilable(T::Boolean), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String), webhook_ids: T.nilable(T::Array[::String])).void }
93
+ def initialize(url: nil, android: nil, archived: nil, comments: nil, description: nil, do_index: nil, domain: nil, expired_url: nil, expires_at: nil, external_id: nil, folder_id: nil, geo: nil, image: nil, ios: nil, key: nil, partner_id: nil, password: nil, prefix: nil, program_id: nil, proxy: nil, public_stats: nil, ref: nil, rewrite: nil, tag_id: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, track_conversion: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil, webhook_ids: nil)
92
94
  @url = url
93
95
  @android = android
94
96
  @archived = archived
@@ -99,6 +101,7 @@ module OpenApiSDK
99
101
  @expired_url = expired_url
100
102
  @expires_at = expires_at
101
103
  @external_id = external_id
104
+ @folder_id = folder_id
102
105
  @geo = geo
103
106
  @image = image
104
107
  @ios = ios
@@ -12,12 +12,8 @@ module OpenApiSDK
12
12
  extend T::Sig
13
13
 
14
14
 
15
- field :bio, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('bio') } }
16
-
17
15
  field :clicks, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('clicks') } }
18
16
 
19
- field :commission_amount, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('commissionAmount') } }
20
-
21
17
  field :country, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('country') } }
22
18
 
23
19
  field :created_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('createdAt') } }
@@ -36,28 +32,22 @@ module OpenApiSDK
36
32
 
37
33
  field :name, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('name') } }
38
34
 
39
- field :payouts_enabled, T::Boolean, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('payoutsEnabled') } }
35
+ field :program_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('programId') } }
40
36
 
41
- field :sales, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('sales') } }
37
+ field :sale_amount, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('saleAmount') } }
42
38
 
43
- field :sales_amount, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('salesAmount') } }
39
+ field :sales, ::Float, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('sales') } }
44
40
 
45
41
  field :status, ::OpenApiSDK::Operations::Status, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status'), 'decoder': Utils.enum_from_string(::OpenApiSDK::Operations::Status, false) } }
46
42
 
47
- field :stripe_connect_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('stripeConnectId') } }
48
-
49
- field :updated_at, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('updatedAt') } }
50
-
51
- field :coupon_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('couponId') } }
43
+ field :tenant_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tenantId') } }
52
44
 
53
- field :discount, T.nilable(::OpenApiSDK::Operations::CreatePartnerDiscount), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('discount') } }
45
+ field :description, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('description') } }
54
46
 
55
47
 
56
- sig { params(bio: ::String, clicks: ::Float, commission_amount: ::Float, country: ::String, created_at: ::String, earnings: ::Float, email: ::String, id: ::String, image: ::String, leads: ::Float, links: T::Array[::OpenApiSDK::Operations::Links], name: ::String, payouts_enabled: T::Boolean, sales: ::Float, sales_amount: ::Float, status: ::OpenApiSDK::Operations::Status, stripe_connect_id: ::String, updated_at: ::String, coupon_id: T.nilable(::String), discount: T.nilable(::OpenApiSDK::Operations::CreatePartnerDiscount)).void }
57
- def initialize(bio: nil, clicks: nil, commission_amount: nil, country: nil, created_at: nil, earnings: nil, email: nil, id: nil, image: nil, leads: nil, links: nil, name: nil, payouts_enabled: nil, sales: nil, sales_amount: nil, status: nil, stripe_connect_id: nil, updated_at: nil, coupon_id: nil, discount: nil)
58
- @bio = bio
48
+ sig { params(clicks: ::Float, country: ::String, created_at: ::String, earnings: ::Float, email: ::String, id: ::String, image: ::String, leads: ::Float, links: T::Array[::OpenApiSDK::Operations::Links], name: ::String, program_id: ::String, sale_amount: ::Float, sales: ::Float, status: ::OpenApiSDK::Operations::Status, tenant_id: ::String, description: T.nilable(::String)).void }
49
+ def initialize(clicks: nil, country: nil, created_at: nil, earnings: nil, email: nil, id: nil, image: nil, leads: nil, links: nil, name: nil, program_id: nil, sale_amount: nil, sales: nil, status: nil, tenant_id: nil, description: nil)
59
50
  @clicks = clicks
60
- @commission_amount = commission_amount
61
51
  @country = country
62
52
  @created_at = created_at
63
53
  @earnings = earnings
@@ -67,14 +57,12 @@ module OpenApiSDK
67
57
  @leads = leads
68
58
  @links = links
69
59
  @name = name
70
- @payouts_enabled = payouts_enabled
60
+ @program_id = program_id
61
+ @sale_amount = sale_amount
71
62
  @sales = sales
72
- @sales_amount = sales_amount
73
63
  @status = status
74
- @stripe_connect_id = stripe_connect_id
75
- @updated_at = updated_at
76
- @coupon_id = coupon_id
77
- @discount = discount
64
+ @tenant_id = tenant_id
65
+ @description = description
78
66
  end
79
67
  end
80
68
  end
@@ -27,6 +27,8 @@ module OpenApiSDK
27
27
  field :expires_at, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('expiresAt') } }
28
28
  # The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.
29
29
  field :external_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('externalId') } }
30
+ # The unique ID existing folder to assign the short link to.
31
+ field :folder_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('folderId') } }
30
32
  # The custom link preview image (og:image). Will be used for Custom Social Media Cards if `proxy` is true. Learn more: https://d.to/og
31
33
  field :image, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('image') } }
32
34
  # The iOS destination URL for the short link for iOS device targeting.
@@ -65,8 +67,8 @@ module OpenApiSDK
65
67
  field :video, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('video') } }
66
68
 
67
69
 
68
- sig { params(android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), expired_url: T.nilable(::String), expires_at: T.nilable(::String), external_id: T.nilable(::String), image: T.nilable(::String), ios: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), prefix: T.nilable(::String), proxy: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String)).void }
69
- def initialize(android: nil, archived: nil, comments: nil, description: nil, do_index: nil, expired_url: nil, expires_at: nil, external_id: nil, image: nil, ios: nil, partner_id: nil, password: nil, prefix: nil, proxy: nil, ref: nil, rewrite: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil)
70
+ sig { params(android: T.nilable(::String), archived: T.nilable(T::Boolean), comments: T.nilable(::String), description: T.nilable(::String), do_index: T.nilable(T::Boolean), expired_url: T.nilable(::String), expires_at: T.nilable(::String), external_id: T.nilable(::String), folder_id: T.nilable(::String), image: T.nilable(::String), ios: T.nilable(::String), partner_id: T.nilable(::String), password: T.nilable(::String), prefix: T.nilable(::String), proxy: T.nilable(T::Boolean), ref: T.nilable(::String), rewrite: T.nilable(T::Boolean), tag_ids: T.nilable(::Object), tag_names: T.nilable(::Object), tenant_id: T.nilable(::String), title: T.nilable(::String), utm_campaign: T.nilable(::String), utm_content: T.nilable(::String), utm_medium: T.nilable(::String), utm_source: T.nilable(::String), utm_term: T.nilable(::String), video: T.nilable(::String)).void }
71
+ def initialize(android: nil, archived: nil, comments: nil, description: nil, do_index: nil, expired_url: nil, expires_at: nil, external_id: nil, folder_id: nil, image: nil, ios: nil, partner_id: nil, password: nil, prefix: nil, proxy: nil, ref: nil, rewrite: nil, tag_ids: nil, tag_names: nil, tenant_id: nil, title: nil, utm_campaign: nil, utm_content: nil, utm_medium: nil, utm_source: nil, utm_term: nil, video: nil)
70
72
  @android = android
71
73
  @archived = archived
72
74
  @comments = comments
@@ -75,6 +77,7 @@ module OpenApiSDK
75
77
  @expired_url = expired_url
76
78
  @expires_at = expires_at
77
79
  @external_id = external_id
80
+ @folder_id = folder_id
78
81
  @image = image
79
82
  @ios = ios
80
83
  @partner_id = partner_id