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,27 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class SandboxGenerateKeyParams < 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::SandboxGenerateKeyParams, Vatsense::Internal::AnyHash)
12
+ end
13
+
14
+ sig do
15
+ params(request_options: Vatsense::RequestOptions::OrHash).returns(
16
+ T.attached_class
17
+ )
18
+ end
19
+ def self.new(request_options: {})
20
+ end
21
+
22
+ sig { override.returns({ request_options: Vatsense::RequestOptions }) }
23
+ def to_hash
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,135 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class SandboxGenerateKeyResponse < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Vatsense::Models::SandboxGenerateKeyResponse,
10
+ Vatsense::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(T.nilable(Integer)) }
15
+ attr_reader :code
16
+
17
+ sig { params(code: Integer).void }
18
+ attr_writer :code
19
+
20
+ sig do
21
+ returns(T.nilable(Vatsense::Models::SandboxGenerateKeyResponse::Data))
22
+ end
23
+ attr_reader :data
24
+
25
+ sig do
26
+ params(
27
+ data: Vatsense::Models::SandboxGenerateKeyResponse::Data::OrHash
28
+ ).void
29
+ end
30
+ attr_writer :data
31
+
32
+ sig { returns(T.nilable(T::Boolean)) }
33
+ attr_reader :success
34
+
35
+ sig { params(success: T::Boolean).void }
36
+ attr_writer :success
37
+
38
+ sig do
39
+ params(
40
+ code: Integer,
41
+ data: Vatsense::Models::SandboxGenerateKeyResponse::Data::OrHash,
42
+ success: T::Boolean
43
+ ).returns(T.attached_class)
44
+ end
45
+ def self.new(code: nil, data: nil, success: nil)
46
+ end
47
+
48
+ sig do
49
+ override.returns(
50
+ {
51
+ code: Integer,
52
+ data: Vatsense::Models::SandboxGenerateKeyResponse::Data,
53
+ success: T::Boolean
54
+ }
55
+ )
56
+ end
57
+ def to_hash
58
+ end
59
+
60
+ class Data < Vatsense::Internal::Type::BaseModel
61
+ OrHash =
62
+ T.type_alias do
63
+ T.any(
64
+ Vatsense::Models::SandboxGenerateKeyResponse::Data,
65
+ Vatsense::Internal::AnyHash
66
+ )
67
+ end
68
+
69
+ sig { returns(T.nilable(T::Array[String])) }
70
+ attr_reader :allowed_endpoints
71
+
72
+ sig { params(allowed_endpoints: T::Array[String]).void }
73
+ attr_writer :allowed_endpoints
74
+
75
+ sig { returns(T.nilable(Time)) }
76
+ attr_reader :expires_at
77
+
78
+ sig { params(expires_at: Time).void }
79
+ attr_writer :expires_at
80
+
81
+ # The temporary sandbox API key.
82
+ sig { returns(T.nilable(String)) }
83
+ attr_reader :key
84
+
85
+ sig { params(key: String).void }
86
+ attr_writer :key
87
+
88
+ sig { returns(T.nilable(Integer)) }
89
+ attr_reader :requests_remaining
90
+
91
+ sig { params(requests_remaining: Integer).void }
92
+ attr_writer :requests_remaining
93
+
94
+ sig { returns(T.nilable(String)) }
95
+ attr_reader :signup_url
96
+
97
+ sig { params(signup_url: String).void }
98
+ attr_writer :signup_url
99
+
100
+ sig do
101
+ params(
102
+ allowed_endpoints: T::Array[String],
103
+ expires_at: Time,
104
+ key: String,
105
+ requests_remaining: Integer,
106
+ signup_url: String
107
+ ).returns(T.attached_class)
108
+ end
109
+ def self.new(
110
+ allowed_endpoints: nil,
111
+ expires_at: nil,
112
+ # The temporary sandbox API key.
113
+ key: nil,
114
+ requests_remaining: nil,
115
+ signup_url: nil
116
+ )
117
+ end
118
+
119
+ sig do
120
+ override.returns(
121
+ {
122
+ allowed_endpoints: T::Array[String],
123
+ expires_at: Time,
124
+ key: String,
125
+ requests_remaining: Integer,
126
+ signup_url: String
127
+ }
128
+ )
129
+ end
130
+ def to_hash
131
+ end
132
+ end
133
+ end
134
+ end
135
+ end
@@ -0,0 +1,109 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class TaxRate < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias { T.any(Vatsense::TaxRate, Vatsense::Internal::AnyHash) }
8
+
9
+ # The rate class (e.g. "standard", "reduced", "zero").
10
+ sig { returns(T.nilable(String)) }
11
+ attr_reader :class_
12
+
13
+ sig { params(class_: String).void }
14
+ attr_writer :class_
15
+
16
+ # A description of what goods/services this rate applies to.
17
+ sig { returns(T.nilable(String)) }
18
+ attr_reader :description
19
+
20
+ sig { params(description: String).void }
21
+ attr_writer :description
22
+
23
+ sig { returns(T.nilable(Vatsense::TaxRate::Object::TaggedSymbol)) }
24
+ attr_reader :object
25
+
26
+ sig { params(object: Vatsense::TaxRate::Object::OrSymbol).void }
27
+ attr_writer :object
28
+
29
+ # The tax rate percentage.
30
+ sig { returns(T.nilable(Float)) }
31
+ attr_reader :rate
32
+
33
+ sig { params(rate: Float).void }
34
+ attr_writer :rate
35
+
36
+ # Comma-separated list of product types this rate applies to, or false if it
37
+ # applies generally.
38
+ sig { returns(T.nilable(Vatsense::TaxRate::Types::Variants)) }
39
+ attr_reader :types
40
+
41
+ sig { params(types: Vatsense::TaxRate::Types::Variants).void }
42
+ attr_writer :types
43
+
44
+ sig do
45
+ params(
46
+ class_: String,
47
+ description: String,
48
+ object: Vatsense::TaxRate::Object::OrSymbol,
49
+ rate: Float,
50
+ types: Vatsense::TaxRate::Types::Variants
51
+ ).returns(T.attached_class)
52
+ end
53
+ def self.new(
54
+ # The rate class (e.g. "standard", "reduced", "zero").
55
+ class_: nil,
56
+ # A description of what goods/services this rate applies to.
57
+ description: nil,
58
+ object: nil,
59
+ # The tax rate percentage.
60
+ rate: nil,
61
+ # Comma-separated list of product types this rate applies to, or false if it
62
+ # applies generally.
63
+ types: nil
64
+ )
65
+ end
66
+
67
+ sig do
68
+ override.returns(
69
+ {
70
+ class_: String,
71
+ description: String,
72
+ object: Vatsense::TaxRate::Object::TaggedSymbol,
73
+ rate: Float,
74
+ types: Vatsense::TaxRate::Types::Variants
75
+ }
76
+ )
77
+ end
78
+ def to_hash
79
+ end
80
+
81
+ module Object
82
+ extend Vatsense::Internal::Type::Enum
83
+
84
+ TaggedSymbol = T.type_alias { T.all(Symbol, Vatsense::TaxRate::Object) }
85
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
86
+
87
+ TAX_RATE = T.let(:tax_rate, Vatsense::TaxRate::Object::TaggedSymbol)
88
+
89
+ sig do
90
+ override.returns(T::Array[Vatsense::TaxRate::Object::TaggedSymbol])
91
+ end
92
+ def self.values
93
+ end
94
+ end
95
+
96
+ # Comma-separated list of product types this rate applies to, or false if it
97
+ # applies generally.
98
+ module Types
99
+ extend Vatsense::Internal::Type::Union
100
+
101
+ Variants = T.type_alias { T.any(String, T::Boolean) }
102
+
103
+ sig { override.returns(T::Array[Vatsense::TaxRate::Types::Variants]) }
104
+ def self.variants
105
+ end
106
+ end
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class UsageRetrieveParams < 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::UsageRetrieveParams, Vatsense::Internal::AnyHash)
12
+ end
13
+
14
+ sig do
15
+ params(request_options: Vatsense::RequestOptions::OrHash).returns(
16
+ T.attached_class
17
+ )
18
+ end
19
+ def self.new(request_options: {})
20
+ end
21
+
22
+ sig { override.returns({ request_options: Vatsense::RequestOptions }) }
23
+ def to_hash
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,155 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class UsageRetrieveResponse < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Vatsense::Models::UsageRetrieveResponse,
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::Models::UsageRetrieveResponse::Data)) }
21
+ attr_reader :data
22
+
23
+ sig do
24
+ params(data: Vatsense::Models::UsageRetrieveResponse::Data::OrHash).void
25
+ end
26
+ attr_writer :data
27
+
28
+ sig { returns(T.nilable(T::Boolean)) }
29
+ attr_reader :success
30
+
31
+ sig { params(success: T::Boolean).void }
32
+ attr_writer :success
33
+
34
+ sig do
35
+ params(
36
+ code: Integer,
37
+ data: Vatsense::Models::UsageRetrieveResponse::Data::OrHash,
38
+ success: T::Boolean
39
+ ).returns(T.attached_class)
40
+ end
41
+ def self.new(code: nil, data: nil, success: nil)
42
+ end
43
+
44
+ sig do
45
+ override.returns(
46
+ {
47
+ code: Integer,
48
+ data: Vatsense::Models::UsageRetrieveResponse::Data,
49
+ success: T::Boolean
50
+ }
51
+ )
52
+ end
53
+ def to_hash
54
+ end
55
+
56
+ class Data < Vatsense::Internal::Type::BaseModel
57
+ OrHash =
58
+ T.type_alias do
59
+ T.any(
60
+ Vatsense::Models::UsageRetrieveResponse::Data,
61
+ Vatsense::Internal::AnyHash
62
+ )
63
+ end
64
+
65
+ sig do
66
+ returns(
67
+ T.nilable(Vatsense::Models::UsageRetrieveResponse::Data::Requests)
68
+ )
69
+ end
70
+ attr_reader :requests
71
+
72
+ sig do
73
+ params(
74
+ requests:
75
+ Vatsense::Models::UsageRetrieveResponse::Data::Requests::OrHash
76
+ ).void
77
+ end
78
+ attr_writer :requests
79
+
80
+ sig do
81
+ params(
82
+ requests:
83
+ Vatsense::Models::UsageRetrieveResponse::Data::Requests::OrHash
84
+ ).returns(T.attached_class)
85
+ end
86
+ def self.new(requests: nil)
87
+ end
88
+
89
+ sig do
90
+ override.returns(
91
+ {
92
+ requests: Vatsense::Models::UsageRetrieveResponse::Data::Requests
93
+ }
94
+ )
95
+ end
96
+ def to_hash
97
+ end
98
+
99
+ class Requests < Vatsense::Internal::Type::BaseModel
100
+ OrHash =
101
+ T.type_alias do
102
+ T.any(
103
+ Vatsense::Models::UsageRetrieveResponse::Data::Requests,
104
+ Vatsense::Internal::AnyHash
105
+ )
106
+ end
107
+
108
+ # Requests remaining before the limit is reached.
109
+ sig { returns(T.nilable(Integer)) }
110
+ attr_reader :remaining
111
+
112
+ sig { params(remaining: Integer).void }
113
+ attr_writer :remaining
114
+
115
+ # Total requests allowed on your plan.
116
+ sig { returns(T.nilable(Integer)) }
117
+ attr_reader :total
118
+
119
+ sig { params(total: Integer).void }
120
+ attr_writer :total
121
+
122
+ # Requests used in the last 30 days.
123
+ sig { returns(T.nilable(Integer)) }
124
+ attr_reader :used
125
+
126
+ sig { params(used: Integer).void }
127
+ attr_writer :used
128
+
129
+ sig do
130
+ params(remaining: Integer, total: Integer, used: Integer).returns(
131
+ T.attached_class
132
+ )
133
+ end
134
+ def self.new(
135
+ # Requests remaining before the limit is reached.
136
+ remaining: nil,
137
+ # Total requests allowed on your plan.
138
+ total: nil,
139
+ # Requests used in the last 30 days.
140
+ used: nil
141
+ )
142
+ end
143
+
144
+ sig do
145
+ override.returns(
146
+ { remaining: Integer, total: Integer, used: Integer }
147
+ )
148
+ end
149
+ def to_hash
150
+ end
151
+ end
152
+ end
153
+ end
154
+ end
155
+ end
@@ -0,0 +1,82 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class ValidateCheckParams < 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::ValidateCheckParams, Vatsense::Internal::AnyHash)
12
+ end
13
+
14
+ # The EORI number to validate. Must include the leading 2-character country code
15
+ # (e.g. "GB123456789123"). UK and EU only.
16
+ sig { returns(T.nilable(String)) }
17
+ attr_reader :eori_number
18
+
19
+ sig { params(eori_number: String).void }
20
+ attr_writer :eori_number
21
+
22
+ # Your own VAT number. If supplied, the response will include a unique
23
+ # consultation number issued by the relevant authority (VIES or HMRC). Must
24
+ # include the leading 2-character country code.
25
+ #
26
+ # Note: GB requester numbers only work for GB validations; EU requester numbers
27
+ # only work for EU validations. Cross-region is not supported.
28
+ sig { returns(T.nilable(String)) }
29
+ attr_reader :requester_vat_number
30
+
31
+ sig { params(requester_vat_number: String).void }
32
+ attr_writer :requester_vat_number
33
+
34
+ # The VAT number to validate. Must include the leading 2-character country code
35
+ # (e.g. "GB288305674", "FR12345678901").
36
+ sig { returns(T.nilable(String)) }
37
+ attr_reader :vat_number
38
+
39
+ sig { params(vat_number: String).void }
40
+ attr_writer :vat_number
41
+
42
+ sig do
43
+ params(
44
+ eori_number: String,
45
+ requester_vat_number: String,
46
+ vat_number: String,
47
+ request_options: Vatsense::RequestOptions::OrHash
48
+ ).returns(T.attached_class)
49
+ end
50
+ def self.new(
51
+ # The EORI number to validate. Must include the leading 2-character country code
52
+ # (e.g. "GB123456789123"). UK and EU only.
53
+ eori_number: nil,
54
+ # Your own VAT number. If supplied, the response will include a unique
55
+ # consultation number issued by the relevant authority (VIES or HMRC). Must
56
+ # include the leading 2-character country code.
57
+ #
58
+ # Note: GB requester numbers only work for GB validations; EU requester numbers
59
+ # only work for EU validations. Cross-region is not supported.
60
+ requester_vat_number: nil,
61
+ # The VAT number to validate. Must include the leading 2-character country code
62
+ # (e.g. "GB288305674", "FR12345678901").
63
+ vat_number: nil,
64
+ request_options: {}
65
+ )
66
+ end
67
+
68
+ sig do
69
+ override.returns(
70
+ {
71
+ eori_number: String,
72
+ requester_vat_number: String,
73
+ vat_number: String,
74
+ request_options: Vatsense::RequestOptions
75
+ }
76
+ )
77
+ end
78
+ def to_hash
79
+ end
80
+ end
81
+ end
82
+ end