1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
use std::collections::HashMap;
use serde::{Deserialize, Serialize};
use crate::models::affinity::Affinity;
use crate::models::constraint::Constraint;
use crate::models::ephemeral_disk::EphemeralDisk;
use crate::models::migrate_strategy::MigrateStrategy;
use crate::models::network_resource::NetworkResource;
use crate::models::reschedule_policy::ReschedulePolicy;
use crate::models::restart_policy::RestartPolicy;
use crate::models::scaling_policy::ScalingPolicy;
use crate::models::service::Service;
use crate::models::spread::Spread;
use crate::models::task::Task;
use crate::models::update_strategy::UpdateStrategy;
use crate::models::volume_request::VolumeRequest;
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct TaskGroup {
pub name: Option<String>,
pub count: Option<i32>,
pub constraints: Option<Vec<Constraint>>,
pub affinities: Option<Vec<Affinity>>,
pub tasks: Option<Vec<Task>>,
pub spreads: Option<Vec<Spread>>,
pub volumes: Option<HashMap<String, VolumeRequest>>,
pub restart_policy: Option<RestartPolicy>,
pub reschedule_policy: Option<ReschedulePolicy>,
pub ephemeral_disk: Option<EphemeralDisk>,
pub update: Option<UpdateStrategy>,
pub migrate: Option<MigrateStrategy>,
pub networks: Option<Vec<NetworkResource>>,
pub meta: Option<HashMap<String, String>>,
pub services: Option<Vec<Service>>,
pub shutdown_delay: Option<i64>,
pub scaling: Option<ScalingPolicy>,
pub stop_after_client_disconnect: Option<i64>,
pub max_client_disconnect: Option<i64>,
}