Skip to main content

tapis_workflows/models/
req_function_task.rs

1/*
2 * Tapis Workflows API
3 *
4 * Create and manage pipelines
5 *
6 * The version of the OpenAPI document: 1.6.0
7 * Contact: cicsupport@tacc.utexas.edu
8 * Generated by: https://openapi-generator.tech
9 */
10
11use 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}