blob: 2d616533cc58cd00e31a4d1bdc339199cf579638 [file] [log] [blame]
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
//
package com.cloud.network.bigswitch;
import java.util.ArrayList;
import java.util.List;
import com.google.gson.annotations.SerializedName;
public class RouterData {
@SerializedName("router") private Router router;
public RouterData(String tenantId){
router = new Router(tenantId);
}
public class Router {
@SerializedName("tenant_id") private String tenantId;
@SerializedName("id") private String id;
@SerializedName("external_gateway_info") private ExternalGateway externalGateway;
@SerializedName("router_rules") private List<AclData> acls;
@SerializedName("interfaces") private List<RouterInterfaceData.RouterInterface> interfaces;
public Router(String tenantId){
this.tenantId = tenantId;
this.id = tenantId;
this.externalGateway = null;
this.acls = new ArrayList<AclData>();
this.interfaces = null;
}
public List<AclData> getAcls() {
return acls;
}
public class ExternalGateway{
@SerializedName("tenant_id") private String tenantId;
@SerializedName("network_id") private String networkId;
@SerializedName("external_fixed_ips") private List<ExternalIp> externalIps;
public ExternalGateway(String gatewayIp){
this.tenantId = "external";
this.networkId = "external";
this.externalIps = new ArrayList<ExternalIp>();
if(gatewayIp!=null){
this.externalIps.add(new ExternalIp(gatewayIp));
}
}
public class ExternalIp{
@SerializedName("subnet_id") private String subnetId; //assume don't care for now
@SerializedName("ip_address") private String ipAddress;
public ExternalIp(String ipAddress){
this.subnetId = "";
this.ipAddress = ipAddress;
}
public String getSubnetId() {
return subnetId;
}
public String getIpAddress() {
return ipAddress;
}
}
public String getNetworkId() {
return networkId;
}
public List<ExternalIp> getExternalIps() {
return externalIps;
}
}
public void addExternalGateway(String gatewayIp){
if(gatewayIp != null){
this.externalGateway = new ExternalGateway(gatewayIp);
}
}
public String getTenantId() {
return tenantId;
}
public String getId() {
return id;
}
public ExternalGateway getExternalGateway() {
return externalGateway;
}
public List<RouterInterfaceData.RouterInterface> getInterfaces() {
return interfaces;
}
public void addInterface(RouterInterfaceData intf){
if(this.interfaces == null){
this.interfaces = new ArrayList<RouterInterfaceData.RouterInterface>();
}
this.interfaces.add(intf.getRouterInterface());
}
public void setInterfaces(List<RouterInterfaceData.RouterInterface> interfaces) {
this.interfaces = interfaces;
}
}
public Router getRouter() {
return router;
}
}