tapis_workflows/models/
req_function_task.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14use serde_with::serde_as;
15
16#[serde_as]
17#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
18pub struct ReqFunctionTask {
19 #[serde(rename = "id")]
20 pub id: String,
21 #[serde(rename = "type")]
22 pub r#type: models::EnumTaskType,
23 #[serde(rename = "depends_on", skip_serializing_if = "Option::is_none")]
24 pub depends_on: Option<Vec<models::TaskDependency>>,
25 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
26 pub description: Option<String>,
27 #[serde(rename = "execution_profile", skip_serializing_if = "Option::is_none")]
28 pub execution_profile: Option<Box<models::TaskExecutionProfile>>,
29 #[serde(rename = "input", skip_serializing_if = "Option::is_none")]
30 pub input: Option<std::collections::HashMap<String, models::SpecWithValue>>,
31 #[serde(rename = "output", skip_serializing_if = "Option::is_none")]
32 pub output: Option<std::collections::HashMap<String, models::OutputValue>>,
33 #[serde(rename = "conditions", skip_serializing_if = "Option::is_none")]
34 pub conditions: Option<Vec<std::collections::HashMap<String, serde_json::Value>>>,
35 #[serde(rename = "git_repositories", skip_serializing_if = "Option::is_none")]
36 pub git_repositories: Option<Vec<models::GitCloneDetails>>,
37 #[serde(rename = "runtime")]
38 pub runtime: models::EnumRuntimeEnvironment,
39 #[serde(rename = "installer")]
40 pub installer: models::EnumInstaller,
41 #[serde(rename = "command", skip_serializing_if = "Option::is_none")]
42 pub command: Option<String>,
43 #[serde(rename = "entrypoint", skip_serializing_if = "Option::is_none")]
44 pub entrypoint: Option<String>,
45 #[serde_as(as = "Option<serde_with::base64::Base64>")]
46 #[serde(rename = "code", skip_serializing_if = "Option::is_none")]
47 pub code: Option<Vec<u8>>,
48 #[serde(rename = "packages", skip_serializing_if = "Option::is_none")]
49 pub packages: Option<Vec<String>>,
50}
51
52impl ReqFunctionTask {
53 pub fn new(
54 id: String,
55 r#type: models::EnumTaskType,
56 runtime: models::EnumRuntimeEnvironment,
57 installer: models::EnumInstaller,
58 ) -> ReqFunctionTask {
59 ReqFunctionTask {
60 id,
61 r#type,
62 depends_on: None,
63 description: None,
64 execution_profile: None,
65 input: None,
66 output: None,
67 conditions: None,
68 git_repositories: None,
69 runtime,
70 installer,
71 command: None,
72 entrypoint: None,
73 code: None,
74 packages: None,
75 }
76 }
77}