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,481 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class InvoiceAPI < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Vatsense::InvoiceAPI, Vatsense::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(T.nilable(String)) }
12
+ attr_reader :id
13
+
14
+ sig { params(id: String).void }
15
+ attr_writer :id
16
+
17
+ sig { returns(T.nilable(Vatsense::InvoiceAPI::Business)) }
18
+ attr_reader :business
19
+
20
+ sig { params(business: Vatsense::InvoiceAPI::Business::OrHash).void }
21
+ attr_writer :business
22
+
23
+ sig { returns(T.nilable(Vatsense::InvoiceConversionInput)) }
24
+ attr_reader :conversion
25
+
26
+ sig do
27
+ params(
28
+ conversion: T.nilable(Vatsense::InvoiceConversionInput::OrHash)
29
+ ).void
30
+ end
31
+ attr_writer :conversion
32
+
33
+ sig { returns(T.nilable(Time)) }
34
+ attr_reader :created
35
+
36
+ sig { params(created: Time).void }
37
+ attr_writer :created
38
+
39
+ sig { returns(T.nilable(String)) }
40
+ attr_reader :currency_code
41
+
42
+ sig { params(currency_code: String).void }
43
+ attr_writer :currency_code
44
+
45
+ sig { returns(T.nilable(Vatsense::InvoiceAPI::Customer)) }
46
+ attr_reader :customer
47
+
48
+ sig do
49
+ params(customer: T.nilable(Vatsense::InvoiceAPI::Customer::OrHash)).void
50
+ end
51
+ attr_writer :customer
52
+
53
+ sig { returns(T.nilable(String)) }
54
+ attr_reader :date
55
+
56
+ sig { params(date: String).void }
57
+ attr_writer :date
58
+
59
+ sig { returns(T.nilable(T::Boolean)) }
60
+ attr_reader :has_vat
61
+
62
+ sig { params(has_vat: T::Boolean).void }
63
+ attr_writer :has_vat
64
+
65
+ sig { returns(T.nilable(String)) }
66
+ attr_reader :invoice_number
67
+
68
+ sig { params(invoice_number: String).void }
69
+ attr_writer :invoice_number
70
+
71
+ # Unique URL to view the invoice. Append "/pdf" to download a PDF copy.
72
+ sig { returns(T.nilable(String)) }
73
+ attr_reader :invoice_url
74
+
75
+ sig { params(invoice_url: String).void }
76
+ attr_writer :invoice_url
77
+
78
+ sig { returns(T.nilable(T::Boolean)) }
79
+ attr_reader :is_copy
80
+
81
+ sig { params(is_copy: T::Boolean).void }
82
+ attr_writer :is_copy
83
+
84
+ sig { returns(T.nilable(T::Boolean)) }
85
+ attr_reader :is_reverse_charge
86
+
87
+ sig { params(is_reverse_charge: T::Boolean).void }
88
+ attr_writer :is_reverse_charge
89
+
90
+ sig { returns(T.nilable(T::Array[Vatsense::Invoice::InvoiceItem])) }
91
+ attr_reader :items
92
+
93
+ sig do
94
+ params(items: T::Array[Vatsense::Invoice::InvoiceItem::OrHash]).void
95
+ end
96
+ attr_writer :items
97
+
98
+ sig { returns(T.nilable(String)) }
99
+ attr_accessor :notes
100
+
101
+ sig { returns(T.nilable(Integer)) }
102
+ attr_reader :num_items
103
+
104
+ sig { params(num_items: Integer).void }
105
+ attr_writer :num_items
106
+
107
+ sig { returns(T.nilable(Vatsense::InvoiceAPI::Object::TaggedSymbol)) }
108
+ attr_reader :object
109
+
110
+ sig { params(object: Vatsense::InvoiceAPI::Object::OrSymbol).void }
111
+ attr_writer :object
112
+
113
+ sig { returns(T.nilable(String)) }
114
+ attr_reader :tax_point
115
+
116
+ sig { params(tax_point: String).void }
117
+ attr_writer :tax_point
118
+
119
+ sig { returns(T.nilable(Vatsense::InvoiceAPI::TaxType::TaggedSymbol)) }
120
+ attr_reader :tax_type
121
+
122
+ sig { params(tax_type: Vatsense::InvoiceAPI::TaxType::OrSymbol).void }
123
+ attr_writer :tax_type
124
+
125
+ sig { returns(T.nilable(Vatsense::InvoiceAPI::Totals)) }
126
+ attr_reader :totals
127
+
128
+ sig { params(totals: Vatsense::InvoiceAPI::Totals::OrHash).void }
129
+ attr_writer :totals
130
+
131
+ sig { returns(T.nilable(Vatsense::InvoiceAPI::Type::TaggedSymbol)) }
132
+ attr_reader :type
133
+
134
+ sig { params(type: Vatsense::InvoiceAPI::Type::OrSymbol).void }
135
+ attr_writer :type
136
+
137
+ sig { returns(T.nilable(Time)) }
138
+ attr_reader :updated
139
+
140
+ sig { params(updated: Time).void }
141
+ attr_writer :updated
142
+
143
+ sig { returns(T.nilable(T::Boolean)) }
144
+ attr_reader :zero_rated
145
+
146
+ sig { params(zero_rated: T::Boolean).void }
147
+ attr_writer :zero_rated
148
+
149
+ sig do
150
+ params(
151
+ id: String,
152
+ business: Vatsense::InvoiceAPI::Business::OrHash,
153
+ conversion: T.nilable(Vatsense::InvoiceConversionInput::OrHash),
154
+ created: Time,
155
+ currency_code: String,
156
+ customer: T.nilable(Vatsense::InvoiceAPI::Customer::OrHash),
157
+ date: String,
158
+ has_vat: T::Boolean,
159
+ invoice_number: String,
160
+ invoice_url: String,
161
+ is_copy: T::Boolean,
162
+ is_reverse_charge: T::Boolean,
163
+ items: T::Array[Vatsense::Invoice::InvoiceItem::OrHash],
164
+ notes: T.nilable(String),
165
+ num_items: Integer,
166
+ object: Vatsense::InvoiceAPI::Object::OrSymbol,
167
+ tax_point: String,
168
+ tax_type: Vatsense::InvoiceAPI::TaxType::OrSymbol,
169
+ totals: Vatsense::InvoiceAPI::Totals::OrHash,
170
+ type: Vatsense::InvoiceAPI::Type::OrSymbol,
171
+ updated: Time,
172
+ zero_rated: T::Boolean
173
+ ).returns(T.attached_class)
174
+ end
175
+ def self.new(
176
+ id: nil,
177
+ business: nil,
178
+ conversion: nil,
179
+ created: nil,
180
+ currency_code: nil,
181
+ customer: nil,
182
+ date: nil,
183
+ has_vat: nil,
184
+ invoice_number: nil,
185
+ # Unique URL to view the invoice. Append "/pdf" to download a PDF copy.
186
+ invoice_url: nil,
187
+ is_copy: nil,
188
+ is_reverse_charge: nil,
189
+ items: nil,
190
+ notes: nil,
191
+ num_items: nil,
192
+ object: nil,
193
+ tax_point: nil,
194
+ tax_type: nil,
195
+ totals: nil,
196
+ type: nil,
197
+ updated: nil,
198
+ zero_rated: nil
199
+ )
200
+ end
201
+
202
+ sig do
203
+ override.returns(
204
+ {
205
+ id: String,
206
+ business: Vatsense::InvoiceAPI::Business,
207
+ conversion: T.nilable(Vatsense::InvoiceConversionInput),
208
+ created: Time,
209
+ currency_code: String,
210
+ customer: T.nilable(Vatsense::InvoiceAPI::Customer),
211
+ date: String,
212
+ has_vat: T::Boolean,
213
+ invoice_number: String,
214
+ invoice_url: String,
215
+ is_copy: T::Boolean,
216
+ is_reverse_charge: T::Boolean,
217
+ items: T::Array[Vatsense::Invoice::InvoiceItem],
218
+ notes: T.nilable(String),
219
+ num_items: Integer,
220
+ object: Vatsense::InvoiceAPI::Object::TaggedSymbol,
221
+ tax_point: String,
222
+ tax_type: Vatsense::InvoiceAPI::TaxType::TaggedSymbol,
223
+ totals: Vatsense::InvoiceAPI::Totals,
224
+ type: Vatsense::InvoiceAPI::Type::TaggedSymbol,
225
+ updated: Time,
226
+ zero_rated: T::Boolean
227
+ }
228
+ )
229
+ end
230
+ def to_hash
231
+ end
232
+
233
+ class Business < Vatsense::Internal::Type::BaseModel
234
+ OrHash =
235
+ T.type_alias do
236
+ T.any(Vatsense::InvoiceAPI::Business, Vatsense::Internal::AnyHash)
237
+ end
238
+
239
+ sig { returns(T.nilable(String)) }
240
+ attr_reader :address
241
+
242
+ sig { params(address: String).void }
243
+ attr_writer :address
244
+
245
+ sig { returns(T.nilable(String)) }
246
+ attr_reader :company_number
247
+
248
+ sig { params(company_number: String).void }
249
+ attr_writer :company_number
250
+
251
+ sig { returns(T.nilable(String)) }
252
+ attr_accessor :logo
253
+
254
+ sig { returns(T.nilable(String)) }
255
+ attr_reader :name
256
+
257
+ sig { params(name: String).void }
258
+ attr_writer :name
259
+
260
+ sig { returns(T.nilable(String)) }
261
+ attr_reader :vat_number
262
+
263
+ sig { params(vat_number: String).void }
264
+ attr_writer :vat_number
265
+
266
+ sig do
267
+ params(
268
+ address: String,
269
+ company_number: String,
270
+ logo: T.nilable(String),
271
+ name: String,
272
+ vat_number: String
273
+ ).returns(T.attached_class)
274
+ end
275
+ def self.new(
276
+ address: nil,
277
+ company_number: nil,
278
+ logo: nil,
279
+ name: nil,
280
+ vat_number: nil
281
+ )
282
+ end
283
+
284
+ sig do
285
+ override.returns(
286
+ {
287
+ address: String,
288
+ company_number: String,
289
+ logo: T.nilable(String),
290
+ name: String,
291
+ vat_number: String
292
+ }
293
+ )
294
+ end
295
+ def to_hash
296
+ end
297
+ end
298
+
299
+ class Customer < Vatsense::Internal::Type::BaseModel
300
+ OrHash =
301
+ T.type_alias do
302
+ T.any(Vatsense::InvoiceAPI::Customer, Vatsense::Internal::AnyHash)
303
+ end
304
+
305
+ sig { returns(T.nilable(String)) }
306
+ attr_reader :address
307
+
308
+ sig { params(address: String).void }
309
+ attr_writer :address
310
+
311
+ sig { returns(T.nilable(String)) }
312
+ attr_reader :company_number
313
+
314
+ sig { params(company_number: String).void }
315
+ attr_writer :company_number
316
+
317
+ sig { returns(T.nilable(String)) }
318
+ attr_accessor :logo
319
+
320
+ sig { returns(T.nilable(String)) }
321
+ attr_reader :name
322
+
323
+ sig { params(name: String).void }
324
+ attr_writer :name
325
+
326
+ sig { returns(T.nilable(String)) }
327
+ attr_reader :vat_number
328
+
329
+ sig { params(vat_number: String).void }
330
+ attr_writer :vat_number
331
+
332
+ sig do
333
+ params(
334
+ address: String,
335
+ company_number: String,
336
+ logo: T.nilable(String),
337
+ name: String,
338
+ vat_number: String
339
+ ).returns(T.attached_class)
340
+ end
341
+ def self.new(
342
+ address: nil,
343
+ company_number: nil,
344
+ logo: nil,
345
+ name: nil,
346
+ vat_number: nil
347
+ )
348
+ end
349
+
350
+ sig do
351
+ override.returns(
352
+ {
353
+ address: String,
354
+ company_number: String,
355
+ logo: T.nilable(String),
356
+ name: String,
357
+ vat_number: String
358
+ }
359
+ )
360
+ end
361
+ def to_hash
362
+ end
363
+ end
364
+
365
+ module Object
366
+ extend Vatsense::Internal::Type::Enum
367
+
368
+ TaggedSymbol =
369
+ T.type_alias { T.all(Symbol, Vatsense::InvoiceAPI::Object) }
370
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
371
+
372
+ INVOICE = T.let(:invoice, Vatsense::InvoiceAPI::Object::TaggedSymbol)
373
+
374
+ sig do
375
+ override.returns(T::Array[Vatsense::InvoiceAPI::Object::TaggedSymbol])
376
+ end
377
+ def self.values
378
+ end
379
+ end
380
+
381
+ module TaxType
382
+ extend Vatsense::Internal::Type::Enum
383
+
384
+ TaggedSymbol =
385
+ T.type_alias { T.all(Symbol, Vatsense::InvoiceAPI::TaxType) }
386
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
387
+
388
+ INCL = T.let(:incl, Vatsense::InvoiceAPI::TaxType::TaggedSymbol)
389
+ EXCL = T.let(:excl, Vatsense::InvoiceAPI::TaxType::TaggedSymbol)
390
+
391
+ sig do
392
+ override.returns(
393
+ T::Array[Vatsense::InvoiceAPI::TaxType::TaggedSymbol]
394
+ )
395
+ end
396
+ def self.values
397
+ end
398
+ end
399
+
400
+ class Totals < Vatsense::Internal::Type::BaseModel
401
+ OrHash =
402
+ T.type_alias do
403
+ T.any(Vatsense::InvoiceAPI::Totals, Vatsense::Internal::AnyHash)
404
+ end
405
+
406
+ # Total discount amount.
407
+ sig { returns(T.nilable(Float)) }
408
+ attr_reader :discount
409
+
410
+ sig { params(discount: Float).void }
411
+ attr_writer :discount
412
+
413
+ # Total before VAT.
414
+ sig { returns(T.nilable(Float)) }
415
+ attr_reader :subtotal
416
+
417
+ sig { params(subtotal: Float).void }
418
+ attr_writer :subtotal
419
+
420
+ # Grand total.
421
+ sig { returns(T.nilable(Float)) }
422
+ attr_reader :total
423
+
424
+ sig { params(total: Float).void }
425
+ attr_writer :total
426
+
427
+ # Total VAT amount.
428
+ sig { returns(T.nilable(Float)) }
429
+ attr_reader :vat
430
+
431
+ sig { params(vat: Float).void }
432
+ attr_writer :vat
433
+
434
+ sig do
435
+ params(
436
+ discount: Float,
437
+ subtotal: Float,
438
+ total: Float,
439
+ vat: Float
440
+ ).returns(T.attached_class)
441
+ end
442
+ def self.new(
443
+ # Total discount amount.
444
+ discount: nil,
445
+ # Total before VAT.
446
+ subtotal: nil,
447
+ # Grand total.
448
+ total: nil,
449
+ # Total VAT amount.
450
+ vat: nil
451
+ )
452
+ end
453
+
454
+ sig do
455
+ override.returns(
456
+ { discount: Float, subtotal: Float, total: Float, vat: Float }
457
+ )
458
+ end
459
+ def to_hash
460
+ end
461
+ end
462
+
463
+ module Type
464
+ extend Vatsense::Internal::Type::Enum
465
+
466
+ TaggedSymbol =
467
+ T.type_alias { T.all(Symbol, Vatsense::InvoiceAPI::Type) }
468
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
469
+
470
+ SALE = T.let(:sale, Vatsense::InvoiceAPI::Type::TaggedSymbol)
471
+ REFUND = T.let(:refund, Vatsense::InvoiceAPI::Type::TaggedSymbol)
472
+
473
+ sig do
474
+ override.returns(T::Array[Vatsense::InvoiceAPI::Type::TaggedSymbol])
475
+ end
476
+ def self.values
477
+ end
478
+ end
479
+ end
480
+ end
481
+ end
@@ -0,0 +1,113 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class InvoiceBusinessInput < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Vatsense::InvoiceBusinessInput, Vatsense::Internal::AnyHash)
9
+ end
10
+
11
+ # Your business trading address.
12
+ sig { returns(String) }
13
+ attr_accessor :address
14
+
15
+ # Your business trading name.
16
+ sig { returns(String) }
17
+ attr_accessor :name
18
+
19
+ # Your business VAT number.
20
+ sig { returns(String) }
21
+ attr_accessor :vat_number
22
+
23
+ sig { returns(T.nilable(String)) }
24
+ attr_reader :bank_account
25
+
26
+ sig { params(bank_account: String).void }
27
+ attr_writer :bank_account
28
+
29
+ # Your business company number.
30
+ sig { returns(T.nilable(String)) }
31
+ attr_reader :company_number
32
+
33
+ sig { params(company_number: String).void }
34
+ attr_writer :company_number
35
+
36
+ sig { returns(T.nilable(String)) }
37
+ attr_reader :email
38
+
39
+ sig { params(email: String).void }
40
+ attr_writer :email
41
+
42
+ # URL to your company logo (HTTPS only, .svg/.jpg/.png). Recommended 240px by
43
+ # 60px.
44
+ sig { returns(T.nilable(String)) }
45
+ attr_reader :logo
46
+
47
+ sig { params(logo: String).void }
48
+ attr_writer :logo
49
+
50
+ sig { returns(T.nilable(String)) }
51
+ attr_reader :phone
52
+
53
+ sig { params(phone: String).void }
54
+ attr_writer :phone
55
+
56
+ sig { returns(T.nilable(String)) }
57
+ attr_reader :website
58
+
59
+ sig { params(website: String).void }
60
+ attr_writer :website
61
+
62
+ sig do
63
+ params(
64
+ address: String,
65
+ name: String,
66
+ vat_number: String,
67
+ bank_account: String,
68
+ company_number: String,
69
+ email: String,
70
+ logo: String,
71
+ phone: String,
72
+ website: String
73
+ ).returns(T.attached_class)
74
+ end
75
+ def self.new(
76
+ # Your business trading address.
77
+ address:,
78
+ # Your business trading name.
79
+ name:,
80
+ # Your business VAT number.
81
+ vat_number:,
82
+ bank_account: nil,
83
+ # Your business company number.
84
+ company_number: nil,
85
+ email: nil,
86
+ # URL to your company logo (HTTPS only, .svg/.jpg/.png). Recommended 240px by
87
+ # 60px.
88
+ logo: nil,
89
+ phone: nil,
90
+ website: nil
91
+ )
92
+ end
93
+
94
+ sig do
95
+ override.returns(
96
+ {
97
+ address: String,
98
+ name: String,
99
+ vat_number: String,
100
+ bank_account: String,
101
+ company_number: String,
102
+ email: String,
103
+ logo: String,
104
+ phone: String,
105
+ website: String
106
+ }
107
+ )
108
+ end
109
+ def to_hash
110
+ end
111
+ end
112
+ end
113
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class InvoiceConversionInput < Vatsense::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Vatsense::InvoiceConversionInput, Vatsense::Internal::AnyHash)
9
+ end
10
+
11
+ # The 3-character currency code for the conversion.
12
+ sig { returns(String) }
13
+ attr_accessor :currency_code
14
+
15
+ # The rate of conversion.
16
+ sig { returns(Float) }
17
+ attr_accessor :rate
18
+
19
+ sig do
20
+ params(currency_code: String, rate: Float).returns(T.attached_class)
21
+ end
22
+ def self.new(
23
+ # The 3-character currency code for the conversion.
24
+ currency_code:,
25
+ # The rate of conversion.
26
+ rate:
27
+ )
28
+ end
29
+
30
+ sig { override.returns({ currency_code: String, rate: Float }) }
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module Vatsense
4
+ module Models
5
+ class InvoiceCreateParams < Vatsense::Models::CreateInvoice
6
+ extend Vatsense::Internal::Type::RequestParameters::Converter
7
+ include Vatsense::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Vatsense::InvoiceCreateParams, 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