hcloud/models/
create_load_balancer_request.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct CreateLoadBalancerRequest {
17 #[serde(rename = "algorithm", skip_serializing_if = "Option::is_none")]
18 pub algorithm: Option<Box<models::LoadBalancerAlgorithm>>,
19 #[serde(rename = "labels", skip_serializing_if = "Option::is_none")]
21 pub labels: Option<std::collections::HashMap<String, String>>,
22 #[serde(rename = "load_balancer_type")]
24 pub load_balancer_type: String,
25 #[serde(rename = "location", skip_serializing_if = "Option::is_none")]
27 pub location: Option<String>,
28 #[serde(rename = "name")]
30 pub name: String,
31 #[serde(rename = "network", skip_serializing_if = "Option::is_none")]
33 pub network: Option<i64>,
34 #[serde(rename = "network_zone", skip_serializing_if = "Option::is_none")]
36 pub network_zone: Option<String>,
37 #[serde(rename = "public_interface", skip_serializing_if = "Option::is_none")]
39 pub public_interface: Option<bool>,
40 #[serde(rename = "services", skip_serializing_if = "Option::is_none")]
42 pub services: Option<Vec<models::LoadBalancerService>>,
43 #[serde(rename = "targets", skip_serializing_if = "Option::is_none")]
45 pub targets: Option<Vec<models::LoadBalancerAddTarget>>,
46}
47
48impl CreateLoadBalancerRequest {
49 pub fn new(load_balancer_type: String, name: String) -> CreateLoadBalancerRequest {
51 CreateLoadBalancerRequest {
52 algorithm: None,
53 labels: None,
54 load_balancer_type,
55 location: None,
56 name,
57 network: None,
58 network_zone: None,
59 public_interface: None,
60 services: None,
61 targets: None,
62 }
63 }
64}