1 package org.jclouds.trmk.ecloud.features;
2
3 import static org.jclouds.trmk.ecloud.TerremarkECloudMediaType.DATACENTERSLIST_XML;
4
5 import java.net.URI;
6 import java.util.Set;
7
8 import javax.annotation.Nullable;
9 import javax.ws.rs.Consumes;
10 import javax.ws.rs.GET;
11
12 import org.jclouds.rest.annotations.EndpointParam;
13 import org.jclouds.rest.annotations.ExceptionParser;
14 import org.jclouds.rest.annotations.RequestFilters;
15 import org.jclouds.rest.annotations.XMLResponseParser;
16 import org.jclouds.rest.functions.ReturnEmptySetOnNotFoundOr404;
17 import org.jclouds.trmk.ecloud.functions.OrgURIToDataCentersListEndpoint;
18 import org.jclouds.trmk.vcloud_0_8.domain.DataCenter;
19 import org.jclouds.trmk.vcloud_0_8.domain.KeyPair;
20 import org.jclouds.trmk.vcloud_0_8.filters.SetVCloudTokenCookie;
21 import org.jclouds.trmk.vcloud_0_8.xml.DataCentersHandler;
22
23 import com.google.common.util.concurrent.ListenableFuture;
24
25
26
27
28
29
30
31
32
33
34 @RequestFilters(SetVCloudTokenCookie.class)
35 public interface DataCenterOperationsAsyncClient {
36
37
38
39
40 @GET
41 @Consumes(DATACENTERSLIST_XML)
42 @XMLResponseParser(DataCentersHandler.class)
43 @ExceptionParser(ReturnEmptySetOnNotFoundOr404.class)
44 ListenableFuture<? extends Set<KeyPair>> listDataCentersInOrg(
45 @Nullable @EndpointParam(parser = OrgURIToDataCentersListEndpoint.class) URI org);
46
47
48
49
50 @GET
51 @Consumes(DATACENTERSLIST_XML)
52 @XMLResponseParser(DataCentersHandler.class)
53 @ExceptionParser(ReturnEmptySetOnNotFoundOr404.class)
54 ListenableFuture<? extends Set<DataCenter>> listDataCenters(@EndpointParam URI dataCenters);
55 }