#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Service {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "description")]
pub description: String,
#[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
#[serde(rename = "requires", skip_serializing_if = "Option::is_none")]
pub requires: Option<Vec<Requires>>,
#[serde(rename = "bindable")]
pub bindable: bool,
#[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Value>,
#[serde(rename = "dashboard_client", skip_serializing_if = "Option::is_none")]
pub dashboard_client: Option<Box<crate::models::DashboardClient>>,
#[serde(rename = "binding_rotatable", skip_serializing_if = "Option::is_none")]
pub binding_rotatable: Option<bool>,
#[serde(rename = "plan_updateable", skip_serializing_if = "Option::is_none")]
pub plan_updateable: Option<bool>,
#[serde(rename = "plans")]
pub plans: Vec<crate::models::Plan>,
}
impl Service {
pub fn new(name: String, id: String, description: String, bindable: bool, plans: Vec<crate::models::Plan>) -> Service {
Service {
name,
id,
description,
tags: None,
requires: None,
bindable,
metadata: None,
dashboard_client: None,
binding_rotatable: None,
plan_updateable: None,
plans,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Requires {
#[serde(rename = "syslog_drain")]
SyslogDrain,
#[serde(rename = "route_forwarding")]
RouteForwarding,
#[serde(rename = "volume_mount")]
VolumeMount,
}