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,80 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vatsense
4
+ module Models
5
+ class InvoiceBusinessInput < Vatsense::Internal::Type::BaseModel
6
+ # @!attribute address
7
+ # Your business trading address.
8
+ #
9
+ # @return [String]
10
+ required :address, String
11
+
12
+ # @!attribute name
13
+ # Your business trading name.
14
+ #
15
+ # @return [String]
16
+ required :name, String
17
+
18
+ # @!attribute vat_number
19
+ # Your business VAT number.
20
+ #
21
+ # @return [String]
22
+ required :vat_number, String
23
+
24
+ # @!attribute bank_account
25
+ #
26
+ # @return [String, nil]
27
+ optional :bank_account, String
28
+
29
+ # @!attribute company_number
30
+ # Your business company number.
31
+ #
32
+ # @return [String, nil]
33
+ optional :company_number, String
34
+
35
+ # @!attribute email
36
+ #
37
+ # @return [String, nil]
38
+ optional :email, String
39
+
40
+ # @!attribute logo
41
+ # URL to your company logo (HTTPS only, .svg/.jpg/.png). Recommended 240px by
42
+ # 60px.
43
+ #
44
+ # @return [String, nil]
45
+ optional :logo, String
46
+
47
+ # @!attribute phone
48
+ #
49
+ # @return [String, nil]
50
+ optional :phone, String
51
+
52
+ # @!attribute website
53
+ #
54
+ # @return [String, nil]
55
+ optional :website, String
56
+
57
+ # @!method initialize(address:, name:, vat_number:, bank_account: nil, company_number: nil, email: nil, logo: nil, phone: nil, website: nil)
58
+ # Some parameter documentations has been truncated, see
59
+ # {Vatsense::Models::InvoiceBusinessInput} for more details.
60
+ #
61
+ # @param address [String] Your business trading address.
62
+ #
63
+ # @param name [String] Your business trading name.
64
+ #
65
+ # @param vat_number [String] Your business VAT number.
66
+ #
67
+ # @param bank_account [String]
68
+ #
69
+ # @param company_number [String] Your business company number.
70
+ #
71
+ # @param email [String]
72
+ #
73
+ # @param logo [String] URL to your company logo (HTTPS only, .svg/.jpg/.png). Recommended 240px by 60px
74
+ #
75
+ # @param phone [String]
76
+ #
77
+ # @param website [String]
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vatsense
4
+ module Models
5
+ class InvoiceConversionInput < Vatsense::Internal::Type::BaseModel
6
+ # @!attribute currency_code
7
+ # The 3-character currency code for the conversion.
8
+ #
9
+ # @return [String]
10
+ required :currency_code, String
11
+
12
+ # @!attribute rate
13
+ # The rate of conversion.
14
+ #
15
+ # @return [Float]
16
+ required :rate, Float
17
+
18
+ # @!method initialize(currency_code:, rate:)
19
+ # @param currency_code [String] The 3-character currency code for the conversion.
20
+ #
21
+ # @param rate [Float] The rate of conversion.
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vatsense
4
+ module Models
5
+ # @see Vatsense::Resources::Invoice#create
6
+ class InvoiceCreateParams < Vatsense::Models::CreateInvoice
7
+ extend Vatsense::Internal::Type::RequestParameters::Converter
8
+ include Vatsense::Internal::Type::RequestParameters
9
+
10
+ # @!method initialize(request_options: {})
11
+ # @param request_options [Vatsense::RequestOptions, Hash{Symbol=>Object}]
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vatsense
4
+ module Models
5
+ class InvoiceCustomerInput < Vatsense::Internal::Type::BaseModel
6
+ # @!attribute name
7
+ # The customer's trading name.
8
+ #
9
+ # @return [String]
10
+ required :name, String
11
+
12
+ # @!attribute address
13
+ #
14
+ # @return [String, nil]
15
+ optional :address, String
16
+
17
+ # @!attribute company_number
18
+ #
19
+ # @return [String, nil]
20
+ optional :company_number, String
21
+
22
+ # @!attribute country_code
23
+ #
24
+ # @return [String, nil]
25
+ optional :country_code, String
26
+
27
+ # @!attribute email
28
+ #
29
+ # @return [String, nil]
30
+ optional :email, String
31
+
32
+ # @!attribute logo
33
+ # URL to the customer logo (HTTPS only, .jpg/.png).
34
+ #
35
+ # @return [String, nil]
36
+ optional :logo, String
37
+
38
+ # @!attribute vat_number
39
+ #
40
+ # @return [String, nil]
41
+ optional :vat_number, String
42
+
43
+ # @!method initialize(name:, address: nil, company_number: nil, country_code: nil, email: nil, logo: nil, vat_number: nil)
44
+ # @param name [String] The customer's trading name.
45
+ #
46
+ # @param address [String]
47
+ #
48
+ # @param company_number [String]
49
+ #
50
+ # @param country_code [String]
51
+ #
52
+ # @param email [String]
53
+ #
54
+ # @param logo [String] URL to the customer logo (HTTPS only, .jpg/.png).
55
+ #
56
+ # @param vat_number [String]
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vatsense
4
+ module Models
5
+ # @see Vatsense::Resources::Invoice#delete
6
+ class InvoiceDeleteParams < Vatsense::Internal::Type::BaseModel
7
+ extend Vatsense::Internal::Type::RequestParameters::Converter
8
+ include Vatsense::Internal::Type::RequestParameters
9
+
10
+ # @!attribute invoice_id
11
+ #
12
+ # @return [String]
13
+ required :invoice_id, String
14
+
15
+ # @!method initialize(invoice_id:, request_options: {})
16
+ # @param invoice_id [String]
17
+ # @param request_options [Vatsense::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vatsense
4
+ module Models
5
+ # @see Vatsense::Resources::Invoice#delete
6
+ class InvoiceDeleteResponse < Vatsense::Internal::Type::BaseModel
7
+ # @!attribute code
8
+ #
9
+ # @return [Integer]
10
+ required :code, Integer
11
+
12
+ # @!attribute success
13
+ #
14
+ # @return [Boolean]
15
+ required :success, Vatsense::Internal::Type::Boolean
16
+
17
+ # @!method initialize(code:, success:)
18
+ # @param code [Integer]
19
+ # @param success [Boolean]
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vatsense
4
+ module Models
5
+ # @see Vatsense::Resources::Invoice#list
6
+ class InvoiceListParams < Vatsense::Internal::Type::BaseModel
7
+ extend Vatsense::Internal::Type::RequestParameters::Converter
8
+ include Vatsense::Internal::Type::RequestParameters
9
+
10
+ # @!attribute limit
11
+ # Number of invoices to return (default 10, max 100).
12
+ #
13
+ # @return [Integer, nil]
14
+ optional :limit, Integer
15
+
16
+ # @!attribute offset
17
+ # Number of invoices to skip (default 0).
18
+ #
19
+ # @return [Integer, nil]
20
+ optional :offset, Integer
21
+
22
+ # @!attribute search
23
+ # Search query to filter invoices.
24
+ #
25
+ # @return [String, nil]
26
+ optional :search, String
27
+
28
+ # @!method initialize(limit: nil, offset: nil, search: nil, request_options: {})
29
+ # @param limit [Integer] Number of invoices to return (default 10, max 100).
30
+ #
31
+ # @param offset [Integer] Number of invoices to skip (default 0).
32
+ #
33
+ # @param search [String] Search query to filter invoices.
34
+ #
35
+ # @param request_options [Vatsense::RequestOptions, Hash{Symbol=>Object}]
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vatsense
4
+ module Models
5
+ # @see Vatsense::Resources::Invoice#list
6
+ class InvoiceListResponse < Vatsense::Internal::Type::BaseModel
7
+ # @!attribute code
8
+ #
9
+ # @return [Integer, nil]
10
+ optional :code, Integer
11
+
12
+ # @!attribute data
13
+ #
14
+ # @return [Array<Vatsense::Models::InvoiceAPI>, nil]
15
+ optional :data, -> { Vatsense::Internal::Type::ArrayOf[Vatsense::InvoiceAPI] }
16
+
17
+ # @!attribute success
18
+ #
19
+ # @return [Boolean, nil]
20
+ optional :success, Vatsense::Internal::Type::Boolean
21
+
22
+ # @!method initialize(code: nil, data: nil, success: nil)
23
+ # @param code [Integer]
24
+ # @param data [Array<Vatsense::Models::InvoiceAPI>]
25
+ # @param success [Boolean]
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vatsense
4
+ module Models
5
+ # @see Vatsense::Resources::Invoice#create
6
+ class InvoiceResponse < Vatsense::Internal::Type::BaseModel
7
+ # @!attribute code
8
+ #
9
+ # @return [Integer, nil]
10
+ optional :code, Integer
11
+
12
+ # @!attribute data
13
+ #
14
+ # @return [Vatsense::Models::InvoiceAPI, nil]
15
+ optional :data, -> { Vatsense::InvoiceAPI }
16
+
17
+ # @!attribute success
18
+ #
19
+ # @return [Boolean, nil]
20
+ optional :success, Vatsense::Internal::Type::Boolean
21
+
22
+ # @!method initialize(code: nil, data: nil, success: nil)
23
+ # @param code [Integer]
24
+ # @param data [Vatsense::Models::InvoiceAPI]
25
+ # @param success [Boolean]
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vatsense
4
+ module Models
5
+ # @see Vatsense::Resources::Invoice#retrieve
6
+ class InvoiceRetrieveParams < Vatsense::Internal::Type::BaseModel
7
+ extend Vatsense::Internal::Type::RequestParameters::Converter
8
+ include Vatsense::Internal::Type::RequestParameters
9
+
10
+ # @!attribute invoice_id
11
+ #
12
+ # @return [String]
13
+ required :invoice_id, String
14
+
15
+ # @!method initialize(invoice_id:, request_options: {})
16
+ # @param invoice_id [String]
17
+ # @param request_options [Vatsense::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vatsense
4
+ module Models
5
+ # @see Vatsense::Resources::Invoice#update
6
+ class InvoiceUpdateParams < Vatsense::Models::CreateInvoice
7
+ extend Vatsense::Internal::Type::RequestParameters::Converter
8
+ include Vatsense::Internal::Type::RequestParameters
9
+
10
+ # @!attribute invoice_id
11
+ #
12
+ # @return [String]
13
+ required :invoice_id, String
14
+
15
+ # @!method initialize(invoice_id:, request_options: {})
16
+ # @param invoice_id [String]
17
+ # @param request_options [Vatsense::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vatsense
4
+ module Models
5
+ class Rate < Vatsense::Internal::Type::BaseModel
6
+ # @!attribute country_code
7
+ # 2-character ISO 3166-1 alpha-2 country code.
8
+ #
9
+ # @return [String, nil]
10
+ optional :country_code, String
11
+
12
+ # @!attribute country_name
13
+ #
14
+ # @return [String, nil]
15
+ optional :country_name, String
16
+
17
+ # @!attribute eu
18
+ # Whether the country is an EU member.
19
+ #
20
+ # @return [Boolean, nil]
21
+ optional :eu, Vatsense::Internal::Type::Boolean
22
+
23
+ # @!attribute object
24
+ #
25
+ # @return [Symbol, Vatsense::Models::Rate::Object, nil]
26
+ optional :object, enum: -> { Vatsense::Rate::Object }
27
+
28
+ # @!attribute other
29
+ # A list of other tax rates. Null if no additional rates exist.
30
+ #
31
+ # @return [Array<Vatsense::Models::Rate::Other>, nil]
32
+ optional :other, -> { Vatsense::Internal::Type::ArrayOf[Vatsense::Rate::Other] }, nil?: true
33
+
34
+ # @!attribute standard
35
+ #
36
+ # @return [Vatsense::Models::TaxRate, nil]
37
+ optional :standard, -> { Vatsense::TaxRate }
38
+
39
+ # @!method initialize(country_code: nil, country_name: nil, eu: nil, object: nil, other: nil, standard: nil)
40
+ # @param country_code [String] 2-character ISO 3166-1 alpha-2 country code.
41
+ #
42
+ # @param country_name [String]
43
+ #
44
+ # @param eu [Boolean] Whether the country is an EU member.
45
+ #
46
+ # @param object [Symbol, Vatsense::Models::Rate::Object]
47
+ #
48
+ # @param other [Array<Vatsense::Models::Rate::Other>, nil] A list of other tax rates. Null if no additional rates exist.
49
+ #
50
+ # @param standard [Vatsense::Models::TaxRate]
51
+
52
+ # @see Vatsense::Models::Rate#object
53
+ module Object
54
+ extend Vatsense::Internal::Type::Enum
55
+
56
+ RATE = :rate
57
+
58
+ # @!method self.values
59
+ # @return [Array<Symbol>]
60
+ end
61
+
62
+ class Other < Vatsense::Models::TaxRate
63
+ # @!attribute province
64
+ # The province this rate applies to, if applicable.
65
+ #
66
+ # @return [String, nil]
67
+ optional :province, String, nil?: true
68
+
69
+ # @!method initialize(province: nil)
70
+ # @param province [String, nil] The province this rate applies to, if applicable.
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vatsense
4
+ module Models
5
+ # @see Vatsense::Resources::Rates#calculate_price
6
+ class RateCalculatePriceParams < Vatsense::Internal::Type::BaseModel
7
+ extend Vatsense::Internal::Type::RequestParameters::Converter
8
+ include Vatsense::Internal::Type::RequestParameters
9
+
10
+ # @!attribute price
11
+ # The price to calculate on. Must be a string with exactly 2 decimal places (e.g.
12
+ # "30.00", "59.95").
13
+ #
14
+ # @return [String]
15
+ required :price, String
16
+
17
+ # @!attribute tax_type
18
+ # Whether the provided price is inclusive or exclusive of VAT.
19
+ #
20
+ # @return [Symbol, Vatsense::Models::RateCalculatePriceParams::TaxType]
21
+ required :tax_type, enum: -> { Vatsense::RateCalculatePriceParams::TaxType }
22
+
23
+ # @!attribute country_code
24
+ # A 2-character ISO 3166-1 alpha-2 country code (e.g. "GB", "FR").
25
+ #
26
+ # @return [String, nil]
27
+ optional :country_code, String
28
+
29
+ # @!attribute eu
30
+ # Filter results by EU membership. Use 1 for EU countries only, 0 for non-EU only.
31
+ #
32
+ # @return [Boolean, nil]
33
+ optional :eu, Vatsense::Internal::Type::Boolean
34
+
35
+ # @!attribute ip_address
36
+ # An IPv4 or IPv6 address. If provided, the country will be determined from the IP
37
+ # address.
38
+ #
39
+ # @return [String, nil]
40
+ optional :ip_address, String
41
+
42
+ # @!attribute province_code
43
+ # A 2-character province code (e.g. "NU", "NT"). If providing a province code, you
44
+ # must also provide the relevant country_code.
45
+ #
46
+ # @return [String, nil]
47
+ optional :province_code, String
48
+
49
+ # @!attribute type
50
+ # The product type to find the applicable rate for. See the /rates/types endpoint
51
+ # for a full list of valid values.
52
+ #
53
+ # @return [String, nil]
54
+ optional :type, String
55
+
56
+ # @!method initialize(price:, tax_type:, country_code: nil, eu: nil, ip_address: nil, province_code: nil, type: nil, request_options: {})
57
+ # Some parameter documentations has been truncated, see
58
+ # {Vatsense::Models::RateCalculatePriceParams} for more details.
59
+ #
60
+ # @param price [String] The price to calculate on. Must be a string with exactly 2 decimal places (e.g.
61
+ #
62
+ # @param tax_type [Symbol, Vatsense::Models::RateCalculatePriceParams::TaxType] Whether the provided price is inclusive or exclusive of VAT.
63
+ #
64
+ # @param country_code [String] A 2-character ISO 3166-1 alpha-2 country code (e.g. "GB", "FR").
65
+ #
66
+ # @param eu [Boolean] Filter results by EU membership. Use 1 for EU countries only, 0 for non-EU only.
67
+ #
68
+ # @param ip_address [String] An IPv4 or IPv6 address. If provided, the country will be determined from the IP
69
+ #
70
+ # @param province_code [String] A 2-character province code (e.g. "NU", "NT"). If providing a province
71
+ #
72
+ # @param type [String] The product type to find the applicable rate for. See the /rates/types
73
+ #
74
+ # @param request_options [Vatsense::RequestOptions, Hash{Symbol=>Object}]
75
+
76
+ # Whether the provided price is inclusive or exclusive of VAT.
77
+ module TaxType
78
+ extend Vatsense::Internal::Type::Enum
79
+
80
+ INCL = :incl
81
+ EXCL = :excl
82
+
83
+ # @!method self.values
84
+ # @return [Array<Symbol>]
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vatsense
4
+ module Models
5
+ # @see Vatsense::Resources::Rates#calculate_price
6
+ class RateCalculatePriceResponse < Vatsense::Internal::Type::BaseModel
7
+ # @!attribute code
8
+ #
9
+ # @return [Integer, nil]
10
+ optional :code, Integer
11
+
12
+ # @!attribute data
13
+ #
14
+ # @return [Vatsense::Models::RateCalculatePriceResponse::Data, nil]
15
+ optional :data, -> { Vatsense::Models::RateCalculatePriceResponse::Data }
16
+
17
+ # @!attribute success
18
+ #
19
+ # @return [Boolean, nil]
20
+ optional :success, Vatsense::Internal::Type::Boolean
21
+
22
+ # @!method initialize(code: nil, data: nil, success: nil)
23
+ # @param code [Integer]
24
+ # @param data [Vatsense::Models::RateCalculatePriceResponse::Data]
25
+ # @param success [Boolean]
26
+
27
+ # @see Vatsense::Models::RateCalculatePriceResponse#data
28
+ class Data < Vatsense::Internal::Type::BaseModel
29
+ # @!attribute country_code
30
+ #
31
+ # @return [String, nil]
32
+ optional :country_code, String
33
+
34
+ # @!attribute country_name
35
+ #
36
+ # @return [String, nil]
37
+ optional :country_name, String
38
+
39
+ # @!attribute eu
40
+ #
41
+ # @return [Boolean, nil]
42
+ optional :eu, Vatsense::Internal::Type::Boolean
43
+
44
+ # @!attribute object
45
+ #
46
+ # @return [Symbol, Vatsense::Models::RateCalculatePriceResponse::Data::Object, nil]
47
+ optional :object, enum: -> { Vatsense::Models::RateCalculatePriceResponse::Data::Object }
48
+
49
+ # @!attribute tax_rate
50
+ #
51
+ # @return [Vatsense::Models::TaxRate, nil]
52
+ optional :tax_rate, -> { Vatsense::TaxRate }
53
+
54
+ # @!attribute vat_price
55
+ #
56
+ # @return [Vatsense::Models::VatPrice, nil]
57
+ optional :vat_price, -> { Vatsense::VatPrice }
58
+
59
+ # @!method initialize(country_code: nil, country_name: nil, eu: nil, object: nil, tax_rate: nil, vat_price: nil)
60
+ # @param country_code [String]
61
+ # @param country_name [String]
62
+ # @param eu [Boolean]
63
+ # @param object [Symbol, Vatsense::Models::RateCalculatePriceResponse::Data::Object]
64
+ # @param tax_rate [Vatsense::Models::TaxRate]
65
+ # @param vat_price [Vatsense::Models::VatPrice]
66
+
67
+ # @see Vatsense::Models::RateCalculatePriceResponse::Data#object
68
+ module Object
69
+ extend Vatsense::Internal::Type::Enum
70
+
71
+ RATE = :rate
72
+
73
+ # @!method self.values
74
+ # @return [Array<Symbol>]
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vatsense
4
+ module Models
5
+ # @see Vatsense::Resources::Rates#details
6
+ class RateDetailsParams < Vatsense::Internal::Type::BaseModel
7
+ extend Vatsense::Internal::Type::RequestParameters::Converter
8
+ include Vatsense::Internal::Type::RequestParameters
9
+
10
+ # @!attribute country_code
11
+ # A 2-character ISO 3166-1 alpha-2 country code (e.g. "GB", "FR").
12
+ #
13
+ # @return [String, nil]
14
+ optional :country_code, String
15
+
16
+ # @!attribute eu
17
+ # Filter results by EU membership. Use 1 for EU countries only, 0 for non-EU only.
18
+ #
19
+ # @return [Boolean, nil]
20
+ optional :eu, Vatsense::Internal::Type::Boolean
21
+
22
+ # @!attribute ip_address
23
+ # An IPv4 or IPv6 address. If provided, the country will be determined from the IP
24
+ # address.
25
+ #
26
+ # @return [String, nil]
27
+ optional :ip_address, String
28
+
29
+ # @!attribute period
30
+ # A historical date to retrieve rates for (format "YYYY-MM-DD HH:MM:SS"). Must be
31
+ # a past date.
32
+ #
33
+ # @return [Time, nil]
34
+ optional :period, Time
35
+
36
+ # @!attribute province_code
37
+ # A 2-character province code (e.g. "NU", "NT"). If providing a province code, you
38
+ # must also provide the relevant country_code.
39
+ #
40
+ # @return [String, nil]
41
+ optional :province_code, String
42
+
43
+ # @!attribute type
44
+ # The product type to find the applicable rate for. See the /rates/types endpoint
45
+ # for a full list of valid values.
46
+ #
47
+ # @return [String, nil]
48
+ optional :type, String
49
+
50
+ # @!method initialize(country_code: nil, eu: nil, ip_address: nil, period: nil, province_code: nil, type: nil, request_options: {})
51
+ # Some parameter documentations has been truncated, see
52
+ # {Vatsense::Models::RateDetailsParams} for more details.
53
+ #
54
+ # @param country_code [String] A 2-character ISO 3166-1 alpha-2 country code (e.g. "GB", "FR").
55
+ #
56
+ # @param eu [Boolean] Filter results by EU membership. Use 1 for EU countries only, 0 for non-EU only.
57
+ #
58
+ # @param ip_address [String] An IPv4 or IPv6 address. If provided, the country will be determined from the IP
59
+ #
60
+ # @param period [Time] A historical date to retrieve rates for (format "YYYY-MM-DD HH:MM:SS"). Must be
61
+ #
62
+ # @param province_code [String] A 2-character province code (e.g. "NU", "NT"). If providing a province
63
+ #
64
+ # @param type [String] The product type to find the applicable rate for. See the /rates/types
65
+ #
66
+ # @param request_options [Vatsense::RequestOptions, Hash{Symbol=>Object}]
67
+ end
68
+ end
69
+ end