tapis_workflows/models/
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 FunctionTask {
19 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
20 pub id: Option<String>,
21 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
22 pub r#type: Option<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", skip_serializing_if = "Option::is_none")]
38 pub runtime: Option<models::EnumRuntimeEnvironment>,
39 #[serde(rename = "installer", skip_serializing_if = "Option::is_none")]
40 pub installer: Option<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 FunctionTask {
53 pub fn new() -> FunctionTask {
54 FunctionTask {
55 id: None,
56 r#type: None,
57 depends_on: None,
58 description: None,
59 execution_profile: None,
60 input: None,
61 output: None,
62 conditions: None,
63 git_repositories: None,
64 runtime: None,
65 installer: None,
66 command: None,
67 entrypoint: None,
68 code: None,
69 packages: None,
70 }
71 }
72}