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 "The IP address of the VIP.";
41 description "The ID of the subnet on which to allocate the VIP address.";
44 grouping listener-attributes {
45 description "LBaaSV2.0 listener attributes.";
46 leaf default-pool-id {
48 description "ID of default pool. Must have compatible protocol with listener.";
52 description "The administrative state of the listener, which is up (true) or
57 description "The protocol the front end listens for.";
59 base "constants:protocol-base";
63 description "The port on which the front end listens.";
68 leaf-list loadbalancers {
70 description "List of loadbalancers on which this listener is provisioned.";
72 leaf connection-limit {
73 description "Maximum connections this load balancer can have. Default is infinite.";
80 grouping pool-attributes {
83 description "The administrative state of the pool, which is up (true) or
87 description "The protocol the front end listens for.";
89 base "constants:protocol-base";
94 description "The load-balancer algorithm, which is round-robin,
95 least-connections, and so on. This value, which must be supported,
96 is dependent on the load-balancer provider. Round-robin
99 leaf healthmonitor-id {
101 description "List of healthmonitors associated with this pool.";
103 leaf-list listeners {
105 description "List of listeners that belong to the pool.";
107 container session-persistence {
108 description "The session persistence algorithm. This algorithm is a
109 dictionary with type and cookie_name keys.";
112 description "Cookie Name.";
116 description "Cookie type.";
120 grouping member-attributes {
123 description "The unique ID for the member.";
127 description "Owner of the member. Only an administrative user can specify
128 a tenant ID other than its own.";
132 description "Subnet in which to access this member.";
135 type inet:ip-address;
136 description "The IP address of the member.";
139 description "The port on which the application is hosted.";
145 description "Weight of member.";
151 leaf admin-state-up {
153 description "The administrative state of the member, which is up (true) or
158 grouping healthmonitor-attributes {
161 description "The unique ID for the healthmonitor.";
165 description "Owner of the VIP. Only an administrative user can specify
166 a tenant ID other than its own.";
169 description "The type of probe, which is PING, TCP, HTTP, or HTTPS, that
170 is sent by the load balancer to verify the member state.";
172 base "constants:probe-base";
175 leaf admin-state-up {
177 description "The administrative state of the VPI, which is up (true) or
182 description "The time, in seconds, between sending probes to members.";
186 description "The maximum number of seconds for a monitor to wait for a
187 connection to be established before it times out. This value must be
188 less than the delay value.";
192 description "Number of allowed connection failures before changing the
193 status of the member to INACTIVE.";
200 description "The HTTP method that the monitor uses for requests.";
205 description "The HTTP path of the request sent by the monitor to test
206 the health of a member. Must be a string beginning with a forward
209 leaf expected-codes {
211 description "Expected HTTP codes for a passing HTTP(S) monitor.";
216 description "List of pools associated with this healthmonitor.";
219 grouping lbaas-attributes {
220 container loadbalancers {
221 description "Container for Loadbalancers.";
224 uses attrs:base-attributes;
225 uses attrs:admin-attributes;
226 uses loadbalancer-attributes;
227 description "List of Loadbalancers.";
230 container listeners {
231 description "Container for Listeners.";
234 uses attrs:base-attributes;
235 uses listener-attributes;
236 description "List of Listeners";
240 description "Container for LBaaSV2.0 pools.";
243 uses attrs:base-attributes;
244 uses pool-attributes;
245 description "List of Pools";
247 description "Container for pool members.";
250 uses member-attributes;
251 description "List of members.";
256 container healthmonitors {
257 description "Container for LBaaSV2.0 healthmonitors.";
260 uses healthmonitor-attributes;
261 description "List of healthmonitors.";