dtz_containers/models/
job_response.rs1#[allow(unused_imports)]
11use crate::models;
12#[allow(unused_imports)]
13use serde::{Deserialize, Serialize};
14
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct JobResponse {
17 #[serde(rename = "id")]
18 pub id: dtz_identifier::JobId,
19 #[serde(rename = "name")]
20 pub name: String,
21 #[serde(rename = "containerImage")]
22 pub container_image: String,
23 #[serde(rename = "containerPullUser", skip_serializing_if = "Option::is_none")]
24 pub container_pull_user: Option<String>,
25 #[serde(rename = "containerPullPwd", skip_serializing_if = "Option::is_none")]
26 pub container_pull_pwd: Option<String>,
27 #[serde(rename = "scheduleType")]
28 pub schedule_type: ScheduleType,
29 #[serde(rename = "scheduleRepeat", skip_serializing_if = "Option::is_none")]
31 pub schedule_repeat: Option<String>,
32 #[serde(rename = "scheduleCron", skip_serializing_if = "Option::is_none")]
33 pub schedule_cron: Option<String>,
34 #[serde(rename = "envVariables", skip_serializing_if = "Option::is_none")]
35 pub env_variables: Option<std::collections::HashMap<String, models::JobResponseEnvVariablesValue>>,
36 #[serde(rename = "mounts", skip_serializing_if = "Option::is_none")]
37 pub mounts: Option<Vec<models::VolumeMount>>,
38}
39
40impl JobResponse {
41 pub fn new(id: dtz_identifier::JobId, name: String, container_image: String, schedule_type: ScheduleType) -> JobResponse {
42 JobResponse {
43 id,
44 name,
45 container_image,
46 container_pull_user: None,
47 container_pull_pwd: None,
48 schedule_type,
49 schedule_repeat: None,
50 schedule_cron: None,
51 env_variables: None,
52 mounts: None,
53 }
54 }
55}
56#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
58pub enum ScheduleType {
59 #[serde(rename = "relaxed")]
60 Relaxed,
61 #[serde(rename = "precise")]
62 Precise,
63 #[serde(rename = "none")]
64 None,
65}
66
67impl Default for ScheduleType {
68 fn default() -> ScheduleType {
69 Self::Relaxed
70 }
71}
72