| /** |
| * |
| * Copyright (C) 2011 Cloud Conscious, LLC. <info@cloudconscious.com> |
| * |
| * ==================================================================== |
| * Licensed 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 org.jclouds.vcloud.terremark; |
| |
| import java.net.URI; |
| import java.util.Set; |
| import java.util.concurrent.TimeUnit; |
| |
| import javax.annotation.Nullable; |
| |
| import org.jclouds.concurrent.Timeout; |
| import org.jclouds.rest.annotations.Delegate; |
| import org.jclouds.terremark.ecloud.domain.TerremarkECloudOrg; |
| import org.jclouds.terremark.ecloud.features.DataCenterOperationsClient; |
| import org.jclouds.terremark.ecloud.features.TagOperationsClient; |
| import org.jclouds.vcloud.terremark.domain.IpAddress; |
| import org.jclouds.vcloud.terremark.domain.PublicIpAddress; |
| import org.jclouds.vcloud.terremark.domain.TerremarkNetwork; |
| import org.jclouds.vcloud.terremark.domain.TerremarkOrgNetwork; |
| import org.jclouds.vcloud.terremark.domain.VAppExtendedInfo; |
| |
| /** |
| * Provides access to VCloud resources via their REST API. |
| * <p/> |
| * |
| * @see <a href= |
| * "http://support.theenterprisecloud.com/kb/default.asp?id=645&Lang=1&SID=" |
| * /> |
| * @author Adrian Cole |
| */ |
| @Timeout(duration = 300, timeUnit = TimeUnit.SECONDS) |
| public interface TerremarkECloudClient extends TerremarkVCloudClient { |
| /** |
| * Provides synchronous access to Data Center Operations. |
| * |
| */ |
| @Delegate |
| DataCenterOperationsClient getDataCenterOperationsClient(); |
| |
| /** |
| * Provides synchronous access to Data Center Operations. |
| * |
| */ |
| @Delegate |
| TagOperationsClient getTagOperationsClient(); |
| |
| /** |
| * {@inheritDoc} |
| */ |
| @Override |
| TerremarkECloudOrg getOrg(URI orgId); |
| |
| /** |
| * Allocate a new public IP |
| * |
| * @param vDCId |
| * @return |
| * @throws org.jclouds.rest.InsufficientResourcesException |
| * if there's no additional ips available |
| */ |
| PublicIpAddress activatePublicIpInVDC(URI vDCId); |
| |
| TerremarkOrgNetwork findNetworkInOrgVDCNamed(@Nullable String orgName, @Nullable String vdc, String networkName); |
| |
| TerremarkOrgNetwork getNetwork(URI network); |
| |
| TerremarkNetwork getTerremarkNetwork(URI network); |
| |
| Set<IpAddress> getIpAddresses(URI network); |
| |
| /** |
| * Returns extended information for the vApp. |
| * |
| * @param vApp |
| * The URI at which the vApp information is available. |
| * @return Extended vApp information like tags, long name, network adapter |
| * information. |
| */ |
| VAppExtendedInfo getVAppExtendedInfo(URI href); |
| } |