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,43 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class CountryListProvincesParams < 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(
12
+ Vatsense::CountryListProvincesParams,
13
+ Vatsense::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # A 2-character ISO 3166-1 alpha-2 country code (e.g. "CA").
18
+ sig { returns(String) }
19
+ attr_accessor :country_code
20
+
21
+ sig do
22
+ params(
23
+ country_code: String,
24
+ request_options: Vatsense::RequestOptions::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(
28
+ # A 2-character ISO 3166-1 alpha-2 country code (e.g. "CA").
29
+ country_code:,
30
+ request_options: {}
31
+ )
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ { country_code: String, request_options: Vatsense::RequestOptions }
37
+ )
38
+ end
39
+ def to_hash
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,177 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class CountryListProvincesResponse < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Vatsense::Models::CountryListProvincesResponse,
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(
23
+ T::Array[Vatsense::Models::CountryListProvincesResponse::Data]
24
+ )
25
+ )
26
+ end
27
+ attr_reader :data
28
+
29
+ sig do
30
+ params(
31
+ data:
32
+ T::Array[
33
+ Vatsense::Models::CountryListProvincesResponse::Data::OrHash
34
+ ]
35
+ ).void
36
+ end
37
+ attr_writer :data
38
+
39
+ sig { returns(T.nilable(T::Boolean)) }
40
+ attr_reader :success
41
+
42
+ sig { params(success: T::Boolean).void }
43
+ attr_writer :success
44
+
45
+ sig do
46
+ params(
47
+ code: Integer,
48
+ data:
49
+ T::Array[
50
+ Vatsense::Models::CountryListProvincesResponse::Data::OrHash
51
+ ],
52
+ success: T::Boolean
53
+ ).returns(T.attached_class)
54
+ end
55
+ def self.new(code: nil, data: nil, success: nil)
56
+ end
57
+
58
+ sig do
59
+ override.returns(
60
+ {
61
+ code: Integer,
62
+ data:
63
+ T::Array[Vatsense::Models::CountryListProvincesResponse::Data],
64
+ success: T::Boolean
65
+ }
66
+ )
67
+ end
68
+ def to_hash
69
+ end
70
+
71
+ class Data < Vatsense::Internal::Type::BaseModel
72
+ OrHash =
73
+ T.type_alias do
74
+ T.any(
75
+ Vatsense::Models::CountryListProvincesResponse::Data,
76
+ Vatsense::Internal::AnyHash
77
+ )
78
+ end
79
+
80
+ sig { returns(T.nilable(String)) }
81
+ attr_reader :country_code
82
+
83
+ sig { params(country_code: String).void }
84
+ attr_writer :country_code
85
+
86
+ sig do
87
+ returns(
88
+ T.nilable(
89
+ Vatsense::Models::CountryListProvincesResponse::Data::Object::TaggedSymbol
90
+ )
91
+ )
92
+ end
93
+ attr_reader :object
94
+
95
+ sig do
96
+ params(
97
+ object:
98
+ Vatsense::Models::CountryListProvincesResponse::Data::Object::OrSymbol
99
+ ).void
100
+ end
101
+ attr_writer :object
102
+
103
+ sig { returns(T.nilable(String)) }
104
+ attr_reader :province_code
105
+
106
+ sig { params(province_code: String).void }
107
+ attr_writer :province_code
108
+
109
+ sig { returns(T.nilable(String)) }
110
+ attr_reader :province_name
111
+
112
+ sig { params(province_name: String).void }
113
+ attr_writer :province_name
114
+
115
+ sig do
116
+ params(
117
+ country_code: String,
118
+ object:
119
+ Vatsense::Models::CountryListProvincesResponse::Data::Object::OrSymbol,
120
+ province_code: String,
121
+ province_name: String
122
+ ).returns(T.attached_class)
123
+ end
124
+ def self.new(
125
+ country_code: nil,
126
+ object: nil,
127
+ province_code: nil,
128
+ province_name: nil
129
+ )
130
+ end
131
+
132
+ sig do
133
+ override.returns(
134
+ {
135
+ country_code: String,
136
+ object:
137
+ Vatsense::Models::CountryListProvincesResponse::Data::Object::TaggedSymbol,
138
+ province_code: String,
139
+ province_name: String
140
+ }
141
+ )
142
+ end
143
+ def to_hash
144
+ end
145
+
146
+ module Object
147
+ extend Vatsense::Internal::Type::Enum
148
+
149
+ TaggedSymbol =
150
+ T.type_alias do
151
+ T.all(
152
+ Symbol,
153
+ Vatsense::Models::CountryListProvincesResponse::Data::Object
154
+ )
155
+ end
156
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
157
+
158
+ PROVINCE =
159
+ T.let(
160
+ :province,
161
+ Vatsense::Models::CountryListProvincesResponse::Data::Object::TaggedSymbol
162
+ )
163
+
164
+ sig do
165
+ override.returns(
166
+ T::Array[
167
+ Vatsense::Models::CountryListProvincesResponse::Data::Object::TaggedSymbol
168
+ ]
169
+ )
170
+ end
171
+ def self.values
172
+ end
173
+ end
174
+ end
175
+ end
176
+ end
177
+ end
@@ -0,0 +1,55 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class CountryListResponse < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Vatsense::Models::CountryListResponse,
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::Country])) }
21
+ attr_reader :data
22
+
23
+ sig { params(data: T::Array[Vatsense::Country::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::Country::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::Country],
47
+ success: T::Boolean
48
+ }
49
+ )
50
+ end
51
+ def to_hash
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,240 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class CreateInvoice < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Vatsense::CreateInvoice, Vatsense::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(Vatsense::InvoiceBusinessInput) }
12
+ attr_reader :business
13
+
14
+ sig { params(business: Vatsense::InvoiceBusinessInput::OrHash).void }
15
+ attr_writer :business
16
+
17
+ # The 3-character currency code the invoice is billed in.
18
+ sig { returns(String) }
19
+ attr_accessor :currency_code
20
+
21
+ # The date the invoice was issued (YYYY-MM-DD or YYYY-MM-DD HH:MM:SS).
22
+ sig { returns(String) }
23
+ attr_accessor :date
24
+
25
+ sig { returns(T::Array[Vatsense::Invoice::InvoiceItemInput]) }
26
+ attr_accessor :items
27
+
28
+ # The tax point or "time of supply" (YYYY-MM-DD or YYYY-MM-DD HH:MM:SS).
29
+ sig { returns(String) }
30
+ attr_accessor :tax_point
31
+
32
+ sig { returns(T.nilable(Vatsense::InvoiceConversionInput)) }
33
+ attr_reader :conversion
34
+
35
+ sig { params(conversion: Vatsense::InvoiceConversionInput::OrHash).void }
36
+ attr_writer :conversion
37
+
38
+ sig { returns(T.nilable(Vatsense::InvoiceCustomerInput)) }
39
+ attr_reader :customer
40
+
41
+ sig { params(customer: Vatsense::InvoiceCustomerInput::OrHash).void }
42
+ attr_writer :customer
43
+
44
+ # Whether the invoice is subject to VAT.
45
+ sig { returns(T.nilable(T::Boolean)) }
46
+ attr_reader :has_vat
47
+
48
+ sig { params(has_vat: T::Boolean).void }
49
+ attr_writer :has_vat
50
+
51
+ # A unique invoice number. If not provided, defaults to an auto-incremented
52
+ # number.
53
+ sig { returns(T.nilable(String)) }
54
+ attr_reader :invoice_number
55
+
56
+ sig { params(invoice_number: String).void }
57
+ attr_writer :invoice_number
58
+
59
+ # Whether the invoice is a copy of a primary invoice.
60
+ sig { returns(T.nilable(T::Boolean)) }
61
+ attr_reader :is_copy
62
+
63
+ sig { params(is_copy: T::Boolean).void }
64
+ attr_writer :is_copy
65
+
66
+ # Whether the invoice is zero-rated due to reverse charge.
67
+ sig { returns(T.nilable(T::Boolean)) }
68
+ attr_reader :is_reverse_charge
69
+
70
+ sig { params(is_reverse_charge: T::Boolean).void }
71
+ attr_writer :is_reverse_charge
72
+
73
+ # Any additional notes for the invoice.
74
+ sig { returns(T.nilable(String)) }
75
+ attr_reader :notes
76
+
77
+ sig { params(notes: String).void }
78
+ attr_writer :notes
79
+
80
+ # Pad the auto-generated invoice number with leading zeros to this length.
81
+ sig { returns(T.nilable(Integer)) }
82
+ attr_reader :pad_invoice_number
83
+
84
+ sig { params(pad_invoice_number: Integer).void }
85
+ attr_writer :pad_invoice_number
86
+
87
+ # A serial prepended to the auto-generated invoice number. Each unique serial has
88
+ # its own auto-increment range.
89
+ sig { returns(T.nilable(String)) }
90
+ attr_reader :serial
91
+
92
+ sig { params(serial: String).void }
93
+ attr_writer :serial
94
+
95
+ # Whether item prices include or exclude VAT.
96
+ sig { returns(T.nilable(Vatsense::CreateInvoice::TaxType::OrSymbol)) }
97
+ attr_reader :tax_type
98
+
99
+ sig { params(tax_type: Vatsense::CreateInvoice::TaxType::OrSymbol).void }
100
+ attr_writer :tax_type
101
+
102
+ # The type of invoice.
103
+ sig { returns(T.nilable(Vatsense::CreateInvoice::Type::OrSymbol)) }
104
+ attr_reader :type
105
+
106
+ sig { params(type: Vatsense::CreateInvoice::Type::OrSymbol).void }
107
+ attr_writer :type
108
+
109
+ # Whether the invoice has been zero-rated.
110
+ sig { returns(T.nilable(T::Boolean)) }
111
+ attr_reader :zero_rated
112
+
113
+ sig { params(zero_rated: T::Boolean).void }
114
+ attr_writer :zero_rated
115
+
116
+ sig do
117
+ params(
118
+ business: Vatsense::InvoiceBusinessInput::OrHash,
119
+ currency_code: String,
120
+ date: String,
121
+ items: T::Array[Vatsense::Invoice::InvoiceItemInput::OrHash],
122
+ tax_point: String,
123
+ conversion: Vatsense::InvoiceConversionInput::OrHash,
124
+ customer: Vatsense::InvoiceCustomerInput::OrHash,
125
+ has_vat: T::Boolean,
126
+ invoice_number: String,
127
+ is_copy: T::Boolean,
128
+ is_reverse_charge: T::Boolean,
129
+ notes: String,
130
+ pad_invoice_number: Integer,
131
+ serial: String,
132
+ tax_type: Vatsense::CreateInvoice::TaxType::OrSymbol,
133
+ type: Vatsense::CreateInvoice::Type::OrSymbol,
134
+ zero_rated: T::Boolean
135
+ ).returns(T.attached_class)
136
+ end
137
+ def self.new(
138
+ business:,
139
+ # The 3-character currency code the invoice is billed in.
140
+ currency_code:,
141
+ # The date the invoice was issued (YYYY-MM-DD or YYYY-MM-DD HH:MM:SS).
142
+ date:,
143
+ items:,
144
+ # The tax point or "time of supply" (YYYY-MM-DD or YYYY-MM-DD HH:MM:SS).
145
+ tax_point:,
146
+ conversion: nil,
147
+ customer: nil,
148
+ # Whether the invoice is subject to VAT.
149
+ has_vat: nil,
150
+ # A unique invoice number. If not provided, defaults to an auto-incremented
151
+ # number.
152
+ invoice_number: nil,
153
+ # Whether the invoice is a copy of a primary invoice.
154
+ is_copy: nil,
155
+ # Whether the invoice is zero-rated due to reverse charge.
156
+ is_reverse_charge: nil,
157
+ # Any additional notes for the invoice.
158
+ notes: nil,
159
+ # Pad the auto-generated invoice number with leading zeros to this length.
160
+ pad_invoice_number: nil,
161
+ # A serial prepended to the auto-generated invoice number. Each unique serial has
162
+ # its own auto-increment range.
163
+ serial: nil,
164
+ # Whether item prices include or exclude VAT.
165
+ tax_type: nil,
166
+ # The type of invoice.
167
+ type: nil,
168
+ # Whether the invoice has been zero-rated.
169
+ zero_rated: nil
170
+ )
171
+ end
172
+
173
+ sig do
174
+ override.returns(
175
+ {
176
+ business: Vatsense::InvoiceBusinessInput,
177
+ currency_code: String,
178
+ date: String,
179
+ items: T::Array[Vatsense::Invoice::InvoiceItemInput],
180
+ tax_point: String,
181
+ conversion: Vatsense::InvoiceConversionInput,
182
+ customer: Vatsense::InvoiceCustomerInput,
183
+ has_vat: T::Boolean,
184
+ invoice_number: String,
185
+ is_copy: T::Boolean,
186
+ is_reverse_charge: T::Boolean,
187
+ notes: String,
188
+ pad_invoice_number: Integer,
189
+ serial: String,
190
+ tax_type: Vatsense::CreateInvoice::TaxType::OrSymbol,
191
+ type: Vatsense::CreateInvoice::Type::OrSymbol,
192
+ zero_rated: T::Boolean
193
+ }
194
+ )
195
+ end
196
+ def to_hash
197
+ end
198
+
199
+ # Whether item prices include or exclude VAT.
200
+ module TaxType
201
+ extend Vatsense::Internal::Type::Enum
202
+
203
+ TaggedSymbol =
204
+ T.type_alias { T.all(Symbol, Vatsense::CreateInvoice::TaxType) }
205
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
206
+
207
+ INCL = T.let(:incl, Vatsense::CreateInvoice::TaxType::TaggedSymbol)
208
+ EXCL = T.let(:excl, Vatsense::CreateInvoice::TaxType::TaggedSymbol)
209
+
210
+ sig do
211
+ override.returns(
212
+ T::Array[Vatsense::CreateInvoice::TaxType::TaggedSymbol]
213
+ )
214
+ end
215
+ def self.values
216
+ end
217
+ end
218
+
219
+ # The type of invoice.
220
+ module Type
221
+ extend Vatsense::Internal::Type::Enum
222
+
223
+ TaggedSymbol =
224
+ T.type_alias { T.all(Symbol, Vatsense::CreateInvoice::Type) }
225
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
226
+
227
+ SALE = T.let(:sale, Vatsense::CreateInvoice::Type::TaggedSymbol)
228
+ REFUND = T.let(:refund, Vatsense::CreateInvoice::Type::TaggedSymbol)
229
+
230
+ sig do
231
+ override.returns(
232
+ T::Array[Vatsense::CreateInvoice::Type::TaggedSymbol]
233
+ )
234
+ end
235
+ def self.values
236
+ end
237
+ end
238
+ end
239
+ end
240
+ end
@@ -0,0 +1,100 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class CurrencyCalculateVatPriceParams < 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(
12
+ Vatsense::CurrencyCalculateVatPriceParams,
13
+ Vatsense::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # The price to calculate on. Must be a string with exactly 2 decimal places (e.g.
18
+ # "30.00", "59.95").
19
+ sig { returns(String) }
20
+ attr_accessor :price
21
+
22
+ # Whether the provided price is inclusive or exclusive of VAT.
23
+ sig do
24
+ returns(Vatsense::CurrencyCalculateVatPriceParams::TaxType::OrSymbol)
25
+ end
26
+ attr_accessor :tax_type
27
+
28
+ # A percentage VAT rate to use for the calculation.
29
+ sig { returns(Float) }
30
+ attr_accessor :vat_rate
31
+
32
+ sig do
33
+ params(
34
+ price: String,
35
+ tax_type:
36
+ Vatsense::CurrencyCalculateVatPriceParams::TaxType::OrSymbol,
37
+ vat_rate: Float,
38
+ request_options: Vatsense::RequestOptions::OrHash
39
+ ).returns(T.attached_class)
40
+ end
41
+ def self.new(
42
+ # The price to calculate on. Must be a string with exactly 2 decimal places (e.g.
43
+ # "30.00", "59.95").
44
+ price:,
45
+ # Whether the provided price is inclusive or exclusive of VAT.
46
+ tax_type:,
47
+ # A percentage VAT rate to use for the calculation.
48
+ vat_rate:,
49
+ request_options: {}
50
+ )
51
+ end
52
+
53
+ sig do
54
+ override.returns(
55
+ {
56
+ price: String,
57
+ tax_type:
58
+ Vatsense::CurrencyCalculateVatPriceParams::TaxType::OrSymbol,
59
+ vat_rate: Float,
60
+ request_options: Vatsense::RequestOptions
61
+ }
62
+ )
63
+ end
64
+ def to_hash
65
+ end
66
+
67
+ # Whether the provided price is inclusive or exclusive of VAT.
68
+ module TaxType
69
+ extend Vatsense::Internal::Type::Enum
70
+
71
+ TaggedSymbol =
72
+ T.type_alias do
73
+ T.all(Symbol, Vatsense::CurrencyCalculateVatPriceParams::TaxType)
74
+ end
75
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
76
+
77
+ INCL =
78
+ T.let(
79
+ :incl,
80
+ Vatsense::CurrencyCalculateVatPriceParams::TaxType::TaggedSymbol
81
+ )
82
+ EXCL =
83
+ T.let(
84
+ :excl,
85
+ Vatsense::CurrencyCalculateVatPriceParams::TaxType::TaggedSymbol
86
+ )
87
+
88
+ sig do
89
+ override.returns(
90
+ T::Array[
91
+ Vatsense::CurrencyCalculateVatPriceParams::TaxType::TaggedSymbol
92
+ ]
93
+ )
94
+ end
95
+ def self.values
96
+ end
97
+ end
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,51 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class CurrencyCalculateVatPriceResponse < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Vatsense::Models::CurrencyCalculateVatPriceResponse,
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(Vatsense::VatPrice)) }
21
+ attr_reader :data
22
+
23
+ sig { params(data: Vatsense::VatPrice::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: Vatsense::VatPrice::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
+ { code: Integer, data: Vatsense::VatPrice, success: T::Boolean }
45
+ )
46
+ end
47
+ def to_hash
48
+ end
49
+ end
50
+ end
51
+ end