openstack_types/load_balancer/v2/loadbalancer/response/list.rs
1// Licensed under the Apache License, Version 2.0 (the "License");
2// you may not use this file except in compliance with the License.
3// You may obtain a copy of the License at
4//
5// http://www.apache.org/licenses/LICENSE-2.0
6//
7// Unless required by applicable law or agreed to in writing, software
8// distributed under the License is distributed on an "AS IS" BASIS,
9// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10// See the License for the specific language governing permissions and
11// limitations under the License.
12//
13// SPDX-License-Identifier: Apache-2.0
14//
15// WARNING: This file is automatically generated from OpenAPI schema using
16// `openstack-codegenerator`.
17//! Response type for the GET `lbaas/loadbalancers` operation
18
19use serde::{Deserialize, Serialize};
20use structable::{StructTable, StructTableOptions};
21
22/// Loadbalancer response representation
23#[derive(Clone, Deserialize, Serialize, StructTable)]
24pub struct LoadbalancerResponse {
25 /// A list of JSON objects defining “additional VIPs”. The format for these
26 /// is `{"subnet_id": <subnet_id>, "ip_address": <ip_address>}`, where the
27 /// `subnet_id` field is mandatory and the `ip_address` field is optional.
28 /// Additional VIP subnets must all belong to the same network as the
29 /// primary VIP.
30 ///
31 /// **New in version 2.26**
32 #[serde(default)]
33 #[structable(optional, serialize, wide)]
34 pub additional_vips: Option<Vec<AdditionalVips>>,
35
36 /// The administrative state of the resource, which is up (`true`) or down
37 /// (`false`).
38 #[serde(default)]
39 #[structable(optional, wide)]
40 pub admin_state_up: Option<bool>,
41
42 /// An availability zone name.
43 #[serde(default)]
44 #[structable(optional, wide)]
45 pub availability_zone: Option<String>,
46
47 /// The UTC date and timestamp when the resource was created.
48 #[serde(default)]
49 #[structable(optional)]
50 pub created_at: Option<String>,
51
52 /// A human-readable description for the resource.
53 #[serde(default)]
54 #[structable(optional, wide)]
55 pub description: Option<String>,
56
57 /// The ID of the flavor.
58 #[serde(default)]
59 #[structable(optional, wide)]
60 pub flavor_id: Option<String>,
61
62 /// The ID of the load balancer.
63 #[serde(default)]
64 #[structable(optional)]
65 pub id: Option<String>,
66
67 /// The associated listener IDs, if any.
68 #[serde(default)]
69 #[structable(optional, serialize, wide)]
70 pub listeners: Option<Vec<Listeners>>,
71
72 /// Human-readable name of the resource.
73 #[serde(default)]
74 #[structable(optional)]
75 pub name: Option<String>,
76
77 /// The operating status of the resource. See
78 /// [Operating Status Codes](#op-status).
79 #[serde(default)]
80 #[structable(optional, status)]
81 pub operating_status: Option<String>,
82
83 /// The associated pool IDs, if any.
84 #[serde(default)]
85 #[structable(optional, serialize, wide)]
86 pub pools: Option<Vec<Pools>>,
87
88 /// The ID of the project owning this resource.
89 #[serde(default)]
90 #[structable(optional, wide)]
91 pub project_id: Option<String>,
92
93 /// Provider name for the load balancer.
94 #[serde(default)]
95 #[structable(optional, wide)]
96 pub provider: Option<String>,
97
98 /// The provisioning status of the resource. See
99 /// [Provisioning Status Codes](#prov-status).
100 #[serde(default)]
101 #[structable(optional, wide)]
102 pub provisioning_status: Option<String>,
103
104 /// A list of simple strings assigned to the resource.
105 ///
106 /// **New in version 2.5**
107 #[serde(default)]
108 #[structable(optional, serialize, wide)]
109 pub tags: Option<Vec<String>>,
110
111 #[serde(default)]
112 #[structable(optional, wide)]
113 pub tenant_id: Option<String>,
114
115 /// The UTC date and timestamp when the resource was last updated.
116 #[serde(default)]
117 #[structable(optional)]
118 pub updated_at: Option<String>,
119
120 /// The IP address of the Virtual IP (VIP).
121 #[serde(default)]
122 #[structable(optional, wide)]
123 pub vip_address: Option<String>,
124
125 /// The ID of the network for the Virtual IP (VIP).
126 #[serde(default)]
127 #[structable(optional, wide)]
128 pub vip_network_id: Option<String>,
129
130 /// The ID of the Virtual IP (VIP) port.
131 #[serde(default)]
132 #[structable(optional, wide)]
133 pub vip_port_id: Option<String>,
134
135 /// The ID of the QoS Policy which will apply to the Virtual IP (VIP).
136 #[serde(default)]
137 #[structable(optional, wide)]
138 pub vip_qos_policy_id: Option<String>,
139
140 /// The list of Security Group IDs of the Virtual IP (VIP) port of the Load
141 /// Balancer.
142 ///
143 /// **New in version 2.29**
144 #[serde(default)]
145 #[structable(optional, serialize, wide)]
146 pub vip_sg_ids: Option<Vec<String>>,
147
148 /// The ID of the subnet for the Virtual IP (VIP).
149 #[serde(default)]
150 #[structable(optional, wide)]
151 pub vip_subnet_id: Option<String>,
152
153 /// The VIP vNIC type used for the load balancer. One of `normal` or
154 /// `direct`.
155 ///
156 /// **New in version 2.28**
157 #[serde(default)]
158 #[structable(optional, wide)]
159 pub vip_vnic_type: Option<String>,
160}
161
162/// Type for additional vips
163/// `AdditionalVips` type
164#[derive(Clone, Debug, Deserialize, Serialize)]
165pub struct AdditionalVips {
166 #[serde(default)]
167 pub ip_address: Option<String>,
168 #[serde(default)]
169 pub port_id: Option<String>,
170 pub subnet_id: String,
171}
172
173/// Base type for complex types
174/// `Listeners` type
175#[derive(Clone, Debug, Deserialize, Serialize)]
176pub struct Listeners {
177 pub id: String,
178}
179
180/// Base type for complex types
181/// `Pools` type
182#[derive(Clone, Debug, Deserialize, Serialize)]
183pub struct Pools {
184 pub id: String,
185}