dtz_containers/models/
create_job_request.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 CreateJobRequest {
17 #[serde(rename = "name")]
18 pub name: String,
19 #[serde(rename = "containerImage")]
20 pub container_image: String,
21 #[serde(rename = "containerPullUser", skip_serializing_if = "Option::is_none")]
22 pub container_pull_user: Option<String>,
23 #[serde(rename = "containerPullPwd", skip_serializing_if = "Option::is_none")]
24 pub container_pull_pwd: Option<String>,
25 #[serde(rename = "scheduleType")]
26 pub schedule_type: ScheduleType,
27 #[serde(rename = "scheduleCron", skip_serializing_if = "Option::is_none")]
28 pub schedule_cron: Option<String>,
29 #[serde(rename = "scheduleRepeat", skip_serializing_if = "Option::is_none")]
31 pub schedule_repeat: Option<String>,
32 #[serde(rename = "envVariables", skip_serializing_if = "Option::is_none")]
33 pub env_variables: Option<std::collections::HashMap<String, models::CreateJobRequestEnvVariablesValue>>,
34 #[serde(rename = "mounts", skip_serializing_if = "Option::is_none")]
35 pub mounts: Option<Vec<models::VolumeMount>>,
36}
37
38impl CreateJobRequest {
39 pub fn new(name: String, container_image: String, schedule_type: ScheduleType) -> CreateJobRequest {
40 CreateJobRequest {
41 name,
42 container_image,
43 container_pull_user: None,
44 container_pull_pwd: None,
45 schedule_type,
46 schedule_cron: None,
47 schedule_repeat: None,
48 env_variables: None,
49 mounts: None,
50 }
51 }
52}
53#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
55pub enum ScheduleType {
56 #[serde(rename = "relaxed")]
57 Relaxed,
58 #[serde(rename = "precise")]
59 Precise,
60 #[serde(rename = "none")]
61 None,
62}
63
64impl Default for ScheduleType {
65 fn default() -> ScheduleType {
66 Self::Relaxed
67 }
68}
69