1extern crate serde_json;
15use std::collections::HashMap;
16
17pub type ConfigLinux = Option<serde_json::Value>;
18pub type ConfigSolaris = Option<serde_json::Value>;
19pub type ConfigVm = Option<serde_json::Value>;
20pub type ConfigWindows = Option<serde_json::Value>;
21pub type DefsLinux = Option<serde_json::Value>;
22pub type DefsVm = Option<serde_json::Value>;
23pub type DefsWindows = Option<serde_json::Value>;
24pub type Defs = Option<serde_json::Value>;
25
26#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
28#[builder(setter(into))]
29pub struct ConfigSchema {
30 #[builder(default)]
31 pub annotations: Option<HashMap<String, Option<serde_json::Value>>>,
32 #[builder(default)]
33 pub hooks: Option<Hooks>,
34 #[builder(default)]
35 pub hostname: Option<String>,
36 #[builder(default)]
37 pub linux: Option<Linux>,
38 #[builder(default)]
39 pub mounts: Option<Vec<Mount>>,
40 #[serde(rename = "ociVersion")]
41 pub oci_version: String,
42 #[builder(default)]
43 pub process: Option<Process>,
44 #[builder(default)]
46 pub root: Option<Root>,
47 #[builder(default)]
48 pub solaris: Option<Solaris>,
49 #[builder(default)]
50 pub vm: Option<Vm>,
51 #[builder(default)]
52 pub windows: Option<Windows>,
53}
54
55#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
56#[builder(setter(into))]
57pub struct Hooks {
58 #[builder(default)]
59 pub poststart: Option<Vec<Hook>>,
60 #[builder(default)]
61 pub poststop: Option<Vec<Hook>>,
62 #[builder(default)]
63 pub prestart: Option<Vec<Hook>>,
64}
65
66#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
67#[builder(setter(into))]
68pub struct Hook {
69 #[builder(default)]
70 pub args: Option<Vec<String>>,
71 #[builder(default)]
72 pub env: Option<Vec<String>>,
73 pub path: String,
74 #[builder(default)]
75 pub timeout: Option<i64>,
76}
77
78#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
80#[builder(setter(into))]
81pub struct Linux {
82 #[serde(rename = "cgroupsPath")]
83 #[builder(default)]
84 pub cgroups_path: Option<String>,
85 #[builder(default)]
86 pub devices: Option<Vec<LinuxDevice>>,
87 #[serde(rename = "gidMappings")]
88 #[builder(default)]
89 pub gid_mappings: Option<Vec<IdMapping>>,
90 #[serde(rename = "intelRdt")]
91 #[builder(default)]
92 pub intel_rdt: Option<IntelRdt>,
93 #[serde(rename = "maskedPaths")]
94 #[builder(default)]
95 pub masked_paths: Option<Vec<String>>,
96 #[serde(rename = "mountLabel")]
97 #[builder(default)]
98 pub mount_label: Option<String>,
99 #[builder(default)]
100 pub namespaces: Option<Vec<NamespaceReference>>,
101 #[serde(rename = "readonlyPaths")]
102 #[builder(default)]
103 pub readonly_paths: Option<Vec<String>>,
104 #[builder(default)]
105 pub resources: Option<LinuxResources>,
106 #[serde(rename = "rootfsPropagation")]
107 #[builder(default)]
108 pub rootfs_propagation: Option<RootfsPropagation>,
109 #[builder(default)]
110 pub seccomp: Option<Seccomp>,
111 #[builder(default)]
112 pub sysctl: Option<HashMap<String, Option<serde_json::Value>>>,
113 #[serde(rename = "uidMappings")]
114 #[builder(default)]
115 pub uid_mappings: Option<Vec<IdMapping>>,
116}
117
118#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
119#[builder(setter(into))]
120pub struct LinuxDevice {
121 #[serde(rename = "fileMode")]
122 #[builder(default)]
123 pub file_mode: Option<i64>,
124 #[builder(default)]
125 pub gid: Option<i64>,
126 #[builder(default)]
127 pub major: Option<i64>,
128 #[builder(default)]
129 pub minor: Option<i64>,
130 pub path: String,
131 #[serde(rename = "type")]
132 pub device_type: String,
133 #[builder(default)]
134 pub uid: Option<i64>,
135}
136
137#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
138#[builder(setter(into))]
139pub struct IdMapping {
140 #[serde(rename = "containerID")]
141 pub container_id: i64,
142 #[serde(rename = "hostID")]
143 pub host_id: i64,
144 pub size: i64,
145}
146
147#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
148#[builder(setter(into))]
149pub struct IntelRdt {
150 #[serde(rename = "closID")]
151 #[builder(default)]
152 pub clos_id: Option<String>,
153 #[serde(rename = "l3CacheSchema")]
154 #[builder(default)]
155 pub l3_cache_schema: Option<String>,
156 #[serde(rename = "memBwSchema")]
157 #[builder(default)]
158 pub mem_bw_schema: Option<String>,
159}
160
161#[derive(Debug, Serialize, Deserialize, Clone, Builder, PartialEq)]
162#[builder(setter(into))]
163pub struct NamespaceReference {
164 #[builder(default)]
165 pub path: Option<String>,
166 #[serde(rename = "type")]
167 pub namespace_reference_type: NamespaceType,
168}
169
170#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
171#[builder(setter(into))]
172pub struct LinuxResources {
173 #[serde(rename = "blockIO")]
174 #[builder(default)]
175 pub block_io: Option<BlockIo>,
176 #[builder(default)]
177 pub cpu: Option<PurpleCpu>,
178 #[builder(default)]
179 pub devices: Option<Vec<DeviceCgroup>>,
180 #[serde(rename = "hugepageLimits")]
181 #[builder(default)]
182 pub hugepage_limits: Option<Vec<HugepageLimit>>,
183 #[builder(default)]
184 pub memory: Option<PurpleMemory>,
185 #[builder(default)]
186 pub network: Option<ResourcesNetwork>,
187 #[builder(default)]
188 pub pids: Option<Pids>,
189 #[builder(default)]
190 pub rdma: Option<HashMap<String, Rdma>>,
191}
192
193#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
194#[builder(setter(into))]
195pub struct BlockIo {
196 #[serde(rename = "leafWeight")]
197 #[builder(default)]
198 pub leaf_weight: Option<i64>,
199 #[serde(rename = "throttleReadBpsDevice")]
200 #[builder(default)]
201 pub throttle_read_bps_device: Option<Vec<BlockIoDeviceThrottle>>,
202 #[serde(rename = "throttleReadIOPSDevice")]
203 #[builder(default)]
204 pub throttle_read_iops_device: Option<Vec<BlockIoDeviceThrottle>>,
205 #[serde(rename = "throttleWriteBpsDevice")]
206 #[builder(default)]
207 pub throttle_write_bps_device: Option<Vec<BlockIoDeviceThrottle>>,
208 #[serde(rename = "throttleWriteIOPSDevice")]
209 #[builder(default)]
210 pub throttle_write_iops_device: Option<Vec<BlockIoDeviceThrottle>>,
211 #[builder(default)]
212 pub weight: Option<i64>,
213 #[serde(rename = "weightDevice")]
214 #[builder(default)]
215 pub weight_device: Option<Vec<BlockIoDeviceWeight>>,
216}
217
218#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
219#[builder(setter(into))]
220pub struct BlockIoDeviceThrottle {
221 pub major: i64,
222 pub minor: i64,
223 #[builder(default)]
224 pub rate: Option<i64>,
225}
226
227#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
228#[builder(setter(into))]
229pub struct BlockIoDeviceWeight {
230 pub major: i64,
231 pub minor: i64,
232 #[serde(rename = "leafWeight")]
233 #[builder(default)]
234 pub leaf_weight: Option<i64>,
235 #[builder(default)]
236 pub weight: Option<i64>,
237}
238
239#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
240#[builder(setter(into))]
241pub struct PurpleCpu {
242 #[builder(default)]
243 pub cpus: Option<String>,
244 #[builder(default)]
245 pub mems: Option<String>,
246 #[builder(default)]
247 pub period: Option<i64>,
248 #[builder(default)]
249 pub quota: Option<i64>,
250 #[serde(rename = "realtimePeriod")]
251 #[builder(default)]
252 pub realtime_period: Option<i64>,
253 #[serde(rename = "realtimeRuntime")]
254 #[builder(default)]
255 pub realtime_runtime: Option<i64>,
256 #[builder(default)]
257 pub shares: Option<i64>,
258}
259
260#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
261#[builder(setter(into))]
262pub struct DeviceCgroup {
263 #[builder(default)]
264 pub access: Option<String>,
265 pub allow: bool,
266 #[builder(default)]
267 pub major: Option<i64>,
268 #[builder(default)]
269 pub minor: Option<i64>,
270 #[serde(rename = "type")]
271 #[builder(default)]
272 pub device_cgroup_type: Option<String>,
273}
274
275#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
276#[builder(setter(into))]
277pub struct HugepageLimit {
278 pub limit: i64,
279 #[serde(rename = "pageSize")]
280 pub page_size: String,
281}
282
283#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
284#[builder(setter(into))]
285pub struct PurpleMemory {
286 #[serde(rename = "disableOOMKiller")]
287 #[builder(default)]
288 pub disable_oom_killer: Option<bool>,
289 #[builder(default)]
290 pub kernel: Option<i64>,
291 #[serde(rename = "kernelTCP")]
292 #[builder(default)]
293 pub kernel_tcp: Option<i64>,
294 #[builder(default)]
295 pub limit: Option<i64>,
296 #[builder(default)]
297 pub reservation: Option<i64>,
298 #[builder(default)]
299 pub swap: Option<i64>,
300 #[builder(default)]
301 pub swappiness: Option<i64>,
302}
303
304#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
305#[builder(setter(into))]
306pub struct ResourcesNetwork {
307 #[serde(rename = "classID")]
308 #[builder(default)]
309 pub class_id: Option<i64>,
310 #[builder(default)]
311 pub priorities: Option<Vec<NetworkInterfacePriority>>,
312}
313
314#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
315#[builder(setter(into))]
316pub struct NetworkInterfacePriority {
317 pub name: String,
318 pub priority: i64,
319}
320
321#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
322#[builder(setter(into))]
323pub struct Pids {
324 pub limit: i64,
325}
326
327#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
328#[builder(setter(into))]
329pub struct Rdma {
330 #[serde(rename = "hcaHandles")]
331 #[builder(default)]
332 pub hca_handles: Option<i64>,
333 #[serde(rename = "hcaObjects")]
334 #[builder(default)]
335 pub hca_objects: Option<i64>,
336}
337
338#[derive(Debug, Serialize, Deserialize, Clone, Builder, PartialEq)]
339#[builder(setter(into))]
340pub struct Seccomp {
341 #[builder(default)]
342 pub architectures: Option<Vec<SeccompArch>>,
343 #[serde(rename = "defaultAction")]
344 pub default_action: SeccompAction,
345 #[builder(default)]
346 pub syscalls: Option<Vec<Syscall>>,
347}
348
349#[derive(Debug, Serialize, Deserialize, Clone, Builder, PartialEq)]
350#[builder(setter(into))]
351pub struct Syscall {
352 pub action: SeccompAction,
353 #[builder(default)]
354 pub args: Option<Vec<SyscallArg>>,
355 pub names: Vec<String>,
356}
357
358#[derive(Debug, Serialize, Deserialize, Clone, Builder, PartialEq)]
359#[builder(setter(into))]
360pub struct SyscallArg {
361 pub index: i64,
362 pub op: SeccompOperators,
363 pub value: i64,
364 #[serde(rename = "valueTwo")]
365 #[builder(default)]
366 pub value_two: Option<i64>,
367}
368
369#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
370#[builder(setter(into))]
371pub struct Mount {
372 pub destination: String,
373 #[builder(default)]
374 pub options: Option<Vec<String>>,
375 #[builder(default)]
376 pub source: Option<String>,
377 #[serde(rename = "type")]
378 #[builder(default)]
379 pub mount_type: Option<String>,
380}
381
382#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
383#[builder(setter(into))]
384pub struct Process {
385 #[serde(rename = "apparmorProfile")]
386 #[builder(default)]
387 pub apparmor_profile: Option<String>,
388 pub args: Vec<String>,
389 #[builder(default)]
390 pub capabilities: Option<Capabilities>,
391 #[serde(rename = "consoleSize")]
392 #[builder(default)]
393 pub console_size: Option<ConsoleSize>,
394 pub cwd: String,
395 #[builder(default)]
396 pub env: Option<Vec<String>>,
397 #[serde(rename = "noNewPrivileges")]
398 #[builder(default)]
399 pub no_new_privileges: Option<bool>,
400 #[serde(rename = "oomScoreAdj")]
401 #[builder(default)]
402 pub oom_score_adj: Option<i64>,
403 #[builder(default)]
404 pub rlimits: Option<Vec<Rlimit>>,
405 #[serde(rename = "selinuxLabel")]
406 #[builder(default)]
407 pub selinux_label: Option<String>,
408 #[builder(default)]
409 pub terminal: Option<bool>,
410 #[builder(default)]
411 pub user: Option<User>,
412}
413
414#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
415#[builder(setter(into))]
416pub struct Capabilities {
417 #[builder(default)]
418 pub ambient: Option<Vec<String>>,
419 #[builder(default)]
420 pub bounding: Option<Vec<String>>,
421 #[builder(default)]
422 pub effective: Option<Vec<String>>,
423 #[builder(default)]
424 pub inheritable: Option<Vec<String>>,
425 #[builder(default)]
426 pub permitted: Option<Vec<String>>,
427}
428
429#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
430#[builder(setter(into))]
431pub struct ConsoleSize {
432 pub height: i64,
433 pub width: i64,
434}
435
436#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
437#[builder(setter(into))]
438pub struct Rlimit {
439 pub hard: i64,
440 pub soft: i64,
441 #[serde(rename = "type")]
442 pub rlimit_type: String,
443}
444
445#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
446#[builder(setter(into))]
447pub struct User {
448 #[serde(rename = "additionalGids")]
449 #[builder(default)]
450 pub additional_gids: Option<Vec<i64>>,
451 #[builder(default)]
452 pub gid: Option<i64>,
453 #[builder(default)]
454 pub uid: Option<i64>,
455 #[builder(default)]
456 pub username: Option<String>,
457}
458
459#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
461#[builder(setter(into))]
462pub struct Root {
463 pub path: String,
464 #[builder(default)]
465 pub readonly: Option<bool>,
466}
467
468#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
470#[builder(setter(into))]
471pub struct Solaris {
472 #[builder(default)]
473 pub anet: Option<Vec<Anet>>,
474 #[serde(rename = "cappedCPU")]
475 #[builder(default)]
476 pub capped_cpu: Option<CappedCpu>,
477 #[serde(rename = "cappedMemory")]
478 #[builder(default)]
479 pub capped_memory: Option<CappedMemory>,
480 #[builder(default)]
481 pub limitpriv: Option<String>,
482 #[serde(rename = "maxShmMemory")]
483 #[builder(default)]
484 pub max_shm_memory: Option<String>,
485 #[builder(default)]
486 pub milestone: Option<String>,
487}
488
489#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
490#[builder(setter(into))]
491pub struct Anet {
492 #[serde(rename = "allowedAddress")]
493 #[builder(default)]
494 pub allowed_address: Option<String>,
495 #[serde(rename = "configureAllowedAddress")]
496 #[builder(default)]
497 pub configure_allowed_address: Option<String>,
498 #[builder(default)]
499 pub defrouter: Option<String>,
500 #[builder(default)]
501 pub linkname: Option<String>,
502 #[serde(rename = "linkProtection")]
503 #[builder(default)]
504 pub link_protection: Option<String>,
505 #[serde(rename = "lowerLink")]
506 #[builder(default)]
507 pub lower_link: Option<String>,
508 #[serde(rename = "macAddress")]
509 #[builder(default)]
510 pub mac_address: Option<String>,
511}
512
513#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
514#[builder(setter(into))]
515pub struct CappedCpu {
516 #[builder(default)]
517 pub ncpus: Option<String>,
518}
519
520#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
521#[builder(setter(into))]
522pub struct CappedMemory {
523 #[builder(default)]
524 pub physical: Option<String>,
525 #[builder(default)]
526 pub swap: Option<String>,
527}
528
529#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
531#[builder(setter(into))]
532pub struct Vm {
533 #[builder(default)]
535 pub hypervisor: Option<Hypervisor>,
536 #[builder(default)]
538 pub image: Option<Image>,
539 pub kernel: Kernel,
541}
542
543#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
545#[builder(setter(into))]
546pub struct Hypervisor {
547 #[builder(default)]
548 pub parameters: Option<Vec<String>>,
549 pub path: String,
550}
551
552#[derive(Debug, Serialize, Deserialize, Clone, Builder, PartialEq)]
554#[builder(setter(into))]
555pub struct Image {
556 pub format: RootImageFormat,
557 pub path: String,
558}
559
560#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
562#[builder(setter(into))]
563pub struct Kernel {
564 #[builder(default)]
565 pub initrd: Option<String>,
566 #[builder(default)]
567 pub parameters: Option<Vec<String>>,
568 pub path: String,
569}
570
571#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
573#[builder(setter(into))]
574pub struct Windows {
575 #[serde(rename = "credentialSpec")]
576 #[builder(default)]
577 pub credential_spec: Option<HashMap<String, Option<serde_json::Value>>>,
578 #[builder(default)]
579 pub devices: Option<Vec<WindowsDevice>>,
580 #[builder(default)]
581 pub hyperv: Option<Hyperv>,
582 #[serde(rename = "ignoreFlushesDuringBoot")]
583 #[builder(default)]
584 pub ignore_flushes_during_boot: Option<bool>,
585 #[serde(rename = "layerFolders")]
586 pub layer_folders: Vec<String>,
587 #[builder(default)]
588 pub network: Option<WindowsNetwork>,
589 #[builder(default)]
590 pub resources: Option<WindowsResources>,
591 #[builder(default)]
592 pub servicing: Option<bool>,
593}
594
595#[derive(Debug, Serialize, Deserialize, Clone, Builder, PartialEq)]
596#[builder(setter(into))]
597pub struct WindowsDevice {
598 pub id: String,
599 #[serde(rename = "idType")]
600 pub id_type: IdType,
601}
602
603#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
604#[builder(setter(into))]
605pub struct Hyperv {
606 #[serde(rename = "utilityVMPath")]
607 #[builder(default)]
608 pub utility_vm_path: Option<String>,
609}
610
611#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
612#[builder(setter(into))]
613pub struct WindowsNetwork {
614 #[serde(rename = "allowUnqualifiedDNSQuery")]
615 #[builder(default)]
616 pub allow_unqualified_dns_query: Option<bool>,
617 #[serde(rename = "DNSSearchList")]
618 #[builder(default)]
619 pub dns_search_list: Option<Vec<String>>,
620 #[serde(rename = "endpointList")]
621 #[builder(default)]
622 pub endpoint_list: Option<Vec<String>>,
623 #[serde(rename = "networkNamespace")]
624 #[builder(default)]
625 pub network_namespace: Option<String>,
626 #[serde(rename = "networkSharedContainerName")]
627 #[builder(default)]
628 pub network_shared_container_name: Option<String>,
629}
630
631#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
632#[builder(setter(into))]
633pub struct WindowsResources {
634 #[builder(default)]
635 pub cpu: Option<FluffyCpu>,
636 #[builder(default)]
637 pub memory: Option<FluffyMemory>,
638 #[builder(default)]
639 pub storage: Option<Storage>,
640}
641
642#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
643#[builder(setter(into))]
644pub struct FluffyCpu {
645 #[builder(default)]
646 pub count: Option<i64>,
647 #[builder(default)]
648 pub maximum: Option<i64>,
649 #[builder(default)]
650 pub shares: Option<i64>,
651}
652
653#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
654#[builder(setter(into))]
655pub struct FluffyMemory {
656 #[builder(default)]
657 pub limit: Option<i64>,
658}
659
660#[derive(Debug, Serialize, Deserialize, Clone, Default, Builder, PartialEq)]
661#[builder(setter(into))]
662pub struct Storage {
663 #[builder(default)]
664 pub bps: Option<i64>,
665 #[builder(default)]
666 pub iops: Option<i64>,
667 #[serde(rename = "sandboxSize")]
668 #[builder(default)]
669 pub sandbox_size: Option<i64>,
670}
671
672#[derive(Debug, Serialize, Deserialize, Clone, Builder, PartialEq)]
674#[builder(setter(into))]
675pub struct StateSchema {
676 #[builder(default)]
677 pub annotations: Option<HashMap<String, Option<serde_json::Value>>>,
678 pub bundle: String,
679 pub id: String,
681 #[serde(rename = "ociVersion")]
682 pub oci_version: String,
683 #[builder(default)]
684 pub pid: Option<i64>,
685 pub status: Status,
686}
687
688#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
689pub enum NamespaceType {
690 #[serde(rename = "cgroup")]
691 Cgroup,
692 #[serde(rename = "ipc")]
693 Ipc,
694 #[serde(rename = "mount")]
695 Mount,
696 #[serde(rename = "network")]
697 Network,
698 #[serde(rename = "pid")]
699 Pid,
700 #[serde(rename = "user")]
701 User,
702 #[serde(rename = "uts")]
703 Uts,
704}
705
706#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
707pub enum RootfsPropagation {
708 #[serde(rename = "private")]
709 Private,
710 #[serde(rename = "shared")]
711 Shared,
712 #[serde(rename = "slave")]
713 Slave,
714 #[serde(rename = "unbindable")]
715 Unbindable,
716}
717
718#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
719pub enum SeccompArch {
720 #[serde(rename = "SCMP_ARCH_AARCH64")]
721 ScmpArchAarch64,
722 #[serde(rename = "SCMP_ARCH_ARM")]
723 ScmpArchArm,
724 #[serde(rename = "SCMP_ARCH_MIPS")]
725 ScmpArchMips,
726 #[serde(rename = "SCMP_ARCH_MIPS64")]
727 ScmpArchMips64,
728 #[serde(rename = "SCMP_ARCH_MIPS64N32")]
729 ScmpArchMips64N32,
730 #[serde(rename = "SCMP_ARCH_MIPSEL")]
731 ScmpArchMipsel,
732 #[serde(rename = "SCMP_ARCH_MIPSEL64")]
733 ScmpArchMipsel64,
734 #[serde(rename = "SCMP_ARCH_MIPSEL64N32")]
735 ScmpArchMipsel64N32,
736 #[serde(rename = "SCMP_ARCH_PARISC")]
737 ScmpArchParisc,
738 #[serde(rename = "SCMP_ARCH_PARISC64")]
739 ScmpArchParisc64,
740 #[serde(rename = "SCMP_ARCH_PPC")]
741 ScmpArchPpc,
742 #[serde(rename = "SCMP_ARCH_PPC64")]
743 ScmpArchPpc64,
744 #[serde(rename = "SCMP_ARCH_PPC64LE")]
745 ScmpArchPpc64Le,
746 #[serde(rename = "SCMP_ARCH_S390")]
747 ScmpArchS390,
748 #[serde(rename = "SCMP_ARCH_S390X")]
749 ScmpArchS390X,
750 #[serde(rename = "SCMP_ARCH_X32")]
751 ScmpArchX32,
752 #[serde(rename = "SCMP_ARCH_X86")]
753 ScmpArchX86,
754 #[serde(rename = "SCMP_ARCH_X86_64")]
755 ScmpArchX8664,
756}
757
758#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
759pub enum SeccompAction {
760 #[serde(rename = "SCMP_ACT_ALLOW")]
761 ScmpActAllow,
762 #[serde(rename = "SCMP_ACT_ERRNO")]
763 ScmpActErrno,
764 #[serde(rename = "SCMP_ACT_KILL")]
765 ScmpActKill,
766 #[serde(rename = "SCMP_ACT_TRACE")]
767 ScmpActTrace,
768 #[serde(rename = "SCMP_ACT_TRAP")]
769 ScmpActTrap,
770}
771
772#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
773pub enum SeccompOperators {
774 #[serde(rename = "SCMP_CMP_EQ")]
775 ScmpCmpEq,
776 #[serde(rename = "SCMP_CMP_GE")]
777 ScmpCmpGe,
778 #[serde(rename = "SCMP_CMP_GT")]
779 ScmpCmpGt,
780 #[serde(rename = "SCMP_CMP_LE")]
781 ScmpCmpLe,
782 #[serde(rename = "SCMP_CMP_LT")]
783 ScmpCmpLt,
784 #[serde(rename = "SCMP_CMP_MASKED_EQ")]
785 ScmpCmpMaskedEq,
786 #[serde(rename = "SCMP_CMP_NE")]
787 ScmpCmpNe,
788}
789
790#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
791pub enum RootImageFormat {
792 #[serde(rename = "qcow2")]
793 Qcow2,
794 #[serde(rename = "raw")]
795 Raw,
796 #[serde(rename = "vdi")]
797 Vdi,
798 #[serde(rename = "vhd")]
799 Vhd,
800 #[serde(rename = "vmdk")]
801 Vmdk,
802}
803
804#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
805pub enum IdType {
806 #[serde(rename = "class")]
807 Class,
808}
809
810#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
811pub enum Status {
812 #[serde(rename = "created")]
813 Created,
814 #[serde(rename = "creating")]
815 Creating,
816 #[serde(rename = "running")]
817 Running,
818 #[serde(rename = "stopped")]
819 Stopped,
820}