dub 0.12.3 → 0.12.5

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 (225) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/enum.rbi +17 -0
  3. data/lib/crystalline/metadata_fields.rb +20 -14
  4. data/lib/crystalline/module.rb +96 -10
  5. data/lib/crystalline/types.rb +79 -0
  6. data/lib/dub.rb +1 -0
  7. data/lib/open_api_sdk/bounties.rb +1 -1
  8. data/lib/open_api_sdk/commissions.rb +2 -2
  9. data/lib/open_api_sdk/customers.rb +32 -32
  10. data/lib/open_api_sdk/domains.rb +97 -97
  11. data/lib/open_api_sdk/dub.rb +2 -1
  12. data/lib/open_api_sdk/folders.rb +61 -61
  13. data/lib/open_api_sdk/links.rb +133 -133
  14. data/lib/open_api_sdk/models/errors/code.rb +0 -2
  15. data/lib/open_api_sdk/models/errors/conflict_code.rb +0 -2
  16. data/lib/open_api_sdk/models/errors/forbidden_code.rb +0 -2
  17. data/lib/open_api_sdk/models/errors/internalservererror_code.rb +0 -2
  18. data/lib/open_api_sdk/models/errors/inviteexpired_code.rb +0 -2
  19. data/lib/open_api_sdk/models/errors/notfound_code.rb +0 -2
  20. data/lib/open_api_sdk/models/errors/ratelimitexceeded_code.rb +0 -2
  21. data/lib/open_api_sdk/models/errors/unauthorized_code.rb +0 -2
  22. data/lib/open_api_sdk/models/errors/unprocessableentity_code.rb +0 -2
  23. data/lib/open_api_sdk/models/operations/accesslevel.rb +0 -2
  24. data/lib/open_api_sdk/models/operations/approvebountysubmission_status.rb +0 -2
  25. data/lib/open_api_sdk/models/operations/bannedreason.rb +0 -2
  26. data/lib/open_api_sdk/models/operations/color.rb +0 -2
  27. data/lib/open_api_sdk/models/operations/{listpartners_bannedreason.rb → createpartner_bannedreason.rb} +2 -4
  28. data/lib/open_api_sdk/models/operations/createpartner_bannedreason.rbi +11 -0
  29. data/lib/open_api_sdk/models/operations/{listpartners_fields.rb → createpartner_fields.rb} +1 -1
  30. data/lib/open_api_sdk/models/operations/createpartner_fields.rbi +11 -0
  31. data/lib/open_api_sdk/models/operations/{listpartners_fields_1.rb → createpartner_fields_1.rb} +4 -4
  32. data/lib/open_api_sdk/models/operations/{listpartners_fields_1.rbi → createpartner_fields_1.rbi} +2 -2
  33. data/lib/open_api_sdk/models/operations/{listpartners_fields_2.rb → createpartner_fields_2.rb} +4 -4
  34. data/lib/open_api_sdk/models/operations/{listpartners_fields_2.rbi → createpartner_fields_2.rbi} +2 -2
  35. data/lib/open_api_sdk/models/operations/{listpartners_fields_3.rb → createpartner_fields_3.rb} +4 -4
  36. data/lib/open_api_sdk/models/operations/{listpartners_fields_3.rbi → createpartner_fields_3.rbi} +2 -2
  37. data/lib/open_api_sdk/models/operations/{listpartners_fields_4.rb → createpartner_fields_4.rb} +3 -3
  38. data/lib/open_api_sdk/models/operations/{listpartners_fields_4.rbi → createpartner_fields_4.rbi} +2 -2
  39. data/lib/open_api_sdk/models/operations/{listpartners_fields_constraints.rb → createpartner_fields_constraints.rb} +1 -1
  40. data/lib/open_api_sdk/models/operations/{listpartners_fields_constraints.rbi → createpartner_fields_constraints.rbi} +2 -2
  41. data/lib/open_api_sdk/models/operations/{listpartners_fields_options.rb → createpartner_fields_options.rb} +1 -1
  42. data/lib/open_api_sdk/models/operations/{listpartners_fields_options.rbi → createpartner_fields_options.rbi} +2 -2
  43. data/lib/open_api_sdk/models/operations/{listpartners_fields_partners_constraints.rb → createpartner_fields_partners_constraints.rb} +1 -1
  44. data/lib/open_api_sdk/models/operations/{listpartners_fields_partners_constraints.rbi → createpartner_fields_partners_constraints.rbi} +2 -2
  45. data/lib/open_api_sdk/models/operations/{listpartners_fields_partners_options.rb → createpartner_fields_partners_options.rb} +1 -1
  46. data/lib/open_api_sdk/models/operations/{listpartners_fields_partners_options.rbi → createpartner_fields_partners_options.rbi} +2 -2
  47. data/lib/open_api_sdk/models/operations/{listpartners_fields_partners_response_200_applicationjson_responsebody_referralformdata_8_type.rb → createpartner_fields_partners_response_201_applicationjson_responsebody_referralformdata_8_type.rb} +1 -3
  48. data/lib/open_api_sdk/models/operations/createpartner_fields_partners_response_201_applicationjson_responsebody_referralformdata_8_type.rbi +11 -0
  49. data/lib/open_api_sdk/models/operations/createpartner_fields_partners_response_201_applicationjson_responsebody_referralformdata_type.rb +1 -3
  50. data/lib/open_api_sdk/models/operations/createpartner_fields_partners_response_201_applicationjson_responsebody_type.rb +1 -3
  51. data/lib/open_api_sdk/models/operations/createpartner_fields_partners_response_201_applicationjson_type.rb +1 -3
  52. data/lib/open_api_sdk/models/operations/createpartner_fields_partners_response_201_type.rb +1 -3
  53. data/lib/open_api_sdk/models/operations/createpartner_fields_partners_response_type.rb +1 -3
  54. data/lib/open_api_sdk/models/operations/createpartner_fields_partners_type.rb +1 -3
  55. data/lib/open_api_sdk/models/operations/createpartner_fields_type.rb +1 -3
  56. data/lib/open_api_sdk/models/operations/{listpartners_links.rb → createpartner_links.rb} +1 -1
  57. data/lib/open_api_sdk/models/operations/{listpartners_links.rbi → createpartner_links.rbi} +2 -2
  58. data/lib/open_api_sdk/models/operations/createpartner_referralformdata.rb +32 -0
  59. data/lib/open_api_sdk/models/operations/{listpartners_referralformdata.rbi → createpartner_referralformdata.rbi} +2 -2
  60. data/lib/open_api_sdk/models/operations/createpartner_responsebody.rb +4 -4
  61. data/lib/open_api_sdk/models/operations/createpartner_status.rb +0 -2
  62. data/lib/open_api_sdk/models/operations/deactivatepartner_requestbody.rb +36 -0
  63. data/lib/open_api_sdk/models/operations/deactivatepartner_requestbody.rbi +15 -0
  64. data/lib/open_api_sdk/models/operations/deactivatepartner_responsebody.rb +32 -0
  65. data/lib/open_api_sdk/models/operations/deactivatepartner_responsebody.rbi +13 -0
  66. data/lib/open_api_sdk/models/operations/eight.rb +2 -2
  67. data/lib/open_api_sdk/models/operations/event.rb +0 -2
  68. data/lib/open_api_sdk/models/operations/fields_2.rb +2 -2
  69. data/lib/open_api_sdk/models/operations/fields_3.rb +2 -2
  70. data/lib/open_api_sdk/models/operations/fields_4.rb +2 -2
  71. data/lib/open_api_sdk/models/operations/fields_5.rb +2 -2
  72. data/lib/open_api_sdk/models/operations/fields_6.rb +3 -3
  73. data/lib/open_api_sdk/models/operations/fields_7.rb +2 -2
  74. data/lib/open_api_sdk/models/operations/fields_8.rb +2 -2
  75. data/lib/open_api_sdk/models/operations/fields_type.rb +0 -2
  76. data/lib/open_api_sdk/models/operations/five.rb +2 -2
  77. data/lib/open_api_sdk/models/operations/four.rb +0 -2
  78. data/lib/open_api_sdk/models/operations/getcustomer_type.rb +0 -2
  79. data/lib/open_api_sdk/models/operations/getcustomers_queryparam_sortby.rb +0 -2
  80. data/lib/open_api_sdk/models/operations/getcustomers_queryparam_sortorder.rb +0 -2
  81. data/lib/open_api_sdk/models/operations/getcustomers_type.rb +0 -2
  82. data/lib/open_api_sdk/models/operations/gettags_queryparam_sortby.rb +0 -2
  83. data/lib/open_api_sdk/models/operations/gettags_queryparam_sortorder.rb +0 -2
  84. data/lib/open_api_sdk/models/operations/interval.rb +0 -2
  85. data/lib/open_api_sdk/models/operations/level.rb +0 -2
  86. data/lib/open_api_sdk/models/operations/listbountysubmissions_queryparam_sortby.rb +0 -2
  87. data/lib/open_api_sdk/models/operations/listbountysubmissions_queryparam_sortorder.rb +0 -2
  88. data/lib/open_api_sdk/models/operations/listbountysubmissions_queryparam_status.rb +0 -2
  89. data/lib/open_api_sdk/models/operations/listbountysubmissions_request.rb +1 -1
  90. data/lib/open_api_sdk/models/operations/listbountysubmissions_status.rb +0 -2
  91. data/lib/open_api_sdk/models/operations/listcommissions_queryparam_interval.rb +0 -2
  92. data/lib/open_api_sdk/models/operations/listcommissions_queryparam_sortby.rb +0 -2
  93. data/lib/open_api_sdk/models/operations/listcommissions_queryparam_sortorder.rb +0 -2
  94. data/lib/open_api_sdk/models/operations/listcommissions_status.rb +0 -2
  95. data/lib/open_api_sdk/models/operations/listcommissions_type.rb +0 -2
  96. data/lib/open_api_sdk/models/operations/listevents_request.rb +60 -64
  97. data/lib/open_api_sdk/models/operations/listevents_request.rbi +20 -22
  98. data/lib/open_api_sdk/models/operations/listevents_responsebody_event.rb +0 -2
  99. data/lib/open_api_sdk/models/operations/listevents_responsebody_events_event.rb +0 -2
  100. data/lib/open_api_sdk/models/operations/listpartners_fields_partners_response_200_applicationjson_responsebody_referralformdata_type.rb +1 -3
  101. data/lib/open_api_sdk/models/operations/listpartners_fields_partners_response_200_applicationjson_responsebody_type.rb +1 -3
  102. data/lib/open_api_sdk/models/operations/listpartners_fields_partners_response_200_applicationjson_type.rb +1 -3
  103. data/lib/open_api_sdk/models/operations/listpartners_fields_partners_response_200_type.rb +1 -3
  104. data/lib/open_api_sdk/models/operations/listpartners_fields_partners_response_type.rb +1 -3
  105. data/lib/open_api_sdk/models/operations/listpartners_fields_partners_type.rb +1 -3
  106. data/lib/open_api_sdk/models/operations/listpartners_fields_type.rb +1 -3
  107. data/lib/open_api_sdk/models/operations/listpartners_queryparam_sortby.rb +0 -2
  108. data/lib/open_api_sdk/models/operations/listpartners_queryparam_sortorder.rb +0 -2
  109. data/lib/open_api_sdk/models/operations/listpartners_queryparam_status.rb +0 -2
  110. data/lib/open_api_sdk/models/operations/listpartners_responsebody.rb +4 -4
  111. data/lib/open_api_sdk/models/operations/listpartners_status.rb +0 -2
  112. data/lib/open_api_sdk/models/operations/listpayouts_mode.rb +19 -0
  113. data/lib/open_api_sdk/models/operations/listpayouts_mode.rbi +11 -0
  114. data/lib/open_api_sdk/models/operations/listpayouts_partner.rb +60 -0
  115. data/lib/open_api_sdk/models/operations/listpayouts_partner.rbi +27 -0
  116. data/lib/open_api_sdk/models/operations/listpayouts_queryparam_sortby.rb +20 -0
  117. data/lib/open_api_sdk/models/operations/listpayouts_queryparam_sortby.rbi +11 -0
  118. data/lib/open_api_sdk/models/operations/listpayouts_queryparam_sortorder.rb +19 -0
  119. data/lib/open_api_sdk/models/operations/listpayouts_queryparam_sortorder.rbi +11 -0
  120. data/lib/open_api_sdk/models/operations/listpayouts_queryparam_status.rb +24 -0
  121. data/lib/open_api_sdk/models/operations/listpayouts_queryparam_status.rbi +11 -0
  122. data/lib/open_api_sdk/models/operations/listpayouts_request.rb +60 -0
  123. data/lib/open_api_sdk/models/operations/listpayouts_request.rbi +27 -0
  124. data/lib/open_api_sdk/models/operations/listpayouts_responsebody.rb +88 -0
  125. data/lib/open_api_sdk/models/operations/listpayouts_responsebody.rbi +41 -0
  126. data/lib/open_api_sdk/models/operations/listpayouts_status.rb +24 -0
  127. data/lib/open_api_sdk/models/operations/listpayouts_status.rbi +11 -0
  128. data/lib/open_api_sdk/models/operations/mode.rb +0 -2
  129. data/lib/open_api_sdk/models/operations/one.rb +0 -2
  130. data/lib/open_api_sdk/models/operations/order.rb +0 -2
  131. data/lib/open_api_sdk/models/operations/paymentprocessor.rb +0 -2
  132. data/lib/open_api_sdk/models/operations/queryparam_event.rb +0 -2
  133. data/lib/open_api_sdk/models/operations/queryparam_groupby.rb +0 -2
  134. data/lib/open_api_sdk/models/operations/queryparam_interval.rb +0 -2
  135. data/lib/open_api_sdk/models/operations/queryparam_saletype.rb +0 -2
  136. data/lib/open_api_sdk/models/operations/queryparam_sortby.rb +0 -2
  137. data/lib/open_api_sdk/models/operations/queryparam_sortorder.rb +0 -2
  138. data/lib/open_api_sdk/models/operations/queryparam_status.rb +0 -2
  139. data/lib/open_api_sdk/models/operations/reason.rb +0 -2
  140. data/lib/open_api_sdk/models/operations/rejectbountysubmission_status.rb +0 -2
  141. data/lib/open_api_sdk/models/operations/rejectionreason.rb +0 -2
  142. data/lib/open_api_sdk/models/operations/responsebody_event.rb +0 -2
  143. data/lib/open_api_sdk/models/operations/responsebody_paymentprocessor.rb +0 -2
  144. data/lib/open_api_sdk/models/operations/retrieveanalytics_request.rb +60 -64
  145. data/lib/open_api_sdk/models/operations/retrieveanalytics_request.rbi +20 -22
  146. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_queryparam_groupby.rb +0 -2
  147. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_queryparam_interval.rb +0 -2
  148. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_request.rb +1 -1
  149. data/lib/open_api_sdk/models/operations/saletype.rb +0 -2
  150. data/lib/open_api_sdk/models/operations/seven.rb +2 -2
  151. data/lib/open_api_sdk/models/operations/six.rb +2 -2
  152. data/lib/open_api_sdk/models/operations/sort.rb +0 -2
  153. data/lib/open_api_sdk/models/operations/sortby.rb +0 -2
  154. data/lib/open_api_sdk/models/operations/sortorder.rb +0 -2
  155. data/lib/open_api_sdk/models/operations/status.rb +0 -2
  156. data/lib/open_api_sdk/models/operations/three.rb +0 -2
  157. data/lib/open_api_sdk/models/operations/two.rb +0 -2
  158. data/lib/open_api_sdk/models/operations/type.rb +0 -2
  159. data/lib/open_api_sdk/models/operations/updatecommission_status.rb +0 -2
  160. data/lib/open_api_sdk/models/operations/updatecommission_type.rb +0 -2
  161. data/lib/open_api_sdk/models/operations/updatecustomer_type.rb +0 -2
  162. data/lib/open_api_sdk/models/operations/updatefolder_accesslevel.rb +0 -2
  163. data/lib/open_api_sdk/models/operations/updatetag_color.rb +0 -2
  164. data/lib/open_api_sdk/models/operations/user.rb +44 -0
  165. data/lib/open_api_sdk/models/operations/user.rbi +19 -0
  166. data/lib/open_api_sdk/models/operations.rb +24 -19
  167. data/lib/open_api_sdk/models/shared/accesslevel.rb +0 -2
  168. data/lib/open_api_sdk/models/shared/analyticsregions_city.rb +0 -2
  169. data/lib/open_api_sdk/models/shared/analyticstoplinks.rb +10 -6
  170. data/lib/open_api_sdk/models/shared/analyticstoplinks.rbi +4 -2
  171. data/lib/open_api_sdk/models/shared/bannedreason.rb +0 -2
  172. data/lib/open_api_sdk/models/shared/city.rb +0 -2
  173. data/lib/open_api_sdk/models/shared/code.rb +0 -2
  174. data/lib/open_api_sdk/models/shared/color.rb +0 -2
  175. data/lib/open_api_sdk/models/shared/commissioncreatedevent_event.rb +0 -2
  176. data/lib/open_api_sdk/models/shared/commissioncreatedevent_status.rb +0 -2
  177. data/lib/open_api_sdk/models/shared/commissioncreatedevent_type.rb +0 -2
  178. data/lib/open_api_sdk/models/shared/continent.rb +0 -2
  179. data/lib/open_api_sdk/models/shared/fields_type.rb +0 -2
  180. data/lib/open_api_sdk/models/shared/leadcreatedevent_event.rb +0 -2
  181. data/lib/open_api_sdk/models/shared/linkclickedevent_event.rb +0 -2
  182. data/lib/open_api_sdk/models/shared/linktagschema_color.rb +0 -2
  183. data/lib/open_api_sdk/models/shared/one.rb +0 -2
  184. data/lib/open_api_sdk/models/shared/partneranalyticstoplinks.rb +10 -6
  185. data/lib/open_api_sdk/models/shared/partneranalyticstoplinks.rbi +4 -2
  186. data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent_event.rb +0 -2
  187. data/lib/open_api_sdk/models/shared/partnerapplicationsubmittedevent_status.rb +0 -2
  188. data/lib/open_api_sdk/models/shared/partnerenrolledevent_event.rb +0 -2
  189. data/lib/open_api_sdk/models/shared/partnerenrolledevent_fields_data_referralformdata_5_type.rb +0 -2
  190. data/lib/open_api_sdk/models/shared/partnerenrolledevent_fields_data_referralformdata_6_type.rb +0 -2
  191. data/lib/open_api_sdk/models/shared/partnerenrolledevent_fields_data_referralformdata_7_type.rb +0 -2
  192. data/lib/open_api_sdk/models/shared/partnerenrolledevent_fields_data_referralformdata_8_type.rb +0 -2
  193. data/lib/open_api_sdk/models/shared/partnerenrolledevent_fields_data_referralformdata_type.rb +0 -2
  194. data/lib/open_api_sdk/models/shared/partnerenrolledevent_fields_data_type.rb +0 -2
  195. data/lib/open_api_sdk/models/shared/partnerenrolledevent_fields_type.rb +0 -2
  196. data/lib/open_api_sdk/models/shared/region.rb +0 -2
  197. data/lib/open_api_sdk/models/shared/salecreatedevent_event.rb +0 -2
  198. data/lib/open_api_sdk/models/shared/status.rb +0 -2
  199. data/lib/open_api_sdk/models/shared/three.rb +0 -2
  200. data/lib/open_api_sdk/models/shared/trigger.rb +0 -2
  201. data/lib/open_api_sdk/models/shared/two.rb +0 -2
  202. data/lib/open_api_sdk/models/shared/type.rb +0 -2
  203. data/lib/open_api_sdk/partners.rb +289 -54
  204. data/lib/open_api_sdk/payouts.rb +267 -0
  205. data/lib/open_api_sdk/sdkconfiguration.rb +3 -3
  206. data/lib/open_api_sdk/tags.rb +61 -61
  207. data/lib/open_api_sdk/utils/url.rb +1 -1
  208. data/lib/open_api_sdk/utils/utils.rb +12 -0
  209. metadata +54 -42
  210. data/lib/open_api_sdk/models/operations/continent.rb +0 -26
  211. data/lib/open_api_sdk/models/operations/continent.rbi +0 -11
  212. data/lib/open_api_sdk/models/operations/listevents_queryparam_tagids.rb +0 -27
  213. data/lib/open_api_sdk/models/operations/listevents_queryparam_tagids.rbi +0 -11
  214. data/lib/open_api_sdk/models/operations/listpartners_bannedreason.rbi +0 -11
  215. data/lib/open_api_sdk/models/operations/listpartners_fields.rbi +0 -11
  216. data/lib/open_api_sdk/models/operations/listpartners_fields_partners_response_200_applicationjson_responsebody_referralformdata_8_type.rbi +0 -11
  217. data/lib/open_api_sdk/models/operations/listpartners_referralformdata.rb +0 -32
  218. data/lib/open_api_sdk/models/operations/queryparam_continent.rb +0 -26
  219. data/lib/open_api_sdk/models/operations/queryparam_continent.rbi +0 -11
  220. data/lib/open_api_sdk/models/operations/queryparam_trigger.rb +0 -23
  221. data/lib/open_api_sdk/models/operations/queryparam_trigger.rbi +0 -11
  222. data/lib/open_api_sdk/models/operations/retrieveanalytics_queryparam_tagids.rb +0 -27
  223. data/lib/open_api_sdk/models/operations/retrieveanalytics_queryparam_tagids.rbi +0 -11
  224. data/lib/open_api_sdk/models/operations/trigger.rb +0 -23
  225. data/lib/open_api_sdk/models/operations/trigger.rbi +0 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 208df86c7cd612aa85e7ac79a7e1546249899e32427baaf0f38c4331db930247
4
- data.tar.gz: a7b81a55a6fbe200e934e7a4927a7972237284e0aadf9c316e9a59f3596e4c21
3
+ metadata.gz: 41735c609fdd842dc1c2cbc512b1131e3e3ca825b233a70b5251e36137970a86
4
+ data.tar.gz: 7f7f5975a408bf9a6969d1f6f086b07dacf325fe19edf4ee910b9cea37daf200
5
5
  SHA512:
6
- metadata.gz: 012c01e5b7fc3254bb2b370a4f539c4d7feea41e1ba171cff2864be114536a10c717d6bd09052c5875442f3d97a694a84701bb61cc0584f5235010d4c37fb350
7
- data.tar.gz: 5ea16ec0f0d80a90ffabd9de50c67a6a0a923acafed0f2f004cb36db053051823de92b70b6e849baccf51100f7857a92d5ad6d9b8131ae18192b75b74536c579
6
+ metadata.gz: 6f051245203954c7078adb22c10d73fafd4778e20b9eb2ff983a02f947c56c3d6d0201aef1da5f8924549a424bf39413a7c65637bf9e7cadb8309b13c5b25058
7
+ data.tar.gz: 3d032d1af64548fedd00a6b7123d26488f25091b8788b7751512895f8f0f9d00e1aee241b59adb97da988fb4b66662a6c8092d52131946ac5338db62cefec9a1
@@ -0,0 +1,17 @@
1
+ # typed: true
2
+
3
+ module Crystalline
4
+ module Enum
5
+ mixes_in_class_methods(ClassMethods)
6
+
7
+ module ClassMethods
8
+ def enums(&blk); end
9
+ def open!; end
10
+ def open?; end
11
+ def deserialize(val); end
12
+ end
13
+
14
+ def serialize; end
15
+ def known?; end
16
+ end
17
+ end
@@ -84,7 +84,9 @@ module Crystalline
84
84
  # If field is nilable, and the value is not in the dict, just move to the next field
85
85
  next if value.nil?
86
86
 
87
- if Crystalline::Utils.arr? field_type
87
+ if field_type.is_a?(Crystalline::DiscriminatedUnion)
88
+ to_build[key] = field_type.parse(value)
89
+ elsif Crystalline::Utils.arr? field_type
88
90
  inner_type = Crystalline::Utils.arr_of(field_type)
89
91
  unmarshalled_array = value.map { |f| unmarshal_single(inner_type, f, format_metadata) }
90
92
  to_build[key] = unmarshalled_array
@@ -112,17 +114,21 @@ module Crystalline
112
114
  union_types = Crystalline::Utils.get_union_types(field_type)
113
115
  union_types = union_types.sort_by { |klass| Crystalline.non_nilable_attr_count(klass) }
114
116
 
115
- union_types.each do |union_type|
116
- begin
117
- to_build[key] = Crystalline.unmarshal_json(value, union_type)
118
- rescue TypeError
119
- next
120
- rescue NoMethodError
121
- next
122
- rescue KeyError
123
- next
117
+ if Crystalline.union_strategy == :populated_fields
118
+ to_build[key] = Crystalline.unmarshal_union_populated_fields(value, union_types)
119
+ else
120
+ union_types.each do |union_type|
121
+ begin
122
+ to_build[key] = Crystalline.unmarshal_json(value, union_type)
123
+ rescue TypeError
124
+ next
125
+ rescue NoMethodError
126
+ next
127
+ rescue KeyError
128
+ next
129
+ end
130
+ break
124
131
  end
125
- break
126
132
  end
127
133
  end
128
134
  elsif field_type.instance_of?(Class) && field_type.include?(::Crystalline::MetadataFields)
@@ -182,10 +188,10 @@ module Crystalline
182
188
  next if f.nil? && !required
183
189
  result[key] = nil if f.nil? && required
184
190
 
185
- if f.is_a? Array
191
+ if f.is_a? ::Array
186
192
  result[key] = f.map { |o| marshal_single(o) }
187
- elsif f.is_a? Hash
188
- result[key] = f.map { |k, v| [k, marshal_single(v)] }
193
+ elsif f.is_a? ::Hash
194
+ result[key] = f.transform_values { |v| marshal_single(v) }
189
195
  else
190
196
  result[key] = marshal_single(f)
191
197
  end
@@ -4,6 +4,11 @@
4
4
  # frozen_string_literal: true
5
5
 
6
6
  module Crystalline
7
+ @union_strategy = :left_to_right
8
+
9
+ class << self
10
+ attr_accessor :union_strategy
11
+ end
7
12
 
8
13
  def self.to_dict(complex)
9
14
  if complex.is_a? Array
@@ -29,21 +34,18 @@ module Crystalline
29
34
  if Crystalline::Utils.nilable? type
30
35
  type = Crystalline::Utils.nilable_of type
31
36
  end
32
- if type.instance_of?(Class) && type.include?(::Crystalline::MetadataFields)
37
+ if type.is_a?(Crystalline::DiscriminatedUnion)
38
+ type.parse(data)
39
+ elsif type.instance_of?(Class) && type.include?(::Crystalline::MetadataFields)
33
40
  type.from_dict(data)
34
41
  elsif Crystalline::Utils.union? type
35
42
  union_types = Crystalline::Utils.get_union_types(type)
36
43
  union_types = union_types.sort_by { |klass| Crystalline.non_nilable_attr_count(klass) }
37
44
 
38
- union_types.each do |union_type|
39
- unmarshalled_val = Crystalline.unmarshal_json(data, union_type)
40
- return unmarshalled_val
41
- rescue TypeError
42
- next
43
- rescue NoMethodError
44
- next
45
- rescue KeyError
46
- next
45
+ if Crystalline.union_strategy == :populated_fields
46
+ Crystalline.unmarshal_union_populated_fields(data, union_types)
47
+ else
48
+ Crystalline.unmarshal_union_left_to_right(data, union_types)
47
49
  end
48
50
  elsif Crystalline::Utils.arr? type
49
51
  data.map { |v| Crystalline.unmarshal_json(v, Crystalline::Utils.arr_of(type)) }
@@ -55,6 +57,8 @@ module Crystalline
55
57
  Crystalline::Utils.to_boolean(data)
56
58
  elsif type.is_a?(Class) && type < T::Enum
57
59
  type.deserialize(data)
60
+ elsif type.is_a?(Class) && type.respond_to?(:enums) && type.respond_to?(:deserialize)
61
+ type.deserialize(data)
58
62
  else
59
63
  data
60
64
  end
@@ -74,6 +78,88 @@ module Crystalline
74
78
  end
75
79
  end
76
80
 
81
+ def self.unmarshal_union_left_to_right(data, union_types)
82
+ union_types.each do |union_type|
83
+ return Crystalline.unmarshal_json(data, union_type)
84
+ rescue TypeError
85
+ next
86
+ rescue NoMethodError
87
+ next
88
+ rescue KeyError
89
+ next
90
+ end
91
+ nil
92
+ end
93
+
94
+ def self.unmarshal_union_populated_fields(data, union_types)
95
+ best_value = nil
96
+ best_matched = -1
97
+ best_inexact = 0
98
+ best_unmatched = 0
99
+
100
+ union_types.each do |union_type|
101
+ value = Crystalline.unmarshal_json(data, union_type)
102
+ matched, inexact, unmatched = count_matched_fields(value, data)
103
+
104
+ if best_value.nil? ||
105
+ matched > best_matched ||
106
+ (matched == best_matched && inexact < best_inexact) ||
107
+ (matched == best_matched && inexact == best_inexact && unmatched < best_unmatched)
108
+ best_value = value
109
+ best_matched = matched
110
+ best_inexact = inexact
111
+ best_unmatched = unmatched
112
+ end
113
+ rescue TypeError
114
+ next
115
+ rescue NoMethodError
116
+ next
117
+ rescue KeyError
118
+ next
119
+ end
120
+ best_value
121
+ end
122
+
123
+ def self.count_matched_fields(value, raw_data)
124
+ matched = 0
125
+ inexact = 0
126
+ unmatched = 0
127
+
128
+ if value.is_a?(Crystalline::Unknown)
129
+ return [0, 0, 0]
130
+ elsif value.class.include?(::Crystalline::MetadataFields)
131
+ value.fields.each do |field|
132
+ format_metadata = field.metadata.fetch(:format_json, {})
133
+ lookup = format_metadata.fetch(:letter_case, nil)&.call
134
+ field_val = value.send(field.name)
135
+
136
+ if raw_data.is_a?(::Hash) && lookup && raw_data.key?(lookup)
137
+ if field_val.class.include?(::Crystalline::MetadataFields) && raw_data[lookup].is_a?(::Hash)
138
+ nested_matched, nested_inexact, nested_unmatched = count_matched_fields(field_val, raw_data[lookup])
139
+ matched += nested_matched
140
+ inexact += nested_inexact
141
+ unmatched += nested_unmatched
142
+ else
143
+ matched += 1
144
+ if field_val.respond_to?(:known?) && !field_val.known?
145
+ inexact += 1
146
+ end
147
+ end
148
+ elsif !::Crystalline::Utils.nilable?(field.type)
149
+ unmatched += 1
150
+ end
151
+ end
152
+ elsif value.is_a?(::Array)
153
+ matched = value.length
154
+ elsif value.is_a?(::Hash)
155
+ matched = value.length
156
+ else
157
+ matched = 1
158
+ end
159
+
160
+ [matched, inexact, unmatched]
161
+ end
162
+
77
163
  def self.non_nilable_attr_count(klass)
78
164
  # somewhat sane sort ordering for Union deserialization.
79
165
  # All Crystalline objects return the number of non-nilable fields
@@ -40,6 +40,58 @@ module Crystalline
40
40
  class Boolean
41
41
  end
42
42
 
43
+ # Wraps an unrecognized payload from an open discriminated union.
44
+ # Produced when the discriminator value is missing, unknown, or schema validation fails.
45
+ class Unknown
46
+ attr_reader :raw
47
+
48
+ def initialize(raw:)
49
+ @raw = raw
50
+ end
51
+
52
+ def unknown?
53
+ true
54
+ end
55
+ end
56
+
57
+ # Forward-compatible discriminated union parser.
58
+ # Known discriminator values are deserialized to their mapped types.
59
+ # Unknown or invalid payloads are captured as Crystalline::Unknown.
60
+ class DiscriminatedUnion
61
+ attr_reader :discriminator, :variants
62
+
63
+ def initialize(discriminator, variants)
64
+ @discriminator = discriminator
65
+ @variants = variants
66
+ end
67
+
68
+ def parse(payload)
69
+ unless payload.is_a?(::Hash)
70
+ return Unknown.new(raw: payload)
71
+ end
72
+
73
+ disc_value = payload[@discriminator]
74
+ unless disc_value.is_a?(::String)
75
+ return Unknown.new(raw: payload)
76
+ end
77
+
78
+ variant_type = @variants[disc_value]
79
+ unless variant_type
80
+ return Unknown.new(raw: payload)
81
+ end
82
+
83
+ begin
84
+ Crystalline.unmarshal_json(payload, variant_type)
85
+ rescue StandardError
86
+ Unknown.new(raw: payload)
87
+ end
88
+ end
89
+ end
90
+
91
+ def self.unknown?(value)
92
+ value.is_a?(Unknown)
93
+ end
94
+
43
95
  module Enum
44
96
  def self.included(base)
45
97
  base.extend(ClassMethods)
@@ -67,9 +119,19 @@ module Crystalline
67
119
  end
68
120
  end
69
121
 
122
+ def open!
123
+ @open = true
124
+ end
125
+
126
+ def open?
127
+ @open == true
128
+ end
129
+
70
130
  def deserialize(val)
71
131
  if @mapping.include? val
72
132
  @mapping[val]
133
+ elsif open?
134
+ new(val)
73
135
  else
74
136
  raise "Invalid value for enum: #{val}"
75
137
  end
@@ -79,5 +141,22 @@ module Crystalline
79
141
  def serialize
80
142
  @val
81
143
  end
144
+
145
+ def known?
146
+ self.class.instance_variable_get(:@mapping)&.value?(self) || false
147
+ end
148
+
149
+ def ==(other)
150
+ other = other.serialize if other.is_a?(self.class)
151
+ @val == other
152
+ end
153
+
154
+ def eql?(other)
155
+ self == other
156
+ end
157
+
158
+ def hash
159
+ @val.hash
160
+ end
82
161
  end
83
162
  end
data/lib/dub.rb CHANGED
@@ -15,6 +15,7 @@ module OpenApiSDK
15
15
  autoload :Customers, 'open_api_sdk/customers'
16
16
  autoload :Partners, 'open_api_sdk/partners'
17
17
  autoload :Commissions, 'open_api_sdk/commissions'
18
+ autoload :Payouts, 'open_api_sdk/payouts'
18
19
  autoload :EmbedTokens, 'open_api_sdk/embed_tokens'
19
20
  autoload :QRCodes, 'open_api_sdk/qr_codes'
20
21
  autoload :Bounties, 'open_api_sdk/bounties'
@@ -42,7 +42,7 @@ module OpenApiSDK
42
42
  sig { params(request: Models::Operations::ListBountySubmissionsRequest, timeout_ms: T.nilable(Integer)).returns(T::Array[Models::Operations::ListBountySubmissionsResponseBody]) }
43
43
  def list_submissions(request:, timeout_ms: nil)
44
44
  # list_submissions - List bounty submissions
45
- # List all submissions for a specific bounty.
45
+ # List all submissions for a specific bounty in your partner program.
46
46
  url, params = @sdk_configuration.get_server_details
47
47
  base_url = Utils.template_url(url, params)
48
48
  url = Utils.generate_url(
@@ -41,8 +41,8 @@ module OpenApiSDK
41
41
 
42
42
  sig { params(request: Models::Operations::ListCommissionsRequest, timeout_ms: T.nilable(Integer)).returns(T::Array[Models::Operations::ListCommissionsResponseBody]) }
43
43
  def list(request:, timeout_ms: nil)
44
- # list - Get commissions for a program.
45
- # Retrieve a list of commissions for a program.
44
+ # list - List all commissions
45
+ # Retrieve a list of commissions for your partner program.
46
46
  url, params = @sdk_configuration.get_server_details
47
47
  base_url = Utils.template_url(url, params)
48
48
  url = "#{base_url}/commissions"
@@ -496,31 +496,23 @@ module OpenApiSDK
496
496
  end
497
497
 
498
498
 
499
- sig { params(request: Models::Operations::UpdateCustomerRequest, timeout_ms: T.nilable(Integer)).returns(Models::Operations::UpdateCustomerResponseBody) }
500
- def update(request:, timeout_ms: nil)
501
- # update - Update a customer
502
- # Update a customer for the authenticated workspace.
499
+ sig { params(id: ::String, timeout_ms: T.nilable(Integer)).returns(Models::Operations::DeleteCustomerResponseBody) }
500
+ def delete(id:, timeout_ms: nil)
501
+ # delete - Delete a customer
502
+ # Delete a customer from a workspace.
503
+ request = Models::Operations::DeleteCustomerRequest.new(
504
+ id: id
505
+ )
503
506
  url, params = @sdk_configuration.get_server_details
504
507
  base_url = Utils.template_url(url, params)
505
508
  url = Utils.generate_url(
506
- Models::Operations::UpdateCustomerRequest,
509
+ Models::Operations::DeleteCustomerRequest,
507
510
  base_url,
508
511
  '/customers/{id}',
509
512
  request
510
513
  )
511
514
  headers = {}
512
515
  headers = T.cast(headers, T::Hash[String, String])
513
- req_content_type, data, form = Utils.serialize_request_body(request, false, false, :request_body, :json)
514
- headers['content-type'] = req_content_type
515
-
516
- if form
517
- body = Utils.encode_form(form)
518
- elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
519
- body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
520
- else
521
- body = data
522
- end
523
- query_params = Utils.get_query_params(Models::Operations::UpdateCustomerRequest, request, nil)
524
516
  headers['Accept'] = 'application/json'
525
517
  headers['user-agent'] = @sdk_configuration.user_agent
526
518
 
@@ -536,7 +528,7 @@ module OpenApiSDK
536
528
  config: @sdk_configuration,
537
529
  base_url: base_url,
538
530
  oauth2_scopes: nil,
539
- operation_id: 'updateCustomer',
531
+ operation_id: 'deleteCustomer',
540
532
  security_source: @sdk_configuration.security_source
541
533
  )
542
534
 
@@ -545,11 +537,9 @@ module OpenApiSDK
545
537
 
546
538
 
547
539
  begin
548
- http_response = T.must(connection).patch(url) do |req|
549
- req.body = body
540
+ http_response = T.must(connection).delete(url) do |req|
550
541
  req.headers.merge!(headers)
551
542
  req.options.timeout = timeout unless timeout.nil?
552
- req.params = query_params
553
543
  Utils.configure_request_security(req, security)
554
544
 
555
545
  @sdk_configuration.hooks.before_request(
@@ -595,7 +585,7 @@ module OpenApiSDK
595
585
  response: http_response
596
586
  )
597
587
  response_data = http_response.env.response_body
598
- obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Operations::UpdateCustomerResponseBody)
588
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Operations::DeleteCustomerResponseBody)
599
589
 
600
590
  return obj
601
591
  else
@@ -738,23 +728,31 @@ module OpenApiSDK
738
728
  end
739
729
 
740
730
 
741
- sig { params(id: ::String, timeout_ms: T.nilable(Integer)).returns(Models::Operations::DeleteCustomerResponseBody) }
742
- def delete(id:, timeout_ms: nil)
743
- # delete - Delete a customer
744
- # Delete a customer from a workspace.
745
- request = Models::Operations::DeleteCustomerRequest.new(
746
- id: id
747
- )
731
+ sig { params(request: Models::Operations::UpdateCustomerRequest, timeout_ms: T.nilable(Integer)).returns(Models::Operations::UpdateCustomerResponseBody) }
732
+ def update(request:, timeout_ms: nil)
733
+ # update - Update a customer
734
+ # Update a customer for the authenticated workspace.
748
735
  url, params = @sdk_configuration.get_server_details
749
736
  base_url = Utils.template_url(url, params)
750
737
  url = Utils.generate_url(
751
- Models::Operations::DeleteCustomerRequest,
738
+ Models::Operations::UpdateCustomerRequest,
752
739
  base_url,
753
740
  '/customers/{id}',
754
741
  request
755
742
  )
756
743
  headers = {}
757
744
  headers = T.cast(headers, T::Hash[String, String])
745
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :request_body, :json)
746
+ headers['content-type'] = req_content_type
747
+
748
+ if form
749
+ body = Utils.encode_form(form)
750
+ elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
751
+ body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
752
+ else
753
+ body = data
754
+ end
755
+ query_params = Utils.get_query_params(Models::Operations::UpdateCustomerRequest, request, nil)
758
756
  headers['Accept'] = 'application/json'
759
757
  headers['user-agent'] = @sdk_configuration.user_agent
760
758
 
@@ -770,7 +768,7 @@ module OpenApiSDK
770
768
  config: @sdk_configuration,
771
769
  base_url: base_url,
772
770
  oauth2_scopes: nil,
773
- operation_id: 'deleteCustomer',
771
+ operation_id: 'updateCustomer',
774
772
  security_source: @sdk_configuration.security_source
775
773
  )
776
774
 
@@ -779,9 +777,11 @@ module OpenApiSDK
779
777
 
780
778
 
781
779
  begin
782
- http_response = T.must(connection).delete(url) do |req|
780
+ http_response = T.must(connection).patch(url) do |req|
781
+ req.body = body
783
782
  req.headers.merge!(headers)
784
783
  req.options.timeout = timeout unless timeout.nil?
784
+ req.params = query_params
785
785
  Utils.configure_request_security(req, security)
786
786
 
787
787
  @sdk_configuration.hooks.before_request(
@@ -827,7 +827,7 @@ module OpenApiSDK
827
827
  response: http_response
828
828
  )
829
829
  response_data = http_response.env.response_body
830
- obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Operations::DeleteCustomerResponseBody)
830
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Operations::UpdateCustomerResponseBody)
831
831
 
832
832
  return obj
833
833
  else