2 * Copyright (c) 2015 Brocade Communications Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 module neutron-lbaasv2 {
12 namespace "urn:opendaylight:neutron-lbaasv2";
14 prefix neutron-lbaasv2;
16 import ietf-yang-types { prefix "yang"; }
17 // It requires rfc6991 (revision 2013-07-15), but odl don't have it, so this patch verify build will fail.
18 import ietf-inet-types { prefix "inet"; revision-date 2010-09-24; }
19 import neutron-attrs { prefix "attrs"; }
20 import neutron-constants { prefix "constants"; }
22 organization "OpenDaylight Neutron Group";
24 contact "Kiran Sreenivasa <kkoushik@brocade.com>";
26 description "This YANG module defines OpenStack Neutron LBaaSV2.0 modules";
28 revision "2015-07-12" {
30 "OpenDaylight Beryllium release";
33 grouping loadbalancer-attributes {
34 description "LBaaSV2.0 load balancer attributes.";
37 description "Load balancer description.";
42 description "The IP address of the VIP.";
46 description "The ID of the subnet on which to allocate the VIP address.";
49 grouping listener-attributes {
50 description "LBaaSV2.0 listener attributes.";
51 leaf default-pool-id {
53 description "ID of default pool. Must have compatible protocol with listener.";
57 description "The administrative state of the listener, which is up (true) or
63 description "Detailed description of the listener.";
66 description "The protocol the front end listens for.";
68 base "constants:protocol-base";
72 description "The port on which the front end listens.";
77 leaf-list loadbalancers {
79 description "List of loadbalancers on which this listener is provisioned.";
81 leaf connection-limit {
82 description "Maximum connections this load balancer can have. Default is infinite.";
89 grouping pool-attributes {
92 description "The administrative state of the pool, which is up (true) or
97 description "Detailed description of the listener.";
100 description "The protocol the front end listens for.";
102 base "constants:protocol-base";
107 description "The load-balancer algorithm, which is round-robin,
108 least-connections, and so on. This value, which must be supported,
109 is dependent on the load-balancer provider. Round-robin
112 leaf healthmonitor-id {
114 description "List of healthmonitors associated with this pool.";
116 leaf-list listeners {
118 description "List of listeners that belong to the pool.";
120 container session-persistence {
121 description "The session persistence algorithm. This algorithm is a
122 dictionary with type and cookie_name keys.";
125 description "Cookie Name.";
129 description "Cookie type.";
133 grouping member-attributes {
136 description "The unique ID for the member.";
140 description "Owner of the member. Only an administrative user can specify
141 a tenant ID other than its own.";
145 description "Subnet in which to access this member.";
148 type inet:ip-address;
149 description "The IP address of the member.";
152 description "The port on which the application is hosted.";
158 description "Weight of member.";
164 leaf admin-state-up {
166 description "The administrative state of the member, which is up (true) or
171 grouping healthmonitor-attributes {
174 description "The unique ID for the healthmonitor.";
178 description "Owner of the VIP. Only an administrative user can specify
179 a tenant ID other than its own.";
182 description "The type of probe, which is PING, TCP, HTTP, or HTTPS, that
183 is sent by the load balancer to verify the member state.";
185 base "constants:probe-base";
188 leaf admin-state-up {
190 description "The administrative state of the VPI, which is up (true) or
195 description "The time, in seconds, between sending probes to members.";
199 description "The maximum number of seconds for a monitor to wait for a
200 connection to be established before it times out. This value must be
201 less than the delay value.";
205 description "Number of allowed connection failures before changing the
206 status of the member to INACTIVE.";
213 description "The HTTP method that the monitor uses for requests.";
218 description "The HTTP path of the request sent by the monitor to test
219 the health of a member. Must be a string beginning with a forward
222 leaf expected-codes {
224 description "Expected HTTP codes for a passing HTTP(S) monitor.";
229 description "List of pools associated with this healthmonitor.";
232 grouping lbaas-attributes {
233 container loadbalancers {
234 description "Container for Loadbalancers.";
237 uses attrs:base-attributes;
238 uses attrs:admin-attributes;
239 uses loadbalancer-attributes;
240 description "List of Loadbalancers.";
243 container listeners {
244 description "Container for Listeners.";
247 uses attrs:base-attributes;
248 uses listener-attributes;
249 description "List of Listeners";
253 description "Container for LBaaSV2.0 pools.";
256 uses attrs:base-attributes;
257 uses pool-attributes;
258 description "List of Pools";
260 description "Container for pool members.";
263 uses member-attributes;
264 description "List of members.";
269 container healthmonitors {
270 description "Container for LBaaSV2.0 healthmonitors.";
273 uses healthmonitor-attributes;
274 description "List of healthmonitors.";