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}