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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/*
* Proxmox Virtual Environment API
*
* Generated from apidoc.js. NOT an official Proxmox specification. See https://pve.proxmox.com/pve-docs/api-viewer/ for the upstream documentation.
*
* The version of the OpenAPI document: 9.x
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ClusterHaCreateGroupsRequest {
/// Description.
#[serde(rename = "comment", skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
/// The HA group identifier.
#[serde(rename = "group")]
pub group: String,
/// List of cluster node members, where a priority can be given to each node. A resource will run on the available nodes with the highest priority. If there are more nodes in the highest priority class, the resources will get distributed to those nodes. The priorities have a relative meaning only. The higher the number, the higher the priority.
#[serde(rename = "nodes")]
pub nodes: String,
/// The CRM tries to run services on the node with the highest priority. If a node with higher priority comes online, the CRM migrates the service to that node. Enabling nofailback prevents that behavior.
#[serde(rename = "nofailback", skip_serializing_if = "Option::is_none")]
pub nofailback: Option<models::PveBoolean>,
/// Resources bound to restricted groups may only run on nodes defined by the group. The resource will be placed in the stopped state if no group node member is online. Resources on unrestricted groups may run on any cluster node if all group members are offline, but they will migrate back as soon as a group member comes online. One can implement a 'preferred node' behavior using an unrestricted group with only one member.
#[serde(rename = "restricted", skip_serializing_if = "Option::is_none")]
pub restricted: Option<models::PveBoolean>,
/// Group type.
#[serde(rename = "type", skip_serializing_if = "Option::is_none")]
pub r#type: Option<models::PveClusterHaTypeEnum>,
}
impl ClusterHaCreateGroupsRequest {
pub fn new(group: String, nodes: String) -> ClusterHaCreateGroupsRequest {
ClusterHaCreateGroupsRequest {
comment: None,
group,
nodes,
nofailback: None,
restricted: None,
r#type: None,
}
}
}