stigg 0.1.0.pre.alpha.1

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 (230) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +45 -0
  4. data/README.md +233 -0
  5. data/SECURITY.md +23 -0
  6. data/lib/stigg/client.rb +72 -0
  7. data/lib/stigg/errors.rb +228 -0
  8. data/lib/stigg/file_part.rb +58 -0
  9. data/lib/stigg/internal/my_cursor_id_page.rb +82 -0
  10. data/lib/stigg/internal/transport/base_client.rb +570 -0
  11. data/lib/stigg/internal/transport/pooled_net_requester.rb +210 -0
  12. data/lib/stigg/internal/type/array_of.rb +168 -0
  13. data/lib/stigg/internal/type/base_model.rb +529 -0
  14. data/lib/stigg/internal/type/base_page.rb +55 -0
  15. data/lib/stigg/internal/type/boolean.rb +77 -0
  16. data/lib/stigg/internal/type/converter.rb +327 -0
  17. data/lib/stigg/internal/type/enum.rb +131 -0
  18. data/lib/stigg/internal/type/file_input.rb +110 -0
  19. data/lib/stigg/internal/type/hash_of.rb +188 -0
  20. data/lib/stigg/internal/type/request_parameters.rb +42 -0
  21. data/lib/stigg/internal/type/union.rb +237 -0
  22. data/lib/stigg/internal/type/unknown.rb +81 -0
  23. data/lib/stigg/internal/util.rb +920 -0
  24. data/lib/stigg/internal.rb +20 -0
  25. data/lib/stigg/models/v1/coupon_create_params.rb +221 -0
  26. data/lib/stigg/models/v1/coupon_create_response.rb +317 -0
  27. data/lib/stigg/models/v1/coupon_list_params.rb +40 -0
  28. data/lib/stigg/models/v1/coupon_list_response.rb +324 -0
  29. data/lib/stigg/models/v1/coupon_retrieve_params.rb +16 -0
  30. data/lib/stigg/models/v1/coupon_retrieve_response.rb +317 -0
  31. data/lib/stigg/models/v1/customer_archive_params.rb +16 -0
  32. data/lib/stigg/models/v1/customer_create_params.rb +185 -0
  33. data/lib/stigg/models/v1/customer_list_params.rb +40 -0
  34. data/lib/stigg/models/v1/customer_list_response.rb +223 -0
  35. data/lib/stigg/models/v1/customer_response.rb +216 -0
  36. data/lib/stigg/models/v1/customer_retrieve_params.rb +16 -0
  37. data/lib/stigg/models/v1/customer_unarchive_params.rb +16 -0
  38. data/lib/stigg/models/v1/customer_update_params.rb +107 -0
  39. data/lib/stigg/models/v1/customers/payment_method_attach_params.rb +197 -0
  40. data/lib/stigg/models/v1/customers/payment_method_detach_params.rb +18 -0
  41. data/lib/stigg/models/v1/customers/promotional_create_params.rb +294 -0
  42. data/lib/stigg/models/v1/customers/promotional_create_response.rb +268 -0
  43. data/lib/stigg/models/v1/customers/promotional_revoke_params.rb +24 -0
  44. data/lib/stigg/models/v1/customers/promotional_revoke_response.rb +268 -0
  45. data/lib/stigg/models/v1/customers/usage_retrieve_params.rb +56 -0
  46. data/lib/stigg/models/v1/customers/usage_retrieve_response.rb +145 -0
  47. data/lib/stigg/models/v1/subscription_create_params.rb +214 -0
  48. data/lib/stigg/models/v1/subscription_create_response.rb +338 -0
  49. data/lib/stigg/models/v1/subscription_delegate_params.rb +24 -0
  50. data/lib/stigg/models/v1/subscription_delegate_response.rb +274 -0
  51. data/lib/stigg/models/v1/subscription_list_params.rb +60 -0
  52. data/lib/stigg/models/v1/subscription_list_response.rb +281 -0
  53. data/lib/stigg/models/v1/subscription_migrate_params.rb +37 -0
  54. data/lib/stigg/models/v1/subscription_migrate_response.rb +274 -0
  55. data/lib/stigg/models/v1/subscription_preview_params.rb +644 -0
  56. data/lib/stigg/models/v1/subscription_preview_response.rb +431 -0
  57. data/lib/stigg/models/v1/subscription_retrieve_params.rb +16 -0
  58. data/lib/stigg/models/v1/subscription_retrieve_response.rb +274 -0
  59. data/lib/stigg/models/v1/subscription_transfer_params.rb +28 -0
  60. data/lib/stigg/models/v1/subscription_transfer_response.rb +274 -0
  61. data/lib/stigg/models/v1/subscriptions/future_update_cancel_pending_payment_params.rb +18 -0
  62. data/lib/stigg/models/v1/subscriptions/future_update_cancel_pending_payment_response.rb +32 -0
  63. data/lib/stigg/models/v1/subscriptions/future_update_cancel_schedule_params.rb +18 -0
  64. data/lib/stigg/models/v1/subscriptions/future_update_cancel_schedule_response.rb +32 -0
  65. data/lib/stigg/models/v1_create_event_params.rb +87 -0
  66. data/lib/stigg/models/v1_create_event_response.rb +16 -0
  67. data/lib/stigg/models/v1_create_usage_params.rb +96 -0
  68. data/lib/stigg/models/v1_create_usage_response.rb +112 -0
  69. data/lib/stigg/models.rb +47 -0
  70. data/lib/stigg/request_options.rb +77 -0
  71. data/lib/stigg/resources/v1/coupons.rb +95 -0
  72. data/lib/stigg/resources/v1/customers/payment_method.rb +67 -0
  73. data/lib/stigg/resources/v1/customers/promotional.rb +69 -0
  74. data/lib/stigg/resources/v1/customers/usage.rb +59 -0
  75. data/lib/stigg/resources/v1/customers.rb +177 -0
  76. data/lib/stigg/resources/v1/subscriptions/future_update.rb +56 -0
  77. data/lib/stigg/resources/v1/subscriptions.rb +241 -0
  78. data/lib/stigg/resources/v1.rb +70 -0
  79. data/lib/stigg/version.rb +5 -0
  80. data/lib/stigg.rb +108 -0
  81. data/manifest.yaml +17 -0
  82. data/rbi/stigg/client.rbi +49 -0
  83. data/rbi/stigg/errors.rbi +205 -0
  84. data/rbi/stigg/file_part.rbi +37 -0
  85. data/rbi/stigg/internal/my_cursor_id_page.rbi +19 -0
  86. data/rbi/stigg/internal/transport/base_client.rbi +297 -0
  87. data/rbi/stigg/internal/transport/pooled_net_requester.rbi +82 -0
  88. data/rbi/stigg/internal/type/array_of.rbi +104 -0
  89. data/rbi/stigg/internal/type/base_model.rbi +299 -0
  90. data/rbi/stigg/internal/type/base_page.rbi +42 -0
  91. data/rbi/stigg/internal/type/boolean.rbi +58 -0
  92. data/rbi/stigg/internal/type/converter.rbi +204 -0
  93. data/rbi/stigg/internal/type/enum.rbi +82 -0
  94. data/rbi/stigg/internal/type/file_input.rbi +58 -0
  95. data/rbi/stigg/internal/type/hash_of.rbi +104 -0
  96. data/rbi/stigg/internal/type/request_parameters.rbi +29 -0
  97. data/rbi/stigg/internal/type/union.rbi +126 -0
  98. data/rbi/stigg/internal/type/unknown.rbi +58 -0
  99. data/rbi/stigg/internal/util.rbi +478 -0
  100. data/rbi/stigg/internal.rbi +16 -0
  101. data/rbi/stigg/models/v1/coupon_create_params.rbi +758 -0
  102. data/rbi/stigg/models/v1/coupon_create_response.rbi +986 -0
  103. data/rbi/stigg/models/v1/coupon_list_params.rbi +70 -0
  104. data/rbi/stigg/models/v1/coupon_list_response.rbi +983 -0
  105. data/rbi/stigg/models/v1/coupon_retrieve_params.rbi +29 -0
  106. data/rbi/stigg/models/v1/coupon_retrieve_response.rbi +986 -0
  107. data/rbi/stigg/models/v1/customer_archive_params.rbi +29 -0
  108. data/rbi/stigg/models/v1/customer_create_params.rbi +376 -0
  109. data/rbi/stigg/models/v1/customer_list_params.rbi +70 -0
  110. data/rbi/stigg/models/v1/customer_list_response.rbi +447 -0
  111. data/rbi/stigg/models/v1/customer_response.rbi +423 -0
  112. data/rbi/stigg/models/v1/customer_retrieve_params.rbi +29 -0
  113. data/rbi/stigg/models/v1/customer_unarchive_params.rbi +29 -0
  114. data/rbi/stigg/models/v1/customer_update_params.rbi +226 -0
  115. data/rbi/stigg/models/v1/customers/payment_method_attach_params.rbi +769 -0
  116. data/rbi/stigg/models/v1/customers/payment_method_detach_params.rbi +34 -0
  117. data/rbi/stigg/models/v1/customers/promotional_create_params.rbi +639 -0
  118. data/rbi/stigg/models/v1/customers/promotional_create_response.rbi +495 -0
  119. data/rbi/stigg/models/v1/customers/promotional_revoke_params.rbi +42 -0
  120. data/rbi/stigg/models/v1/customers/promotional_revoke_response.rbi +497 -0
  121. data/rbi/stigg/models/v1/customers/usage_retrieve_params.rbi +84 -0
  122. data/rbi/stigg/models/v1/customers/usage_retrieve_response.rbi +353 -0
  123. data/rbi/stigg/models/v1/subscription_create_params.rbi +394 -0
  124. data/rbi/stigg/models/v1/subscription_create_response.rbi +668 -0
  125. data/rbi/stigg/models/v1/subscription_delegate_params.rbi +48 -0
  126. data/rbi/stigg/models/v1/subscription_delegate_response.rbi +535 -0
  127. data/rbi/stigg/models/v1/subscription_list_params.rbi +94 -0
  128. data/rbi/stigg/models/v1/subscription_list_response.rbi +543 -0
  129. data/rbi/stigg/models/v1/subscription_migrate_params.rbi +99 -0
  130. data/rbi/stigg/models/v1/subscription_migrate_response.rbi +535 -0
  131. data/rbi/stigg/models/v1/subscription_preview_params.rbi +1786 -0
  132. data/rbi/stigg/models/v1/subscription_preview_response.rbi +929 -0
  133. data/rbi/stigg/models/v1/subscription_retrieve_params.rbi +32 -0
  134. data/rbi/stigg/models/v1/subscription_retrieve_response.rbi +535 -0
  135. data/rbi/stigg/models/v1/subscription_transfer_params.rbi +50 -0
  136. data/rbi/stigg/models/v1/subscription_transfer_response.rbi +535 -0
  137. data/rbi/stigg/models/v1/subscriptions/future_update_cancel_pending_payment_params.rbi +34 -0
  138. data/rbi/stigg/models/v1/subscriptions/future_update_cancel_pending_payment_response.rbi +79 -0
  139. data/rbi/stigg/models/v1/subscriptions/future_update_cancel_schedule_params.rbi +34 -0
  140. data/rbi/stigg/models/v1/subscriptions/future_update_cancel_schedule_response.rbi +79 -0
  141. data/rbi/stigg/models/v1_create_event_params.rbi +160 -0
  142. data/rbi/stigg/models/v1_create_event_response.rbi +23 -0
  143. data/rbi/stigg/models/v1_create_usage_params.rbi +177 -0
  144. data/rbi/stigg/models/v1_create_usage_response.rbi +150 -0
  145. data/rbi/stigg/models.rbi +9 -0
  146. data/rbi/stigg/request_options.rbi +55 -0
  147. data/rbi/stigg/resources/v1/coupons.rbi +79 -0
  148. data/rbi/stigg/resources/v1/customers/payment_method.rbi +54 -0
  149. data/rbi/stigg/resources/v1/customers/promotional.rbi +53 -0
  150. data/rbi/stigg/resources/v1/customers/usage.rbi +45 -0
  151. data/rbi/stigg/resources/v1/customers.rbi +138 -0
  152. data/rbi/stigg/resources/v1/subscriptions/future_update.rbi +40 -0
  153. data/rbi/stigg/resources/v1/subscriptions.rbi +199 -0
  154. data/rbi/stigg/resources/v1.rbi +49 -0
  155. data/rbi/stigg/version.rbi +5 -0
  156. data/sig/stigg/client.rbs +26 -0
  157. data/sig/stigg/errors.rbs +117 -0
  158. data/sig/stigg/file_part.rbs +21 -0
  159. data/sig/stigg/internal/my_cursor_id_page.rbs +11 -0
  160. data/sig/stigg/internal/transport/base_client.rbs +133 -0
  161. data/sig/stigg/internal/transport/pooled_net_requester.rbs +48 -0
  162. data/sig/stigg/internal/type/array_of.rbs +48 -0
  163. data/sig/stigg/internal/type/base_model.rbs +102 -0
  164. data/sig/stigg/internal/type/base_page.rbs +24 -0
  165. data/sig/stigg/internal/type/boolean.rbs +26 -0
  166. data/sig/stigg/internal/type/converter.rbs +79 -0
  167. data/sig/stigg/internal/type/enum.rbs +32 -0
  168. data/sig/stigg/internal/type/file_input.rbs +25 -0
  169. data/sig/stigg/internal/type/hash_of.rbs +48 -0
  170. data/sig/stigg/internal/type/request_parameters.rbs +17 -0
  171. data/sig/stigg/internal/type/union.rbs +52 -0
  172. data/sig/stigg/internal/type/unknown.rbs +26 -0
  173. data/sig/stigg/internal/util.rbs +185 -0
  174. data/sig/stigg/internal.rbs +9 -0
  175. data/sig/stigg/models/v1/coupon_create_params.rbs +323 -0
  176. data/sig/stigg/models/v1/coupon_create_response.rbs +392 -0
  177. data/sig/stigg/models/v1/coupon_list_params.rbs +40 -0
  178. data/sig/stigg/models/v1/coupon_list_response.rbs +399 -0
  179. data/sig/stigg/models/v1/coupon_retrieve_params.rbs +17 -0
  180. data/sig/stigg/models/v1/coupon_retrieve_response.rbs +394 -0
  181. data/sig/stigg/models/v1/customer_archive_params.rbs +17 -0
  182. data/sig/stigg/models/v1/customer_create_params.rbs +169 -0
  183. data/sig/stigg/models/v1/customer_list_params.rbs +40 -0
  184. data/sig/stigg/models/v1/customer_list_response.rbs +198 -0
  185. data/sig/stigg/models/v1/customer_response.rbs +188 -0
  186. data/sig/stigg/models/v1/customer_retrieve_params.rbs +17 -0
  187. data/sig/stigg/models/v1/customer_unarchive_params.rbs +17 -0
  188. data/sig/stigg/models/v1/customer_update_params.rbs +110 -0
  189. data/sig/stigg/models/v1/customers/payment_method_attach_params.rbs +315 -0
  190. data/sig/stigg/models/v1/customers/payment_method_detach_params.rbs +19 -0
  191. data/sig/stigg/models/v1/customers/promotional_create_params.rbs +234 -0
  192. data/sig/stigg/models/v1/customers/promotional_create_response.rbs +209 -0
  193. data/sig/stigg/models/v1/customers/promotional_revoke_params.rbs +27 -0
  194. data/sig/stigg/models/v1/customers/promotional_revoke_response.rbs +209 -0
  195. data/sig/stigg/models/v1/customers/usage_retrieve_params.rbs +54 -0
  196. data/sig/stigg/models/v1/customers/usage_retrieve_response.rbs +134 -0
  197. data/sig/stigg/models/v1/subscription_create_params.rbs +199 -0
  198. data/sig/stigg/models/v1/subscription_create_response.rbs +283 -0
  199. data/sig/stigg/models/v1/subscription_delegate_params.rbs +26 -0
  200. data/sig/stigg/models/v1/subscription_delegate_response.rbs +224 -0
  201. data/sig/stigg/models/v1/subscription_list_params.rbs +58 -0
  202. data/sig/stigg/models/v1/subscription_list_response.rbs +229 -0
  203. data/sig/stigg/models/v1/subscription_migrate_params.rbs +43 -0
  204. data/sig/stigg/models/v1/subscription_migrate_response.rbs +224 -0
  205. data/sig/stigg/models/v1/subscription_preview_params.rbs +821 -0
  206. data/sig/stigg/models/v1/subscription_preview_response.rbs +466 -0
  207. data/sig/stigg/models/v1/subscription_retrieve_params.rbs +17 -0
  208. data/sig/stigg/models/v1/subscription_retrieve_response.rbs +224 -0
  209. data/sig/stigg/models/v1/subscription_transfer_params.rbs +26 -0
  210. data/sig/stigg/models/v1/subscription_transfer_response.rbs +224 -0
  211. data/sig/stigg/models/v1/subscriptions/future_update_cancel_pending_payment_params.rbs +19 -0
  212. data/sig/stigg/models/v1/subscriptions/future_update_cancel_pending_payment_response.rbs +34 -0
  213. data/sig/stigg/models/v1/subscriptions/future_update_cancel_schedule_params.rbs +19 -0
  214. data/sig/stigg/models/v1/subscriptions/future_update_cancel_schedule_response.rbs +34 -0
  215. data/sig/stigg/models/v1_create_event_params.rbs +80 -0
  216. data/sig/stigg/models/v1_create_event_response.rbs +13 -0
  217. data/sig/stigg/models/v1_create_usage_params.rbs +90 -0
  218. data/sig/stigg/models/v1_create_usage_response.rbs +85 -0
  219. data/sig/stigg/models.rbs +7 -0
  220. data/sig/stigg/request_options.rbs +34 -0
  221. data/sig/stigg/resources/v1/coupons.rbs +32 -0
  222. data/sig/stigg/resources/v1/customers/payment_method.rbs +25 -0
  223. data/sig/stigg/resources/v1/customers/promotional.rbs +23 -0
  224. data/sig/stigg/resources/v1/customers/usage.rbs +21 -0
  225. data/sig/stigg/resources/v1/customers.rbs +58 -0
  226. data/sig/stigg/resources/v1/subscriptions/future_update.rbs +21 -0
  227. data/sig/stigg/resources/v1/subscriptions.rbs +76 -0
  228. data/sig/stigg/resources/v1.rbs +23 -0
  229. data/sig/stigg/version.rbs +3 -0
  230. metadata +301 -0
@@ -0,0 +1,299 @@
1
+ # typed: strong
2
+
3
+ module Stigg
4
+ module Internal
5
+ module Type
6
+ class BaseModel
7
+ extend Stigg::Internal::Type::Converter
8
+ extend Stigg::Internal::Util::SorbetRuntimeSupport
9
+
10
+ abstract!
11
+
12
+ KnownField =
13
+ T.type_alias do
14
+ {
15
+ mode: T.nilable(Symbol),
16
+ required: T::Boolean,
17
+ nilable: T::Boolean
18
+ }
19
+ end
20
+
21
+ OrHash =
22
+ T.type_alias do
23
+ T.any(Stigg::Internal::Type::BaseModel, Stigg::Internal::AnyHash)
24
+ end
25
+
26
+ class << self
27
+ # @api private
28
+ #
29
+ # Assumes superclass fields are totally defined before fields are accessed /
30
+ # defined on subclasses.
31
+ sig { params(child: Stigg::Internal::Type::BaseModel).void }
32
+ def inherited(child)
33
+ end
34
+
35
+ # @api private
36
+ sig do
37
+ returns(
38
+ T::Hash[
39
+ Symbol,
40
+ T.all(
41
+ Stigg::Internal::Type::BaseModel::KnownField,
42
+ {
43
+ type_fn:
44
+ T.proc.returns(Stigg::Internal::Type::Converter::Input)
45
+ }
46
+ )
47
+ ]
48
+ )
49
+ end
50
+ def known_fields
51
+ end
52
+
53
+ # @api private
54
+ sig do
55
+ returns(
56
+ T::Hash[
57
+ Symbol,
58
+ T.all(
59
+ Stigg::Internal::Type::BaseModel::KnownField,
60
+ { type: Stigg::Internal::Type::Converter::Input }
61
+ )
62
+ ]
63
+ )
64
+ end
65
+ def fields
66
+ end
67
+
68
+ # @api private
69
+ sig do
70
+ params(
71
+ name_sym: Symbol,
72
+ required: T::Boolean,
73
+ type_info:
74
+ T.any(
75
+ {
76
+ const:
77
+ T.nilable(
78
+ T.any(NilClass, T::Boolean, Integer, Float, Symbol)
79
+ ),
80
+ enum:
81
+ T.nilable(
82
+ T.proc.returns(Stigg::Internal::Type::Converter::Input)
83
+ ),
84
+ union:
85
+ T.nilable(
86
+ T.proc.returns(Stigg::Internal::Type::Converter::Input)
87
+ ),
88
+ api_name: Symbol,
89
+ nil?: T::Boolean
90
+ },
91
+ T.proc.returns(Stigg::Internal::Type::Converter::Input),
92
+ Stigg::Internal::Type::Converter::Input
93
+ ),
94
+ spec: Stigg::Internal::AnyHash
95
+ ).void
96
+ end
97
+ private def add_field(name_sym, required:, type_info:, spec:)
98
+ end
99
+
100
+ # @api private
101
+ sig do
102
+ params(
103
+ name_sym: Symbol,
104
+ type_info:
105
+ T.any(
106
+ Stigg::Internal::AnyHash,
107
+ T.proc.returns(Stigg::Internal::Type::Converter::Input),
108
+ Stigg::Internal::Type::Converter::Input
109
+ ),
110
+ spec: Stigg::Internal::AnyHash
111
+ ).void
112
+ end
113
+ def required(name_sym, type_info, spec = {})
114
+ end
115
+
116
+ # @api private
117
+ sig do
118
+ params(
119
+ name_sym: Symbol,
120
+ type_info:
121
+ T.any(
122
+ Stigg::Internal::AnyHash,
123
+ T.proc.returns(Stigg::Internal::Type::Converter::Input),
124
+ Stigg::Internal::Type::Converter::Input
125
+ ),
126
+ spec: Stigg::Internal::AnyHash
127
+ ).void
128
+ end
129
+ def optional(name_sym, type_info, spec = {})
130
+ end
131
+
132
+ # @api private
133
+ #
134
+ # `request_only` attributes not excluded from `.#coerce` when receiving responses
135
+ # even if well behaved servers should not send them
136
+ sig { params(blk: T.proc.void).void }
137
+ private def request_only(&blk)
138
+ end
139
+
140
+ # @api private
141
+ #
142
+ # `response_only` attributes are omitted from `.#dump` when making requests
143
+ sig { params(blk: T.proc.void).void }
144
+ private def response_only(&blk)
145
+ end
146
+
147
+ sig { params(other: T.anything).returns(T::Boolean) }
148
+ def ==(other)
149
+ end
150
+
151
+ sig { returns(Integer) }
152
+ def hash
153
+ end
154
+ end
155
+
156
+ sig { params(other: T.anything).returns(T::Boolean) }
157
+ def ==(other)
158
+ end
159
+
160
+ sig { returns(Integer) }
161
+ def hash
162
+ end
163
+
164
+ class << self
165
+ # @api private
166
+ sig do
167
+ override
168
+ .params(
169
+ value:
170
+ T.any(
171
+ Stigg::Internal::Type::BaseModel,
172
+ T::Hash[T.anything, T.anything],
173
+ T.anything
174
+ ),
175
+ state: Stigg::Internal::Type::Converter::CoerceState
176
+ )
177
+ .returns(T.any(T.attached_class, T.anything))
178
+ end
179
+ def coerce(value, state:)
180
+ end
181
+
182
+ # @api private
183
+ sig do
184
+ override
185
+ .params(
186
+ value: T.any(T.attached_class, T.anything),
187
+ state: Stigg::Internal::Type::Converter::DumpState
188
+ )
189
+ .returns(T.any(T::Hash[T.anything, T.anything], T.anything))
190
+ end
191
+ def dump(value, state:)
192
+ end
193
+
194
+ # @api private
195
+ sig { returns(T.anything) }
196
+ def to_sorbet_type
197
+ end
198
+ end
199
+
200
+ class << self
201
+ # @api private
202
+ sig do
203
+ params(
204
+ model: Stigg::Internal::Type::BaseModel,
205
+ convert: T::Boolean
206
+ ).returns(Stigg::Internal::AnyHash)
207
+ end
208
+ def recursively_to_h(model, convert:)
209
+ end
210
+ end
211
+
212
+ # Returns the raw value associated with the given key, if found. Otherwise, nil is
213
+ # returned.
214
+ #
215
+ # It is valid to lookup keys that are not in the API spec, for example to access
216
+ # undocumented features. This method does not parse response data into
217
+ # higher-level types. Lookup by anything other than a Symbol is an ArgumentError.
218
+ sig { params(key: Symbol).returns(T.nilable(T.anything)) }
219
+ def [](key)
220
+ end
221
+
222
+ # Returns a Hash of the data underlying this object. O(1)
223
+ #
224
+ # Keys are Symbols and values are the raw values from the response. The return
225
+ # value indicates which values were ever set on the object. i.e. there will be a
226
+ # key in this hash if they ever were, even if the set value was nil.
227
+ #
228
+ # This method is not recursive. The returned value is shared by the object, so it
229
+ # should not be mutated.
230
+ sig { overridable.returns(Stigg::Internal::AnyHash) }
231
+ def to_h
232
+ end
233
+
234
+ # Returns a Hash of the data underlying this object. O(1)
235
+ #
236
+ # Keys are Symbols and values are the raw values from the response. The return
237
+ # value indicates which values were ever set on the object. i.e. there will be a
238
+ # key in this hash if they ever were, even if the set value was nil.
239
+ #
240
+ # This method is not recursive. The returned value is shared by the object, so it
241
+ # should not be mutated.
242
+ sig { overridable.returns(Stigg::Internal::AnyHash) }
243
+ def to_hash
244
+ end
245
+
246
+ # In addition to the behaviour of `#to_h`, this method will recursively call
247
+ # `#to_h` on nested models.
248
+ sig { overridable.returns(Stigg::Internal::AnyHash) }
249
+ def deep_to_h
250
+ end
251
+
252
+ sig do
253
+ params(keys: T.nilable(T::Array[Symbol])).returns(
254
+ Stigg::Internal::AnyHash
255
+ )
256
+ end
257
+ def deconstruct_keys(keys)
258
+ end
259
+
260
+ sig { params(a: T.anything).returns(String) }
261
+ def to_json(*a)
262
+ end
263
+
264
+ sig { params(a: T.anything).returns(String) }
265
+ def to_yaml(*a)
266
+ end
267
+
268
+ # Create a new instance of a model.
269
+ sig do
270
+ params(
271
+ data:
272
+ T.any(
273
+ T::Hash[Symbol, T.anything],
274
+ Stigg::Internal::Type::BaseModel
275
+ )
276
+ ).returns(T.attached_class)
277
+ end
278
+ def self.new(data = {})
279
+ end
280
+
281
+ class << self
282
+ # @api private
283
+ sig { params(depth: Integer).returns(String) }
284
+ def inspect(depth: 0)
285
+ end
286
+ end
287
+
288
+ sig { returns(String) }
289
+ def to_s
290
+ end
291
+
292
+ # @api private
293
+ sig { returns(String) }
294
+ def inspect
295
+ end
296
+ end
297
+ end
298
+ end
299
+ end
@@ -0,0 +1,42 @@
1
+ # typed: strong
2
+
3
+ module Stigg
4
+ module Internal
5
+ module Type
6
+ # @api private
7
+ #
8
+ # This module provides a base implementation for paginated responses in the SDK.
9
+ module BasePage
10
+ Elem = type_member(:out)
11
+
12
+ sig { overridable.returns(T::Boolean) }
13
+ def next_page?
14
+ end
15
+
16
+ sig { overridable.returns(T.self_type) }
17
+ def next_page
18
+ end
19
+
20
+ sig { overridable.params(blk: T.proc.params(arg0: Elem).void).void }
21
+ def auto_paging_each(&blk)
22
+ end
23
+
24
+ sig { returns(T::Enumerable[Elem]) }
25
+ def to_enum
26
+ end
27
+
28
+ # @api private
29
+ sig do
30
+ params(
31
+ client: Stigg::Internal::Transport::BaseClient,
32
+ req: Stigg::Internal::Transport::BaseClient::RequestComponents,
33
+ headers: T::Hash[String, String],
34
+ page_data: T.anything
35
+ ).void
36
+ end
37
+ def initialize(client:, req:, headers:, page_data:)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,58 @@
1
+ # typed: strong
2
+
3
+ module Stigg
4
+ module Internal
5
+ module Type
6
+ # @api private
7
+ #
8
+ # Ruby has no Boolean class; this is something for models to refer to.
9
+ class Boolean
10
+ extend Stigg::Internal::Type::Converter
11
+ extend Stigg::Internal::Util::SorbetRuntimeSupport
12
+
13
+ abstract!
14
+
15
+ sig { params(other: T.anything).returns(T::Boolean) }
16
+ def self.===(other)
17
+ end
18
+
19
+ sig { params(other: T.anything).returns(T::Boolean) }
20
+ def self.==(other)
21
+ end
22
+
23
+ class << self
24
+ # @api private
25
+ #
26
+ # Coerce value to Boolean if possible, otherwise return the original value.
27
+ sig do
28
+ override
29
+ .params(
30
+ value: T.any(T::Boolean, T.anything),
31
+ state: Stigg::Internal::Type::Converter::CoerceState
32
+ )
33
+ .returns(T.any(T::Boolean, T.anything))
34
+ end
35
+ def coerce(value, state:)
36
+ end
37
+
38
+ # @api private
39
+ sig do
40
+ override
41
+ .params(
42
+ value: T.any(T::Boolean, T.anything),
43
+ state: Stigg::Internal::Type::Converter::DumpState
44
+ )
45
+ .returns(T.any(T::Boolean, T.anything))
46
+ end
47
+ def dump(value, state:)
48
+ end
49
+
50
+ # @api private
51
+ sig { returns(T.anything) }
52
+ def to_sorbet_type
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,204 @@
1
+ # typed: strong
2
+
3
+ module Stigg
4
+ module Internal
5
+ module Type
6
+ # @api private
7
+ module Converter
8
+ extend Stigg::Internal::Util::SorbetRuntimeSupport
9
+
10
+ Input =
11
+ T.type_alias do
12
+ T.any(Stigg::Internal::Type::Converter, T::Class[T.anything])
13
+ end
14
+
15
+ CoerceState =
16
+ T.type_alias do
17
+ {
18
+ translate_names: T::Boolean,
19
+ strictness: T::Boolean,
20
+ exactness: {
21
+ yes: Integer,
22
+ no: Integer,
23
+ maybe: Integer
24
+ },
25
+ error: T::Class[StandardError],
26
+ branched: Integer
27
+ }
28
+ end
29
+
30
+ DumpState = T.type_alias { { can_retry: T::Boolean } }
31
+
32
+ # @api private
33
+ sig do
34
+ overridable
35
+ .params(
36
+ value: T.anything,
37
+ state: Stigg::Internal::Type::Converter::CoerceState
38
+ )
39
+ .returns(T.anything)
40
+ end
41
+ def coerce(value, state:)
42
+ end
43
+
44
+ # @api private
45
+ sig do
46
+ overridable
47
+ .params(
48
+ value: T.anything,
49
+ state: Stigg::Internal::Type::Converter::DumpState
50
+ )
51
+ .returns(T.anything)
52
+ end
53
+ def dump(value, state:)
54
+ end
55
+
56
+ # @api private
57
+ sig { params(depth: Integer).returns(String) }
58
+ def inspect(depth: 0)
59
+ end
60
+
61
+ class << self
62
+ # @api private
63
+ sig do
64
+ params(
65
+ spec:
66
+ T.any(
67
+ {
68
+ const:
69
+ T.nilable(
70
+ T.any(NilClass, T::Boolean, Integer, Float, Symbol)
71
+ ),
72
+ enum:
73
+ T.nilable(
74
+ T.proc.returns(Stigg::Internal::Type::Converter::Input)
75
+ ),
76
+ union:
77
+ T.nilable(
78
+ T.proc.returns(Stigg::Internal::Type::Converter::Input)
79
+ )
80
+ },
81
+ T.proc.returns(Stigg::Internal::Type::Converter::Input),
82
+ Stigg::Internal::Type::Converter::Input
83
+ )
84
+ ).returns(T.proc.returns(T.anything))
85
+ end
86
+ def self.type_info(spec)
87
+ end
88
+
89
+ # @api private
90
+ sig do
91
+ params(
92
+ type_info:
93
+ T.any(
94
+ {
95
+ const:
96
+ T.nilable(
97
+ T.any(NilClass, T::Boolean, Integer, Float, Symbol)
98
+ ),
99
+ enum:
100
+ T.nilable(
101
+ T.proc.returns(Stigg::Internal::Type::Converter::Input)
102
+ ),
103
+ union:
104
+ T.nilable(
105
+ T.proc.returns(Stigg::Internal::Type::Converter::Input)
106
+ )
107
+ },
108
+ T.proc.returns(Stigg::Internal::Type::Converter::Input),
109
+ Stigg::Internal::Type::Converter::Input
110
+ ),
111
+ spec:
112
+ T.any(
113
+ {
114
+ const:
115
+ T.nilable(
116
+ T.any(NilClass, T::Boolean, Integer, Float, Symbol)
117
+ ),
118
+ enum:
119
+ T.nilable(
120
+ T.proc.returns(Stigg::Internal::Type::Converter::Input)
121
+ ),
122
+ union:
123
+ T.nilable(
124
+ T.proc.returns(Stigg::Internal::Type::Converter::Input)
125
+ )
126
+ },
127
+ T.proc.returns(Stigg::Internal::Type::Converter::Input),
128
+ Stigg::Internal::Type::Converter::Input
129
+ )
130
+ ).returns(Stigg::Internal::AnyHash)
131
+ end
132
+ def self.meta_info(type_info, spec)
133
+ end
134
+
135
+ # @api private
136
+ sig do
137
+ params(translate_names: T::Boolean).returns(
138
+ Stigg::Internal::Type::Converter::CoerceState
139
+ )
140
+ end
141
+ def self.new_coerce_state(translate_names: true)
142
+ end
143
+
144
+ # @api private
145
+ #
146
+ # Based on `target`, transform `value` into `target`, to the extent possible:
147
+ #
148
+ # 1. if the given `value` conforms to `target` already, return the given `value`
149
+ # 2. if it's possible and safe to convert the given `value` to `target`, then the
150
+ # converted value
151
+ # 3. otherwise, the given `value` unaltered
152
+ #
153
+ # The coercion process is subject to improvement between minor release versions.
154
+ # See https://docs.pydantic.dev/latest/concepts/unions/#smart-mode
155
+ sig do
156
+ params(
157
+ target: Stigg::Internal::Type::Converter::Input,
158
+ value: T.anything,
159
+ state: Stigg::Internal::Type::Converter::CoerceState
160
+ ).returns(T.anything)
161
+ end
162
+ def self.coerce(
163
+ target,
164
+ value,
165
+ # The `strictness` is one of `true`, `false`. This informs the coercion strategy
166
+ # when we have to decide between multiple possible conversion targets:
167
+ #
168
+ # - `true`: the conversion must be exact, with minimum coercion.
169
+ # - `false`: the conversion can be approximate, with some coercion.
170
+ #
171
+ # The `exactness` is `Hash` with keys being one of `yes`, `no`, or `maybe`. For
172
+ # any given conversion attempt, the exactness will be updated based on how closely
173
+ # the value recursively matches the target type:
174
+ #
175
+ # - `yes`: the value can be converted to the target type with minimum coercion.
176
+ # - `maybe`: the value can be converted to the target type with some reasonable
177
+ # coercion.
178
+ # - `no`: the value cannot be converted to the target type.
179
+ #
180
+ # See implementation below for more details.
181
+ state: Stigg::Internal::Type::Converter.new_coerce_state
182
+ )
183
+ end
184
+
185
+ # @api private
186
+ sig do
187
+ params(
188
+ target: Stigg::Internal::Type::Converter::Input,
189
+ value: T.anything,
190
+ state: Stigg::Internal::Type::Converter::DumpState
191
+ ).returns(T.anything)
192
+ end
193
+ def self.dump(target, value, state: { can_retry: true })
194
+ end
195
+
196
+ # @api private
197
+ sig { params(target: T.anything, depth: Integer).returns(String) }
198
+ def self.inspect(target, depth:)
199
+ end
200
+ end
201
+ end
202
+ end
203
+ end
204
+ end
@@ -0,0 +1,82 @@
1
+ # typed: strong
2
+
3
+ module Stigg
4
+ module Internal
5
+ module Type
6
+ # @api private
7
+ #
8
+ # A value from among a specified list of options. OpenAPI enum values map to Ruby
9
+ # values in the SDK as follows:
10
+ #
11
+ # 1. boolean => true | false
12
+ # 2. integer => Integer
13
+ # 3. float => Float
14
+ # 4. string => Symbol
15
+ #
16
+ # We can therefore convert string values to Symbols, but can't convert other
17
+ # values safely.
18
+ module Enum
19
+ include Stigg::Internal::Type::Converter
20
+ include Stigg::Internal::Util::SorbetRuntimeSupport
21
+
22
+ # All of the valid Symbol values for this enum.
23
+ sig do
24
+ overridable.returns(
25
+ T::Array[T.any(NilClass, T::Boolean, Integer, Float, Symbol)]
26
+ )
27
+ end
28
+ def values
29
+ end
30
+
31
+ sig { params(other: T.anything).returns(T::Boolean) }
32
+ def ===(other)
33
+ end
34
+
35
+ sig { params(other: T.anything).returns(T::Boolean) }
36
+ def ==(other)
37
+ end
38
+
39
+ sig { returns(Integer) }
40
+ def hash
41
+ end
42
+
43
+ # @api private
44
+ #
45
+ # Unlike with primitives, `Enum` additionally validates that the value is a member
46
+ # of the enum.
47
+ sig do
48
+ override
49
+ .params(
50
+ value: T.any(String, Symbol, T.anything),
51
+ state: Stigg::Internal::Type::Converter::CoerceState
52
+ )
53
+ .returns(T.any(Symbol, T.anything))
54
+ end
55
+ def coerce(value, state:)
56
+ end
57
+
58
+ # @api private
59
+ sig do
60
+ override
61
+ .params(
62
+ value: T.any(Symbol, T.anything),
63
+ state: Stigg::Internal::Type::Converter::DumpState
64
+ )
65
+ .returns(T.any(Symbol, T.anything))
66
+ end
67
+ def dump(value, state:)
68
+ end
69
+
70
+ # @api private
71
+ sig { returns(T.anything) }
72
+ def to_sorbet_type
73
+ end
74
+
75
+ # @api private
76
+ sig { params(depth: Integer).returns(String) }
77
+ def inspect(depth: 0)
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end