tapis_apps/models/
job_attributes.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct JobAttributes {
16 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
17 pub description: Option<String>,
18 #[serde(rename = "dynamicExecSystem", skip_serializing_if = "Option::is_none")]
19 pub dynamic_exec_system: Option<bool>,
20 #[serde(
21 rename = "execSystemConstraints",
22 skip_serializing_if = "Option::is_none"
23 )]
24 pub exec_system_constraints: Option<Vec<String>>,
25 #[serde(rename = "execSystemId", skip_serializing_if = "Option::is_none")]
26 pub exec_system_id: Option<String>,
27 #[serde(rename = "execSystemExecDir", skip_serializing_if = "Option::is_none")]
28 pub exec_system_exec_dir: Option<String>,
29 #[serde(rename = "execSystemInputDir", skip_serializing_if = "Option::is_none")]
30 pub exec_system_input_dir: Option<String>,
31 #[serde(
32 rename = "execSystemOutputDir",
33 skip_serializing_if = "Option::is_none"
34 )]
35 pub exec_system_output_dir: Option<String>,
36 #[serde(rename = "dtnSystemInputDir", skip_serializing_if = "Option::is_none")]
37 pub dtn_system_input_dir: Option<String>,
38 #[serde(rename = "dtnSystemOutputDir", skip_serializing_if = "Option::is_none")]
39 pub dtn_system_output_dir: Option<String>,
40 #[serde(
41 rename = "execSystemLogicalQueue",
42 skip_serializing_if = "Option::is_none"
43 )]
44 pub exec_system_logical_queue: Option<String>,
45 #[serde(rename = "archiveSystemId", skip_serializing_if = "Option::is_none")]
46 pub archive_system_id: Option<String>,
47 #[serde(rename = "archiveSystemDir", skip_serializing_if = "Option::is_none")]
48 pub archive_system_dir: Option<String>,
49 #[serde(rename = "archiveOnAppError", skip_serializing_if = "Option::is_none")]
50 pub archive_on_app_error: Option<bool>,
51 #[serde(rename = "archiveMode", skip_serializing_if = "Option::is_none")]
52 pub archive_mode: Option<models::ArchiveModeEnum>,
53 #[serde(rename = "isMpi", skip_serializing_if = "Option::is_none")]
54 pub is_mpi: Option<bool>,
55 #[serde(rename = "mpiCmd", skip_serializing_if = "Option::is_none")]
56 pub mpi_cmd: Option<String>,
57 #[serde(rename = "cmdPrefix", skip_serializing_if = "Option::is_none")]
58 pub cmd_prefix: Option<String>,
59 #[serde(rename = "parameterSet", skip_serializing_if = "Option::is_none")]
60 pub parameter_set: Option<Box<models::ParameterSet>>,
61 #[serde(rename = "fileInputs", skip_serializing_if = "Option::is_none")]
62 pub file_inputs: Option<Vec<models::AppFileInput>>,
63 #[serde(rename = "fileInputArrays", skip_serializing_if = "Option::is_none")]
64 pub file_input_arrays: Option<Vec<models::AppFileInputArray>>,
65 #[serde(rename = "nodeCount", skip_serializing_if = "Option::is_none")]
66 pub node_count: Option<i32>,
67 #[serde(rename = "coresPerNode", skip_serializing_if = "Option::is_none")]
68 pub cores_per_node: Option<i32>,
69 #[serde(rename = "memoryMB", skip_serializing_if = "Option::is_none")]
70 pub memory_mb: Option<i32>,
71 #[serde(rename = "maxMinutes", skip_serializing_if = "Option::is_none")]
72 pub max_minutes: Option<i32>,
73 #[serde(rename = "subscriptions", skip_serializing_if = "Option::is_none")]
74 pub subscriptions: Option<Vec<models::ReqSubscribe>>,
75 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
76 pub tags: Option<Vec<String>>,
77}
78
79impl JobAttributes {
80 pub fn new() -> JobAttributes {
81 JobAttributes {
82 description: None,
83 dynamic_exec_system: None,
84 exec_system_constraints: None,
85 exec_system_id: None,
86 exec_system_exec_dir: None,
87 exec_system_input_dir: None,
88 exec_system_output_dir: None,
89 dtn_system_input_dir: None,
90 dtn_system_output_dir: None,
91 exec_system_logical_queue: None,
92 archive_system_id: None,
93 archive_system_dir: None,
94 archive_on_app_error: None,
95 archive_mode: None,
96 is_mpi: None,
97 mpi_cmd: None,
98 cmd_prefix: None,
99 parameter_set: None,
100 file_inputs: None,
101 file_input_arrays: None,
102 node_count: None,
103 cores_per_node: None,
104 memory_mb: None,
105 max_minutes: None,
106 subscriptions: None,
107 tags: None,
108 }
109 }
110}