exit(0);
 }
 // create a reference to the vim server
 $vimRefs = $sdkExt->getVimServerRefs($vimName);
 if (0 == count($vimRefs)) {
     exit("No vim server with {$vimName} is found!\n");
 }
 $vimRef = $vimRefs[0];
 $vimRef = VMware_VCloud_SDK_Helper::createReferenceTypeObj($vimRef->get_href());
 // create a reference to the portgroup
 $vmPGRef = new VMware_VCloud_API_Extension_VimObjectRefType();
 $vmPGRef->setVimServerRef($vimRef);
 $vmPGRef->setMoRef($netMoRef);
 $vmPGRef->setVimObjectType('DV_PORTGROUP');
 // set IP range
 $ipRange = new VMware_VCloud_API_IpRangeType();
 $ipRange->setStartAddress($startAddr);
 $ipRange->setEndAddress($endAddr);
 $ipRanges = new VMware_VCloud_API_IpRangesType();
 $ipRanges->setIpRange(array($ipRange));
 // set network configuration
 $ipScope = new VMware_VCloud_API_IpScopeType();
 $ipScope->setIsInherited(false);
 $ipScope->setGateway($gateway);
 $ipScope->setNetmask($netmask);
 $ipScope->setDns1($dns1);
 $ipScope->setDns2($dns2);
 $ipScope->setDnsSuffix($dnsSuffix);
 $ipScope->setIpRanges($ipRanges);
 $config = new VMware_VCloud_API_NetworkConfigurationType();
 $config->setIpScope($ipScope);
/**
* create an edge Gateway
* @param String  $edgeGatewayName
* @param VMware_VCloud_API_ReferenceType  $extNetRef
*
* @return array VMware_VCloud_API_ReferenceType object array
*/
function createEdgeGatewayParams($edgeGatewayName, $extNetRef)
{
    global $gateway, $netmask, $startAddress, $endAddress, $adminVdcObj;
    $params = new VMware_VCloud_API_GatewayType();
    $params->set_Name($edgeGatewayName);
    $gatcon = new VMware_VCloud_API_GatewayConfigurationType();
    $gatcon->setGatewayBackingConfig("compact");
    $gatinter = new VMware_VCloud_API_GatewayInterfaceType();
    $gatinter->setDisplayName("gateway interface");
    $gatinter->setNetwork($extNetRef);
    $gatinter->setInterfaceType("uplink");
    $subnetparttype = new VMware_VCloud_API_SubnetParticipationType();
    $subnetparttype->setGateway($gateway);
    $subnetparttype->setNetmask($netmask);
    $ipRanges = new VMware_VCloud_API_IpRangesType();
    $ipRange = new VMware_VCloud_API_IpRangeType();
    $ipRange->setStartAddress($startAddress);
    $ipRange->setEndAddress($endAddress);
    $ipRanges->addIpRange($ipRange);
    $subnetparttype->setIpRanges($ipRanges);
    $gatinter->addSubnetParticipation($subnetparttype);
    $gatinter->setUseForDefaultRoute(true);
    $gatinfaces = new VMware_VCloud_API_GatewayInterfacesType();
    $gatinfaces->addGatewayInterface($gatinter);
    $gatcon->setGatewayInterfaces($gatinfaces);
    $gatcon->setHaEnabled(true);
    $gatcon->setUseDefaultRouteForDnsRelay(true);
    // Firewall Service
    $gatewayFeatures = new VMware_VCloud_API_GatewayFeaturesType();
    $firewallService = new VMware_VCloud_API_FirewallServiceType();
    $firewallService->setIsEnabled(true);
    $firewallService->setDefaultAction("drop");
    $firewallService->setLogDefaultAction(false);
    $gatewayFeatures->addNetworkService($firewallService);
    // NAT Service
    $natService = new VMware_VCloud_API_NatServiceType();
    $substr = substr(strrchr($endAddress, "."), 1);
    $intval = intval($substr) + 3;
    $strpos = strpos($endAddress, $substr);
    $substring = substr($endAddress, 0, $strpos);
    $externalIp = $substring . $intval;
    $natService->setExternalIp($externalIp);
    $natService->setIsEnabled(false);
    $gatewayFeatures->addNetworkService($natService);
    // DHCP Service
    $dhcpService = new VMware_VCloud_API_DhcpServiceType();
    $dhcpService->setIpRange($ipRange);
    $dhcpService->setIsEnabled(true);
    $dhcpService->setPrimaryNameServer("r2");
    $dhcpService->setSubMask($netmask);
    $dhcpService->setDefaultLeaseTime(3600);
    $dhcpService->setMaxLeaseTime(7200);
    $gatewayFeatures->addNetworkService($dhcpService);
    // LoadBalancer Service
    $loadBalancer = new VMware_VCloud_API_LoadBalancerServiceType();
    $pool = new VMware_VCloud_API_LoadBalancerPoolType();
    $pool->setDescription("Pool Desc");
    $pool->setName("PoolName");
    $pool->setOperational(true);
    $lBPoolHealthCheck = new VMware_VCloud_API_LBPoolHealthCheckType();
    $lBPoolHealthCheck->setHealthThreshold("2");
    $lBPoolHealthCheck->setUnhealthThreshold("3");
    $lBPoolHealthCheck->setInterval("5");
    $lBPoolHealthCheck->setMode("HTTP");
    $lBPoolHealthCheck->setTimeout("15");
    $lBPoolMember = new VMware_VCloud_API_LBPoolMemberType();
    $substr = substr(strrchr($startAddress, "."), 1);
    $intval = intval($substr) + 3;
    $strpos = strpos($startAddress, $substr);
    $substring = substr($startAddress, 0, $strpos);
    $lbPoolIp = $substring . $intval;
    $lBPoolMember->setIpAddress($lbPoolIp);
    $lBPoolMember->setWeight("1");
    $lBPoolServicePort = new VMware_VCloud_API_LBPoolServicePortType();
    $lBPoolServicePort->setIsEnabled(true);
    $lBPoolServicePort->setAlgorithm("ROUND_ROBIN");
    $lBPoolServicePort->setHealthCheckPort("80");
    $lBPoolServicePort->addHealthCheck($lBPoolHealthCheck);
    $lBPoolServicePort->setProtocol("HTTP");
    $lBPoolServicePort->setPort("80");
    $pool->addServicePort($lBPoolServicePort);
    $pool->addMember($lBPoolMember);
    $loadBalancer->addPool($pool);
    $loadBalancerVirtualServer = new VMware_VCloud_API_LoadBalancerVirtualServerType();
    $loadBalancerVirtualServer->setDescription("desc");
    $loadBalancerVirtualServer->setIsEnabled(true);
    $substr = substr(strrchr($startAddress, "."), 1);
    $intval = intval($substr) + 4;
    $strpos = strpos($startAddress, $substr);
    $substring = substr($startAddress, 0, $strpos);
    $lbvirtualServerIp = $substring . $intval;
    $loadBalancerVirtualServer->setIpAddress($lbvirtualServerIp);
    $loadBalancerVirtualServer->setName("VirtualServerName");
    $loadBalancerVirtualServer->setPool("PoolName");
    $loadBalancerVirtualServer->setLogging(true);
    $loadBalancerVirtualServer->setInterface($extNetRef);
    $lBVirtualServerServiceProfile = new VMware_VCloud_API_LBVirtualServerServiceProfileType();
    $lBVirtualServerServiceProfile->setProtocol("HTTP");
    $lBVirtualServerServiceProfile->setPort("80");
    $lBVirtualServerServiceProfile->setIsEnabled(true);
    $lBPersistence = new VMware_VCloud_API_LBPersistenceType();
    $lBPersistence->setCookieMode("INSERT");
    $lBPersistence->setCookieName("CookieName");
    $lBPersistence->setMethod("COOKIE");
    $lBVirtualServerServiceProfile->setPersistence($lBPersistence);
    $loadBalancerVirtualServer->addServiceProfile($lBVirtualServerServiceProfile);
    $loadBalancer->addVirtualServer($loadBalancerVirtualServer);
    $loadBalancer->setIsEnabled(true);
    $gatewayFeatures->addNetworkService($loadBalancer);
    // Static Routing Service
    $staticRouting = new VMware_VCloud_API_StaticRoutingServiceType();
    $staticRouting->setIsEnabled(true);
    $staticRoute = new VMware_VCloud_API_StaticRouteType();
    $substr = substr(strrchr($endAddress, "."), 1);
    $intval = intval($substr) + 2;
    $strpos = strpos($endAddress, $substr);
    $substring = substr($endAddress, 0, $strpos);
    $nextHopeIp = $substring . $intval;
    $staticRoute->setName("RouteName");
    $subStringArray = explode('.', $endAddress);
    $networkIp = $subStringArray[0] . '.' . $subStringArray[1] . ".2.0/24";
    $staticRoute->setNetwork($networkIp);
    $staticRoute->setNextHopIp($nextHopeIp);
    $staticRoute->setGatewayInterface($extNetRef);
    $staticRoute->setInterface("External");
    $staticRouting->addStaticRoute($staticRoute);
    $gatewayFeatures->addNetworkService($staticRouting);
    $gatcon->setEdgeGatewayServiceConfiguration($gatewayFeatures);
    $params->setConfiguration($gatcon);
    return $params;
}