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,93 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class InvoiceCustomerInput < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Vatsense::InvoiceCustomerInput, Vatsense::Internal::AnyHash)
9
+ end
10
+
11
+ # The customer's trading name.
12
+ sig { returns(String) }
13
+ attr_accessor :name
14
+
15
+ sig { returns(T.nilable(String)) }
16
+ attr_reader :address
17
+
18
+ sig { params(address: String).void }
19
+ attr_writer :address
20
+
21
+ sig { returns(T.nilable(String)) }
22
+ attr_reader :company_number
23
+
24
+ sig { params(company_number: String).void }
25
+ attr_writer :company_number
26
+
27
+ sig { returns(T.nilable(String)) }
28
+ attr_reader :country_code
29
+
30
+ sig { params(country_code: String).void }
31
+ attr_writer :country_code
32
+
33
+ sig { returns(T.nilable(String)) }
34
+ attr_reader :email
35
+
36
+ sig { params(email: String).void }
37
+ attr_writer :email
38
+
39
+ # URL to the customer logo (HTTPS only, .jpg/.png).
40
+ sig { returns(T.nilable(String)) }
41
+ attr_reader :logo
42
+
43
+ sig { params(logo: String).void }
44
+ attr_writer :logo
45
+
46
+ sig { returns(T.nilable(String)) }
47
+ attr_reader :vat_number
48
+
49
+ sig { params(vat_number: String).void }
50
+ attr_writer :vat_number
51
+
52
+ sig do
53
+ params(
54
+ name: String,
55
+ address: String,
56
+ company_number: String,
57
+ country_code: String,
58
+ email: String,
59
+ logo: String,
60
+ vat_number: String
61
+ ).returns(T.attached_class)
62
+ end
63
+ def self.new(
64
+ # The customer's trading name.
65
+ name:,
66
+ address: nil,
67
+ company_number: nil,
68
+ country_code: nil,
69
+ email: nil,
70
+ # URL to the customer logo (HTTPS only, .jpg/.png).
71
+ logo: nil,
72
+ vat_number: nil
73
+ )
74
+ end
75
+
76
+ sig do
77
+ override.returns(
78
+ {
79
+ name: String,
80
+ address: String,
81
+ company_number: String,
82
+ country_code: String,
83
+ email: String,
84
+ logo: String,
85
+ vat_number: String
86
+ }
87
+ )
88
+ end
89
+ def to_hash
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class InvoiceDeleteParams < 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::InvoiceDeleteParams, Vatsense::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :invoice_id
16
+
17
+ sig do
18
+ params(
19
+ invoice_id: String,
20
+ request_options: Vatsense::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(invoice_id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { invoice_id: String, request_options: Vatsense::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,31 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class InvoiceDeleteResponse < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Vatsense::Models::InvoiceDeleteResponse,
10
+ Vatsense::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(Integer) }
15
+ attr_accessor :code
16
+
17
+ sig { returns(T::Boolean) }
18
+ attr_accessor :success
19
+
20
+ sig do
21
+ params(code: Integer, success: T::Boolean).returns(T.attached_class)
22
+ end
23
+ def self.new(code:, success:)
24
+ end
25
+
26
+ sig { override.returns({ code: Integer, success: T::Boolean }) }
27
+ def to_hash
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,68 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class InvoiceListParams < 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::InvoiceListParams, Vatsense::Internal::AnyHash)
12
+ end
13
+
14
+ # Number of invoices to return (default 10, max 100).
15
+ sig { returns(T.nilable(Integer)) }
16
+ attr_reader :limit
17
+
18
+ sig { params(limit: Integer).void }
19
+ attr_writer :limit
20
+
21
+ # Number of invoices to skip (default 0).
22
+ sig { returns(T.nilable(Integer)) }
23
+ attr_reader :offset
24
+
25
+ sig { params(offset: Integer).void }
26
+ attr_writer :offset
27
+
28
+ # Search query to filter invoices.
29
+ sig { returns(T.nilable(String)) }
30
+ attr_reader :search
31
+
32
+ sig { params(search: String).void }
33
+ attr_writer :search
34
+
35
+ sig do
36
+ params(
37
+ limit: Integer,
38
+ offset: Integer,
39
+ search: String,
40
+ request_options: Vatsense::RequestOptions::OrHash
41
+ ).returns(T.attached_class)
42
+ end
43
+ def self.new(
44
+ # Number of invoices to return (default 10, max 100).
45
+ limit: nil,
46
+ # Number of invoices to skip (default 0).
47
+ offset: nil,
48
+ # Search query to filter invoices.
49
+ search: nil,
50
+ request_options: {}
51
+ )
52
+ end
53
+
54
+ sig do
55
+ override.returns(
56
+ {
57
+ limit: Integer,
58
+ offset: Integer,
59
+ search: String,
60
+ request_options: Vatsense::RequestOptions
61
+ }
62
+ )
63
+ end
64
+ def to_hash
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,55 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class InvoiceListResponse < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Vatsense::Models::InvoiceListResponse,
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[Vatsense::InvoiceAPI])) }
21
+ attr_reader :data
22
+
23
+ sig { params(data: T::Array[Vatsense::InvoiceAPI::OrHash]).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[Vatsense::InvoiceAPI::OrHash],
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
+ {
45
+ code: Integer,
46
+ data: T::Array[Vatsense::InvoiceAPI],
47
+ success: T::Boolean
48
+ }
49
+ )
50
+ end
51
+ def to_hash
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,48 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class InvoiceResponse < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Vatsense::InvoiceResponse, 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(Vatsense::InvoiceAPI)) }
18
+ attr_reader :data
19
+
20
+ sig { params(data: Vatsense::InvoiceAPI::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: Vatsense::InvoiceAPI::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: Vatsense::InvoiceAPI, success: T::Boolean }
42
+ )
43
+ end
44
+ def to_hash
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class InvoiceRetrieveParams < 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::InvoiceRetrieveParams, Vatsense::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :invoice_id
16
+
17
+ sig do
18
+ params(
19
+ invoice_id: String,
20
+ request_options: Vatsense::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(invoice_id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { invoice_id: String, request_options: Vatsense::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class InvoiceUpdateParams < Vatsense::Models::CreateInvoice
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::InvoiceUpdateParams, Vatsense::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :invoice_id
16
+
17
+ sig do
18
+ params(
19
+ invoice_id: String,
20
+ request_options: Vatsense::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(invoice_id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { invoice_id: String, request_options: Vatsense::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,119 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class Rate < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias { T.any(Vatsense::Rate, Vatsense::Internal::AnyHash) }
8
+
9
+ # 2-character ISO 3166-1 alpha-2 country code.
10
+ sig { returns(T.nilable(String)) }
11
+ attr_reader :country_code
12
+
13
+ sig { params(country_code: String).void }
14
+ attr_writer :country_code
15
+
16
+ sig { returns(T.nilable(String)) }
17
+ attr_reader :country_name
18
+
19
+ sig { params(country_name: String).void }
20
+ attr_writer :country_name
21
+
22
+ # Whether the country is an EU member.
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 { returns(T.nilable(Vatsense::Rate::Object::TaggedSymbol)) }
30
+ attr_reader :object
31
+
32
+ sig { params(object: Vatsense::Rate::Object::OrSymbol).void }
33
+ attr_writer :object
34
+
35
+ # A list of other tax rates. Null if no additional rates exist.
36
+ sig { returns(T.nilable(T::Array[Vatsense::Rate::Other])) }
37
+ attr_accessor :other
38
+
39
+ sig { returns(T.nilable(Vatsense::TaxRate)) }
40
+ attr_reader :standard
41
+
42
+ sig { params(standard: Vatsense::TaxRate::OrHash).void }
43
+ attr_writer :standard
44
+
45
+ sig do
46
+ params(
47
+ country_code: String,
48
+ country_name: String,
49
+ eu: T::Boolean,
50
+ object: Vatsense::Rate::Object::OrSymbol,
51
+ other: T.nilable(T::Array[Vatsense::Rate::Other::OrHash]),
52
+ standard: Vatsense::TaxRate::OrHash
53
+ ).returns(T.attached_class)
54
+ end
55
+ def self.new(
56
+ # 2-character ISO 3166-1 alpha-2 country code.
57
+ country_code: nil,
58
+ country_name: nil,
59
+ # Whether the country is an EU member.
60
+ eu: nil,
61
+ object: nil,
62
+ # A list of other tax rates. Null if no additional rates exist.
63
+ other: nil,
64
+ standard: nil
65
+ )
66
+ end
67
+
68
+ sig do
69
+ override.returns(
70
+ {
71
+ country_code: String,
72
+ country_name: String,
73
+ eu: T::Boolean,
74
+ object: Vatsense::Rate::Object::TaggedSymbol,
75
+ other: T.nilable(T::Array[Vatsense::Rate::Other]),
76
+ standard: Vatsense::TaxRate
77
+ }
78
+ )
79
+ end
80
+ def to_hash
81
+ end
82
+
83
+ module Object
84
+ extend Vatsense::Internal::Type::Enum
85
+
86
+ TaggedSymbol = T.type_alias { T.all(Symbol, Vatsense::Rate::Object) }
87
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
88
+
89
+ RATE = T.let(:rate, Vatsense::Rate::Object::TaggedSymbol)
90
+
91
+ sig { override.returns(T::Array[Vatsense::Rate::Object::TaggedSymbol]) }
92
+ def self.values
93
+ end
94
+ end
95
+
96
+ class Other < Vatsense::Models::TaxRate
97
+ OrHash =
98
+ T.type_alias do
99
+ T.any(Vatsense::Rate::Other, Vatsense::Internal::AnyHash)
100
+ end
101
+
102
+ # The province this rate applies to, if applicable.
103
+ sig { returns(T.nilable(String)) }
104
+ attr_accessor :province
105
+
106
+ sig { params(province: T.nilable(String)).returns(T.attached_class) }
107
+ def self.new(
108
+ # The province this rate applies to, if applicable.
109
+ province: nil
110
+ )
111
+ end
112
+
113
+ sig { override.returns({ province: T.nilable(String) }) }
114
+ def to_hash
115
+ end
116
+ end
117
+ end
118
+ end
119
+ end
@@ -0,0 +1,144 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class RateCalculatePriceParams < 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::RateCalculatePriceParams, Vatsense::Internal::AnyHash)
12
+ end
13
+
14
+ # The price to calculate on. Must be a string with exactly 2 decimal places (e.g.
15
+ # "30.00", "59.95").
16
+ sig { returns(String) }
17
+ attr_accessor :price
18
+
19
+ # Whether the provided price is inclusive or exclusive of VAT.
20
+ sig { returns(Vatsense::RateCalculatePriceParams::TaxType::OrSymbol) }
21
+ attr_accessor :tax_type
22
+
23
+ # A 2-character ISO 3166-1 alpha-2 country code (e.g. "GB", "FR").
24
+ sig { returns(T.nilable(String)) }
25
+ attr_reader :country_code
26
+
27
+ sig { params(country_code: String).void }
28
+ attr_writer :country_code
29
+
30
+ # Filter results by EU membership. Use 1 for EU countries only, 0 for non-EU only.
31
+ sig { returns(T.nilable(T::Boolean)) }
32
+ attr_reader :eu
33
+
34
+ sig { params(eu: T::Boolean).void }
35
+ attr_writer :eu
36
+
37
+ # An IPv4 or IPv6 address. If provided, the country will be determined from the IP
38
+ # address.
39
+ sig { returns(T.nilable(String)) }
40
+ attr_reader :ip_address
41
+
42
+ sig { params(ip_address: String).void }
43
+ attr_writer :ip_address
44
+
45
+ # A 2-character province code (e.g. "NU", "NT"). If providing a province code, you
46
+ # must also provide the relevant country_code.
47
+ sig { returns(T.nilable(String)) }
48
+ attr_reader :province_code
49
+
50
+ sig { params(province_code: String).void }
51
+ attr_writer :province_code
52
+
53
+ # The product type to find the applicable rate for. See the /rates/types endpoint
54
+ # for a full list of valid values.
55
+ sig { returns(T.nilable(String)) }
56
+ attr_reader :type
57
+
58
+ sig { params(type: String).void }
59
+ attr_writer :type
60
+
61
+ sig do
62
+ params(
63
+ price: String,
64
+ tax_type: Vatsense::RateCalculatePriceParams::TaxType::OrSymbol,
65
+ country_code: String,
66
+ eu: T::Boolean,
67
+ ip_address: String,
68
+ province_code: String,
69
+ type: String,
70
+ request_options: Vatsense::RequestOptions::OrHash
71
+ ).returns(T.attached_class)
72
+ end
73
+ def self.new(
74
+ # The price to calculate on. Must be a string with exactly 2 decimal places (e.g.
75
+ # "30.00", "59.95").
76
+ price:,
77
+ # Whether the provided price is inclusive or exclusive of VAT.
78
+ tax_type:,
79
+ # A 2-character ISO 3166-1 alpha-2 country code (e.g. "GB", "FR").
80
+ country_code: nil,
81
+ # Filter results by EU membership. Use 1 for EU countries only, 0 for non-EU only.
82
+ eu: nil,
83
+ # An IPv4 or IPv6 address. If provided, the country will be determined from the IP
84
+ # address.
85
+ ip_address: nil,
86
+ # A 2-character province code (e.g. "NU", "NT"). If providing a province code, you
87
+ # must also provide the relevant country_code.
88
+ province_code: nil,
89
+ # The product type to find the applicable rate for. See the /rates/types endpoint
90
+ # for a full list of valid values.
91
+ type: nil,
92
+ request_options: {}
93
+ )
94
+ end
95
+
96
+ sig do
97
+ override.returns(
98
+ {
99
+ price: String,
100
+ tax_type: Vatsense::RateCalculatePriceParams::TaxType::OrSymbol,
101
+ country_code: String,
102
+ eu: T::Boolean,
103
+ ip_address: String,
104
+ province_code: String,
105
+ type: String,
106
+ request_options: Vatsense::RequestOptions
107
+ }
108
+ )
109
+ end
110
+ def to_hash
111
+ end
112
+
113
+ # Whether the provided price is inclusive or exclusive of VAT.
114
+ module TaxType
115
+ extend Vatsense::Internal::Type::Enum
116
+
117
+ TaggedSymbol =
118
+ T.type_alias do
119
+ T.all(Symbol, Vatsense::RateCalculatePriceParams::TaxType)
120
+ end
121
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
122
+
123
+ INCL =
124
+ T.let(
125
+ :incl,
126
+ Vatsense::RateCalculatePriceParams::TaxType::TaggedSymbol
127
+ )
128
+ EXCL =
129
+ T.let(
130
+ :excl,
131
+ Vatsense::RateCalculatePriceParams::TaxType::TaggedSymbol
132
+ )
133
+
134
+ sig do
135
+ override.returns(
136
+ T::Array[Vatsense::RateCalculatePriceParams::TaxType::TaggedSymbol]
137
+ )
138
+ end
139
+ def self.values
140
+ end
141
+ end
142
+ end
143
+ end
144
+ end