You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ab...@apache.org on 2013/07/02 19:06:06 UTC
[1/2] JCLOUDS-150. Deprecate EC2 *Client, add dummy *Api classes.
Updated Branches:
refs/heads/1.6.x 3731f812c -> 264d47e3c
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/AWSEC2Api.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/AWSEC2Api.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/AWSEC2Api.java
new file mode 100644
index 0000000..0fd931c
--- /dev/null
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/AWSEC2Api.java
@@ -0,0 +1,122 @@
+/*
+ * 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 org.jclouds.aws.ec2;
+
+import org.jclouds.aws.ec2.features.AWSAMIApi;
+import org.jclouds.aws.ec2.features.AWSInstanceApi;
+import org.jclouds.aws.ec2.features.AWSKeyPairApi;
+import org.jclouds.aws.ec2.features.AWSSecurityGroupApi;
+import org.jclouds.aws.ec2.features.MonitoringApi;
+import org.jclouds.aws.ec2.features.PlacementGroupApi;
+import org.jclouds.aws.ec2.features.SpotInstanceApi;
+import org.jclouds.ec2.EC2Api;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.Region;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.rest.annotations.Delegate;
+import org.jclouds.rest.annotations.EndpointParam;
+
+import com.google.common.base.Optional;
+
+/**
+ * Provides synchronous access to EC2 services.
+ *
+ * Note that this class is transitionary and will fully replace AWSEC2Client in 1.7.
+ *
+ * @author Adrian Cole
+ */
+public interface AWSEC2Api extends EC2Api {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Delegate
+ @Override
+ Optional<? extends AWSInstanceApi> getInstanceApi();
+
+ @Delegate
+ @Override
+ Optional<? extends AWSInstanceApi> getInstanceApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * {@inheritDoc}
+ */
+ @Delegate
+ @Override
+ Optional<? extends AWSSecurityGroupApi> getSecurityGroupApi();
+
+ @Delegate
+ @Override
+ Optional<? extends AWSSecurityGroupApi> getSecurityGroupApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * {@inheritDoc}
+ */
+ @Delegate
+ @Override
+ Optional<? extends AWSAMIApi> getAMIApi();
+
+ @Delegate
+ @Override
+ Optional<? extends AWSAMIApi> getAMIApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+
+ /**
+ * Provides synchronous access to PlacementGroup services.
+ */
+ @Delegate
+ Optional<? extends PlacementGroupApi> getPlacementGroupApi();
+
+ @Delegate
+ Optional<? extends PlacementGroupApi> getPlacementGroupApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * Provides synchronous access to Monitoring services.
+ */
+ @Delegate
+ Optional<? extends MonitoringApi> getMonitoringApi();
+
+ @Delegate
+ Optional<? extends MonitoringApi> getMonitoringApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * {@inheritDoc}
+ */
+ @Delegate
+ @Override
+ Optional<? extends AWSKeyPairApi> getKeyPairApi();
+
+ @Delegate
+ @Override
+ Optional<? extends AWSKeyPairApi> getKeyPairApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * Provides synchronous access to SpotInstance services.
+ */
+ @Delegate
+ Optional<? extends SpotInstanceApi> getSpotInstanceApi();
+
+ @Delegate
+ Optional<? extends SpotInstanceApi> getSpotInstanceApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/AWSEC2AsyncApi.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/AWSEC2AsyncApi.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/AWSEC2AsyncApi.java
new file mode 100644
index 0000000..65b0f96
--- /dev/null
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/AWSEC2AsyncApi.java
@@ -0,0 +1,122 @@
+/*
+ * 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 org.jclouds.aws.ec2;
+
+import org.jclouds.aws.ec2.features.AWSAMIAsyncApi;
+import org.jclouds.aws.ec2.features.AWSInstanceAsyncApi;
+import org.jclouds.aws.ec2.features.AWSKeyPairAsyncApi;
+import org.jclouds.aws.ec2.features.AWSSecurityGroupAsyncApi;
+import org.jclouds.aws.ec2.features.MonitoringAsyncApi;
+import org.jclouds.aws.ec2.features.PlacementGroupAsyncApi;
+import org.jclouds.aws.ec2.features.SpotInstanceAsyncApi;
+import org.jclouds.ec2.EC2AsyncApi;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.Region;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.rest.annotations.Delegate;
+import org.jclouds.rest.annotations.EndpointParam;
+
+import com.google.common.base.Optional;
+
+/**
+ * Provides synchronous access to EC2 services.
+ *
+ * @deprecated Note that this class is transitionary and will be removed in 1.7.
+ * @author Adrian Cole
+ */
+@Deprecated
+public interface AWSEC2AsyncApi extends EC2AsyncApi {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Delegate
+ @Override
+ Optional<? extends AWSInstanceAsyncApi> getInstanceApi();
+
+ @Delegate
+ @Override
+ Optional<? extends AWSInstanceAsyncApi> getInstanceApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * {@inheritDoc}
+ */
+ @Delegate
+ @Override
+ Optional<? extends AWSSecurityGroupAsyncApi> getSecurityGroupApi();
+
+ @Delegate
+ @Override
+ Optional<? extends AWSSecurityGroupAsyncApi> getSecurityGroupApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * {@inheritDoc}
+ */
+ @Delegate
+ @Override
+ Optional<? extends AWSAMIAsyncApi> getAMIApi();
+
+ @Delegate
+ @Override
+ Optional<? extends AWSAMIAsyncApi> getAMIApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+
+ /**
+ * Provides synchronous access to PlacementGroup services.
+ */
+ @Delegate
+ Optional<? extends PlacementGroupAsyncApi> getPlacementGroupApi();
+
+ @Delegate
+ Optional<? extends PlacementGroupAsyncApi> getPlacementGroupApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * Provides synchronous access to Monitoring services.
+ */
+ @Delegate
+ Optional<? extends MonitoringAsyncApi> getMonitoringApi();
+
+ @Delegate
+ Optional<? extends MonitoringAsyncApi> getMonitoringApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * {@inheritDoc}
+ */
+ @Delegate
+ @Override
+ Optional<? extends AWSKeyPairAsyncApi> getKeyPairApi();
+
+ @Delegate
+ @Override
+ Optional<? extends AWSKeyPairAsyncApi> getKeyPairApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * Provides synchronous access to SpotInstance services.
+ */
+ @Delegate
+ Optional<? extends SpotInstanceAsyncApi> getSpotInstanceApi();
+
+ @Delegate
+ Optional<? extends SpotInstanceAsyncApi> getSpotInstanceApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/AWSEC2Client.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/AWSEC2Client.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/AWSEC2Client.java
index a605e3c..740ca56 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/AWSEC2Client.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/AWSEC2Client.java
@@ -29,8 +29,10 @@ import org.jclouds.rest.annotations.Delegate;
/**
* Provides synchronous access to EC2 services.
*
+ * @deprecated This class's functionality is being moved in 1.7.0. Please use AWSEC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
public interface AWSEC2Client extends EC2Client {
/**
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/config/AWSEC2RestClientModule.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/config/AWSEC2RestClientModule.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/config/AWSEC2RestClientModule.java
index 0ebba84..ca4c98d 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/config/AWSEC2RestClientModule.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/config/AWSEC2RestClientModule.java
@@ -21,10 +21,26 @@ import java.util.Map;
import javax.inject.Singleton;
+import org.jclouds.aws.ec2.AWSEC2Api;
+import org.jclouds.aws.ec2.AWSEC2AsyncApi;
import org.jclouds.aws.ec2.AWSEC2AsyncClient;
import org.jclouds.aws.ec2.AWSEC2Client;
import org.jclouds.aws.ec2.domain.AWSRunningInstance;
import org.jclouds.aws.ec2.domain.SpotInstanceRequest;
+import org.jclouds.aws.ec2.features.AWSAMIAsyncApi;
+import org.jclouds.aws.ec2.features.AWSAMIApi;
+import org.jclouds.aws.ec2.features.AWSInstanceAsyncApi;
+import org.jclouds.aws.ec2.features.AWSInstanceApi;
+import org.jclouds.aws.ec2.features.AWSKeyPairAsyncApi;
+import org.jclouds.aws.ec2.features.AWSKeyPairApi;
+import org.jclouds.aws.ec2.features.AWSSecurityGroupAsyncApi;
+import org.jclouds.aws.ec2.features.AWSSecurityGroupApi;
+import org.jclouds.aws.ec2.features.MonitoringAsyncApi;
+import org.jclouds.aws.ec2.features.MonitoringApi;
+import org.jclouds.aws.ec2.features.PlacementGroupAsyncApi;
+import org.jclouds.aws.ec2.features.PlacementGroupApi;
+import org.jclouds.aws.ec2.features.SpotInstanceAsyncApi;
+import org.jclouds.aws.ec2.features.SpotInstanceApi;
import org.jclouds.aws.ec2.functions.SpotInstanceRequestToAWSRunningInstance;
import org.jclouds.aws.ec2.options.AWSRunInstancesOptions;
import org.jclouds.aws.ec2.services.AWSAMIAsyncClient;
@@ -41,9 +57,23 @@ import org.jclouds.aws.ec2.services.PlacementGroupAsyncClient;
import org.jclouds.aws.ec2.services.PlacementGroupClient;
import org.jclouds.aws.ec2.services.SpotInstanceAsyncClient;
import org.jclouds.aws.ec2.services.SpotInstanceClient;
+import org.jclouds.ec2.EC2Api;
+import org.jclouds.ec2.EC2AsyncApi;
import org.jclouds.ec2.EC2AsyncClient;
import org.jclouds.ec2.EC2Client;
import org.jclouds.ec2.config.EC2RestClientModule;
+import org.jclouds.ec2.features.AMIAsyncApi;
+import org.jclouds.ec2.features.AMIApi;
+import org.jclouds.ec2.features.AvailabilityZoneAndRegionAsyncApi;
+import org.jclouds.ec2.features.AvailabilityZoneAndRegionApi;
+import org.jclouds.ec2.features.ElasticBlockStoreAsyncApi;
+import org.jclouds.ec2.features.ElasticBlockStoreApi;
+import org.jclouds.ec2.features.ElasticIPAddressAsyncApi;
+import org.jclouds.ec2.features.ElasticIPAddressApi;
+import org.jclouds.ec2.features.InstanceAsyncApi;
+import org.jclouds.ec2.features.InstanceApi;
+import org.jclouds.ec2.features.SecurityGroupAsyncApi;
+import org.jclouds.ec2.features.SecurityGroupApi;
import org.jclouds.ec2.features.SubnetApi;
import org.jclouds.ec2.features.SubnetAsyncApi;
import org.jclouds.ec2.features.TagApi;
@@ -80,21 +110,31 @@ import com.google.inject.TypeLiteral;
@ConfiguresRestClient
public class AWSEC2RestClientModule extends EC2RestClientModule<AWSEC2Client, AWSEC2AsyncClient> {
- public static final Map<Class<?>, Class<?>> DELEGATE_MAP = ImmutableMap.<Class<?>, Class<?>> builder()//
- .put(AWSAMIClient.class, AWSAMIAsyncClient.class)//
- .put(ElasticIPAddressClient.class, ElasticIPAddressAsyncClient.class)//
- .put(AWSInstanceClient.class, AWSInstanceAsyncClient.class)//
- .put(AWSKeyPairClient.class, AWSKeyPairAsyncClient.class)//
- .put(AWSSecurityGroupClient.class, AWSSecurityGroupAsyncClient.class)//
- .put(PlacementGroupClient.class, PlacementGroupAsyncClient.class)//
- .put(MonitoringClient.class, MonitoringAsyncClient.class)//
- .put(WindowsClient.class, WindowsAsyncClient.class)//
- .put(AvailabilityZoneAndRegionClient.class, AvailabilityZoneAndRegionAsyncClient.class)//
- .put(ElasticBlockStoreClient.class, ElasticBlockStoreAsyncClient.class)//
- .put(SpotInstanceClient.class, SpotInstanceAsyncClient.class)//
- .put(WindowsApi.class, WindowsAsyncApi.class)//
- .put(TagApi.class, TagAsyncApi.class)//
- .put(SubnetApi.class, SubnetAsyncApi.class)//
+ public static final Map<Class<?>, Class<?>> DELEGATE_MAP = ImmutableMap.<Class<?>, Class<?>> builder()
+ .put(AWSAMIClient.class, AWSAMIAsyncClient.class)
+ .put(ElasticIPAddressClient.class, ElasticIPAddressAsyncClient.class)
+ .put(AWSInstanceClient.class, AWSInstanceAsyncClient.class)
+ .put(AWSKeyPairClient.class, AWSKeyPairAsyncClient.class)
+ .put(AWSSecurityGroupClient.class, AWSSecurityGroupAsyncClient.class)
+ .put(PlacementGroupClient.class, PlacementGroupAsyncClient.class)
+ .put(MonitoringClient.class, MonitoringAsyncClient.class)
+ .put(WindowsClient.class, WindowsAsyncClient.class)
+ .put(AvailabilityZoneAndRegionClient.class, AvailabilityZoneAndRegionAsyncClient.class)
+ .put(ElasticBlockStoreClient.class, ElasticBlockStoreAsyncClient.class)
+ .put(SpotInstanceClient.class, SpotInstanceAsyncClient.class)
+ .put(AWSAMIApi.class, AWSAMIAsyncApi.class)
+ .put(ElasticIPAddressApi.class, ElasticIPAddressAsyncApi.class)
+ .put(AWSInstanceApi.class, AWSInstanceAsyncApi.class)
+ .put(AWSKeyPairApi.class, AWSKeyPairAsyncApi.class)
+ .put(AWSSecurityGroupApi.class, AWSSecurityGroupAsyncApi.class)
+ .put(PlacementGroupApi.class, PlacementGroupAsyncApi.class)
+ .put(MonitoringApi.class, MonitoringAsyncApi.class)
+ .put(AvailabilityZoneAndRegionApi.class, AvailabilityZoneAndRegionAsyncApi.class)
+ .put(ElasticBlockStoreApi.class, ElasticBlockStoreAsyncApi.class)
+ .put(SpotInstanceApi.class, SpotInstanceAsyncApi.class)
+ .put(WindowsApi.class, WindowsAsyncApi.class)
+ .put(TagApi.class, TagAsyncApi.class)
+ .put(SubnetApi.class, SubnetAsyncApi.class)
.build();
public AWSEC2RestClientModule() {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSAMIApi.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSAMIApi.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSAMIApi.java
new file mode 100644
index 0000000..1157972
--- /dev/null
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSAMIApi.java
@@ -0,0 +1,51 @@
+/*
+ * 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 org.jclouds.aws.ec2.features;
+
+import static org.jclouds.aws.reference.FormParameters.ACTION;
+
+import java.util.Set;
+
+import javax.inject.Named;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+import org.jclouds.aws.ec2.services.AWSAMIClient;
+import org.jclouds.aws.ec2.xml.ProductCodesHandler;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.binders.BindProductCodesToIndexedFormParams;
+import org.jclouds.ec2.features.AMIApi;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.FormParams;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+import org.jclouds.rest.annotations.XMLResponseParser;
+
+/**
+ * Provides access to AMI Services.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+public interface AWSAMIApi extends AWSAMIClient, AMIApi {
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSAMIAsyncApi.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSAMIAsyncApi.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSAMIAsyncApi.java
new file mode 100644
index 0000000..78ae293
--- /dev/null
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSAMIAsyncApi.java
@@ -0,0 +1,53 @@
+/*
+ * 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 org.jclouds.aws.ec2.features;
+
+import static org.jclouds.aws.reference.FormParameters.ACTION;
+
+import java.util.Set;
+
+import javax.inject.Named;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+import org.jclouds.aws.ec2.services.AWSAMIAsyncClient;
+import org.jclouds.aws.ec2.xml.ProductCodesHandler;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.binders.BindProductCodesToIndexedFormParams;
+import org.jclouds.ec2.features.AMIAsyncApi;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.FormParams;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+import org.jclouds.rest.annotations.XMLResponseParser;
+
+/**
+ * Provides access to AMI Services.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+@RequestFilters(FormSigner.class)
+@VirtualHost
+public interface AWSAMIAsyncApi extends AWSAMIAsyncClient, AMIAsyncApi {
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSInstanceApi.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSInstanceApi.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSInstanceApi.java
new file mode 100644
index 0000000..520a74d
--- /dev/null
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSInstanceApi.java
@@ -0,0 +1,51 @@
+/*
+ * 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 org.jclouds.aws.ec2.features;
+
+import static org.jclouds.aws.reference.FormParameters.ACTION;
+
+import java.util.Set;
+
+import javax.inject.Named;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+import org.jclouds.aws.ec2.services.AWSInstanceClient;
+import org.jclouds.aws.ec2.xml.ProductCodesHandler;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.binders.BindProductCodesToIndexedFormParams;
+import org.jclouds.ec2.features.InstanceApi;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.FormParams;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+import org.jclouds.rest.annotations.XMLResponseParser;
+
+/**
+ * Provides access to Instance Services.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+public interface AWSInstanceApi extends AWSInstanceClient, InstanceApi {
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSInstanceAsyncApi.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSInstanceAsyncApi.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSInstanceAsyncApi.java
new file mode 100644
index 0000000..cd18118
--- /dev/null
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSInstanceAsyncApi.java
@@ -0,0 +1,53 @@
+/*
+ * 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 org.jclouds.aws.ec2.features;
+
+import static org.jclouds.aws.reference.FormParameters.ACTION;
+
+import java.util.Set;
+
+import javax.inject.Named;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+import org.jclouds.aws.ec2.services.AWSInstanceAsyncClient;
+import org.jclouds.aws.ec2.xml.ProductCodesHandler;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.binders.BindProductCodesToIndexedFormParams;
+import org.jclouds.ec2.features.InstanceAsyncApi;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.FormParams;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+import org.jclouds.rest.annotations.XMLResponseParser;
+
+/**
+ * Provides access to Instance Services.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+@RequestFilters(FormSigner.class)
+@VirtualHost
+public interface AWSInstanceAsyncApi extends AWSInstanceAsyncClient, InstanceAsyncApi {
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSKeyPairApi.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSKeyPairApi.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSKeyPairApi.java
new file mode 100644
index 0000000..1b8c63e
--- /dev/null
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSKeyPairApi.java
@@ -0,0 +1,51 @@
+/*
+ * 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 org.jclouds.aws.ec2.features;
+
+import static org.jclouds.aws.reference.FormParameters.ACTION;
+
+import java.util.Set;
+
+import javax.inject.Named;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+import org.jclouds.aws.ec2.services.AWSKeyPairClient;
+import org.jclouds.aws.ec2.xml.ProductCodesHandler;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.binders.BindProductCodesToIndexedFormParams;
+import org.jclouds.ec2.features.KeyPairApi;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.FormParams;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+import org.jclouds.rest.annotations.XMLResponseParser;
+
+/**
+ * Provides access to KeyPair Services.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+public interface AWSKeyPairApi extends AWSKeyPairClient, KeyPairApi {
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSKeyPairAsyncApi.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSKeyPairAsyncApi.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSKeyPairAsyncApi.java
new file mode 100644
index 0000000..5dc76b9
--- /dev/null
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSKeyPairAsyncApi.java
@@ -0,0 +1,53 @@
+/*
+ * 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 org.jclouds.aws.ec2.features;
+
+import static org.jclouds.aws.reference.FormParameters.ACTION;
+
+import java.util.Set;
+
+import javax.inject.Named;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+import org.jclouds.aws.ec2.services.AWSKeyPairAsyncClient;
+import org.jclouds.aws.ec2.xml.ProductCodesHandler;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.binders.BindProductCodesToIndexedFormParams;
+import org.jclouds.ec2.features.KeyPairAsyncApi;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.FormParams;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+import org.jclouds.rest.annotations.XMLResponseParser;
+
+/**
+ * Provides access to KeyPair Services.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+@RequestFilters(FormSigner.class)
+@VirtualHost
+public interface AWSKeyPairAsyncApi extends AWSKeyPairAsyncClient, KeyPairAsyncApi {
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSSecurityGroupApi.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSSecurityGroupApi.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSSecurityGroupApi.java
new file mode 100644
index 0000000..1c45990
--- /dev/null
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSSecurityGroupApi.java
@@ -0,0 +1,51 @@
+/*
+ * 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 org.jclouds.aws.ec2.features;
+
+import static org.jclouds.aws.reference.FormParameters.ACTION;
+
+import java.util.Set;
+
+import javax.inject.Named;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+import org.jclouds.aws.ec2.services.AWSSecurityGroupClient;
+import org.jclouds.aws.ec2.xml.ProductCodesHandler;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.binders.BindProductCodesToIndexedFormParams;
+import org.jclouds.ec2.features.SecurityGroupApi;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.FormParams;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+import org.jclouds.rest.annotations.XMLResponseParser;
+
+/**
+ * Provides access to SecurityGroup Services.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+public interface AWSSecurityGroupApi extends AWSSecurityGroupClient, SecurityGroupApi {
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSSecurityGroupAsyncApi.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSSecurityGroupAsyncApi.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSSecurityGroupAsyncApi.java
new file mode 100644
index 0000000..76e67d3
--- /dev/null
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/AWSSecurityGroupAsyncApi.java
@@ -0,0 +1,53 @@
+/*
+ * 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 org.jclouds.aws.ec2.features;
+
+import static org.jclouds.aws.reference.FormParameters.ACTION;
+
+import java.util.Set;
+
+import javax.inject.Named;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+import org.jclouds.aws.ec2.services.AWSSecurityGroupAsyncClient;
+import org.jclouds.aws.ec2.xml.ProductCodesHandler;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.binders.BindProductCodesToIndexedFormParams;
+import org.jclouds.ec2.features.SecurityGroupAsyncApi;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.FormParams;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+import org.jclouds.rest.annotations.XMLResponseParser;
+
+/**
+ * Provides access to SecurityGroup Services.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+@RequestFilters(FormSigner.class)
+@VirtualHost
+public interface AWSSecurityGroupAsyncApi extends AWSSecurityGroupAsyncClient, SecurityGroupAsyncApi {
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/MonitoringApi.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/MonitoringApi.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/MonitoringApi.java
new file mode 100644
index 0000000..97f5239
--- /dev/null
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/MonitoringApi.java
@@ -0,0 +1,50 @@
+/*
+ * 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 org.jclouds.aws.ec2.features;
+
+import static org.jclouds.aws.reference.FormParameters.ACTION;
+
+import java.util.Set;
+
+import javax.inject.Named;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+import org.jclouds.aws.ec2.services.MonitoringClient;
+import org.jclouds.aws.ec2.xml.ProductCodesHandler;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.binders.BindProductCodesToIndexedFormParams;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.FormParams;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+import org.jclouds.rest.annotations.XMLResponseParser;
+
+/**
+ * Provides access to Monitoring Services.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+public interface MonitoringApi extends MonitoringClient {
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/MonitoringAsyncApi.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/MonitoringAsyncApi.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/MonitoringAsyncApi.java
new file mode 100644
index 0000000..aa982ac
--- /dev/null
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/MonitoringAsyncApi.java
@@ -0,0 +1,52 @@
+/*
+ * 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 org.jclouds.aws.ec2.features;
+
+import static org.jclouds.aws.reference.FormParameters.ACTION;
+
+import java.util.Set;
+
+import javax.inject.Named;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+import org.jclouds.aws.ec2.services.MonitoringAsyncClient;
+import org.jclouds.aws.ec2.xml.ProductCodesHandler;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.binders.BindProductCodesToIndexedFormParams;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.FormParams;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+import org.jclouds.rest.annotations.XMLResponseParser;
+
+/**
+ * Provides access to Monitoring Services.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+@RequestFilters(FormSigner.class)
+@VirtualHost
+public interface MonitoringAsyncApi extends MonitoringAsyncClient {
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/PlacementGroupApi.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/PlacementGroupApi.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/PlacementGroupApi.java
new file mode 100644
index 0000000..5823ab3
--- /dev/null
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/PlacementGroupApi.java
@@ -0,0 +1,50 @@
+/*
+ * 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 org.jclouds.aws.ec2.features;
+
+import static org.jclouds.aws.reference.FormParameters.ACTION;
+
+import java.util.Set;
+
+import javax.inject.Named;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+import org.jclouds.aws.ec2.services.PlacementGroupClient;
+import org.jclouds.aws.ec2.xml.ProductCodesHandler;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.binders.BindProductCodesToIndexedFormParams;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.FormParams;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+import org.jclouds.rest.annotations.XMLResponseParser;
+
+/**
+ * Provides access to PlacementGroup Services.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+public interface PlacementGroupApi extends PlacementGroupClient {
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/PlacementGroupAsyncApi.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/PlacementGroupAsyncApi.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/PlacementGroupAsyncApi.java
new file mode 100644
index 0000000..9091eaa
--- /dev/null
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/PlacementGroupAsyncApi.java
@@ -0,0 +1,52 @@
+/*
+ * 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 org.jclouds.aws.ec2.features;
+
+import static org.jclouds.aws.reference.FormParameters.ACTION;
+
+import java.util.Set;
+
+import javax.inject.Named;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+import org.jclouds.aws.ec2.services.PlacementGroupAsyncClient;
+import org.jclouds.aws.ec2.xml.ProductCodesHandler;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.binders.BindProductCodesToIndexedFormParams;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.FormParams;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+import org.jclouds.rest.annotations.XMLResponseParser;
+
+/**
+ * Provides access to PlacementGroup Services.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+@RequestFilters(FormSigner.class)
+@VirtualHost
+public interface PlacementGroupAsyncApi extends PlacementGroupAsyncClient {
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/SpotInstanceApi.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/SpotInstanceApi.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/SpotInstanceApi.java
new file mode 100644
index 0000000..e0d2b2e
--- /dev/null
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/SpotInstanceApi.java
@@ -0,0 +1,50 @@
+/*
+ * 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 org.jclouds.aws.ec2.features;
+
+import static org.jclouds.aws.reference.FormParameters.ACTION;
+
+import java.util.Set;
+
+import javax.inject.Named;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+import org.jclouds.aws.ec2.services.SpotInstanceClient;
+import org.jclouds.aws.ec2.xml.ProductCodesHandler;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.binders.BindProductCodesToIndexedFormParams;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.FormParams;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+import org.jclouds.rest.annotations.XMLResponseParser;
+
+/**
+ * Provides access to SpotInstance Services.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+public interface SpotInstanceApi extends SpotInstanceClient {
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/SpotInstanceAsyncApi.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/SpotInstanceAsyncApi.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/SpotInstanceAsyncApi.java
new file mode 100644
index 0000000..6c4d316
--- /dev/null
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/features/SpotInstanceAsyncApi.java
@@ -0,0 +1,52 @@
+/*
+ * 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 org.jclouds.aws.ec2.features;
+
+import static org.jclouds.aws.reference.FormParameters.ACTION;
+
+import java.util.Set;
+
+import javax.inject.Named;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+import org.jclouds.aws.ec2.services.SpotInstanceAsyncClient;
+import org.jclouds.aws.ec2.xml.ProductCodesHandler;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.binders.BindProductCodesToIndexedFormParams;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.FormParams;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+import org.jclouds.rest.annotations.XMLResponseParser;
+
+/**
+ * Provides access to SpotInstance Services.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+@RequestFilters(FormSigner.class)
+@VirtualHost
+public interface SpotInstanceAsyncApi extends SpotInstanceAsyncClient {
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSAMIAsyncClient.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSAMIAsyncClient.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSAMIAsyncClient.java
index 0a1c48b..f09aa6f 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSAMIAsyncClient.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSAMIAsyncClient.java
@@ -44,8 +44,11 @@ import com.google.common.util.concurrent.ListenableFuture;
* Provides access to AMI Services.
* <p/>
*
+ * @deprecated Async interfaces are being removed in 1.7.
+ * Please use AWSAMIApi via AWSEC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
@RequestFilters(FormSigner.class)
@VirtualHost
public interface AWSAMIAsyncClient extends AMIAsyncClient {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSAMIClient.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSAMIClient.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSAMIClient.java
index 75247ad..4051109 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSAMIClient.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSAMIClient.java
@@ -24,8 +24,10 @@ import org.jclouds.javax.annotation.Nullable;
* Provides access to EC2 via their REST API.
* <p/>
*
+ * @deprecated This class is being moved in 1.7. Please use AWSAMIApi via AWSEC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
public interface AWSAMIClient extends AMIClient {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSInstanceAsyncClient.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSInstanceAsyncClient.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSInstanceAsyncClient.java
index de55b01..c149555 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSInstanceAsyncClient.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSInstanceAsyncClient.java
@@ -51,8 +51,11 @@ import com.google.common.util.concurrent.ListenableFuture;
* Provides access to EC2 Instance Services via their REST API.
* <p/>
*
+ * @deprecated Async interfaces are being removed in 1.7.
+ * Please use AWSInstanceApi via AWSEC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
@RequestFilters(FormSigner.class)
@VirtualHost
public interface AWSInstanceAsyncClient extends InstanceAsyncClient {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSInstanceClient.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSInstanceClient.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSInstanceClient.java
index deb911b..bc38279 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSInstanceClient.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSInstanceClient.java
@@ -27,8 +27,10 @@ import org.jclouds.javax.annotation.Nullable;
* Provides access to EC2 via their REST API.
* <p/>
*
+ * @deprecated This class is being moved in 1.7. Please use AWSInstanceApi via AWSEC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
public interface AWSInstanceClient extends InstanceClient {
@Override
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSKeyPairAsyncClient.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSKeyPairAsyncClient.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSKeyPairAsyncClient.java
index 8cb9abd..789b1e4 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSKeyPairAsyncClient.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSKeyPairAsyncClient.java
@@ -40,8 +40,11 @@ import org.jclouds.rest.annotations.XMLResponseParser;
import com.google.common.util.concurrent.ListenableFuture;
/**
+ * @deprecated Async interfaces are being removed in 1.7.
+ * Please use AWSKeyPairApi via AWSEC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
@RequestFilters(FormSigner.class)
@VirtualHost
public interface AWSKeyPairAsyncClient extends KeyPairAsyncClient {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSKeyPairClient.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSKeyPairClient.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSKeyPairClient.java
index 3d23d0b..754334d 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSKeyPairClient.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSKeyPairClient.java
@@ -22,8 +22,10 @@ import org.jclouds.javax.annotation.Nullable;
/**
*
+ * @deprecated This class is being moved in 1.7. Please use AWSKeyPairApi via AWSEC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
public interface AWSKeyPairClient extends KeyPairClient {
/**
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSSecurityGroupAsyncClient.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSSecurityGroupAsyncClient.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSSecurityGroupAsyncClient.java
index 75a6f9b..f0b0a54 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSSecurityGroupAsyncClient.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSSecurityGroupAsyncClient.java
@@ -54,8 +54,11 @@ import com.google.common.util.concurrent.ListenableFuture;
* Provides access to EC2 SecurityGroup Services via their REST API.
* <p/>
*
+ * @deprecated Async interfaces are being removed in 1.7.
+ * Please use AWSSecurityGroupApi via AWSEC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
@RequestFilters(FormSigner.class)
@VirtualHost
@Beta
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSSecurityGroupClient.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSSecurityGroupClient.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSSecurityGroupClient.java
index 383b0fd..ad72f62 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSSecurityGroupClient.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/AWSSecurityGroupClient.java
@@ -29,8 +29,10 @@ import com.google.common.annotations.Beta;
* Provides access to EC2 via their REST API.
* <p/>
*
+ * @deprecated This class is being moved in 1.7. Please use AWSSecurityGroupApi via AWSEC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
@Beta
public interface AWSSecurityGroupClient extends SecurityGroupClient {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/MonitoringAsyncClient.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/MonitoringAsyncClient.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/MonitoringAsyncClient.java
index 61d96b4..b76aa64 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/MonitoringAsyncClient.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/MonitoringAsyncClient.java
@@ -44,8 +44,11 @@ import com.google.common.util.concurrent.ListenableFuture;
* Provides access to EC2 Monitoring Services via their REST API.
* <p/>
*
+ * @deprecated Async interfaces are being removed in 1.7.
+ * Please use MonitoringApi via AWSEC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
@RequestFilters(FormSigner.class)
@VirtualHost
public interface MonitoringAsyncClient {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/MonitoringClient.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/MonitoringClient.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/MonitoringClient.java
index 66c44ee..0497859 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/MonitoringClient.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/MonitoringClient.java
@@ -25,8 +25,10 @@ import org.jclouds.javax.annotation.Nullable;
* Developer Guide.
* <p/>
*
+ * @deprecated This class is being moved in 1.7. Please use MonitoringApi via AWSEC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
public interface MonitoringClient {
/**
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/PlacementGroupAsyncClient.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/PlacementGroupAsyncClient.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/PlacementGroupAsyncClient.java
index bd79cb4..a99fb29 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/PlacementGroupAsyncClient.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/PlacementGroupAsyncClient.java
@@ -47,8 +47,11 @@ import com.google.common.util.concurrent.ListenableFuture;
* Provides access to EC2 Placement Groups via their REST API.
* <p/>
*
+ * @deprecated Async interfaces are being removed in 1.7.
+ * Please use PlacementGroupApi via AWSEC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
@RequestFilters(FormSigner.class)
@VirtualHost
public interface PlacementGroupAsyncClient {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/PlacementGroupClient.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/PlacementGroupClient.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/PlacementGroupClient.java
index 3dfd8cc..0472c04 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/PlacementGroupClient.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/PlacementGroupClient.java
@@ -25,8 +25,10 @@ import org.jclouds.javax.annotation.Nullable;
* Developer Guide.
* <p/>
*
+ * @deprecated This class is being moved in 1.7. Please use PlacementGroupApi via AWSEC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
public interface PlacementGroupClient {
/**
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/SpotInstanceAsyncClient.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/SpotInstanceAsyncClient.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/SpotInstanceAsyncClient.java
index bf773cd..f42a738 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/SpotInstanceAsyncClient.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/SpotInstanceAsyncClient.java
@@ -54,8 +54,11 @@ import com.google.common.util.concurrent.ListenableFuture;
* Provides access to EC2 Spot Instances via their REST API.
* <p/>
*
+ * @deprecated Async interfaces are being removed in 1.7.
+ * Please use SpotInstanceApi via AWSEC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
@RequestFilters(FormSigner.class)
@VirtualHost
public interface SpotInstanceAsyncClient {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/SpotInstanceClient.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/SpotInstanceClient.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/SpotInstanceClient.java
index d7ee047..70b088c 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/SpotInstanceClient.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/services/SpotInstanceClient.java
@@ -29,8 +29,10 @@ import org.jclouds.javax.annotation.Nullable;
* Guide.
* <p/>
*
+ * @deprecated This class is being moved in 1.7. Please use SpotInstanceApi via AWSEC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
public interface SpotInstanceClient {
/**
* Describes Spot Instance requests. Spot Instances are instances that Amazon EC2 starts on your
[2/2] git commit: JCLOUDS-150. Deprecate EC2 *Client,
add dummy *Api classes.
Posted by ab...@apache.org.
JCLOUDS-150. Deprecate EC2 *Client, add dummy *Api classes.
Project: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/commit/264d47e3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/tree/264d47e3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/diff/264d47e3
Branch: refs/heads/1.6.x
Commit: 264d47e3ce03c9ccc2dfbe0bda227c4132193d2c
Parents: 3731f81
Author: Andrew Bayer <an...@gmail.com>
Authored: Tue Jul 2 09:06:57 2013 -0700
Committer: Andrew Bayer <an...@gmail.com>
Committed: Tue Jul 2 09:06:57 2013 -0700
----------------------------------------------------------------------
.../src/main/java/org/jclouds/ec2/EC2Api.java | 77 ++++++++++++
.../java/org/jclouds/ec2/EC2ApiMetadata.java | 5 +-
.../main/java/org/jclouds/ec2/EC2AsyncApi.java | 77 ++++++++++++
.../main/java/org/jclouds/ec2/EC2Client.java | 4 +-
.../jclouds/ec2/config/EC2RestClientModule.java | 43 +++++--
.../java/org/jclouds/ec2/features/AMIApi.java | 41 +++++++
.../org/jclouds/ec2/features/AMIAsyncApi.java | 46 +++++++
.../features/AvailabilityZoneAndRegionApi.java | 41 +++++++
.../AvailabilityZoneAndRegionAsyncApi.java | 46 +++++++
.../ec2/features/ElasticBlockStoreApi.java | 41 +++++++
.../ec2/features/ElasticBlockStoreAsyncApi.java | 46 +++++++
.../ec2/features/ElasticIPAddressApi.java | 41 +++++++
.../ec2/features/ElasticIPAddressAsyncApi.java | 46 +++++++
.../org/jclouds/ec2/features/InstanceApi.java | 41 +++++++
.../jclouds/ec2/features/InstanceAsyncApi.java | 46 +++++++
.../org/jclouds/ec2/features/KeyPairApi.java | 41 +++++++
.../jclouds/ec2/features/KeyPairAsyncApi.java | 46 +++++++
.../jclouds/ec2/features/SecurityGroupApi.java | 41 +++++++
.../ec2/features/SecurityGroupAsyncApi.java | 46 +++++++
.../org/jclouds/ec2/features/WindowsApi.java | 5 +-
.../jclouds/ec2/features/WindowsAsyncApi.java | 5 +-
.../jclouds/ec2/services/AMIAsyncClient.java | 2 +
.../org/jclouds/ec2/services/AMIClient.java | 4 +-
.../AvailabilityZoneAndRegionAsyncClient.java | 3 +
.../AvailabilityZoneAndRegionClient.java | 2 +
.../services/ElasticBlockStoreAsyncClient.java | 3 +
.../ec2/services/ElasticBlockStoreClient.java | 2 +
.../services/ElasticIPAddressAsyncClient.java | 3 +
.../ec2/services/ElasticIPAddressClient.java | 2 +
.../ec2/services/InstanceAsyncClient.java | 3 +
.../jclouds/ec2/services/InstanceClient.java | 2 +
.../ec2/services/KeyPairAsyncClient.java | 3 +
.../org/jclouds/ec2/services/KeyPairClient.java | 2 +
.../ec2/services/SecurityGroupAsyncClient.java | 3 +
.../ec2/services/SecurityGroupClient.java | 2 +
.../ec2/services/WindowsAsyncClient.java | 3 +
.../org/jclouds/ec2/services/WindowsClient.java | 2 +
.../jclouds/openstack/nova/ec2/NovaEC2Api.java | 47 +++++++
.../openstack/nova/ec2/NovaEC2AsyncApi.java | 49 ++++++++
.../openstack/nova/ec2/NovaEC2Client.java | 2 +
.../ec2/config/NovaEC2RestClientModule.java | 49 ++++++--
.../nova/ec2/features/NovaEC2KeyPairApi.java | 50 ++++++++
.../ec2/features/NovaEC2KeyPairAsyncApi.java | 52 ++++++++
.../ec2/services/NovaEC2KeyPairAsyncClient.java | 3 +
.../nova/ec2/services/NovaEC2KeyPairClient.java | 2 +
.../java/org/jclouds/aws/ec2/AWSEC2Api.java | 122 +++++++++++++++++++
.../org/jclouds/aws/ec2/AWSEC2AsyncApi.java | 122 +++++++++++++++++++
.../java/org/jclouds/aws/ec2/AWSEC2Client.java | 2 +
.../aws/ec2/config/AWSEC2RestClientModule.java | 70 ++++++++---
.../org/jclouds/aws/ec2/features/AWSAMIApi.java | 51 ++++++++
.../aws/ec2/features/AWSAMIAsyncApi.java | 53 ++++++++
.../aws/ec2/features/AWSInstanceApi.java | 51 ++++++++
.../aws/ec2/features/AWSInstanceAsyncApi.java | 53 ++++++++
.../jclouds/aws/ec2/features/AWSKeyPairApi.java | 51 ++++++++
.../aws/ec2/features/AWSKeyPairAsyncApi.java | 53 ++++++++
.../aws/ec2/features/AWSSecurityGroupApi.java | 51 ++++++++
.../ec2/features/AWSSecurityGroupAsyncApi.java | 53 ++++++++
.../jclouds/aws/ec2/features/MonitoringApi.java | 50 ++++++++
.../aws/ec2/features/MonitoringAsyncApi.java | 52 ++++++++
.../aws/ec2/features/PlacementGroupApi.java | 50 ++++++++
.../ec2/features/PlacementGroupAsyncApi.java | 52 ++++++++
.../aws/ec2/features/SpotInstanceApi.java | 50 ++++++++
.../aws/ec2/features/SpotInstanceAsyncApi.java | 52 ++++++++
.../aws/ec2/services/AWSAMIAsyncClient.java | 3 +
.../jclouds/aws/ec2/services/AWSAMIClient.java | 2 +
.../ec2/services/AWSInstanceAsyncClient.java | 3 +
.../aws/ec2/services/AWSInstanceClient.java | 2 +
.../aws/ec2/services/AWSKeyPairAsyncClient.java | 3 +
.../aws/ec2/services/AWSKeyPairClient.java | 2 +
.../services/AWSSecurityGroupAsyncClient.java | 3 +
.../ec2/services/AWSSecurityGroupClient.java | 2 +
.../aws/ec2/services/MonitoringAsyncClient.java | 3 +
.../aws/ec2/services/MonitoringClient.java | 2 +
.../ec2/services/PlacementGroupAsyncClient.java | 3 +
.../aws/ec2/services/PlacementGroupClient.java | 2 +
.../ec2/services/SpotInstanceAsyncClient.java | 3 +
.../aws/ec2/services/SpotInstanceClient.java | 2 +
77 files changed, 2149 insertions(+), 44 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/EC2Api.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/EC2Api.java b/apis/ec2/src/main/java/org/jclouds/ec2/EC2Api.java
index 26cf10e..c393f77 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/EC2Api.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/EC2Api.java
@@ -18,6 +18,13 @@ package org.jclouds.ec2;
import java.io.Closeable;
import java.util.Set;
+import org.jclouds.ec2.features.AMIApi;
+import org.jclouds.ec2.features.AvailabilityZoneAndRegionApi;
+import org.jclouds.ec2.features.ElasticBlockStoreApi;
+import org.jclouds.ec2.features.ElasticIPAddressApi;
+import org.jclouds.ec2.features.InstanceApi;
+import org.jclouds.ec2.features.KeyPairApi;
+import org.jclouds.ec2.features.SecurityGroupApi;
import org.jclouds.ec2.features.SubnetApi;
import org.jclouds.ec2.features.TagApi;
import org.jclouds.ec2.features.WindowsApi;
@@ -87,4 +94,74 @@ public interface EC2Api extends Closeable {
@Delegate
Optional<? extends SubnetApi> getSubnetApiForRegion(
@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * Provides synchronous access to AMI features.
+ */
+ @Delegate
+ Optional<? extends AMIApi> getAMIApi();
+
+ @Delegate
+ Optional<? extends AMIApi> getAMIApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * Provides synchronous access to Availability Zones and Regions services.
+ */
+ @Delegate
+ Optional<? extends AvailabilityZoneAndRegionApi> getAvailabilityZoneAndRegionApi();
+
+ @Delegate
+ Optional<? extends AvailabilityZoneAndRegionApi> getAvailabilityZoneAndRegionApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * Provides synchronous Elastic Block Store services.
+ */
+ @Delegate
+ Optional<? extends ElasticBlockStoreApi> getElasticBlockStoreApi();
+
+ @Delegate
+ Optional<? extends ElasticBlockStoreApi> getElasticBlockStoreApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * Provides synchronous Elastic IP services.
+ */
+ @Delegate
+ Optional<? extends ElasticIPAddressApi> getElasticIPAddressApi();
+
+ @Delegate
+ Optional<? extends ElasticIPAddressApi> getElasticIPAddressApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * Provides synchronous Instance services.
+ */
+ @Delegate
+ Optional<? extends InstanceApi> getInstanceApi();
+
+ @Delegate
+ Optional<? extends InstanceApi> getInstanceApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * Provides synchronous KeyPair services.
+ */
+ @Delegate
+ Optional<? extends KeyPairApi> getKeyPairApi();
+
+ @Delegate
+ Optional<? extends KeyPairApi> getKeyPairApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * Provides synchronous SecurityGroup services.
+ */
+ @Delegate
+ Optional<? extends SecurityGroupApi> getSecurityGroupApi();
+
+ @Delegate
+ Optional<? extends SecurityGroupApi> getSecurityGroupApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/EC2ApiMetadata.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/EC2ApiMetadata.java b/apis/ec2/src/main/java/org/jclouds/ec2/EC2ApiMetadata.java
index f380d46..0fff763 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/EC2ApiMetadata.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/EC2ApiMetadata.java
@@ -58,8 +58,9 @@ import com.google.inject.Module;
public class EC2ApiMetadata extends BaseRestApiMetadata {
/**
- * @deprecated please use {@code org.jclouds.ContextBuilder#buildApi(EC2Client.class)} as
- * {@link EC2AsyncClient} interface will be removed in jclouds 1.7.
+ * @deprecated please use {@code org.jclouds.ContextBuilder#buildApi(EC2Api.class)} as
+ * {@link EC2AsyncClient} interface will be removed and {@link EC2Client} will be
+ * moved into {@link EC2Api} in jclouds 1.7
*/
@Deprecated
public static final TypeToken<org.jclouds.rest.RestContext<? extends EC2Client, ? extends EC2AsyncClient>> CONTEXT_TOKEN = new TypeToken<org.jclouds.rest.RestContext<? extends EC2Client, ? extends EC2AsyncClient>>() {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/EC2AsyncApi.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/EC2AsyncApi.java b/apis/ec2/src/main/java/org/jclouds/ec2/EC2AsyncApi.java
index e96c0a7..3d64f1b 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/EC2AsyncApi.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/EC2AsyncApi.java
@@ -19,6 +19,13 @@ package org.jclouds.ec2;
import java.io.Closeable;
import java.util.Set;
+import org.jclouds.ec2.features.AMIAsyncApi;
+import org.jclouds.ec2.features.AvailabilityZoneAndRegionAsyncApi;
+import org.jclouds.ec2.features.ElasticBlockStoreAsyncApi;
+import org.jclouds.ec2.features.ElasticIPAddressAsyncApi;
+import org.jclouds.ec2.features.InstanceAsyncApi;
+import org.jclouds.ec2.features.KeyPairAsyncApi;
+import org.jclouds.ec2.features.SecurityGroupAsyncApi;
import org.jclouds.ec2.features.SubnetAsyncApi;
import org.jclouds.ec2.features.TagAsyncApi;
import org.jclouds.ec2.features.WindowsAsyncApi;
@@ -75,4 +82,74 @@ public interface EC2AsyncApi extends Closeable {
@Delegate
Optional<? extends SubnetAsyncApi> getSubnetApiForRegion(
@EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * Provides asynchronous access to AMI features.
+ */
+ @Delegate
+ Optional<? extends AMIAsyncApi> getAMIApi();
+
+ @Delegate
+ Optional<? extends AMIAsyncApi> getAMIApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * Provides asynchronous access to Availability Zones and Regions services.
+ */
+ @Delegate
+ Optional<? extends AvailabilityZoneAndRegionAsyncApi> getAvailabilityZoneAndRegionApi();
+
+ @Delegate
+ Optional<? extends AvailabilityZoneAndRegionAsyncApi> getAvailabilityZoneAndRegionApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * Provides asynchronous access to Elastic Block Store services.
+ */
+ @Delegate
+ Optional<? extends ElasticBlockStoreAsyncApi> getElasticBlockStoreApi();
+
+ @Delegate
+ Optional<? extends ElasticBlockStoreAsyncApi> getElasticBlockStoreApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * Provides asynchronous access to Elastic IP services.
+ */
+ @Delegate
+ Optional<? extends ElasticIPAddressAsyncApi> getElasticIPAddressApi();
+
+ @Delegate
+ Optional<? extends ElasticIPAddressAsyncApi> getElasticIPAddressApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * Provides asynchronous access to Instance services.
+ */
+ @Delegate
+ Optional<? extends InstanceAsyncApi> getInstanceApi();
+
+ @Delegate
+ Optional<? extends InstanceAsyncApi> getInstanceApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * Provides asynchronous access to KeyPair services.
+ */
+ @Delegate
+ Optional<? extends KeyPairAsyncApi> getKeyPairApi();
+
+ @Delegate
+ Optional<? extends KeyPairAsyncApi> getKeyPairApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+ /**
+ * Provides asynchronous access to SecurityGroup services.
+ */
+ @Delegate
+ Optional<? extends SecurityGroupAsyncApi> getSecurityGroupApi();
+
+ @Delegate
+ Optional<? extends SecurityGroupAsyncApi> getSecurityGroupApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/EC2Client.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/EC2Client.java b/apis/ec2/src/main/java/org/jclouds/ec2/EC2Client.java
index 42d1a4c..aa9234f 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/EC2Client.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/EC2Client.java
@@ -28,9 +28,11 @@ import org.jclouds.rest.annotations.Delegate;
/**
* Provides synchronous access to EC2 services.
- *
+ *
+ * @deprecated This class's functionality is being moved in 1.7.0. Please use EC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
public interface EC2Client extends EC2Api {
/**
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/config/EC2RestClientModule.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/config/EC2RestClientModule.java b/apis/ec2/src/main/java/org/jclouds/ec2/config/EC2RestClientModule.java
index 589ce99..a6824fb 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/config/EC2RestClientModule.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/config/EC2RestClientModule.java
@@ -27,6 +27,20 @@ import org.jclouds.ec2.EC2Api;
import org.jclouds.ec2.EC2AsyncApi;
import org.jclouds.ec2.EC2AsyncClient;
import org.jclouds.ec2.EC2Client;
+import org.jclouds.ec2.features.AMIApi;
+import org.jclouds.ec2.features.AMIAsyncApi;
+import org.jclouds.ec2.features.AvailabilityZoneAndRegionApi;
+import org.jclouds.ec2.features.AvailabilityZoneAndRegionAsyncApi;
+import org.jclouds.ec2.features.ElasticBlockStoreApi;
+import org.jclouds.ec2.features.ElasticBlockStoreAsyncApi;
+import org.jclouds.ec2.features.ElasticIPAddressApi;
+import org.jclouds.ec2.features.ElasticIPAddressAsyncApi;
+import org.jclouds.ec2.features.InstanceApi;
+import org.jclouds.ec2.features.InstanceAsyncApi;
+import org.jclouds.ec2.features.KeyPairApi;
+import org.jclouds.ec2.features.KeyPairAsyncApi;
+import org.jclouds.ec2.features.SecurityGroupApi;
+import org.jclouds.ec2.features.SecurityGroupAsyncApi;
import org.jclouds.ec2.features.SubnetApi;
import org.jclouds.ec2.features.SubnetAsyncApi;
import org.jclouds.ec2.features.TagApi;
@@ -77,17 +91,24 @@ import com.google.inject.Scopes;
public class EC2RestClientModule<S extends EC2Api, A extends EC2AsyncApi> extends
WithZonesFormSigningRestClientModule<S, A> {
public static final Map<Class<?>, Class<?>> DELEGATE_MAP = ImmutableMap.<Class<?>, Class<?>> builder()//
- .put(AMIClient.class, AMIAsyncClient.class)//
- .put(ElasticIPAddressClient.class, ElasticIPAddressAsyncClient.class)//
- .put(InstanceClient.class, InstanceAsyncClient.class)//
- .put(KeyPairClient.class, KeyPairAsyncClient.class)//
- .put(SecurityGroupClient.class, SecurityGroupAsyncClient.class)//
- .put(WindowsClient.class, WindowsAsyncClient.class)//
- .put(AvailabilityZoneAndRegionClient.class, AvailabilityZoneAndRegionAsyncClient.class)//
- .put(ElasticBlockStoreClient.class, ElasticBlockStoreAsyncClient.class)//
- .put(WindowsApi.class, WindowsAsyncApi.class)//
- .put(TagApi.class, TagAsyncApi.class)//
- .put(SubnetApi.class, SubnetAsyncApi.class)//
+ .put(AMIClient.class, AMIAsyncClient.class)
+ .put(ElasticIPAddressClient.class, ElasticIPAddressAsyncClient.class)
+ .put(InstanceClient.class, InstanceAsyncClient.class)
+ .put(KeyPairClient.class, KeyPairAsyncClient.class)
+ .put(SecurityGroupClient.class, SecurityGroupAsyncClient.class)
+ .put(WindowsClient.class, WindowsAsyncClient.class)
+ .put(AvailabilityZoneAndRegionClient.class, AvailabilityZoneAndRegionAsyncClient.class)
+ .put(ElasticBlockStoreClient.class, ElasticBlockStoreAsyncClient.class)
+ .put(WindowsApi.class, WindowsAsyncApi.class)
+ .put(TagApi.class, TagAsyncApi.class)
+ .put(SubnetApi.class, SubnetAsyncApi.class)
+ .put(AMIApi.class, AMIAsyncApi.class)
+ .put(AvailabilityZoneAndRegionApi.class, AvailabilityZoneAndRegionAsyncApi.class)
+ .put(ElasticBlockStoreApi.class, ElasticBlockStoreAsyncApi.class)
+ .put(ElasticIPAddressApi.class, ElasticIPAddressAsyncApi.class)
+ .put(InstanceApi.class, InstanceAsyncApi.class)
+ .put(KeyPairApi.class, KeyPairAsyncApi.class)
+ .put(SecurityGroupApi.class, SecurityGroupAsyncApi.class)
.build();
@SuppressWarnings("unchecked")
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/features/AMIApi.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/features/AMIApi.java b/apis/ec2/src/main/java/org/jclouds/ec2/features/AMIApi.java
new file mode 100644
index 0000000..56e9cf1
--- /dev/null
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/features/AMIApi.java
@@ -0,0 +1,41 @@
+/*
+ * 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 org.jclouds.ec2.features;
+
+import java.util.Map;
+import java.util.Set;
+import org.jclouds.ec2.domain.Image;
+import org.jclouds.ec2.domain.Image.EbsBlockDevice;
+import org.jclouds.ec2.domain.Permission;
+import org.jclouds.ec2.options.CreateImageOptions;
+import org.jclouds.ec2.options.DescribeImagesOptions;
+import org.jclouds.ec2.options.RegisterImageBackedByEbsOptions;
+import org.jclouds.ec2.options.RegisterImageOptions;
+import org.jclouds.ec2.services.AMIClient;
+import org.jclouds.javax.annotation.Nullable;
+
+/**
+ * Provides access to EC2 via their REST API.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+public interface AMIApi extends AMIClient {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/features/AMIAsyncApi.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/features/AMIAsyncApi.java b/apis/ec2/src/main/java/org/jclouds/ec2/features/AMIAsyncApi.java
new file mode 100644
index 0000000..4e5a563
--- /dev/null
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/features/AMIAsyncApi.java
@@ -0,0 +1,46 @@
+/*
+ * 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 org.jclouds.ec2.features;
+
+import java.util.Map;
+import java.util.Set;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.domain.Image;
+import org.jclouds.ec2.domain.Image.EbsBlockDevice;
+import org.jclouds.ec2.domain.Permission;
+import org.jclouds.ec2.options.CreateImageOptions;
+import org.jclouds.ec2.options.DescribeImagesOptions;
+import org.jclouds.ec2.options.RegisterImageBackedByEbsOptions;
+import org.jclouds.ec2.options.RegisterImageOptions;
+import org.jclouds.ec2.services.AMIAsyncClient;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+
+/**
+ * Provides access to EC2 via their REST API.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+@RequestFilters(FormSigner.class)
+@VirtualHost
+public interface AMIAsyncApi extends AMIAsyncClient {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/features/AvailabilityZoneAndRegionApi.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/features/AvailabilityZoneAndRegionApi.java b/apis/ec2/src/main/java/org/jclouds/ec2/features/AvailabilityZoneAndRegionApi.java
new file mode 100644
index 0000000..e8d712c
--- /dev/null
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/features/AvailabilityZoneAndRegionApi.java
@@ -0,0 +1,41 @@
+/*
+ * 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 org.jclouds.ec2.features;
+
+import java.util.Map;
+import java.util.Set;
+import org.jclouds.ec2.domain.Image;
+import org.jclouds.ec2.domain.Image.EbsBlockDevice;
+import org.jclouds.ec2.domain.Permission;
+import org.jclouds.ec2.options.CreateImageOptions;
+import org.jclouds.ec2.options.DescribeImagesOptions;
+import org.jclouds.ec2.options.RegisterImageBackedByEbsOptions;
+import org.jclouds.ec2.options.RegisterImageOptions;
+import org.jclouds.ec2.services.AvailabilityZoneAndRegionClient;
+import org.jclouds.javax.annotation.Nullable;
+
+/**
+ * Provides access to EC2 via their REST API.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+public interface AvailabilityZoneAndRegionApi extends AvailabilityZoneAndRegionClient {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/features/AvailabilityZoneAndRegionAsyncApi.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/features/AvailabilityZoneAndRegionAsyncApi.java b/apis/ec2/src/main/java/org/jclouds/ec2/features/AvailabilityZoneAndRegionAsyncApi.java
new file mode 100644
index 0000000..e31c4c2
--- /dev/null
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/features/AvailabilityZoneAndRegionAsyncApi.java
@@ -0,0 +1,46 @@
+/*
+ * 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 org.jclouds.ec2.features;
+
+import java.util.Map;
+import java.util.Set;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.domain.Image;
+import org.jclouds.ec2.domain.Image.EbsBlockDevice;
+import org.jclouds.ec2.domain.Permission;
+import org.jclouds.ec2.options.CreateImageOptions;
+import org.jclouds.ec2.options.DescribeImagesOptions;
+import org.jclouds.ec2.options.RegisterImageBackedByEbsOptions;
+import org.jclouds.ec2.options.RegisterImageOptions;
+import org.jclouds.ec2.services.AvailabilityZoneAndRegionAsyncClient;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+
+/**
+ * Provides access to EC2 via their REST API.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+@RequestFilters(FormSigner.class)
+@VirtualHost
+public interface AvailabilityZoneAndRegionAsyncApi extends AvailabilityZoneAndRegionAsyncClient {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/features/ElasticBlockStoreApi.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/features/ElasticBlockStoreApi.java b/apis/ec2/src/main/java/org/jclouds/ec2/features/ElasticBlockStoreApi.java
new file mode 100644
index 0000000..b3f5938
--- /dev/null
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/features/ElasticBlockStoreApi.java
@@ -0,0 +1,41 @@
+/*
+ * 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 org.jclouds.ec2.features;
+
+import java.util.Map;
+import java.util.Set;
+import org.jclouds.ec2.domain.Image;
+import org.jclouds.ec2.domain.Image.EbsBlockDevice;
+import org.jclouds.ec2.domain.Permission;
+import org.jclouds.ec2.options.CreateImageOptions;
+import org.jclouds.ec2.options.DescribeImagesOptions;
+import org.jclouds.ec2.options.RegisterImageBackedByEbsOptions;
+import org.jclouds.ec2.options.RegisterImageOptions;
+import org.jclouds.ec2.services.ElasticBlockStoreClient;
+import org.jclouds.javax.annotation.Nullable;
+
+/**
+ * Provides access to EC2 via their REST API.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+public interface ElasticBlockStoreApi extends ElasticBlockStoreClient {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/features/ElasticBlockStoreAsyncApi.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/features/ElasticBlockStoreAsyncApi.java b/apis/ec2/src/main/java/org/jclouds/ec2/features/ElasticBlockStoreAsyncApi.java
new file mode 100644
index 0000000..8a64f63
--- /dev/null
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/features/ElasticBlockStoreAsyncApi.java
@@ -0,0 +1,46 @@
+/*
+ * 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 org.jclouds.ec2.features;
+
+import java.util.Map;
+import java.util.Set;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.domain.Image;
+import org.jclouds.ec2.domain.Image.EbsBlockDevice;
+import org.jclouds.ec2.domain.Permission;
+import org.jclouds.ec2.options.CreateImageOptions;
+import org.jclouds.ec2.options.DescribeImagesOptions;
+import org.jclouds.ec2.options.RegisterImageBackedByEbsOptions;
+import org.jclouds.ec2.options.RegisterImageOptions;
+import org.jclouds.ec2.services.ElasticBlockStoreAsyncClient;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+
+/**
+ * Provides access to EC2 via their REST API.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+@RequestFilters(FormSigner.class)
+@VirtualHost
+public interface ElasticBlockStoreAsyncApi extends ElasticBlockStoreAsyncClient {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/features/ElasticIPAddressApi.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/features/ElasticIPAddressApi.java b/apis/ec2/src/main/java/org/jclouds/ec2/features/ElasticIPAddressApi.java
new file mode 100644
index 0000000..c3d5d05
--- /dev/null
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/features/ElasticIPAddressApi.java
@@ -0,0 +1,41 @@
+/*
+ * 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 org.jclouds.ec2.features;
+
+import java.util.Map;
+import java.util.Set;
+import org.jclouds.ec2.domain.Image;
+import org.jclouds.ec2.domain.Image.EbsBlockDevice;
+import org.jclouds.ec2.domain.Permission;
+import org.jclouds.ec2.options.CreateImageOptions;
+import org.jclouds.ec2.options.DescribeImagesOptions;
+import org.jclouds.ec2.options.RegisterImageBackedByEbsOptions;
+import org.jclouds.ec2.options.RegisterImageOptions;
+import org.jclouds.ec2.services.ElasticIPAddressClient;
+import org.jclouds.javax.annotation.Nullable;
+
+/**
+ * Provides access to EC2 via their REST API.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+public interface ElasticIPAddressApi extends ElasticIPAddressClient {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/features/ElasticIPAddressAsyncApi.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/features/ElasticIPAddressAsyncApi.java b/apis/ec2/src/main/java/org/jclouds/ec2/features/ElasticIPAddressAsyncApi.java
new file mode 100644
index 0000000..101007c
--- /dev/null
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/features/ElasticIPAddressAsyncApi.java
@@ -0,0 +1,46 @@
+/*
+ * 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 org.jclouds.ec2.features;
+
+import java.util.Map;
+import java.util.Set;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.domain.Image;
+import org.jclouds.ec2.domain.Image.EbsBlockDevice;
+import org.jclouds.ec2.domain.Permission;
+import org.jclouds.ec2.options.CreateImageOptions;
+import org.jclouds.ec2.options.DescribeImagesOptions;
+import org.jclouds.ec2.options.RegisterImageBackedByEbsOptions;
+import org.jclouds.ec2.options.RegisterImageOptions;
+import org.jclouds.ec2.services.ElasticIPAddressAsyncClient;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+
+/**
+ * Provides access to EC2 via their REST API.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+@RequestFilters(FormSigner.class)
+@VirtualHost
+public interface ElasticIPAddressAsyncApi extends ElasticIPAddressAsyncClient {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/features/InstanceApi.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/features/InstanceApi.java b/apis/ec2/src/main/java/org/jclouds/ec2/features/InstanceApi.java
new file mode 100644
index 0000000..28124e3
--- /dev/null
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/features/InstanceApi.java
@@ -0,0 +1,41 @@
+/*
+ * 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 org.jclouds.ec2.features;
+
+import java.util.Map;
+import java.util.Set;
+import org.jclouds.ec2.domain.Image;
+import org.jclouds.ec2.domain.Image.EbsBlockDevice;
+import org.jclouds.ec2.domain.Permission;
+import org.jclouds.ec2.options.CreateImageOptions;
+import org.jclouds.ec2.options.DescribeImagesOptions;
+import org.jclouds.ec2.options.RegisterImageBackedByEbsOptions;
+import org.jclouds.ec2.options.RegisterImageOptions;
+import org.jclouds.ec2.services.InstanceClient;
+import org.jclouds.javax.annotation.Nullable;
+
+/**
+ * Provides access to EC2 via their REST API.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+public interface InstanceApi extends InstanceClient {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/features/InstanceAsyncApi.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/features/InstanceAsyncApi.java b/apis/ec2/src/main/java/org/jclouds/ec2/features/InstanceAsyncApi.java
new file mode 100644
index 0000000..c89bec2
--- /dev/null
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/features/InstanceAsyncApi.java
@@ -0,0 +1,46 @@
+/*
+ * 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 org.jclouds.ec2.features;
+
+import java.util.Map;
+import java.util.Set;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.domain.Image;
+import org.jclouds.ec2.domain.Image.EbsBlockDevice;
+import org.jclouds.ec2.domain.Permission;
+import org.jclouds.ec2.options.CreateImageOptions;
+import org.jclouds.ec2.options.DescribeImagesOptions;
+import org.jclouds.ec2.options.RegisterImageBackedByEbsOptions;
+import org.jclouds.ec2.options.RegisterImageOptions;
+import org.jclouds.ec2.services.InstanceAsyncClient;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+
+/**
+ * Provides access to EC2 via their REST API.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+@RequestFilters(FormSigner.class)
+@VirtualHost
+public interface InstanceAsyncApi extends InstanceAsyncClient {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/features/KeyPairApi.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/features/KeyPairApi.java b/apis/ec2/src/main/java/org/jclouds/ec2/features/KeyPairApi.java
new file mode 100644
index 0000000..1d950f9
--- /dev/null
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/features/KeyPairApi.java
@@ -0,0 +1,41 @@
+/*
+ * 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 org.jclouds.ec2.features;
+
+import java.util.Map;
+import java.util.Set;
+import org.jclouds.ec2.domain.Image;
+import org.jclouds.ec2.domain.Image.EbsBlockDevice;
+import org.jclouds.ec2.domain.Permission;
+import org.jclouds.ec2.options.CreateImageOptions;
+import org.jclouds.ec2.options.DescribeImagesOptions;
+import org.jclouds.ec2.options.RegisterImageBackedByEbsOptions;
+import org.jclouds.ec2.options.RegisterImageOptions;
+import org.jclouds.ec2.services.KeyPairClient;
+import org.jclouds.javax.annotation.Nullable;
+
+/**
+ * Provides access to EC2 via their REST API.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+public interface KeyPairApi extends KeyPairClient {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/features/KeyPairAsyncApi.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/features/KeyPairAsyncApi.java b/apis/ec2/src/main/java/org/jclouds/ec2/features/KeyPairAsyncApi.java
new file mode 100644
index 0000000..b6f1610
--- /dev/null
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/features/KeyPairAsyncApi.java
@@ -0,0 +1,46 @@
+/*
+ * 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 org.jclouds.ec2.features;
+
+import java.util.Map;
+import java.util.Set;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.domain.Image;
+import org.jclouds.ec2.domain.Image.EbsBlockDevice;
+import org.jclouds.ec2.domain.Permission;
+import org.jclouds.ec2.options.CreateImageOptions;
+import org.jclouds.ec2.options.DescribeImagesOptions;
+import org.jclouds.ec2.options.RegisterImageBackedByEbsOptions;
+import org.jclouds.ec2.options.RegisterImageOptions;
+import org.jclouds.ec2.services.KeyPairAsyncClient;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+
+/**
+ * Provides access to EC2 via their REST API.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+@RequestFilters(FormSigner.class)
+@VirtualHost
+public interface KeyPairAsyncApi extends KeyPairAsyncClient {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/features/SecurityGroupApi.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/features/SecurityGroupApi.java b/apis/ec2/src/main/java/org/jclouds/ec2/features/SecurityGroupApi.java
new file mode 100644
index 0000000..e0deab5
--- /dev/null
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/features/SecurityGroupApi.java
@@ -0,0 +1,41 @@
+/*
+ * 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 org.jclouds.ec2.features;
+
+import java.util.Map;
+import java.util.Set;
+import org.jclouds.ec2.domain.Image;
+import org.jclouds.ec2.domain.Image.EbsBlockDevice;
+import org.jclouds.ec2.domain.Permission;
+import org.jclouds.ec2.options.CreateImageOptions;
+import org.jclouds.ec2.options.DescribeImagesOptions;
+import org.jclouds.ec2.options.RegisterImageBackedByEbsOptions;
+import org.jclouds.ec2.options.RegisterImageOptions;
+import org.jclouds.ec2.services.SecurityGroupClient;
+import org.jclouds.javax.annotation.Nullable;
+
+/**
+ * Provides access to EC2 via their REST API.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+public interface SecurityGroupApi extends SecurityGroupClient {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/features/SecurityGroupAsyncApi.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/features/SecurityGroupAsyncApi.java b/apis/ec2/src/main/java/org/jclouds/ec2/features/SecurityGroupAsyncApi.java
new file mode 100644
index 0000000..165fba6
--- /dev/null
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/features/SecurityGroupAsyncApi.java
@@ -0,0 +1,46 @@
+/*
+ * 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 org.jclouds.ec2.features;
+
+import java.util.Map;
+import java.util.Set;
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.domain.Image;
+import org.jclouds.ec2.domain.Image.EbsBlockDevice;
+import org.jclouds.ec2.domain.Permission;
+import org.jclouds.ec2.options.CreateImageOptions;
+import org.jclouds.ec2.options.DescribeImagesOptions;
+import org.jclouds.ec2.options.RegisterImageBackedByEbsOptions;
+import org.jclouds.ec2.options.RegisterImageOptions;
+import org.jclouds.ec2.services.SecurityGroupAsyncClient;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+
+/**
+ * Provides access to EC2 via their REST API.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+@RequestFilters(FormSigner.class)
+@VirtualHost
+public interface SecurityGroupAsyncApi extends SecurityGroupAsyncClient {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/features/WindowsApi.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/features/WindowsApi.java b/apis/ec2/src/main/java/org/jclouds/ec2/features/WindowsApi.java
index c74fc20..8450ddd 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/features/WindowsApi.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/features/WindowsApi.java
@@ -17,6 +17,7 @@
package org.jclouds.ec2.features;
import org.jclouds.ec2.domain.PasswordData;
+import org.jclouds.ec2.services.WindowsClient;
import org.jclouds.rest.annotations.SinceApiVersion;
import com.google.common.annotations.Beta;
@@ -25,13 +26,15 @@ import com.google.common.annotations.Beta;
* Provides access to EC2 Windows Features via the Query API
* <p/>
*
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
* @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference" >doc</a>
* @see WindowsAsyncApi
* @author Adrian Cole
*/
@Beta
@SinceApiVersion("2008-08-08")
-public interface WindowsApi {
+public interface WindowsApi extends WindowsClient {
/**
*
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/features/WindowsAsyncApi.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/features/WindowsAsyncApi.java b/apis/ec2/src/main/java/org/jclouds/ec2/features/WindowsAsyncApi.java
index 3f8f02d..bb18fd9 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/features/WindowsAsyncApi.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/features/WindowsAsyncApi.java
@@ -26,6 +26,7 @@ import javax.ws.rs.Path;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
import org.jclouds.aws.filters.FormSigner;
import org.jclouds.ec2.domain.PasswordData;
+import org.jclouds.ec2.services.WindowsAsyncClient;
import org.jclouds.ec2.xml.GetPasswordDataResponseHandler;
import org.jclouds.rest.annotations.Fallback;
import org.jclouds.rest.annotations.FormParams;
@@ -41,6 +42,8 @@ import com.google.common.util.concurrent.ListenableFuture;
* Provides access to EC2 Windows Features via the Query API
* <p/>
*
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
* @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference" >doc</a>
* @see WindowsAsyncApi
* @author Adrian Cole
@@ -49,7 +52,7 @@ import com.google.common.util.concurrent.ListenableFuture;
@VirtualHost
@Beta
@SinceApiVersion("2008-08-08")
-public interface WindowsAsyncApi {
+public interface WindowsAsyncApi extends WindowsAsyncClient {
/**
* @see WindowsApi#getPasswordDataForInstance
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/services/AMIAsyncClient.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/services/AMIAsyncClient.java b/apis/ec2/src/main/java/org/jclouds/ec2/services/AMIAsyncClient.java
index cf079f0..240044e 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/services/AMIAsyncClient.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/services/AMIAsyncClient.java
@@ -57,8 +57,10 @@ import com.google.common.util.concurrent.ListenableFuture;
* Provides access to AMI Services.
* <p/>
*
+ * @deprecated Async interfaces are being removed in 1.7. Please use AMIApi via EC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
@RequestFilters(FormSigner.class)
@VirtualHost
public interface AMIAsyncClient {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/services/AMIClient.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/services/AMIClient.java b/apis/ec2/src/main/java/org/jclouds/ec2/services/AMIClient.java
index ebaec35..8b42a1e 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/services/AMIClient.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/services/AMIClient.java
@@ -30,9 +30,11 @@ import org.jclouds.javax.annotation.Nullable;
/**
* Provides access to EC2 via their REST API.
* <p/>
- *
+ *
+ * @deprecated This class is being moved in 1.7. Please use AMIApi via EC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
public interface AMIClient {
/**
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/services/AvailabilityZoneAndRegionAsyncClient.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/services/AvailabilityZoneAndRegionAsyncClient.java b/apis/ec2/src/main/java/org/jclouds/ec2/services/AvailabilityZoneAndRegionAsyncClient.java
index 3c5b379..7115bb0 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/services/AvailabilityZoneAndRegionAsyncClient.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/services/AvailabilityZoneAndRegionAsyncClient.java
@@ -48,8 +48,11 @@ import com.google.common.util.concurrent.ListenableFuture;
* Provides access to EC2 Availability Zones and Regions via their REST API.
* <p/>
*
+ * @deprecated Async interfaces are being removed in 1.7.
+ * Please use AvailabilityZoneAndRegionApi via EC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
@RequestFilters(FormSigner.class)
@VirtualHost
public interface AvailabilityZoneAndRegionAsyncClient {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/services/AvailabilityZoneAndRegionClient.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/services/AvailabilityZoneAndRegionClient.java b/apis/ec2/src/main/java/org/jclouds/ec2/services/AvailabilityZoneAndRegionClient.java
index 0eef970..cc05eb9 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/services/AvailabilityZoneAndRegionClient.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/services/AvailabilityZoneAndRegionClient.java
@@ -28,8 +28,10 @@ import org.jclouds.javax.annotation.Nullable;
* Provides EC2 Availability Zones and Regions services for EC2.
* <p/>
*
+ * @deprecated This class is being moved in 1.7. Please use AvailabilityZoneAndRegionApi via EC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
public interface AvailabilityZoneAndRegionClient {
/**
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticBlockStoreAsyncClient.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticBlockStoreAsyncClient.java b/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticBlockStoreAsyncClient.java
index 3b0ccd2..bcb413a 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticBlockStoreAsyncClient.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticBlockStoreAsyncClient.java
@@ -61,8 +61,11 @@ import com.google.common.util.concurrent.ListenableFuture;
* Provides access to EC2 Elastic Block Store services via their REST API.
* <p/>
*
+ * @deprecated Async interfaces are being removed in 1.7.
+ * Please use ElasticBlockStoreApi via EC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
@RequestFilters(FormSigner.class)
@VirtualHost
public interface ElasticBlockStoreAsyncClient {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticBlockStoreClient.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticBlockStoreClient.java b/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticBlockStoreClient.java
index b12df61..08d4613 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticBlockStoreClient.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticBlockStoreClient.java
@@ -30,8 +30,10 @@ import org.jclouds.javax.annotation.Nullable;
* Provides access to EC2 Elastic Block Store services.
* <p/>
*
+ * @deprecated This class is being moved in 1.7. Please use ElasticBlockStoreApi via EC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
public interface ElasticBlockStoreClient {
/**
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticIPAddressAsyncClient.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticIPAddressAsyncClient.java b/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticIPAddressAsyncClient.java
index 8369fa4..fb48c17 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticIPAddressAsyncClient.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticIPAddressAsyncClient.java
@@ -47,8 +47,11 @@ import com.google.common.util.concurrent.ListenableFuture;
* Provides access to EC2 Elastic IP Addresses via REST API.
* <p/>
*
+ * @deprecated Async interfaces are being removed in 1.7.
+ * Please use ElasticIpAddressApi via EC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
@RequestFilters(FormSigner.class)
@VirtualHost
public interface ElasticIPAddressAsyncClient {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticIPAddressClient.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticIPAddressClient.java b/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticIPAddressClient.java
index 2eaec4d..8d558e2 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticIPAddressClient.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/services/ElasticIPAddressClient.java
@@ -24,8 +24,10 @@ import org.jclouds.javax.annotation.Nullable;
* Provides access to EC2 via their REST API.
* <p/>
*
+ * @deprecated This class is being moved in 1.7. Please use ElasticIpAddressApi via EC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
public interface ElasticIPAddressClient {
/**
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/services/InstanceAsyncClient.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/services/InstanceAsyncClient.java b/apis/ec2/src/main/java/org/jclouds/ec2/services/InstanceAsyncClient.java
index 0a1968d..87ecd30 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/services/InstanceAsyncClient.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/services/InstanceAsyncClient.java
@@ -65,8 +65,11 @@ import com.google.common.util.concurrent.ListenableFuture;
* Provides access to EC2 Instance Services via their REST API.
* <p/>
*
+ * @deprecated Async interfaces are being removed in 1.7.
+ * Please use InstanceApi via EC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
@RequestFilters(FormSigner.class)
@VirtualHost
public interface InstanceAsyncClient {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/services/InstanceClient.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/services/InstanceClient.java b/apis/ec2/src/main/java/org/jclouds/ec2/services/InstanceClient.java
index 2bd6e26..4a0c287 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/services/InstanceClient.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/services/InstanceClient.java
@@ -30,8 +30,10 @@ import org.jclouds.javax.annotation.Nullable;
* Provides access to EC2 via their REST API.
* <p/>
*
+ * @deprecated This class is being moved in 1.7. Please use InstanceApi via EC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
public interface InstanceClient {
/**
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/services/KeyPairAsyncClient.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/services/KeyPairAsyncClient.java b/apis/ec2/src/main/java/org/jclouds/ec2/services/KeyPairAsyncClient.java
index 48e0059..a9c8be6 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/services/KeyPairAsyncClient.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/services/KeyPairAsyncClient.java
@@ -47,8 +47,11 @@ import com.google.common.util.concurrent.ListenableFuture;
* Provides access to EC2 via their REST API.
* <p/>
*
+ * @deprecated Async interfaces are being removed in 1.7.
+ * Please use KeyPairApi via EC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
@RequestFilters(FormSigner.class)
@VirtualHost
public interface KeyPairAsyncClient {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/services/KeyPairClient.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/services/KeyPairClient.java b/apis/ec2/src/main/java/org/jclouds/ec2/services/KeyPairClient.java
index 0210f9d..f9779ea 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/services/KeyPairClient.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/services/KeyPairClient.java
@@ -24,8 +24,10 @@ import org.jclouds.javax.annotation.Nullable;
* Provides access to EC2 via their REST API.
* <p/>
*
+ * @deprecated This class is being moved in 1.7. Please use KeyPairApi via EC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
public interface KeyPairClient {
/**
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/services/SecurityGroupAsyncClient.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/services/SecurityGroupAsyncClient.java b/apis/ec2/src/main/java/org/jclouds/ec2/services/SecurityGroupAsyncClient.java
index 4d074ee..76e9d8d 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/services/SecurityGroupAsyncClient.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/services/SecurityGroupAsyncClient.java
@@ -50,8 +50,11 @@ import com.google.common.util.concurrent.ListenableFuture;
* Provides access to EC2 via their REST API.
* <p/>
*
+ * @deprecated Async interfaces are being removed in 1.7.
+ * Please use SecurityGroupApi via EC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
@RequestFilters(FormSigner.class)
@VirtualHost
public interface SecurityGroupAsyncClient {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/services/SecurityGroupClient.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/services/SecurityGroupClient.java b/apis/ec2/src/main/java/org/jclouds/ec2/services/SecurityGroupClient.java
index 3874bfb..aeb0d24 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/services/SecurityGroupClient.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/services/SecurityGroupClient.java
@@ -26,8 +26,10 @@ import org.jclouds.javax.annotation.Nullable;
* Provides access to EC2 via their REST API.
* <p/>
*
+ * @deprecated This class is being moved in 1.7. Please use SecurityGroupApi via EC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
public interface SecurityGroupClient {
/**
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/services/WindowsAsyncClient.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/services/WindowsAsyncClient.java b/apis/ec2/src/main/java/org/jclouds/ec2/services/WindowsAsyncClient.java
index 70d2cc8..333553e 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/services/WindowsAsyncClient.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/services/WindowsAsyncClient.java
@@ -51,8 +51,11 @@ import com.google.common.util.concurrent.ListenableFuture;
* Provides access to EC2 Windows via their REST API.
* <p/>
*
+ * @deprecated Async interfaces are being removed in 1.7.
+ * Please use WindowsApi via EC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
@RequestFilters(FormSigner.class)
@VirtualHost
public interface WindowsAsyncClient {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/ec2/src/main/java/org/jclouds/ec2/services/WindowsClient.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/services/WindowsClient.java b/apis/ec2/src/main/java/org/jclouds/ec2/services/WindowsClient.java
index e03320a..b6bf737 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/services/WindowsClient.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/services/WindowsClient.java
@@ -27,8 +27,10 @@ import org.jclouds.javax.annotation.Nullable;
* EC2 Developer Guide.
* <p/>
*
+ * @deprecated This class is being moved in 1.7. Please use SecurityGroupApi via EC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
public interface WindowsClient {
/**
* Bundles the Windows instance. This procedure is not applicable for Linux
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/NovaEC2Api.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/NovaEC2Api.java b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/NovaEC2Api.java
new file mode 100644
index 0000000..205d05a
--- /dev/null
+++ b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/NovaEC2Api.java
@@ -0,0 +1,47 @@
+/*
+ * 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 org.jclouds.openstack.nova.ec2;
+
+import org.jclouds.ec2.EC2Api;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.openstack.nova.ec2.features.NovaEC2KeyPairApi;
+import org.jclouds.rest.annotations.Delegate;
+import org.jclouds.rest.annotations.EndpointParam;
+
+import com.google.common.base.Optional;
+
+/**
+ * Provides synchronous access to EC2 services.
+ *
+ * @author Adam Lowe
+ */
+public interface NovaEC2Api extends EC2Api {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Delegate
+ @Override
+ Optional<? extends NovaEC2KeyPairApi> getKeyPairApi();
+
+ @Delegate
+ @Override
+ Optional<? extends NovaEC2KeyPairApi> getKeyPairApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/NovaEC2AsyncApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/NovaEC2AsyncApi.java b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/NovaEC2AsyncApi.java
new file mode 100644
index 0000000..081c248
--- /dev/null
+++ b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/NovaEC2AsyncApi.java
@@ -0,0 +1,49 @@
+/*
+ * 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 org.jclouds.openstack.nova.ec2;
+
+import org.jclouds.ec2.EC2AsyncApi;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.openstack.nova.ec2.features.NovaEC2KeyPairAsyncApi;
+import org.jclouds.rest.annotations.Delegate;
+import org.jclouds.rest.annotations.EndpointParam;
+
+import com.google.common.base.Optional;
+
+/**
+ * Provides asynchronous access to EC2 services.
+ *
+ * @author Adam Lowe
+ * @deprecated please use {@code org.jclouds.ContextBuilder#buildApi(NovaEC2Api.class)} as
+ * {@link NovaEC2AsyncApi} interface will be removed in jclouds 1.7.
+ */
+@Deprecated
+public interface NovaEC2AsyncApi extends EC2AsyncApi {
+ /**
+ * {@inheritDoc}
+ */
+ @Delegate
+ @Override
+ Optional<? extends NovaEC2KeyPairAsyncApi> getKeyPairApi();
+
+ @Delegate
+ @Override
+ Optional<? extends NovaEC2KeyPairAsyncApi> getKeyPairApiForRegion(
+ @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region);
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/NovaEC2Client.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/NovaEC2Client.java b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/NovaEC2Client.java
index f0c0bea..78b4ac8 100644
--- a/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/NovaEC2Client.java
+++ b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/NovaEC2Client.java
@@ -23,8 +23,10 @@ import org.jclouds.rest.annotations.Delegate;
/**
* Provides synchronous access to EC2 services.
*
+ * @deprecated This class's functionality is being moved in 1.7.0. Please use NovaEC2Api instead.
* @author Adam Lowe
*/
+@Deprecated
public interface NovaEC2Client extends EC2Client {
/**
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/config/NovaEC2RestClientModule.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/config/NovaEC2RestClientModule.java b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/config/NovaEC2RestClientModule.java
index 0669f14..ffeffb6 100644
--- a/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/config/NovaEC2RestClientModule.java
+++ b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/config/NovaEC2RestClientModule.java
@@ -22,9 +22,23 @@ import java.util.Map;
import javax.inject.Singleton;
+import org.jclouds.ec2.EC2Api;
+import org.jclouds.ec2.EC2AsyncApi;
import org.jclouds.ec2.EC2AsyncClient;
import org.jclouds.ec2.EC2Client;
import org.jclouds.ec2.config.EC2RestClientModule;
+import org.jclouds.ec2.features.AMIAsyncApi;
+import org.jclouds.ec2.features.AMIApi;
+import org.jclouds.ec2.features.AvailabilityZoneAndRegionAsyncApi;
+import org.jclouds.ec2.features.AvailabilityZoneAndRegionApi;
+import org.jclouds.ec2.features.ElasticBlockStoreAsyncApi;
+import org.jclouds.ec2.features.ElasticBlockStoreApi;
+import org.jclouds.ec2.features.ElasticIPAddressAsyncApi;
+import org.jclouds.ec2.features.ElasticIPAddressApi;
+import org.jclouds.ec2.features.InstanceAsyncApi;
+import org.jclouds.ec2.features.InstanceApi;
+import org.jclouds.ec2.features.SecurityGroupAsyncApi;
+import org.jclouds.ec2.features.SecurityGroupApi;
import org.jclouds.ec2.features.SubnetApi;
import org.jclouds.ec2.features.SubnetAsyncApi;
import org.jclouds.ec2.features.TagApi;
@@ -52,8 +66,12 @@ import org.jclouds.location.config.LocationModule;
import org.jclouds.location.suppliers.RegionIdToZoneIdsSupplier;
import org.jclouds.location.suppliers.ZoneIdsSupplier;
import org.jclouds.location.suppliers.derived.ZoneIdsFromRegionIdToZoneIdsValues;
+import org.jclouds.openstack.nova.ec2.NovaEC2Api;
+import org.jclouds.openstack.nova.ec2.NovaEC2AsyncApi;
import org.jclouds.openstack.nova.ec2.NovaEC2AsyncClient;
import org.jclouds.openstack.nova.ec2.NovaEC2Client;
+import org.jclouds.openstack.nova.ec2.features.NovaEC2KeyPairApi;
+import org.jclouds.openstack.nova.ec2.features.NovaEC2KeyPairAsyncApi;
import org.jclouds.openstack.nova.ec2.services.NovaEC2KeyPairAsyncClient;
import org.jclouds.openstack.nova.ec2.services.NovaEC2KeyPairClient;
import org.jclouds.openstack.nova.ec2.xml.NovaCreateVolumeResponseHandler;
@@ -71,18 +89,25 @@ import com.google.inject.Scopes;
*/
@ConfiguresRestClient
public class NovaEC2RestClientModule extends EC2RestClientModule<NovaEC2Client, NovaEC2AsyncClient> {
- public static final Map<Class<?>, Class<?>> DELEGATE_MAP = ImmutableMap.<Class<?>, Class<?>> builder()//
- .put(AMIClient.class, AMIAsyncClient.class)//
- .put(ElasticIPAddressClient.class, ElasticIPAddressAsyncClient.class)//
- .put(InstanceClient.class, InstanceAsyncClient.class)//
- .put(NovaEC2KeyPairClient.class, NovaEC2KeyPairAsyncClient.class)//
- .put(SecurityGroupClient.class, SecurityGroupAsyncClient.class)//
- .put(WindowsClient.class, WindowsAsyncClient.class)//
- .put(AvailabilityZoneAndRegionClient.class, AvailabilityZoneAndRegionAsyncClient.class)//
- .put(ElasticBlockStoreClient.class, ElasticBlockStoreAsyncClient.class)//
- .put(WindowsApi.class, WindowsAsyncApi.class)//
- .put(TagApi.class, TagAsyncApi.class)//
- .put(SubnetApi.class, SubnetAsyncApi.class)//
+ public static final Map<Class<?>, Class<?>> DELEGATE_MAP = ImmutableMap.<Class<?>, Class<?>> builder()
+ .put(AMIClient.class, AMIAsyncClient.class)
+ .put(ElasticIPAddressClient.class, ElasticIPAddressAsyncClient.class)
+ .put(InstanceClient.class, InstanceAsyncClient.class)
+ .put(NovaEC2KeyPairClient.class, NovaEC2KeyPairAsyncClient.class)
+ .put(SecurityGroupClient.class, SecurityGroupAsyncClient.class)
+ .put(WindowsClient.class, WindowsAsyncClient.class)
+ .put(AvailabilityZoneAndRegionClient.class, AvailabilityZoneAndRegionAsyncClient.class)
+ .put(ElasticBlockStoreClient.class, ElasticBlockStoreAsyncClient.class)
+ .put(AMIApi.class, AMIAsyncApi.class)
+ .put(ElasticIPAddressApi.class, ElasticIPAddressAsyncApi.class)
+ .put(InstanceApi.class, InstanceAsyncApi.class)
+ .put(NovaEC2KeyPairApi.class, NovaEC2KeyPairAsyncApi.class)
+ .put(SecurityGroupApi.class, SecurityGroupAsyncApi.class)
+ .put(AvailabilityZoneAndRegionApi.class, AvailabilityZoneAndRegionAsyncApi.class)
+ .put(ElasticBlockStoreApi.class, ElasticBlockStoreAsyncApi.class)
+ .put(WindowsApi.class, WindowsAsyncApi.class)
+ .put(TagApi.class, TagAsyncApi.class)
+ .put(SubnetApi.class, SubnetAsyncApi.class)
.build();
public NovaEC2RestClientModule() {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/features/NovaEC2KeyPairApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/features/NovaEC2KeyPairApi.java b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/features/NovaEC2KeyPairApi.java
new file mode 100644
index 0000000..38bfbf5
--- /dev/null
+++ b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/features/NovaEC2KeyPairApi.java
@@ -0,0 +1,50 @@
+/*
+ * 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 org.jclouds.openstack.nova.ec2.features;
+
+import static org.jclouds.aws.reference.FormParameters.ACTION;
+
+import java.util.Set;
+
+import javax.inject.Named;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.binders.BindProductCodesToIndexedFormParams;
+import org.jclouds.ec2.features.KeyPairApi;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.openstack.nova.ec2.services.NovaEC2KeyPairClient;
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.FormParams;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+import org.jclouds.rest.annotations.XMLResponseParser;
+
+/**
+ * Provides access to KeyPair Services.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+public interface NovaEC2KeyPairApi extends NovaEC2KeyPairClient, KeyPairApi {
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/features/NovaEC2KeyPairAsyncApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/features/NovaEC2KeyPairAsyncApi.java b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/features/NovaEC2KeyPairAsyncApi.java
new file mode 100644
index 0000000..339ab6b
--- /dev/null
+++ b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/features/NovaEC2KeyPairAsyncApi.java
@@ -0,0 +1,52 @@
+/*
+ * 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 org.jclouds.openstack.nova.ec2.features;
+
+import static org.jclouds.aws.reference.FormParameters.ACTION;
+
+import java.util.Set;
+
+import javax.inject.Named;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+
+import org.jclouds.aws.filters.FormSigner;
+import org.jclouds.ec2.binders.BindProductCodesToIndexedFormParams;
+import org.jclouds.ec2.features.KeyPairAsyncApi;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull;
+import org.jclouds.openstack.nova.ec2.services.NovaEC2KeyPairAsyncClient;
+import org.jclouds.rest.annotations.BinderParam;
+import org.jclouds.rest.annotations.EndpointParam;
+import org.jclouds.rest.annotations.FormParams;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.VirtualHost;
+import org.jclouds.rest.annotations.XMLResponseParser;
+
+/**
+ * Provides access to KeyPair Services.
+ * <p/>
+ *
+ * Note that this class is transitionary and will fully replace its parent in 1.7.
+ *
+ * @author Adrian Cole
+ */
+@RequestFilters(FormSigner.class)
+@VirtualHost
+public interface NovaEC2KeyPairAsyncApi extends NovaEC2KeyPairAsyncClient, KeyPairAsyncApi {
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/services/NovaEC2KeyPairAsyncClient.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/services/NovaEC2KeyPairAsyncClient.java b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/services/NovaEC2KeyPairAsyncClient.java
index d1fcd46..91ce170 100644
--- a/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/services/NovaEC2KeyPairAsyncClient.java
+++ b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/services/NovaEC2KeyPairAsyncClient.java
@@ -40,8 +40,11 @@ import org.jclouds.rest.annotations.XMLResponseParser;
import com.google.common.util.concurrent.ListenableFuture;
/**
+ * @deprecated Async interfaces are being removed in 1.7.
+ * Please use NovaKeyPairApi via NovaEC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
@RequestFilters(FormSigner.class)
@VirtualHost
public interface NovaEC2KeyPairAsyncClient extends KeyPairAsyncClient {
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/264d47e3/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/services/NovaEC2KeyPairClient.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/services/NovaEC2KeyPairClient.java b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/services/NovaEC2KeyPairClient.java
index bb20296..545935c 100644
--- a/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/services/NovaEC2KeyPairClient.java
+++ b/apis/openstack-nova-ec2/src/main/java/org/jclouds/openstack/nova/ec2/services/NovaEC2KeyPairClient.java
@@ -22,8 +22,10 @@ import org.jclouds.javax.annotation.Nullable;
/**
*
+ * @deprecated This class is being moved in 1.7. Please use NovaEC2KeyPairApi via NovaEC2Api instead.
* @author Adrian Cole
*/
+@Deprecated
public interface NovaEC2KeyPairClient extends KeyPairClient {
/**