Skip to main content

cargo_nfpm/
nfpm_schema.rs

1//! This file is autogenerated from the JSON schema of nFPM v2.41.3 using [QuickType].
2//!
3//! [QuickType]: https://app.quicktype.io/
4use std::collections::HashMap;
5
6use serde::{Deserialize, Serialize};
7
8/// nFPM configuration definition file
9#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
10pub struct Config {
11    // Non optional.
12    pub name: Option<String>,
13    pub arch: Option<String>,
14    pub version: Option<String>,
15
16    #[serde(skip_serializing_if = "Option::is_none")]
17    pub apk: Option<ApkSpecificSettings>,
18    #[serde(skip_serializing_if = "Option::is_none")]
19    pub archlinux: Option<ArchlinuxSpecificSettings>,
20    /// see https://github.com/goreleaser/chglog for more details
21    #[serde(skip_serializing_if = "Option::is_none")]
22    pub changelog: Option<String>,
23    #[serde(skip_serializing_if = "Option::is_none")]
24    pub conflicts: Option<Vec<String>>,
25    #[serde(skip_serializing_if = "Option::is_none")]
26    pub contents: Option<Vec<ContentElement>>,
27    #[serde(skip_serializing_if = "Option::is_none")]
28    pub deb: Option<DebSpecificSettings>,
29    #[serde(skip_serializing_if = "Option::is_none")]
30    pub depends: Option<Vec<String>>,
31    #[serde(skip_serializing_if = "Option::is_none")]
32    pub description: Option<String>,
33    #[serde(skip_serializing_if = "Option::is_none")]
34    pub disable_globbing: Option<bool>,
35    #[serde(skip_serializing_if = "Option::is_none")]
36    pub epoch: Option<String>,
37    #[serde(skip_serializing_if = "Option::is_none")]
38    pub homepage: Option<String>,
39    #[serde(skip_serializing_if = "Option::is_none")]
40    pub ipk: Option<IpkSpecificSettings>,
41    #[serde(skip_serializing_if = "Option::is_none")]
42    pub license: Option<String>,
43    #[serde(skip_serializing_if = "Option::is_none")]
44    pub maintainer: Option<String>,
45    #[serde(skip_serializing_if = "Option::is_none")]
46    pub mtime: Option<String>,
47    /// override some fields when packaging with a specific packager
48    #[serde(skip_serializing_if = "Option::is_none")]
49    pub overrides: Option<HashMap<String, OverrideValue>>,
50    #[serde(skip_serializing_if = "Option::is_none")]
51    pub platform: Option<String>,
52    #[serde(skip_serializing_if = "Option::is_none")]
53    pub prerelease: Option<String>,
54    #[serde(skip_serializing_if = "Option::is_none")]
55    pub priority: Option<String>,
56    #[serde(skip_serializing_if = "Option::is_none")]
57    pub provides: Option<Vec<String>>,
58    #[serde(skip_serializing_if = "Option::is_none")]
59    pub recommends: Option<Vec<String>>,
60    #[serde(skip_serializing_if = "Option::is_none")]
61    pub release: Option<String>,
62    #[serde(skip_serializing_if = "Option::is_none")]
63    pub replaces: Option<Vec<String>>,
64    #[serde(skip_serializing_if = "Option::is_none")]
65    pub rpm: Option<RpmSpecificSettings>,
66    #[serde(skip_serializing_if = "Option::is_none")]
67    pub scripts: Option<ScriptsToExecute>,
68    #[serde(skip_serializing_if = "Option::is_none")]
69    pub section: Option<String>,
70    #[serde(skip_serializing_if = "Option::is_none")]
71    pub suggests: Option<Vec<String>>,
72    #[serde(skip_serializing_if = "Option::is_none")]
73    pub umask: Option<i64>,
74    #[serde(skip_serializing_if = "Option::is_none")]
75    pub vendor: Option<String>,
76    #[serde(skip_serializing_if = "Option::is_none")]
77    pub version_metadata: Option<String>,
78    #[serde(skip_serializing_if = "Option::is_none")]
79    pub version_schema: Option<VersionSchema>,
80}
81
82#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
83pub struct ApkSpecificSettings {
84    #[serde(skip_serializing_if = "Option::is_none")]
85    pub arch: Option<String>,
86    #[serde(skip_serializing_if = "Option::is_none")]
87    pub scripts: Option<ApkScripts>,
88    #[serde(skip_serializing_if = "Option::is_none")]
89    pub signature: Option<ApkSignature>,
90}
91
92#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
93pub struct ApkScripts {
94    #[serde(skip_serializing_if = "Option::is_none")]
95    pub postupgrade: Option<String>,
96    #[serde(skip_serializing_if = "Option::is_none")]
97    pub preupgrade: Option<String>,
98}
99
100#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
101pub struct ApkSignature {
102    #[serde(skip_serializing_if = "Option::is_none")]
103    pub key_file: Option<String>,
104    #[serde(skip_serializing_if = "Option::is_none")]
105    pub key_id: Option<String>,
106    #[serde(skip_serializing_if = "Option::is_none")]
107    pub key_name: Option<String>,
108}
109
110#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
111pub struct ArchlinuxSpecificSettings {
112    #[serde(skip_serializing_if = "Option::is_none")]
113    pub arch: Option<String>,
114    #[serde(skip_serializing_if = "Option::is_none")]
115    pub packager: Option<String>,
116    #[serde(skip_serializing_if = "Option::is_none")]
117    pub pkgbase: Option<String>,
118    #[serde(skip_serializing_if = "Option::is_none")]
119    pub scripts: Option<ArchlinuxSpecificScripts>,
120}
121
122#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
123pub struct ArchlinuxSpecificScripts {
124    #[serde(skip_serializing_if = "Option::is_none")]
125    pub postupgrade: Option<String>,
126    #[serde(skip_serializing_if = "Option::is_none")]
127    pub preupgrade: Option<String>,
128}
129
130#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
131pub struct ContentElement {
132    pub dst: String,
133    #[serde(skip_serializing_if = "Option::is_none")]
134    pub expand: Option<bool>,
135    #[serde(skip_serializing_if = "Option::is_none")]
136    pub file_info: Option<FileInfo>,
137    #[serde(skip_serializing_if = "Option::is_none")]
138    pub packager: Option<String>,
139    #[serde(skip_serializing_if = "Option::is_none")]
140    pub src: Option<String>,
141    #[serde(rename = "type")]
142    #[serde(skip_serializing_if = "Option::is_none")]
143    pub confi_type: Option<Type>,
144}
145
146#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
147#[serde(rename_all = "snake_case")]
148pub enum Type {
149    Config,
150    #[serde(rename = "config|noreplace")]
151    ConfigNoreplace,
152    Dir,
153    #[default]
154    #[serde(rename = "")]
155    Empty,
156    Ghost,
157    Symlink,
158    Tree,
159}
160
161#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
162pub struct FileInfo {
163    #[serde(skip_serializing_if = "Option::is_none")]
164    pub group: Option<String>,
165    #[serde(skip_serializing_if = "Option::is_none")]
166    pub mode: Option<i64>,
167    #[serde(skip_serializing_if = "Option::is_none")]
168    pub mtime: Option<String>,
169    #[serde(skip_serializing_if = "Option::is_none")]
170    pub owner: Option<String>,
171}
172
173#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
174pub struct DebSpecificSettings {
175    #[serde(skip_serializing_if = "Option::is_none")]
176    pub arch: Option<String>,
177    #[serde(skip_serializing_if = "Option::is_none")]
178    pub breaks: Option<Vec<String>>,
179    #[serde(skip_serializing_if = "Option::is_none")]
180    pub compression: Option<DebCompression>,
181    #[serde(skip_serializing_if = "Option::is_none")]
182    pub fields: Option<HashMap<String, String>>,
183    #[serde(skip_serializing_if = "Option::is_none")]
184    pub predepends: Option<Vec<String>>,
185    #[serde(skip_serializing_if = "Option::is_none")]
186    pub scripts: Option<Scripts>,
187    #[serde(skip_serializing_if = "Option::is_none")]
188    pub signature: Option<Signature>,
189    #[serde(skip_serializing_if = "Option::is_none")]
190    pub triggers: Option<Triggers>,
191}
192
193#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
194#[serde(rename_all = "snake_case")]
195pub enum DebCompression {
196    #[default]
197    Gzip,
198    None,
199    Xz,
200}
201
202#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
203pub struct Scripts {
204    #[serde(skip_serializing_if = "Option::is_none")]
205    pub config: Option<String>,
206    #[serde(skip_serializing_if = "Option::is_none")]
207    pub rules: Option<String>,
208    #[serde(skip_serializing_if = "Option::is_none")]
209    pub templates: Option<String>,
210}
211
212#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
213pub struct Signature {
214    #[serde(skip_serializing_if = "Option::is_none")]
215    pub key_file: Option<String>,
216    #[serde(skip_serializing_if = "Option::is_none")]
217    pub key_id: Option<String>,
218    #[serde(skip_serializing_if = "Option::is_none")]
219    pub method: Option<MethodRole>,
220    #[serde(skip_serializing_if = "Option::is_none")]
221    pub signer: Option<String>,
222    #[serde(rename = "type")]
223    #[serde(skip_serializing_if = "Option::is_none")]
224    pub signature_type: Option<SignerRole>,
225}
226
227#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
228#[serde(rename_all = "snake_case")]
229pub enum MethodRole {
230    #[default]
231    Debsign,
232}
233
234#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
235#[serde(rename_all = "snake_case")]
236pub enum SignerRole {
237    Archive,
238    Maint,
239    #[default]
240    Origin,
241}
242
243#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
244pub struct Triggers {
245    #[serde(skip_serializing_if = "Option::is_none")]
246    pub activate: Option<Vec<String>>,
247    #[serde(skip_serializing_if = "Option::is_none")]
248    pub activate_await: Option<Vec<String>>,
249    #[serde(skip_serializing_if = "Option::is_none")]
250    pub activate_noawait: Option<Vec<String>>,
251    #[serde(skip_serializing_if = "Option::is_none")]
252    pub interest: Option<Vec<String>>,
253    #[serde(skip_serializing_if = "Option::is_none")]
254    pub interest_await: Option<Vec<String>>,
255    #[serde(skip_serializing_if = "Option::is_none")]
256    pub interest_noawait: Option<Vec<String>>,
257}
258
259#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
260pub struct IpkSpecificSettings {
261    #[serde(skip_serializing_if = "Option::is_none")]
262    pub abi_version: Option<String>,
263    #[serde(skip_serializing_if = "Option::is_none")]
264    pub alternatives: Option<Vec<Alternative>>,
265    #[serde(skip_serializing_if = "Option::is_none")]
266    pub arch: Option<String>,
267    #[serde(skip_serializing_if = "Option::is_none")]
268    pub auto_installed: Option<bool>,
269    #[serde(skip_serializing_if = "Option::is_none")]
270    pub essential: Option<bool>,
271    #[serde(skip_serializing_if = "Option::is_none")]
272    pub fields: Option<HashMap<String, String>>,
273    #[serde(skip_serializing_if = "Option::is_none")]
274    pub predepends: Option<Vec<String>>,
275    #[serde(skip_serializing_if = "Option::is_none")]
276    pub tags: Option<Vec<String>>,
277}
278
279#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
280pub struct Alternative {
281    #[serde(skip_serializing_if = "Option::is_none")]
282    pub link_name: Option<String>,
283    #[serde(skip_serializing_if = "Option::is_none")]
284    pub priority: Option<i64>,
285    #[serde(skip_serializing_if = "Option::is_none")]
286    pub target: Option<String>,
287}
288
289#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
290pub struct OverrideValue {
291    #[serde(skip_serializing_if = "Option::is_none")]
292    pub apk: Option<ApkSpecificSettings>,
293    #[serde(skip_serializing_if = "Option::is_none")]
294    pub archlinux: Option<ArchlinuxSpecificSettings>,
295    #[serde(skip_serializing_if = "Option::is_none")]
296    pub conflicts: Option<Vec<String>>,
297    #[serde(skip_serializing_if = "Option::is_none")]
298    pub contents: Option<Vec<ContentElement>>,
299    #[serde(skip_serializing_if = "Option::is_none")]
300    pub deb: Option<DebSpecificSettings>,
301    #[serde(skip_serializing_if = "Option::is_none")]
302    pub depends: Option<Vec<String>>,
303    #[serde(skip_serializing_if = "Option::is_none")]
304    pub ipk: Option<IpkSpecificSettings>,
305    #[serde(skip_serializing_if = "Option::is_none")]
306    pub provides: Option<Vec<String>>,
307    #[serde(skip_serializing_if = "Option::is_none")]
308    pub recommends: Option<Vec<String>>,
309    #[serde(skip_serializing_if = "Option::is_none")]
310    pub replaces: Option<Vec<String>>,
311    #[serde(skip_serializing_if = "Option::is_none")]
312    pub rpm: Option<RpmSpecificSettings>,
313    #[serde(skip_serializing_if = "Option::is_none")]
314    pub scripts: Option<ScriptsToExecute>,
315    #[serde(skip_serializing_if = "Option::is_none")]
316    pub suggests: Option<Vec<String>>,
317    #[serde(skip_serializing_if = "Option::is_none")]
318    pub umask: Option<i64>,
319}
320
321#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
322pub struct RpmSpecificSettings {
323    #[serde(skip_serializing_if = "Option::is_none")]
324    pub arch: Option<String>,
325    #[serde(skip_serializing_if = "Option::is_none")]
326    pub compression: Option<RpmCompression>,
327    #[serde(skip_serializing_if = "Option::is_none")]
328    pub group: Option<String>,
329    #[serde(skip_serializing_if = "Option::is_none")]
330    pub packager: Option<String>,
331    #[serde(skip_serializing_if = "Option::is_none")]
332    pub prefixes: Option<Vec<String>>,
333    #[serde(skip_serializing_if = "Option::is_none")]
334    pub scripts: Option<RpmSpecificScripts>,
335    #[serde(skip_serializing_if = "Option::is_none")]
336    pub signature: Option<RpmSignature>,
337    #[serde(skip_serializing_if = "Option::is_none")]
338    pub summary: Option<String>,
339}
340
341#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
342#[serde(rename_all = "snake_case")]
343pub enum RpmCompression {
344    #[default]
345    Gzip,
346    Lzma,
347    Xz,
348}
349
350#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
351pub struct RpmSpecificScripts {
352    #[serde(skip_serializing_if = "Option::is_none")]
353    pub posttrans: Option<String>,
354    #[serde(skip_serializing_if = "Option::is_none")]
355    pub pretrans: Option<String>,
356    #[serde(skip_serializing_if = "Option::is_none")]
357    pub verify: Option<String>,
358}
359
360#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
361pub struct RpmSignature {
362    #[serde(skip_serializing_if = "Option::is_none")]
363    pub key_file: Option<String>,
364    #[serde(skip_serializing_if = "Option::is_none")]
365    pub key_id: Option<String>,
366}
367
368#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
369pub struct ScriptsToExecute {
370    #[serde(skip_serializing_if = "Option::is_none")]
371    pub postinstall: Option<String>,
372    #[serde(skip_serializing_if = "Option::is_none")]
373    pub postremove: Option<String>,
374    #[serde(skip_serializing_if = "Option::is_none")]
375    pub preinstall: Option<String>,
376    #[serde(skip_serializing_if = "Option::is_none")]
377    pub preremove: Option<String>,
378}
379
380#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)]
381#[serde(rename_all = "snake_case")]
382pub enum VersionSchema {
383    None,
384    #[default]
385    Semver,
386}