vatsense 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +14 -0
  4. data/README.md +235 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/vatsense/client.rb +129 -0
  7. data/lib/vatsense/errors.rb +228 -0
  8. data/lib/vatsense/file_part.rb +58 -0
  9. data/lib/vatsense/internal/transport/base_client.rb +595 -0
  10. data/lib/vatsense/internal/transport/pooled_net_requester.rb +210 -0
  11. data/lib/vatsense/internal/type/array_of.rb +168 -0
  12. data/lib/vatsense/internal/type/base_model.rb +531 -0
  13. data/lib/vatsense/internal/type/base_page.rb +55 -0
  14. data/lib/vatsense/internal/type/boolean.rb +77 -0
  15. data/lib/vatsense/internal/type/converter.rb +327 -0
  16. data/lib/vatsense/internal/type/enum.rb +131 -0
  17. data/lib/vatsense/internal/type/file_input.rb +111 -0
  18. data/lib/vatsense/internal/type/hash_of.rb +188 -0
  19. data/lib/vatsense/internal/type/request_parameters.rb +42 -0
  20. data/lib/vatsense/internal/type/union.rb +237 -0
  21. data/lib/vatsense/internal/type/unknown.rb +81 -0
  22. data/lib/vatsense/internal/util.rb +951 -0
  23. data/lib/vatsense/internal.rb +20 -0
  24. data/lib/vatsense/models/country.rb +70 -0
  25. data/lib/vatsense/models/country_list_params.rb +34 -0
  26. data/lib/vatsense/models/country_list_provinces_params.rb +22 -0
  27. data/lib/vatsense/models/country_list_provinces_response.rb +67 -0
  28. data/lib/vatsense/models/country_list_response.rb +28 -0
  29. data/lib/vatsense/models/create_invoice.rb +171 -0
  30. data/lib/vatsense/models/currency_calculate_vat_price_params.rb +53 -0
  31. data/lib/vatsense/models/currency_calculate_vat_price_response.rb +28 -0
  32. data/lib/vatsense/models/currency_convert_params.rb +53 -0
  33. data/lib/vatsense/models/currency_convert_response.rb +87 -0
  34. data/lib/vatsense/models/currency_list_params.rb +45 -0
  35. data/lib/vatsense/models/currency_list_response.rb +72 -0
  36. data/lib/vatsense/models/find_rate.rb +28 -0
  37. data/lib/vatsense/models/invoice/invoice_item.rb +71 -0
  38. data/lib/vatsense/models/invoice/invoice_item_input.rb +52 -0
  39. data/lib/vatsense/models/invoice/item_add_params.rb +28 -0
  40. data/lib/vatsense/models/invoice/item_delete_params.rb +28 -0
  41. data/lib/vatsense/models/invoice/item_retrieve_params.rb +28 -0
  42. data/lib/vatsense/models/invoice/item_retrieve_response.rb +30 -0
  43. data/lib/vatsense/models/invoice/item_update_params.rb +28 -0
  44. data/lib/vatsense/models/invoice.rb +301 -0
  45. data/lib/vatsense/models/invoice_business_input.rb +80 -0
  46. data/lib/vatsense/models/invoice_conversion_input.rb +24 -0
  47. data/lib/vatsense/models/invoice_create_params.rb +14 -0
  48. data/lib/vatsense/models/invoice_customer_input.rb +59 -0
  49. data/lib/vatsense/models/invoice_delete_params.rb +20 -0
  50. data/lib/vatsense/models/invoice_delete_response.rb +22 -0
  51. data/lib/vatsense/models/invoice_list_params.rb +38 -0
  52. data/lib/vatsense/models/invoice_list_response.rb +28 -0
  53. data/lib/vatsense/models/invoice_response.rb +28 -0
  54. data/lib/vatsense/models/invoice_retrieve_params.rb +20 -0
  55. data/lib/vatsense/models/invoice_update_params.rb +20 -0
  56. data/lib/vatsense/models/rate.rb +74 -0
  57. data/lib/vatsense/models/rate_calculate_price_params.rb +88 -0
  58. data/lib/vatsense/models/rate_calculate_price_response.rb +79 -0
  59. data/lib/vatsense/models/rate_details_params.rb +69 -0
  60. data/lib/vatsense/models/rate_find_params.rb +69 -0
  61. data/lib/vatsense/models/rate_list_params.rb +51 -0
  62. data/lib/vatsense/models/rate_list_response.rb +28 -0
  63. data/lib/vatsense/models/rate_list_types_params.rb +14 -0
  64. data/lib/vatsense/models/rate_list_types_response.rb +28 -0
  65. data/lib/vatsense/models/rate_with_tax_rate.rb +49 -0
  66. data/lib/vatsense/models/sandbox_generate_key_params.rb +14 -0
  67. data/lib/vatsense/models/sandbox_generate_key_response.rb +68 -0
  68. data/lib/vatsense/models/tax_rate.rb +76 -0
  69. data/lib/vatsense/models/usage_retrieve_params.rb +14 -0
  70. data/lib/vatsense/models/usage_retrieve_response.rb +67 -0
  71. data/lib/vatsense/models/validate_check_params.rb +48 -0
  72. data/lib/vatsense/models/validate_check_response.rb +135 -0
  73. data/lib/vatsense/models/vat_price.rb +86 -0
  74. data/lib/vatsense/models.rb +103 -0
  75. data/lib/vatsense/request_options.rb +77 -0
  76. data/lib/vatsense/resources/countries.rb +70 -0
  77. data/lib/vatsense/resources/currency.rb +111 -0
  78. data/lib/vatsense/resources/invoice/item.rb +133 -0
  79. data/lib/vatsense/resources/invoice.rb +206 -0
  80. data/lib/vatsense/resources/rates.rb +190 -0
  81. data/lib/vatsense/resources/sandbox.rb +36 -0
  82. data/lib/vatsense/resources/usage.rb +33 -0
  83. data/lib/vatsense/resources/validate.rb +56 -0
  84. data/lib/vatsense/version.rb +5 -0
  85. data/lib/vatsense.rb +113 -0
  86. data/manifest.yaml +17 -0
  87. data/rbi/vatsense/client.rbi +93 -0
  88. data/rbi/vatsense/errors.rbi +205 -0
  89. data/rbi/vatsense/file_part.rbi +37 -0
  90. data/rbi/vatsense/internal/transport/base_client.rbi +300 -0
  91. data/rbi/vatsense/internal/transport/pooled_net_requester.rbi +83 -0
  92. data/rbi/vatsense/internal/type/array_of.rbi +104 -0
  93. data/rbi/vatsense/internal/type/base_model.rbi +306 -0
  94. data/rbi/vatsense/internal/type/base_page.rbi +42 -0
  95. data/rbi/vatsense/internal/type/boolean.rbi +58 -0
  96. data/rbi/vatsense/internal/type/converter.rbi +216 -0
  97. data/rbi/vatsense/internal/type/enum.rbi +82 -0
  98. data/rbi/vatsense/internal/type/file_input.rbi +59 -0
  99. data/rbi/vatsense/internal/type/hash_of.rbi +104 -0
  100. data/rbi/vatsense/internal/type/request_parameters.rbi +29 -0
  101. data/rbi/vatsense/internal/type/union.rbi +128 -0
  102. data/rbi/vatsense/internal/type/unknown.rbi +58 -0
  103. data/rbi/vatsense/internal/util.rbi +507 -0
  104. data/rbi/vatsense/internal.rbi +16 -0
  105. data/rbi/vatsense/models/country.rbi +111 -0
  106. data/rbi/vatsense/models/country_list_params.rbi +59 -0
  107. data/rbi/vatsense/models/country_list_provinces_params.rbi +43 -0
  108. data/rbi/vatsense/models/country_list_provinces_response.rbi +177 -0
  109. data/rbi/vatsense/models/country_list_response.rbi +55 -0
  110. data/rbi/vatsense/models/create_invoice.rbi +240 -0
  111. data/rbi/vatsense/models/currency_calculate_vat_price_params.rbi +100 -0
  112. data/rbi/vatsense/models/currency_calculate_vat_price_response.rbi +51 -0
  113. data/rbi/vatsense/models/currency_convert_params.rbi +81 -0
  114. data/rbi/vatsense/models/currency_convert_response.rbi +190 -0
  115. data/rbi/vatsense/models/currency_list_params.rbi +79 -0
  116. data/rbi/vatsense/models/currency_list_response.rbi +174 -0
  117. data/rbi/vatsense/models/find_rate.rbi +50 -0
  118. data/rbi/vatsense/models/invoice/invoice_item.rbi +129 -0
  119. data/rbi/vatsense/models/invoice/invoice_item_input.rbi +79 -0
  120. data/rbi/vatsense/models/invoice/item_add_params.rbi +45 -0
  121. data/rbi/vatsense/models/invoice/item_delete_params.rbi +48 -0
  122. data/rbi/vatsense/models/invoice/item_retrieve_params.rbi +48 -0
  123. data/rbi/vatsense/models/invoice/item_retrieve_response.rbi +57 -0
  124. data/rbi/vatsense/models/invoice/item_update_params.rbi +48 -0
  125. data/rbi/vatsense/models/invoice.rbi +481 -0
  126. data/rbi/vatsense/models/invoice_business_input.rbi +113 -0
  127. data/rbi/vatsense/models/invoice_conversion_input.rbi +35 -0
  128. data/rbi/vatsense/models/invoice_create_params.rbi +27 -0
  129. data/rbi/vatsense/models/invoice_customer_input.rbi +93 -0
  130. data/rbi/vatsense/models/invoice_delete_params.rbi +35 -0
  131. data/rbi/vatsense/models/invoice_delete_response.rbi +31 -0
  132. data/rbi/vatsense/models/invoice_list_params.rbi +68 -0
  133. data/rbi/vatsense/models/invoice_list_response.rbi +55 -0
  134. data/rbi/vatsense/models/invoice_response.rbi +48 -0
  135. data/rbi/vatsense/models/invoice_retrieve_params.rbi +35 -0
  136. data/rbi/vatsense/models/invoice_update_params.rbi +35 -0
  137. data/rbi/vatsense/models/rate.rbi +119 -0
  138. data/rbi/vatsense/models/rate_calculate_price_params.rbi +144 -0
  139. data/rbi/vatsense/models/rate_calculate_price_response.rbi +184 -0
  140. data/rbi/vatsense/models/rate_details_params.rbi +109 -0
  141. data/rbi/vatsense/models/rate_find_params.rbi +109 -0
  142. data/rbi/vatsense/models/rate_list_params.rbi +83 -0
  143. data/rbi/vatsense/models/rate_list_response.rbi +48 -0
  144. data/rbi/vatsense/models/rate_list_types_params.rbi +27 -0
  145. data/rbi/vatsense/models/rate_list_types_response.rbi +51 -0
  146. data/rbi/vatsense/models/rate_with_tax_rate.rbi +94 -0
  147. data/rbi/vatsense/models/sandbox_generate_key_params.rbi +27 -0
  148. data/rbi/vatsense/models/sandbox_generate_key_response.rbi +135 -0
  149. data/rbi/vatsense/models/tax_rate.rbi +109 -0
  150. data/rbi/vatsense/models/usage_retrieve_params.rbi +27 -0
  151. data/rbi/vatsense/models/usage_retrieve_response.rbi +155 -0
  152. data/rbi/vatsense/models/validate_check_params.rbi +82 -0
  153. data/rbi/vatsense/models/validate_check_response.rbi +285 -0
  154. data/rbi/vatsense/models/vat_price.rbi +136 -0
  155. data/rbi/vatsense/models.rbi +66 -0
  156. data/rbi/vatsense/request_options.rbi +59 -0
  157. data/rbi/vatsense/resources/countries.rbi +49 -0
  158. data/rbi/vatsense/resources/currency.rbi +82 -0
  159. data/rbi/vatsense/resources/invoice/item.rbi +97 -0
  160. data/rbi/vatsense/resources/invoice.rbi +191 -0
  161. data/rbi/vatsense/resources/rates.rbi +164 -0
  162. data/rbi/vatsense/resources/sandbox.rbi +24 -0
  163. data/rbi/vatsense/resources/usage.rbi +22 -0
  164. data/rbi/vatsense/resources/validate.rbi +51 -0
  165. data/rbi/vatsense/version.rbi +5 -0
  166. data/sig/vatsense/client.rbs +45 -0
  167. data/sig/vatsense/errors.rbs +117 -0
  168. data/sig/vatsense/file_part.rbs +21 -0
  169. data/sig/vatsense/internal/transport/base_client.rbs +135 -0
  170. data/sig/vatsense/internal/transport/pooled_net_requester.rbs +48 -0
  171. data/sig/vatsense/internal/type/array_of.rbs +48 -0
  172. data/sig/vatsense/internal/type/base_model.rbs +102 -0
  173. data/sig/vatsense/internal/type/base_page.rbs +24 -0
  174. data/sig/vatsense/internal/type/boolean.rbs +26 -0
  175. data/sig/vatsense/internal/type/converter.rbs +79 -0
  176. data/sig/vatsense/internal/type/enum.rbs +32 -0
  177. data/sig/vatsense/internal/type/file_input.rbs +25 -0
  178. data/sig/vatsense/internal/type/hash_of.rbs +48 -0
  179. data/sig/vatsense/internal/type/request_parameters.rbs +17 -0
  180. data/sig/vatsense/internal/type/union.rbs +52 -0
  181. data/sig/vatsense/internal/type/unknown.rbs +26 -0
  182. data/sig/vatsense/internal/util.rbs +195 -0
  183. data/sig/vatsense/internal.rbs +9 -0
  184. data/sig/vatsense/models/country.rbs +76 -0
  185. data/sig/vatsense/models/country_list_params.rbs +32 -0
  186. data/sig/vatsense/models/country_list_provinces_params.rbs +23 -0
  187. data/sig/vatsense/models/country_list_provinces_response.rbs +90 -0
  188. data/sig/vatsense/models/country_list_response.rbs +32 -0
  189. data/sig/vatsense/models/create_invoice.rbs +154 -0
  190. data/sig/vatsense/models/currency_calculate_vat_price_params.rbs +47 -0
  191. data/sig/vatsense/models/currency_calculate_vat_price_response.rbs +28 -0
  192. data/sig/vatsense/models/currency_convert_params.rbs +47 -0
  193. data/sig/vatsense/models/currency_convert_response.rbs +104 -0
  194. data/sig/vatsense/models/currency_list_params.rbs +45 -0
  195. data/sig/vatsense/models/currency_list_response.rbs +90 -0
  196. data/sig/vatsense/models/find_rate.rbs +32 -0
  197. data/sig/vatsense/models/invoice/invoice_item.rbs +85 -0
  198. data/sig/vatsense/models/invoice/invoice_item_input.rbs +46 -0
  199. data/sig/vatsense/models/invoice/item_add_params.rbs +33 -0
  200. data/sig/vatsense/models/invoice/item_delete_params.rbs +30 -0
  201. data/sig/vatsense/models/invoice/item_retrieve_params.rbs +30 -0
  202. data/sig/vatsense/models/invoice/item_retrieve_response.rbs +36 -0
  203. data/sig/vatsense/models/invoice/item_update_params.rbs +34 -0
  204. data/sig/vatsense/models/invoice.rbs +332 -0
  205. data/sig/vatsense/models/invoice_business_input.rbs +72 -0
  206. data/sig/vatsense/models/invoice_conversion_input.rbs +15 -0
  207. data/sig/vatsense/models/invoice_create_params.rbs +15 -0
  208. data/sig/vatsense/models/invoice_customer_input.rbs +62 -0
  209. data/sig/vatsense/models/invoice_delete_params.rbs +23 -0
  210. data/sig/vatsense/models/invoice_delete_response.rbs +15 -0
  211. data/sig/vatsense/models/invoice_list_params.rbs +38 -0
  212. data/sig/vatsense/models/invoice_list_response.rbs +34 -0
  213. data/sig/vatsense/models/invoice_response.rbs +32 -0
  214. data/sig/vatsense/models/invoice_retrieve_params.rbs +23 -0
  215. data/sig/vatsense/models/invoice_update_params.rbs +25 -0
  216. data/sig/vatsense/models/rate.rbs +79 -0
  217. data/sig/vatsense/models/rate_calculate_price_params.rbs +77 -0
  218. data/sig/vatsense/models/rate_calculate_price_response.rbs +104 -0
  219. data/sig/vatsense/models/rate_details_params.rbs +63 -0
  220. data/sig/vatsense/models/rate_find_params.rbs +63 -0
  221. data/sig/vatsense/models/rate_list_params.rbs +44 -0
  222. data/sig/vatsense/models/rate_list_response.rbs +32 -0
  223. data/sig/vatsense/models/rate_list_types_params.rbs +15 -0
  224. data/sig/vatsense/models/rate_list_types_response.rbs +28 -0
  225. data/sig/vatsense/models/rate_with_tax_rate.rbs +62 -0
  226. data/sig/vatsense/models/sandbox_generate_key_params.rbs +15 -0
  227. data/sig/vatsense/models/sandbox_generate_key_response.rbs +85 -0
  228. data/sig/vatsense/models/tax_rate.rbs +72 -0
  229. data/sig/vatsense/models/usage_retrieve_params.rbs +15 -0
  230. data/sig/vatsense/models/usage_retrieve_response.rbs +81 -0
  231. data/sig/vatsense/models/validate_check_params.rbs +38 -0
  232. data/sig/vatsense/models/validate_check_response.rbs +161 -0
  233. data/sig/vatsense/models/vat_price.rbs +89 -0
  234. data/sig/vatsense/models.rbs +63 -0
  235. data/sig/vatsense/request_options.rbs +34 -0
  236. data/sig/vatsense/resources/countries.rbs +18 -0
  237. data/sig/vatsense/resources/currency.rbs +27 -0
  238. data/sig/vatsense/resources/invoice/item.rbs +38 -0
  239. data/sig/vatsense/resources/invoice.rbs +69 -0
  240. data/sig/vatsense/resources/rates.rbs +50 -0
  241. data/sig/vatsense/resources/sandbox.rbs +11 -0
  242. data/sig/vatsense/resources/usage.rbs +11 -0
  243. data/sig/vatsense/resources/validate.rbs +14 -0
  244. data/sig/vatsense/version.rbs +3 -0
  245. metadata +316 -0
@@ -0,0 +1,184 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class RateCalculatePriceResponse < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Vatsense::Models::RateCalculatePriceResponse,
10
+ Vatsense::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(T.nilable(Integer)) }
15
+ attr_reader :code
16
+
17
+ sig { params(code: Integer).void }
18
+ attr_writer :code
19
+
20
+ sig do
21
+ returns(T.nilable(Vatsense::Models::RateCalculatePriceResponse::Data))
22
+ end
23
+ attr_reader :data
24
+
25
+ sig do
26
+ params(
27
+ data: Vatsense::Models::RateCalculatePriceResponse::Data::OrHash
28
+ ).void
29
+ end
30
+ attr_writer :data
31
+
32
+ sig { returns(T.nilable(T::Boolean)) }
33
+ attr_reader :success
34
+
35
+ sig { params(success: T::Boolean).void }
36
+ attr_writer :success
37
+
38
+ sig do
39
+ params(
40
+ code: Integer,
41
+ data: Vatsense::Models::RateCalculatePriceResponse::Data::OrHash,
42
+ success: T::Boolean
43
+ ).returns(T.attached_class)
44
+ end
45
+ def self.new(code: nil, data: nil, success: nil)
46
+ end
47
+
48
+ sig do
49
+ override.returns(
50
+ {
51
+ code: Integer,
52
+ data: Vatsense::Models::RateCalculatePriceResponse::Data,
53
+ success: T::Boolean
54
+ }
55
+ )
56
+ end
57
+ def to_hash
58
+ end
59
+
60
+ class Data < Vatsense::Internal::Type::BaseModel
61
+ OrHash =
62
+ T.type_alias do
63
+ T.any(
64
+ Vatsense::Models::RateCalculatePriceResponse::Data,
65
+ Vatsense::Internal::AnyHash
66
+ )
67
+ end
68
+
69
+ sig { returns(T.nilable(String)) }
70
+ attr_reader :country_code
71
+
72
+ sig { params(country_code: String).void }
73
+ attr_writer :country_code
74
+
75
+ sig { returns(T.nilable(String)) }
76
+ attr_reader :country_name
77
+
78
+ sig { params(country_name: String).void }
79
+ attr_writer :country_name
80
+
81
+ sig { returns(T.nilable(T::Boolean)) }
82
+ attr_reader :eu
83
+
84
+ sig { params(eu: T::Boolean).void }
85
+ attr_writer :eu
86
+
87
+ sig do
88
+ returns(
89
+ T.nilable(
90
+ Vatsense::Models::RateCalculatePriceResponse::Data::Object::TaggedSymbol
91
+ )
92
+ )
93
+ end
94
+ attr_reader :object
95
+
96
+ sig do
97
+ params(
98
+ object:
99
+ Vatsense::Models::RateCalculatePriceResponse::Data::Object::OrSymbol
100
+ ).void
101
+ end
102
+ attr_writer :object
103
+
104
+ sig { returns(T.nilable(Vatsense::TaxRate)) }
105
+ attr_reader :tax_rate
106
+
107
+ sig { params(tax_rate: Vatsense::TaxRate::OrHash).void }
108
+ attr_writer :tax_rate
109
+
110
+ sig { returns(T.nilable(Vatsense::VatPrice)) }
111
+ attr_reader :vat_price
112
+
113
+ sig { params(vat_price: Vatsense::VatPrice::OrHash).void }
114
+ attr_writer :vat_price
115
+
116
+ sig do
117
+ params(
118
+ country_code: String,
119
+ country_name: String,
120
+ eu: T::Boolean,
121
+ object:
122
+ Vatsense::Models::RateCalculatePriceResponse::Data::Object::OrSymbol,
123
+ tax_rate: Vatsense::TaxRate::OrHash,
124
+ vat_price: Vatsense::VatPrice::OrHash
125
+ ).returns(T.attached_class)
126
+ end
127
+ def self.new(
128
+ country_code: nil,
129
+ country_name: nil,
130
+ eu: nil,
131
+ object: nil,
132
+ tax_rate: nil,
133
+ vat_price: nil
134
+ )
135
+ end
136
+
137
+ sig do
138
+ override.returns(
139
+ {
140
+ country_code: String,
141
+ country_name: String,
142
+ eu: T::Boolean,
143
+ object:
144
+ Vatsense::Models::RateCalculatePriceResponse::Data::Object::TaggedSymbol,
145
+ tax_rate: Vatsense::TaxRate,
146
+ vat_price: Vatsense::VatPrice
147
+ }
148
+ )
149
+ end
150
+ def to_hash
151
+ end
152
+
153
+ module Object
154
+ extend Vatsense::Internal::Type::Enum
155
+
156
+ TaggedSymbol =
157
+ T.type_alias do
158
+ T.all(
159
+ Symbol,
160
+ Vatsense::Models::RateCalculatePriceResponse::Data::Object
161
+ )
162
+ end
163
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
164
+
165
+ RATE =
166
+ T.let(
167
+ :rate,
168
+ Vatsense::Models::RateCalculatePriceResponse::Data::Object::TaggedSymbol
169
+ )
170
+
171
+ sig do
172
+ override.returns(
173
+ T::Array[
174
+ Vatsense::Models::RateCalculatePriceResponse::Data::Object::TaggedSymbol
175
+ ]
176
+ )
177
+ end
178
+ def self.values
179
+ end
180
+ end
181
+ end
182
+ end
183
+ end
184
+ end
@@ -0,0 +1,109 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class RateDetailsParams < Vatsense::Internal::Type::BaseModel
6
+ extend Vatsense::Internal::Type::RequestParameters::Converter
7
+ include Vatsense::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Vatsense::RateDetailsParams, Vatsense::Internal::AnyHash)
12
+ end
13
+
14
+ # A 2-character ISO 3166-1 alpha-2 country code (e.g. "GB", "FR").
15
+ sig { returns(T.nilable(String)) }
16
+ attr_reader :country_code
17
+
18
+ sig { params(country_code: String).void }
19
+ attr_writer :country_code
20
+
21
+ # Filter results by EU membership. Use 1 for EU countries only, 0 for non-EU only.
22
+ sig { returns(T.nilable(T::Boolean)) }
23
+ attr_reader :eu
24
+
25
+ sig { params(eu: T::Boolean).void }
26
+ attr_writer :eu
27
+
28
+ # An IPv4 or IPv6 address. If provided, the country will be determined from the IP
29
+ # address.
30
+ sig { returns(T.nilable(String)) }
31
+ attr_reader :ip_address
32
+
33
+ sig { params(ip_address: String).void }
34
+ attr_writer :ip_address
35
+
36
+ # A historical date to retrieve rates for (format "YYYY-MM-DD HH:MM:SS"). Must be
37
+ # a past date.
38
+ sig { returns(T.nilable(Time)) }
39
+ attr_reader :period
40
+
41
+ sig { params(period: Time).void }
42
+ attr_writer :period
43
+
44
+ # A 2-character province code (e.g. "NU", "NT"). If providing a province code, you
45
+ # must also provide the relevant country_code.
46
+ sig { returns(T.nilable(String)) }
47
+ attr_reader :province_code
48
+
49
+ sig { params(province_code: String).void }
50
+ attr_writer :province_code
51
+
52
+ # The product type to find the applicable rate for. See the /rates/types endpoint
53
+ # for a full list of valid values.
54
+ sig { returns(T.nilable(String)) }
55
+ attr_reader :type
56
+
57
+ sig { params(type: String).void }
58
+ attr_writer :type
59
+
60
+ sig do
61
+ params(
62
+ country_code: String,
63
+ eu: T::Boolean,
64
+ ip_address: String,
65
+ period: Time,
66
+ province_code: String,
67
+ type: String,
68
+ request_options: Vatsense::RequestOptions::OrHash
69
+ ).returns(T.attached_class)
70
+ end
71
+ def self.new(
72
+ # A 2-character ISO 3166-1 alpha-2 country code (e.g. "GB", "FR").
73
+ country_code: nil,
74
+ # Filter results by EU membership. Use 1 for EU countries only, 0 for non-EU only.
75
+ eu: nil,
76
+ # An IPv4 or IPv6 address. If provided, the country will be determined from the IP
77
+ # address.
78
+ ip_address: nil,
79
+ # A historical date to retrieve rates for (format "YYYY-MM-DD HH:MM:SS"). Must be
80
+ # a past date.
81
+ period: nil,
82
+ # A 2-character province code (e.g. "NU", "NT"). If providing a province code, you
83
+ # must also provide the relevant country_code.
84
+ province_code: nil,
85
+ # The product type to find the applicable rate for. See the /rates/types endpoint
86
+ # for a full list of valid values.
87
+ type: nil,
88
+ request_options: {}
89
+ )
90
+ end
91
+
92
+ sig do
93
+ override.returns(
94
+ {
95
+ country_code: String,
96
+ eu: T::Boolean,
97
+ ip_address: String,
98
+ period: Time,
99
+ province_code: String,
100
+ type: String,
101
+ request_options: Vatsense::RequestOptions
102
+ }
103
+ )
104
+ end
105
+ def to_hash
106
+ end
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,109 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class RateFindParams < Vatsense::Internal::Type::BaseModel
6
+ extend Vatsense::Internal::Type::RequestParameters::Converter
7
+ include Vatsense::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Vatsense::RateFindParams, Vatsense::Internal::AnyHash)
12
+ end
13
+
14
+ # A 2-character ISO 3166-1 alpha-2 country code (e.g. "GB", "FR").
15
+ sig { returns(T.nilable(String)) }
16
+ attr_reader :country_code
17
+
18
+ sig { params(country_code: String).void }
19
+ attr_writer :country_code
20
+
21
+ # Filter results by EU membership. Use 1 for EU countries only, 0 for non-EU only.
22
+ sig { returns(T.nilable(T::Boolean)) }
23
+ attr_reader :eu
24
+
25
+ sig { params(eu: T::Boolean).void }
26
+ attr_writer :eu
27
+
28
+ # An IPv4 or IPv6 address. If provided, the country will be determined from the IP
29
+ # address.
30
+ sig { returns(T.nilable(String)) }
31
+ attr_reader :ip_address
32
+
33
+ sig { params(ip_address: String).void }
34
+ attr_writer :ip_address
35
+
36
+ # A historical date to retrieve rates for (format "YYYY-MM-DD HH:MM:SS"). Must be
37
+ # a past date.
38
+ sig { returns(T.nilable(Time)) }
39
+ attr_reader :period
40
+
41
+ sig { params(period: Time).void }
42
+ attr_writer :period
43
+
44
+ # A 2-character province code (e.g. "NU", "NT"). If providing a province code, you
45
+ # must also provide the relevant country_code.
46
+ sig { returns(T.nilable(String)) }
47
+ attr_reader :province_code
48
+
49
+ sig { params(province_code: String).void }
50
+ attr_writer :province_code
51
+
52
+ # The product type to find the applicable rate for. See the /rates/types endpoint
53
+ # for a full list of valid values.
54
+ sig { returns(T.nilable(String)) }
55
+ attr_reader :type
56
+
57
+ sig { params(type: String).void }
58
+ attr_writer :type
59
+
60
+ sig do
61
+ params(
62
+ country_code: String,
63
+ eu: T::Boolean,
64
+ ip_address: String,
65
+ period: Time,
66
+ province_code: String,
67
+ type: String,
68
+ request_options: Vatsense::RequestOptions::OrHash
69
+ ).returns(T.attached_class)
70
+ end
71
+ def self.new(
72
+ # A 2-character ISO 3166-1 alpha-2 country code (e.g. "GB", "FR").
73
+ country_code: nil,
74
+ # Filter results by EU membership. Use 1 for EU countries only, 0 for non-EU only.
75
+ eu: nil,
76
+ # An IPv4 or IPv6 address. If provided, the country will be determined from the IP
77
+ # address.
78
+ ip_address: nil,
79
+ # A historical date to retrieve rates for (format "YYYY-MM-DD HH:MM:SS"). Must be
80
+ # a past date.
81
+ period: nil,
82
+ # A 2-character province code (e.g. "NU", "NT"). If providing a province code, you
83
+ # must also provide the relevant country_code.
84
+ province_code: nil,
85
+ # The product type to find the applicable rate for. See the /rates/types endpoint
86
+ # for a full list of valid values.
87
+ type: nil,
88
+ request_options: {}
89
+ )
90
+ end
91
+
92
+ sig do
93
+ override.returns(
94
+ {
95
+ country_code: String,
96
+ eu: T::Boolean,
97
+ ip_address: String,
98
+ period: Time,
99
+ province_code: String,
100
+ type: String,
101
+ request_options: Vatsense::RequestOptions
102
+ }
103
+ )
104
+ end
105
+ def to_hash
106
+ end
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,83 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class RateListParams < Vatsense::Internal::Type::BaseModel
6
+ extend Vatsense::Internal::Type::RequestParameters::Converter
7
+ include Vatsense::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Vatsense::RateListParams, Vatsense::Internal::AnyHash)
12
+ end
13
+
14
+ # A 2-character ISO 3166-1 alpha-2 country code (e.g. "GB", "FR").
15
+ sig { returns(T.nilable(String)) }
16
+ attr_reader :country_code
17
+
18
+ sig { params(country_code: String).void }
19
+ attr_writer :country_code
20
+
21
+ # Filter results by EU membership. Use 1 for EU countries only, 0 for non-EU only.
22
+ sig { returns(T.nilable(T::Boolean)) }
23
+ attr_reader :eu
24
+
25
+ sig { params(eu: T::Boolean).void }
26
+ attr_writer :eu
27
+
28
+ # An IPv4 or IPv6 address. If provided, the country will be determined from the IP
29
+ # address.
30
+ sig { returns(T.nilable(String)) }
31
+ attr_reader :ip_address
32
+
33
+ sig { params(ip_address: String).void }
34
+ attr_writer :ip_address
35
+
36
+ # A historical date to retrieve rates for (format "YYYY-MM-DD HH:MM:SS"). Must be
37
+ # a past date.
38
+ sig { returns(T.nilable(Time)) }
39
+ attr_reader :period
40
+
41
+ sig { params(period: Time).void }
42
+ attr_writer :period
43
+
44
+ sig do
45
+ params(
46
+ country_code: String,
47
+ eu: T::Boolean,
48
+ ip_address: String,
49
+ period: Time,
50
+ request_options: Vatsense::RequestOptions::OrHash
51
+ ).returns(T.attached_class)
52
+ end
53
+ def self.new(
54
+ # A 2-character ISO 3166-1 alpha-2 country code (e.g. "GB", "FR").
55
+ country_code: nil,
56
+ # Filter results by EU membership. Use 1 for EU countries only, 0 for non-EU only.
57
+ eu: nil,
58
+ # An IPv4 or IPv6 address. If provided, the country will be determined from the IP
59
+ # address.
60
+ ip_address: nil,
61
+ # A historical date to retrieve rates for (format "YYYY-MM-DD HH:MM:SS"). Must be
62
+ # a past date.
63
+ period: nil,
64
+ request_options: {}
65
+ )
66
+ end
67
+
68
+ sig do
69
+ override.returns(
70
+ {
71
+ country_code: String,
72
+ eu: T::Boolean,
73
+ ip_address: String,
74
+ period: Time,
75
+ request_options: Vatsense::RequestOptions
76
+ }
77
+ )
78
+ end
79
+ def to_hash
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,48 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class RateListResponse < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Vatsense::Models::RateListResponse, Vatsense::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(T.nilable(Integer)) }
12
+ attr_reader :code
13
+
14
+ sig { params(code: Integer).void }
15
+ attr_writer :code
16
+
17
+ sig { returns(T.nilable(T::Array[Vatsense::Rate])) }
18
+ attr_reader :data
19
+
20
+ sig { params(data: T::Array[Vatsense::Rate::OrHash]).void }
21
+ attr_writer :data
22
+
23
+ sig { returns(T.nilable(T::Boolean)) }
24
+ attr_reader :success
25
+
26
+ sig { params(success: T::Boolean).void }
27
+ attr_writer :success
28
+
29
+ sig do
30
+ params(
31
+ code: Integer,
32
+ data: T::Array[Vatsense::Rate::OrHash],
33
+ success: T::Boolean
34
+ ).returns(T.attached_class)
35
+ end
36
+ def self.new(code: nil, data: nil, success: nil)
37
+ end
38
+
39
+ sig do
40
+ override.returns(
41
+ { code: Integer, data: T::Array[Vatsense::Rate], success: T::Boolean }
42
+ )
43
+ end
44
+ def to_hash
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class RateListTypesParams < Vatsense::Internal::Type::BaseModel
6
+ extend Vatsense::Internal::Type::RequestParameters::Converter
7
+ include Vatsense::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Vatsense::RateListTypesParams, Vatsense::Internal::AnyHash)
12
+ end
13
+
14
+ sig do
15
+ params(request_options: Vatsense::RequestOptions::OrHash).returns(
16
+ T.attached_class
17
+ )
18
+ end
19
+ def self.new(request_options: {})
20
+ end
21
+
22
+ sig { override.returns({ request_options: Vatsense::RequestOptions }) }
23
+ def to_hash
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,51 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class RateListTypesResponse < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Vatsense::Models::RateListTypesResponse,
10
+ Vatsense::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(T.nilable(Integer)) }
15
+ attr_reader :code
16
+
17
+ sig { params(code: Integer).void }
18
+ attr_writer :code
19
+
20
+ sig { returns(T.nilable(T::Array[String])) }
21
+ attr_reader :data
22
+
23
+ sig { params(data: T::Array[String]).void }
24
+ attr_writer :data
25
+
26
+ sig { returns(T.nilable(T::Boolean)) }
27
+ attr_reader :success
28
+
29
+ sig { params(success: T::Boolean).void }
30
+ attr_writer :success
31
+
32
+ sig do
33
+ params(
34
+ code: Integer,
35
+ data: T::Array[String],
36
+ success: T::Boolean
37
+ ).returns(T.attached_class)
38
+ end
39
+ def self.new(code: nil, data: nil, success: nil)
40
+ end
41
+
42
+ sig do
43
+ override.returns(
44
+ { code: Integer, data: T::Array[String], success: T::Boolean }
45
+ )
46
+ end
47
+ def to_hash
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,94 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class RateWithTaxRate < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Vatsense::RateWithTaxRate, Vatsense::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(T.nilable(String)) }
12
+ attr_reader :country_code
13
+
14
+ sig { params(country_code: String).void }
15
+ attr_writer :country_code
16
+
17
+ sig { returns(T.nilable(String)) }
18
+ attr_reader :country_name
19
+
20
+ sig { params(country_name: String).void }
21
+ attr_writer :country_name
22
+
23
+ sig { returns(T.nilable(T::Boolean)) }
24
+ attr_reader :eu
25
+
26
+ sig { params(eu: T::Boolean).void }
27
+ attr_writer :eu
28
+
29
+ sig do
30
+ returns(T.nilable(Vatsense::RateWithTaxRate::Object::TaggedSymbol))
31
+ end
32
+ attr_reader :object
33
+
34
+ sig { params(object: Vatsense::RateWithTaxRate::Object::OrSymbol).void }
35
+ attr_writer :object
36
+
37
+ sig { returns(T.nilable(Vatsense::TaxRate)) }
38
+ attr_reader :tax_rate
39
+
40
+ sig { params(tax_rate: Vatsense::TaxRate::OrHash).void }
41
+ attr_writer :tax_rate
42
+
43
+ sig do
44
+ params(
45
+ country_code: String,
46
+ country_name: String,
47
+ eu: T::Boolean,
48
+ object: Vatsense::RateWithTaxRate::Object::OrSymbol,
49
+ tax_rate: Vatsense::TaxRate::OrHash
50
+ ).returns(T.attached_class)
51
+ end
52
+ def self.new(
53
+ country_code: nil,
54
+ country_name: nil,
55
+ eu: nil,
56
+ object: nil,
57
+ tax_rate: nil
58
+ )
59
+ end
60
+
61
+ sig do
62
+ override.returns(
63
+ {
64
+ country_code: String,
65
+ country_name: String,
66
+ eu: T::Boolean,
67
+ object: Vatsense::RateWithTaxRate::Object::TaggedSymbol,
68
+ tax_rate: Vatsense::TaxRate
69
+ }
70
+ )
71
+ end
72
+ def to_hash
73
+ end
74
+
75
+ module Object
76
+ extend Vatsense::Internal::Type::Enum
77
+
78
+ TaggedSymbol =
79
+ T.type_alias { T.all(Symbol, Vatsense::RateWithTaxRate::Object) }
80
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
81
+
82
+ RATE = T.let(:rate, Vatsense::RateWithTaxRate::Object::TaggedSymbol)
83
+
84
+ sig do
85
+ override.returns(
86
+ T::Array[Vatsense::RateWithTaxRate::Object::TaggedSymbol]
87
+ )
88
+ end
89
+ def self.values
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end