blob: cfac8b7fd0fdcf59b7d3ccb25ebb3dbc6a2c214a [file] [log] [blame]
package org.jclouds.terremark.ecloud.features;
import static org.jclouds.vcloud.terremark.TerremarkECloudMediaType.DATACENTERSLIST_XML;
import java.net.URI;
import java.util.Set;
import javax.annotation.Nullable;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import org.jclouds.rest.annotations.EndpointParam;
import org.jclouds.rest.annotations.ExceptionParser;
import org.jclouds.rest.annotations.RequestFilters;
import org.jclouds.rest.annotations.XMLResponseParser;
import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
import org.jclouds.terremark.ecloud.functions.OrgURIToDataCentersListEndpoint;
import org.jclouds.vcloud.filters.SetVCloudTokenCookie;
import org.jclouds.vcloud.terremark.domain.DataCenter;
import org.jclouds.vcloud.terremark.domain.KeyPair;
import org.jclouds.vcloud.terremark.xml.DataCentersHandler;
import com.google.common.util.concurrent.ListenableFuture;
/**
*
* @see <a href=
* "http://support.theenterprisecloud.com/kb/default.asp?id=960&Lang=1&SID="
* />
* @see DataCenterOperationsClient
*
* @author Adrian Cole
*/
@RequestFilters(SetVCloudTokenCookie.class)
public interface DataCenterOperationsAsyncClient {
/**
* @see DataCenterOperationsClient#listDataCentersInOrg
*/
@GET
@Consumes(DATACENTERSLIST_XML)
@XMLResponseParser(DataCentersHandler.class)
@ExceptionParser(ReturnEmptySetOnNotFoundOr404.class)
ListenableFuture<? extends Set<KeyPair>> listDataCentersInOrg(
@Nullable @EndpointParam(parser = OrgURIToDataCentersListEndpoint.class) URI org);
/**
* @see DataCenterOperationsClient#listDataCenters
*/
@GET
@Consumes(DATACENTERSLIST_XML)
@XMLResponseParser(DataCentersHandler.class)
@ExceptionParser(ReturnEmptySetOnNotFoundOr404.class)
ListenableFuture<? extends Set<DataCenter>> listDataCenters(@EndpointParam URI dataCenters);
}