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,81 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class CurrencyConvertParams < 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::CurrencyConvertParams, Vatsense::Internal::AnyHash)
12
+ end
13
+
14
+ # The amount to convert. Must be a string with exactly 2 decimal places (e.g.
15
+ # "39.99").
16
+ sig { returns(String) }
17
+ attr_accessor :amount
18
+
19
+ # The 3-character source currency code (e.g. "USD", "CAD").
20
+ sig { returns(String) }
21
+ attr_accessor :from
22
+
23
+ # The 3-character target currency code. Must be either "GBP" or "EUR".
24
+ sig { returns(Vatsense::CurrencyConvertParams::To::OrSymbol) }
25
+ attr_accessor :to
26
+
27
+ sig do
28
+ params(
29
+ amount: String,
30
+ from: String,
31
+ to: Vatsense::CurrencyConvertParams::To::OrSymbol,
32
+ request_options: Vatsense::RequestOptions::OrHash
33
+ ).returns(T.attached_class)
34
+ end
35
+ def self.new(
36
+ # The amount to convert. Must be a string with exactly 2 decimal places (e.g.
37
+ # "39.99").
38
+ amount:,
39
+ # The 3-character source currency code (e.g. "USD", "CAD").
40
+ from:,
41
+ # The 3-character target currency code. Must be either "GBP" or "EUR".
42
+ to:,
43
+ request_options: {}
44
+ )
45
+ end
46
+
47
+ sig do
48
+ override.returns(
49
+ {
50
+ amount: String,
51
+ from: String,
52
+ to: Vatsense::CurrencyConvertParams::To::OrSymbol,
53
+ request_options: Vatsense::RequestOptions
54
+ }
55
+ )
56
+ end
57
+ def to_hash
58
+ end
59
+
60
+ # The 3-character target currency code. Must be either "GBP" or "EUR".
61
+ module To
62
+ extend Vatsense::Internal::Type::Enum
63
+
64
+ TaggedSymbol =
65
+ T.type_alias { T.all(Symbol, Vatsense::CurrencyConvertParams::To) }
66
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
67
+
68
+ GBP = T.let(:GBP, Vatsense::CurrencyConvertParams::To::TaggedSymbol)
69
+ EUR = T.let(:EUR, Vatsense::CurrencyConvertParams::To::TaggedSymbol)
70
+
71
+ sig do
72
+ override.returns(
73
+ T::Array[Vatsense::CurrencyConvertParams::To::TaggedSymbol]
74
+ )
75
+ end
76
+ def self.values
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,190 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class CurrencyConvertResponse < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Vatsense::Models::CurrencyConvertResponse,
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::CurrencyConvertResponse::Data))
22
+ end
23
+ attr_reader :data
24
+
25
+ sig do
26
+ params(
27
+ data: Vatsense::Models::CurrencyConvertResponse::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::CurrencyConvertResponse::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::CurrencyConvertResponse::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::CurrencyConvertResponse::Data,
65
+ Vatsense::Internal::AnyHash
66
+ )
67
+ end
68
+
69
+ # The original amount.
70
+ sig { returns(T.nilable(Float)) }
71
+ attr_reader :amount
72
+
73
+ sig { params(amount: Float).void }
74
+ attr_writer :amount
75
+
76
+ # The converted amount.
77
+ sig { returns(T.nilable(Float)) }
78
+ attr_reader :converted
79
+
80
+ sig { params(converted: Float).void }
81
+ attr_writer :converted
82
+
83
+ sig { returns(T.nilable(String)) }
84
+ attr_reader :from
85
+
86
+ sig { params(from: String).void }
87
+ attr_writer :from
88
+
89
+ sig do
90
+ returns(
91
+ T.nilable(
92
+ Vatsense::Models::CurrencyConvertResponse::Data::Object::TaggedSymbol
93
+ )
94
+ )
95
+ end
96
+ attr_reader :object
97
+
98
+ sig do
99
+ params(
100
+ object:
101
+ Vatsense::Models::CurrencyConvertResponse::Data::Object::OrSymbol
102
+ ).void
103
+ end
104
+ attr_writer :object
105
+
106
+ # The exchange rate used.
107
+ sig { returns(T.nilable(Float)) }
108
+ attr_reader :rate
109
+
110
+ sig { params(rate: Float).void }
111
+ attr_writer :rate
112
+
113
+ sig { returns(T.nilable(String)) }
114
+ attr_reader :to
115
+
116
+ sig { params(to: String).void }
117
+ attr_writer :to
118
+
119
+ sig do
120
+ params(
121
+ amount: Float,
122
+ converted: Float,
123
+ from: String,
124
+ object:
125
+ Vatsense::Models::CurrencyConvertResponse::Data::Object::OrSymbol,
126
+ rate: Float,
127
+ to: String
128
+ ).returns(T.attached_class)
129
+ end
130
+ def self.new(
131
+ # The original amount.
132
+ amount: nil,
133
+ # The converted amount.
134
+ converted: nil,
135
+ from: nil,
136
+ object: nil,
137
+ # The exchange rate used.
138
+ rate: nil,
139
+ to: nil
140
+ )
141
+ end
142
+
143
+ sig do
144
+ override.returns(
145
+ {
146
+ amount: Float,
147
+ converted: Float,
148
+ from: String,
149
+ object:
150
+ Vatsense::Models::CurrencyConvertResponse::Data::Object::TaggedSymbol,
151
+ rate: Float,
152
+ to: String
153
+ }
154
+ )
155
+ end
156
+ def to_hash
157
+ end
158
+
159
+ module Object
160
+ extend Vatsense::Internal::Type::Enum
161
+
162
+ TaggedSymbol =
163
+ T.type_alias do
164
+ T.all(
165
+ Symbol,
166
+ Vatsense::Models::CurrencyConvertResponse::Data::Object
167
+ )
168
+ end
169
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
170
+
171
+ CONVERSION =
172
+ T.let(
173
+ :conversion,
174
+ Vatsense::Models::CurrencyConvertResponse::Data::Object::TaggedSymbol
175
+ )
176
+
177
+ sig do
178
+ override.returns(
179
+ T::Array[
180
+ Vatsense::Models::CurrencyConvertResponse::Data::Object::TaggedSymbol
181
+ ]
182
+ )
183
+ end
184
+ def self.values
185
+ end
186
+ end
187
+ end
188
+ end
189
+ end
190
+ end
@@ -0,0 +1,79 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class CurrencyListParams < 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::CurrencyListParams, Vatsense::Internal::AnyHash)
12
+ end
13
+
14
+ # The 3-character currency code(s) to convert from (e.g. "USD", "CAD"). Can be a
15
+ # comma-separated list without spaces (e.g. "USD,CAD,AUD").
16
+ sig { returns(T.nilable(String)) }
17
+ attr_reader :from
18
+
19
+ sig { params(from: String).void }
20
+ attr_writer :from
21
+
22
+ # The 3-character target currency code. Must be either "GBP" or "EUR".
23
+ sig { returns(T.nilable(Vatsense::CurrencyListParams::To::OrSymbol)) }
24
+ attr_reader :to
25
+
26
+ sig { params(to: Vatsense::CurrencyListParams::To::OrSymbol).void }
27
+ attr_writer :to
28
+
29
+ sig do
30
+ params(
31
+ from: String,
32
+ to: Vatsense::CurrencyListParams::To::OrSymbol,
33
+ request_options: Vatsense::RequestOptions::OrHash
34
+ ).returns(T.attached_class)
35
+ end
36
+ def self.new(
37
+ # The 3-character currency code(s) to convert from (e.g. "USD", "CAD"). Can be a
38
+ # comma-separated list without spaces (e.g. "USD,CAD,AUD").
39
+ from: nil,
40
+ # The 3-character target currency code. Must be either "GBP" or "EUR".
41
+ to: nil,
42
+ request_options: {}
43
+ )
44
+ end
45
+
46
+ sig do
47
+ override.returns(
48
+ {
49
+ from: String,
50
+ to: Vatsense::CurrencyListParams::To::OrSymbol,
51
+ request_options: Vatsense::RequestOptions
52
+ }
53
+ )
54
+ end
55
+ def to_hash
56
+ end
57
+
58
+ # The 3-character target currency code. Must be either "GBP" or "EUR".
59
+ module To
60
+ extend Vatsense::Internal::Type::Enum
61
+
62
+ TaggedSymbol =
63
+ T.type_alias { T.all(Symbol, Vatsense::CurrencyListParams::To) }
64
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
65
+
66
+ GBP = T.let(:GBP, Vatsense::CurrencyListParams::To::TaggedSymbol)
67
+ EUR = T.let(:EUR, Vatsense::CurrencyListParams::To::TaggedSymbol)
68
+
69
+ sig do
70
+ override.returns(
71
+ T::Array[Vatsense::CurrencyListParams::To::TaggedSymbol]
72
+ )
73
+ end
74
+ def self.values
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,174 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class CurrencyListResponse < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Vatsense::Models::CurrencyListResponse,
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(
22
+ T.nilable(T::Array[Vatsense::Models::CurrencyListResponse::Data])
23
+ )
24
+ end
25
+ attr_reader :data
26
+
27
+ sig do
28
+ params(
29
+ data: T::Array[Vatsense::Models::CurrencyListResponse::Data::OrHash]
30
+ ).void
31
+ end
32
+ attr_writer :data
33
+
34
+ sig { returns(T.nilable(T::Boolean)) }
35
+ attr_reader :success
36
+
37
+ sig { params(success: T::Boolean).void }
38
+ attr_writer :success
39
+
40
+ sig do
41
+ params(
42
+ code: Integer,
43
+ data: T::Array[Vatsense::Models::CurrencyListResponse::Data::OrHash],
44
+ success: T::Boolean
45
+ ).returns(T.attached_class)
46
+ end
47
+ def self.new(code: nil, data: nil, success: nil)
48
+ end
49
+
50
+ sig do
51
+ override.returns(
52
+ {
53
+ code: Integer,
54
+ data: T::Array[Vatsense::Models::CurrencyListResponse::Data],
55
+ success: T::Boolean
56
+ }
57
+ )
58
+ end
59
+ def to_hash
60
+ end
61
+
62
+ class Data < Vatsense::Internal::Type::BaseModel
63
+ OrHash =
64
+ T.type_alias do
65
+ T.any(
66
+ Vatsense::Models::CurrencyListResponse::Data,
67
+ Vatsense::Internal::AnyHash
68
+ )
69
+ end
70
+
71
+ # The 3-character source currency code.
72
+ sig { returns(T.nilable(String)) }
73
+ attr_reader :from
74
+
75
+ sig { params(from: String).void }
76
+ attr_writer :from
77
+
78
+ sig do
79
+ returns(
80
+ T.nilable(
81
+ Vatsense::Models::CurrencyListResponse::Data::Object::TaggedSymbol
82
+ )
83
+ )
84
+ end
85
+ attr_reader :object
86
+
87
+ sig do
88
+ params(
89
+ object:
90
+ Vatsense::Models::CurrencyListResponse::Data::Object::OrSymbol
91
+ ).void
92
+ end
93
+ attr_writer :object
94
+
95
+ # The exchange rate.
96
+ sig { returns(T.nilable(Float)) }
97
+ attr_reader :rate
98
+
99
+ sig { params(rate: Float).void }
100
+ attr_writer :rate
101
+
102
+ # The 3-character target currency code (GBP or EUR).
103
+ sig { returns(T.nilable(String)) }
104
+ attr_reader :to
105
+
106
+ sig { params(to: String).void }
107
+ attr_writer :to
108
+
109
+ sig do
110
+ params(
111
+ from: String,
112
+ object:
113
+ Vatsense::Models::CurrencyListResponse::Data::Object::OrSymbol,
114
+ rate: Float,
115
+ to: String
116
+ ).returns(T.attached_class)
117
+ end
118
+ def self.new(
119
+ # The 3-character source currency code.
120
+ from: nil,
121
+ object: nil,
122
+ # The exchange rate.
123
+ rate: nil,
124
+ # The 3-character target currency code (GBP or EUR).
125
+ to: nil
126
+ )
127
+ end
128
+
129
+ sig do
130
+ override.returns(
131
+ {
132
+ from: String,
133
+ object:
134
+ Vatsense::Models::CurrencyListResponse::Data::Object::TaggedSymbol,
135
+ rate: Float,
136
+ to: String
137
+ }
138
+ )
139
+ end
140
+ def to_hash
141
+ end
142
+
143
+ module Object
144
+ extend Vatsense::Internal::Type::Enum
145
+
146
+ TaggedSymbol =
147
+ T.type_alias do
148
+ T.all(
149
+ Symbol,
150
+ Vatsense::Models::CurrencyListResponse::Data::Object
151
+ )
152
+ end
153
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
154
+
155
+ CONVERT_RATE =
156
+ T.let(
157
+ :convert_rate,
158
+ Vatsense::Models::CurrencyListResponse::Data::Object::TaggedSymbol
159
+ )
160
+
161
+ sig do
162
+ override.returns(
163
+ T::Array[
164
+ Vatsense::Models::CurrencyListResponse::Data::Object::TaggedSymbol
165
+ ]
166
+ )
167
+ end
168
+ def self.values
169
+ end
170
+ end
171
+ end
172
+ end
173
+ end
174
+ end
@@ -0,0 +1,50 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class FindRate < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias { T.any(Vatsense::FindRate, Vatsense::Internal::AnyHash) }
8
+
9
+ sig { returns(T.nilable(Integer)) }
10
+ attr_reader :code
11
+
12
+ sig { params(code: Integer).void }
13
+ attr_writer :code
14
+
15
+ sig { returns(T.nilable(Vatsense::RateWithTaxRate)) }
16
+ attr_reader :data
17
+
18
+ sig { params(data: Vatsense::RateWithTaxRate::OrHash).void }
19
+ attr_writer :data
20
+
21
+ sig { returns(T.nilable(T::Boolean)) }
22
+ attr_reader :success
23
+
24
+ sig { params(success: T::Boolean).void }
25
+ attr_writer :success
26
+
27
+ sig do
28
+ params(
29
+ code: Integer,
30
+ data: Vatsense::RateWithTaxRate::OrHash,
31
+ success: T::Boolean
32
+ ).returns(T.attached_class)
33
+ end
34
+ def self.new(code: nil, data: nil, success: nil)
35
+ end
36
+
37
+ sig do
38
+ override.returns(
39
+ {
40
+ code: Integer,
41
+ data: Vatsense::RateWithTaxRate,
42
+ success: T::Boolean
43
+ }
44
+ )
45
+ end
46
+ def to_hash
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,129 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ InvoiceItem = Invoice::InvoiceItem
6
+
7
+ module Invoice
8
+ class InvoiceItem < Vatsense::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Vatsense::Invoice::InvoiceItem, Vatsense::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(T.nilable(String)) }
15
+ attr_reader :id
16
+
17
+ sig { params(id: String).void }
18
+ attr_writer :id
19
+
20
+ sig { returns(T.nilable(Float)) }
21
+ attr_accessor :discount_rate
22
+
23
+ sig { returns(T.nilable(String)) }
24
+ attr_reader :item
25
+
26
+ sig { params(item: String).void }
27
+ attr_writer :item
28
+
29
+ sig do
30
+ returns(
31
+ T.nilable(Vatsense::Invoice::InvoiceItem::Object::TaggedSymbol)
32
+ )
33
+ end
34
+ attr_reader :object
35
+
36
+ sig do
37
+ params(object: Vatsense::Invoice::InvoiceItem::Object::OrSymbol).void
38
+ end
39
+ attr_writer :object
40
+
41
+ sig { returns(T.nilable(Float)) }
42
+ attr_reader :price_each
43
+
44
+ sig { params(price_each: Float).void }
45
+ attr_writer :price_each
46
+
47
+ sig { returns(T.nilable(Float)) }
48
+ attr_reader :price_total
49
+
50
+ sig { params(price_total: Float).void }
51
+ attr_writer :price_total
52
+
53
+ sig { returns(T.nilable(Float)) }
54
+ attr_reader :quantity
55
+
56
+ sig { params(quantity: Float).void }
57
+ attr_writer :quantity
58
+
59
+ sig { returns(T.nilable(Float)) }
60
+ attr_reader :vat_rate
61
+
62
+ sig { params(vat_rate: Float).void }
63
+ attr_writer :vat_rate
64
+
65
+ sig do
66
+ params(
67
+ id: String,
68
+ discount_rate: T.nilable(Float),
69
+ item: String,
70
+ object: Vatsense::Invoice::InvoiceItem::Object::OrSymbol,
71
+ price_each: Float,
72
+ price_total: Float,
73
+ quantity: Float,
74
+ vat_rate: Float
75
+ ).returns(T.attached_class)
76
+ end
77
+ def self.new(
78
+ id: nil,
79
+ discount_rate: nil,
80
+ item: nil,
81
+ object: nil,
82
+ price_each: nil,
83
+ price_total: nil,
84
+ quantity: nil,
85
+ vat_rate: nil
86
+ )
87
+ end
88
+
89
+ sig do
90
+ override.returns(
91
+ {
92
+ id: String,
93
+ discount_rate: T.nilable(Float),
94
+ item: String,
95
+ object: Vatsense::Invoice::InvoiceItem::Object::TaggedSymbol,
96
+ price_each: Float,
97
+ price_total: Float,
98
+ quantity: Float,
99
+ vat_rate: Float
100
+ }
101
+ )
102
+ end
103
+ def to_hash
104
+ end
105
+
106
+ module Object
107
+ extend Vatsense::Internal::Type::Enum
108
+
109
+ TaggedSymbol =
110
+ T.type_alias do
111
+ T.all(Symbol, Vatsense::Invoice::InvoiceItem::Object)
112
+ end
113
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
114
+
115
+ ITEM =
116
+ T.let(:item, Vatsense::Invoice::InvoiceItem::Object::TaggedSymbol)
117
+
118
+ sig do
119
+ override.returns(
120
+ T::Array[Vatsense::Invoice::InvoiceItem::Object::TaggedSymbol]
121
+ )
122
+ end
123
+ def self.values
124
+ end
125
+ end
126
+ end
127
+ end
128
+ end
129
+ end