yang model revise: neutron-secgroups.yang
[neutron.git] / neutron-spi / src / main / java / org / opendaylight / neutron / spi / NeutronSecurityRule.java
1 /*
2  * Copyright (C) 2014 Red Hat, Inc.  All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.neutron.spi;
10
11 import javax.xml.bind.annotation.XmlAccessType;
12 import javax.xml.bind.annotation.XmlAccessorType;
13 import javax.xml.bind.annotation.XmlElement;
14 import javax.xml.bind.annotation.XmlRootElement;
15 import java.io.Serializable;
16 import java.util.Iterator;
17 import java.util.List;
18
19 /**
20  * See OpenStack Network API v2.0 Reference for description of
21  * annotated attributes. The current fields are as follows:
22  * <p>
23  * id                uuid (String) UUID for the security group rule.
24  * direction         String Direction the VM traffic  (ingress/egress).
25  * security_group_id The security group to associate rule with.
26  * protocol          String IP Protocol (icmp, tcp, udp, etc) or uint8.
27  * port_range_min    Integer Port at start of range
28  * port_range_max    Integer Port at end of range
29  * ethertype         String ethertype in L2 packet (IPv4, IPv6, etc)
30  * remote_ip_prefix  String (IP cidr) CIDR for address range.
31  * remote_group_id   uuid-str Source security group to apply to rule.
32  * tenant_id         uuid-str Owner of security rule. Admin only outside tenant.
33  */
34
35 @XmlRootElement
36 @XmlAccessorType(XmlAccessType.NONE)
37
38 public class NeutronSecurityRule extends NeutronObject implements Serializable, INeutronObject {
39     private static final long serialVersionUID = 1L;
40
41     @XmlElement(name = "direction")
42     String securityRuleDirection;
43
44     @XmlElement(name = "protocol")
45     String securityRuleProtocol;
46
47     @XmlElement(name = "port_range_min")
48     Integer securityRulePortMin;
49
50     @XmlElement(name = "port_range_max")
51     Integer securityRulePortMax;
52
53     @XmlElement(name = "ethertype")
54     String securityRuleEthertype;
55
56     @XmlElement(name = "remote_ip_prefix")
57     String securityRuleRemoteIpPrefix;
58
59     @XmlElement(name = "remote_group_id")
60     String securityRemoteGroupID;
61
62     @XmlElement(name = "security_group_id")
63     String securityRuleGroupID;
64
65     public NeutronSecurityRule() {
66     }
67
68     public String getSecurityRuleDirection() {
69         return securityRuleDirection;
70     }
71
72     public void setSecurityRuleDirection(String securityRuleDirection) {
73         this.securityRuleDirection = securityRuleDirection;
74     }
75
76     public String getSecurityRuleProtocol() {
77         return securityRuleProtocol;
78     }
79
80     public void setSecurityRuleProtocol(String securityRuleProtocol) {
81         this.securityRuleProtocol = securityRuleProtocol;
82     }
83
84     public Integer getSecurityRulePortMin() {
85         return securityRulePortMin;
86     }
87
88     public void setSecurityRulePortMin(Integer securityRulePortMin) {
89         this.securityRulePortMin = securityRulePortMin;
90     }
91
92     public Integer getSecurityRulePortMax() {
93         return securityRulePortMax;
94     }
95
96     public void setSecurityRulePortMax(Integer securityRulePortMax) {
97         this.securityRulePortMax = securityRulePortMax;
98     }
99
100     public String getSecurityRuleEthertype() {
101         return securityRuleEthertype;
102     }
103
104     public void setSecurityRuleEthertype(String securityRuleEthertype) {
105         this.securityRuleEthertype = securityRuleEthertype;
106     }
107
108     public String getSecurityRuleRemoteIpPrefix() {
109         return securityRuleRemoteIpPrefix;
110     }
111
112     public void setSecurityRuleRemoteIpPrefix(String securityRuleRemoteIpPrefix) {
113         this.securityRuleRemoteIpPrefix = securityRuleRemoteIpPrefix;
114     }
115
116     public String getSecurityRemoteGroupID() {
117         return securityRemoteGroupID;
118     }
119
120     public void setSecurityRemoteGroupID(String securityRemoteGroupID) {
121         this.securityRemoteGroupID = securityRemoteGroupID;
122     }
123
124     public String getSecurityRuleGroupID() {
125         return securityRuleGroupID;
126     }
127
128     public void setSecurityRuleGroupID(String securityRuleGroupID) {
129         this.securityRuleGroupID = securityRuleGroupID;
130     }
131
132     public NeutronSecurityRule extractFields(List<String> fields) {
133         NeutronSecurityRule ans = new NeutronSecurityRule();
134         Iterator<String> i = fields.iterator();
135         while (i.hasNext()) {
136             String s = i.next();
137             if (s.equals("id")) {
138                 ans.setID(this.getID());
139             }
140             if (s.equals("direction")) {
141                 ans.setSecurityRuleDirection(this.getSecurityRuleDirection());
142             }
143             if (s.equals("protocol")) {
144                 ans.setSecurityRuleProtocol(this.getSecurityRuleProtocol());
145             }
146             if (s.equals("port_range_min")) {
147                 ans.setSecurityRulePortMin(this.getSecurityRulePortMin());
148             }
149             if (s.equals("port_range_max")) {
150                 ans.setSecurityRulePortMax(this.getSecurityRulePortMax());
151             }
152             if (s.equals("ethertype")) {
153                 ans.setSecurityRuleEthertype(this.getSecurityRuleEthertype());
154             }
155             if (s.equals("remote_ip_prefix")) {
156                 ans.setSecurityRuleRemoteIpPrefix(this.getSecurityRuleRemoteIpPrefix());
157             }
158             if (s.equals("remote_group_id")) {
159                 ans.setSecurityRemoteGroupID(this.getSecurityRemoteGroupID());
160             }
161             if (s.equals("security_group_id")) {
162                 ans.setSecurityRuleGroupID(this.getSecurityRuleGroupID());
163             }
164             if (s.equals("tenant_id")) {
165                 ans.setTenantID(this.getTenantID());
166             }
167         }
168         return ans;
169     }
170
171     @Override
172     public String toString() {
173         return "NeutronSecurityRule{" +
174             "securityRuleUUID='" + uuid + '\'' +
175             ", securityRuleDirection='" + securityRuleDirection + '\'' +
176             ", securityRuleProtocol='" + securityRuleProtocol + '\'' +
177             ", securityRulePortMin=" + securityRulePortMin +
178             ", securityRulePortMax=" + securityRulePortMax +
179             ", securityRuleEthertype='" + securityRuleEthertype + '\'' +
180             ", securityRuleRemoteIpPrefix='" + securityRuleRemoteIpPrefix + '\'' +
181             ", securityRemoteGroupID=" + securityRemoteGroupID +
182             ", securityRuleGroupID='" + securityRuleGroupID + '\'' +
183             ", securityRuleTenantID='" + tenantID + '\'' +
184             '}';
185     }
186
187     @Override
188     public void initDefaults() {
189         //TODO verify no defaults values are nessecary required.
190     }
191 }