1use 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 ReqPatchTask {
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 = "builder", skip_serializing_if = "Option::is_none")]
36 pub builder: Option<models::EnumBuilder>,
37 #[serde(rename = "cache", skip_serializing_if = "Option::is_none")]
38 pub cache: Option<bool>,
39 #[serde(rename = "context", skip_serializing_if = "Option::is_none")]
40 pub context: Option<Box<models::Context>>,
41 #[serde(rename = "destination", skip_serializing_if = "Option::is_none")]
42 pub destination: Option<Box<models::Destination>>,
43 #[serde(rename = "auth", skip_serializing_if = "Option::is_none")]
44 pub auth: Option<serde_json::Value>,
45 #[serde(rename = "data", skip_serializing_if = "Option::is_none")]
46 pub data: Option<serde_json::Value>,
47 #[serde(rename = "headers", skip_serializing_if = "Option::is_none")]
48 pub headers: Option<serde_json::Value>,
49 #[serde(rename = "http_method", skip_serializing_if = "Option::is_none")]
50 pub http_method: Option<models::EnumHttpMethod>,
51 #[serde(rename = "query_params", skip_serializing_if = "Option::is_none")]
52 pub query_params: Option<serde_json::Value>,
53 #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
54 pub url: Option<String>,
55 #[serde(rename = "image", skip_serializing_if = "Option::is_none")]
56 pub image: Option<String>,
57 #[serde(rename = "poll", skip_serializing_if = "Option::is_none")]
58 pub poll: Option<bool>,
59 #[serde(rename = "tapis_job_def", skip_serializing_if = "Option::is_none")]
60 pub tapis_job_def: Option<serde_json::Value>,
61 #[serde(rename = "tapis_actor_id", skip_serializing_if = "Option::is_none")]
62 pub tapis_actor_id: Option<String>,
63 #[serde(
64 rename = "tapis_actor_message",
65 default,
66 with = "::serde_with::rust::double_option",
67 skip_serializing_if = "Option::is_none"
68 )]
69 pub tapis_actor_message: Option<Option<String>>,
70 #[serde(rename = "git_repositories", skip_serializing_if = "Option::is_none")]
71 pub git_repositories: Option<Vec<models::GitCloneDetails>>,
72 #[serde(rename = "runtime", skip_serializing_if = "Option::is_none")]
73 pub runtime: Option<models::EnumRuntimeEnvironment>,
74 #[serde(rename = "installer", skip_serializing_if = "Option::is_none")]
75 pub installer: Option<models::EnumInstaller>,
76 #[serde(rename = "command", skip_serializing_if = "Option::is_none")]
77 pub command: Option<String>,
78 #[serde(rename = "entrypoint", skip_serializing_if = "Option::is_none")]
79 pub entrypoint: Option<String>,
80 #[serde_as(as = "Option<serde_with::base64::Base64>")]
81 #[serde(rename = "code", skip_serializing_if = "Option::is_none")]
82 pub code: Option<Vec<u8>>,
83 #[serde(rename = "packages", skip_serializing_if = "Option::is_none")]
84 pub packages: Option<Vec<String>>,
85 #[serde(rename = "uses", skip_serializing_if = "Option::is_none")]
86 pub uses: Option<Box<models::Uses>>,
87}
88
89impl ReqPatchTask {
90 pub fn new() -> ReqPatchTask {
91 ReqPatchTask {
92 id: None,
93 r#type: None,
94 depends_on: None,
95 description: None,
96 execution_profile: None,
97 input: None,
98 output: None,
99 conditions: None,
100 builder: None,
101 cache: None,
102 context: None,
103 destination: None,
104 auth: None,
105 data: None,
106 headers: None,
107 http_method: None,
108 query_params: None,
109 url: None,
110 image: None,
111 poll: None,
112 tapis_job_def: None,
113 tapis_actor_id: None,
114 tapis_actor_message: None,
115 git_repositories: None,
116 runtime: None,
117 installer: None,
118 command: None,
119 entrypoint: None,
120 code: None,
121 packages: None,
122 uses: None,
123 }
124 }
125}