http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/InstanceApi.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/InstanceApi.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/InstanceApi.java deleted file mode 100644 index 5d7a591..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/InstanceApi.java +++ /dev/null @@ -1,803 +0,0 @@ -/* - * 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 static org.jclouds.aws.reference.FormParameters.ACTION; - -import java.util.Map; -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.Fallbacks.EmptySetOnNotFoundOr404; -import org.jclouds.aws.filters.FormSigner; -import org.jclouds.ec2.binders.BindBlockDeviceMappingToIndexedFormParams; -import org.jclouds.ec2.binders.BindFiltersToIndexedFormParams; -import org.jclouds.ec2.binders.BindInstanceIdsToIndexedFormParams; -import org.jclouds.ec2.binders.IfNotNullBindAvailabilityZoneToFormParam; -import org.jclouds.ec2.domain.BlockDevice; -import org.jclouds.ec2.domain.InstanceStateChange; -import org.jclouds.ec2.domain.Reservation; -import org.jclouds.ec2.domain.RunningInstance; -import org.jclouds.ec2.domain.Volume.InstanceInitiatedShutdownBehavior; -import org.jclouds.ec2.functions.ConvertUnencodedBytesToBase64EncodedString; -import org.jclouds.ec2.options.RunInstancesOptions; -import org.jclouds.ec2.xml.BlockDeviceMappingHandler; -import org.jclouds.ec2.xml.BooleanValueHandler; -import org.jclouds.ec2.xml.DescribeInstancesResponseHandler; -import org.jclouds.ec2.xml.GetConsoleOutputResponseHandler; -import org.jclouds.ec2.xml.InstanceInitiatedShutdownBehaviorHandler; -import org.jclouds.ec2.xml.InstanceStateChangeHandler; -import org.jclouds.ec2.xml.InstanceTypeHandler; -import org.jclouds.ec2.xml.RunInstancesResponseHandler; -import org.jclouds.ec2.xml.StringValueHandler; -import org.jclouds.ec2.xml.UnencodeStringValueHandler; -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.Fallback; -import org.jclouds.rest.annotations.FormParams; -import org.jclouds.rest.annotations.ParamParser; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.SinceApiVersion; -import org.jclouds.rest.annotations.VirtualHost; -import org.jclouds.rest.annotations.XMLResponseParser; - -import com.google.common.collect.Multimap; - -/** - * Provides access to EC2 Instance Services via their REST API. - * <p/> - * - * @author Adrian Cole - */ -@RequestFilters(FormSigner.class) -@VirtualHost -public interface InstanceApi { - - /** - * Returns information about instances that you own. - * <p/> - * - * If you specify one or more instance IDs, Amazon EC2 returns information - * for those instances. If you do not specify instance IDs, Amazon EC2 - * returns information for all relevant instances. If you specify an invalid - * instance ID, a fault is returned. If you specify an instance that you do - * not own, it will not be included in the returned results. - * <p/> - * Recently terminated instances might appear in the returned results.This - * interval is usually less than one hour. - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * - * @see #runInstancesInRegion - * @see #terminateInstancesInRegion - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInstances.html" - * /> - */ - @Named("DescribeInstances") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "DescribeInstances") - @XMLResponseParser(DescribeInstancesResponseHandler.class) - @Fallback(EmptySetOnNotFoundOr404.class) - Set<? extends Reservation<? extends RunningInstance>> describeInstancesInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @BinderParam(BindInstanceIdsToIndexedFormParams.class) String... instanceIds); - - /** - * Returns information about instances that you own. - * <p/> - * - * If you specify one or filters, Amazon EC2 returns information for instances - * matching those filters. If you do not specify any filters, Amazon EC2 - * returns information for all relevant instances. If you specify an invalid - * filter, a fault is returned. Only instances you own will be included in the - * results. - * <p/> - * Recently terminated instances might appear in the returned results. This - * interval is usually less than one hour. - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param filter - * - * @see #runInstancesInRegion - * @see #terminateInstancesInRegion - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInstances.html" - * /> - */ - @SinceApiVersion("2010-08-31") - @Named("DescribeInstances") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "DescribeInstances") - @XMLResponseParser(DescribeInstancesResponseHandler.class) - @Fallback(EmptySetOnNotFoundOr404.class) - Set<? extends Reservation<? extends RunningInstance>> describeInstancesInRegionWithFilter( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @BinderParam(BindFiltersToIndexedFormParams.class) Multimap<String, String> filter); - - /** - * Launches a specified number of instances of an AMI for which you have - * permissions. - * <p/> - * - * If Amazon EC2 cannot launch the minimum number AMIs you request, no - * instances will be launched. If there is insufficient capacity to launch - * the maximum number of AMIs you request, Amazon EC2 launches the minimum - * number specified for each AMI and allocate the remaining available - * instances using round robin. - * <p/> - * <h4>Security Groups</h4> - * <b>Note:</b> Every instance is launched in a security group (created using - * the CreateSecurityGroup operation. - * <h4>Key Pair</h4> - * You can provide an optional key pair ID for each image in the launch - * request (created using the CreateKeyPair operation). All instances that - * are created from images that use this key pair will have access to the - * associated public key at boot. You can use this key to provide secure - * access to an instance of an image on a per-instance basis. Amazon EC2 - * public images use this feature to provide secure access without passwords. - * <p/> - * <b>Note:</b> Launching public images without a key pair ID will leave them - * inaccessible. - * <p/> - * The public key material is made available to the instance at boot time by - * placing it in the openssh_id.pub file on a logical device that is exposed - * to the instance as /dev/sda2 (the instance store). The format of this file - * is suitable for use as an entry within ~/.ssh/authorized_keys (the OpenSSH - * format). This can be done at boot (e.g., as part of rc.local) allowing for - * secure access without passwords. - * <h4>User Data</h4> - * Optional user data can be provided in the launch request. All instances - * that collectively comprise the launch request have access to this data. - * For more information, go the Amazon Elastic Compute Cloud Developer Guide. - * <h4>Product Codes</h4> - * - * <b>Note:</b> If any of the AMIs have a product code attached for which the - * user has not subscribed, the RunInstances call will fail. - * <h4>Kernel</h4> - * - * <b>Important:</b> We strongly recommend using the 2.6.18 Xen stock kernel - * with High-CPU and High-Memory instances. Although the default Amazon EC2 - * kernels will work, the new kernels provide greater stability and - * performance for these instance types. For more information about kernels, - * go the Amazon Elastic Compute Cloud Developer Guide. - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param nullableAvailabilityZone - * Specifies the placement constraints (Availability Zones) for - * launching the instances. If null, Amazon will determine the best - * availability zone to place the instance. - * @param imageId - * Unique ID of a machine image, returned by a call to - * @param minCount - * Minimum number of instances to launch. If the value is more than - * Amazon EC2 can launch, no instances a re launched at all. - * Constraints: Between 1 and the maximum number allowed for your - * account (default: 20). - * @param maxCount - * Maximum number of instances to launch. If the value is more than - * Amazon EC2 can launch, the largest possible number above - * minCount will be launched instead. Constraints: Between 1 and - * the maximum number allowed for your account (default: 20). - * @see #describeInstancesInRegion - * @see #terminateInstancesInRegion - * @see #authorizeSecurityGroupIngressInRegion - * @see #revokeSecurityGroupIngressInRegion - * @see #describeSecurityGroupsInRegion - * @see #createSecurityGroupInRegion - * @see #createKeyPairInRegion - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-RunInstances.html" - * /> - * @see RunInstancesOptions - */ - @Named("RunInstances") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "RunInstances") - @XMLResponseParser(RunInstancesResponseHandler.class) - Reservation<? extends RunningInstance> runInstancesInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @Nullable @BinderParam(IfNotNullBindAvailabilityZoneToFormParam.class) String nullableAvailabilityZone, - @FormParam("ImageId") String imageId, @FormParam("MinCount") int minCount, - @FormParam("MaxCount") int maxCount, RunInstancesOptions... options); - - /** - * Requests a reboot of one or more instances. This operation is - * asynchronous; it only queues a request to reboot the specified - * instance(s). The operation will succeed if the instances are valid and - * belong to you. Requests to reboot terminated instances are ignored. <h3> - * Note</h3> If a Linux/UNIX instance does not cleanly shut down within four - * minutes, Amazon EC2 will perform a hard reboot. - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * - * @param instanceIds - * Instance ID to reboot. - * - * @see #startInstancesInRegion - * @see #runInstancesInRegion - * @see #describeInstancesInRegion - * @see #terminateInstancesInRegion - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-StopInstances.html" - * /> - */ - @Named("RebootInstances") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "RebootInstances") - void rebootInstancesInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @BinderParam(BindInstanceIdsToIndexedFormParams.class) String... instanceIds); - - /** - * Shuts down one or more instances. This operation is idempotent; if you - * terminate an instance more than once, each call will succeed. - * <p/> - * Terminated instances will remain visible after termination (approximately - * one hour). - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceIds - * Instance ID to terminate. - * @see #describeInstancesInRegion - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-TerminateInstances.html" - * /> - */ - @Named("TerminateInstances") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "TerminateInstances") - @XMLResponseParser(InstanceStateChangeHandler.class) - @Fallback(EmptySetOnNotFoundOr404.class) - Set<? extends InstanceStateChange> terminateInstancesInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @BinderParam(BindInstanceIdsToIndexedFormParams.class) String... instanceIds); - - /** - * Stops an instance that uses an Amazon EBS volume as its root device. - * <p/> - * Instances that use Amazon EBS volumes as their root devices can be quickly - * stopped and started. When an instance is stopped, the compute resources - * are released and you are not billed for hourly instance usage. However, - * your root partition Amazon EBS volume remains, continues to persist your - * data, and you are charged for Amazon EBS volume usage. You can restart - * your instance at any time. - * <h3>Note</h3> - * Before stopping an instance, make sure it is in a state from which it can - * be restarted. Stopping an instance does not preserve data stored in RAM. - * <p/> - * Performing this operation on an instance that uses an instance store as - * its root device returns an error. - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param force - * Forces the instance to stop. The instance will not have an - * opportunity to flush file system caches nor file system meta - * data. If you use this option, you must perform file system check - * and repair procedures. This option is not recommended for - * Windows instances. - * @param instanceIds - * Instance ID to stop. - * - * @see #startInstancesInRegion - * @see #runInstancesInRegion - * @see #describeInstancesInRegion - * @see #terminateInstancesInRegion - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-StopInstances.html" - * /> - */ - @Named("StopInstances") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "StopInstances") - @XMLResponseParser(InstanceStateChangeHandler.class) - Set<? extends InstanceStateChange> stopInstancesInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("Force") boolean force, - @BinderParam(BindInstanceIdsToIndexedFormParams.class) String... instanceIds); - - /** - * Starts an instance that uses an Amazon EBS volume as its root device. - * <p/> - * Instances that use Amazon EBS volumes as their root devices can be quickly - * stopped and started. When an instance is stopped, the compute resources - * are released and you are not billed for hourly instance usage. However, - * your root partition Amazon EBS volume remains, continues to persist your - * data, and you are charged for Amazon EBS volume usage. You can restart - * your instance at any time. - * <h3>Note</h3> - * Before stopping an instance, make sure it is in a state from which it can - * be restarted. Stopping an instance does not preserve data stored in RAM. - * <p/> - * Performing this operation on an instance that uses an instance store as - * its root device returns an error. - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceIds - * Instance ID to start. - * - * @see #stopInstancesInRegion - * @see #runInstancesInRegion - * @see #describeInstancesInRegion - * @see #terminateInstancesInRegion - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-StartInstances.html" - * /> - */ - @Named("StartInstances") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "StartInstances") - @XMLResponseParser(InstanceStateChangeHandler.class) - Set<? extends InstanceStateChange> startInstancesInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @BinderParam(BindInstanceIdsToIndexedFormParams.class) String... instanceIds); - - /** - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceId - * which instance to describe the attribute of - * @return unencoded user data - */ - @Named("DescribeInstanceAttribute") - @POST - @Path("/") - @FormParams(keys = { ACTION, "Attribute" }, values = { "DescribeInstanceAttribute", "userData" }) - @XMLResponseParser(UnencodeStringValueHandler.class) - String getUserDataForInstanceInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId); - - /** - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceId - * which instance to describe the attribute of - * @return The root device name (e.g., /dev/sda1). - */ - @Named("DescribeInstanceAttribute") - @POST - @Path("/") - @FormParams(keys = { ACTION, "Attribute" }, values = { "DescribeInstanceAttribute", "rootDeviceName" }) - @XMLResponseParser(StringValueHandler.class) - String getRootDeviceNameForInstanceInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId); - - /** - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceId - * which instance to describe the attribute of - * @return the ID of the RAM disk associated with the AMI. - */ - @Named("DescribeInstanceAttribute") - @POST - @Path("/") - @FormParams(keys = { ACTION, "Attribute" }, values = { "DescribeInstanceAttribute", "ramdisk" }) - @XMLResponseParser(StringValueHandler.class) - String getRamdiskForInstanceInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId); - - /** - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceId - * which instance to describe the attribute of - * @return the ID of the kernel associated with the AMI. - */ - @Named("DescribeInstanceAttribute") - @POST - @Path("/") - @FormParams(keys = { ACTION, "Attribute" }, values = { "DescribeInstanceAttribute", "kernel" }) - @XMLResponseParser(StringValueHandler.class) - String getKernelForInstanceInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId); - - /** - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceId - * which instance to describe the attribute of - * @return Specifies whether the instance can be terminated using the APIs. - * You must modify this attribute before you can terminate any - * "locked" instances from the APIs. - */ - @Named("DescribeInstanceAttribute") - @POST - @Path("/") - @FormParams(keys = { ACTION, "Attribute" }, values = { "DescribeInstanceAttribute", "disableApiTermination" }) - @XMLResponseParser(BooleanValueHandler.class) - boolean isApiTerminationDisabledForInstanceInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId); - - /** - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceId - * which instance to describe the attribute of - * @return The instance type of the instance. - */ - @Named("DescribeInstanceAttribute") - @POST - @Path("/") - @FormParams(keys = { ACTION, "Attribute" }, values = { "DescribeInstanceAttribute", "instanceType" }) - @XMLResponseParser(InstanceTypeHandler.class) - String getInstanceTypeForInstanceInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId); - - /** - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceId - * which instance to describe the attribute of - * @return whether the instance's Amazon EBS volumes are stopped or - * terminated when the instance is shut down. - */ - @Named("DescribeInstanceAttribute") - @POST - @Path("/") - @FormParams(keys = { ACTION, "Attribute" }, values = { "DescribeInstanceAttribute", - "instanceInitiatedShutdownBehavior" }) - @XMLResponseParser(InstanceInitiatedShutdownBehaviorHandler.class) - InstanceInitiatedShutdownBehavior getInstanceInitiatedShutdownBehaviorForInstanceInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId); - - /** - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceId - * which instance to describe the attribute of - * @return Describes the mapping that defines native device names to use when - * exposing virtual devices. - */ - @Named("DescribeInstanceAttribute") - @POST - @Path("/") - @FormParams(keys = { ACTION, "Attribute" }, values = { "DescribeInstanceAttribute", "blockDeviceMapping" }) - @XMLResponseParser(BlockDeviceMappingHandler.class) - Map<String, BlockDevice> getBlockDeviceMappingForInstanceInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId); - - /** - * Resets an attribute of an instance to its default value. - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceId - * which instance to reset the attribute of - * @return the ID of the RAM disk associated with the AMI. - */ - @Named("ResetInstanceAttribute") - @POST - @Path("/") - @FormParams(keys = { ACTION, "Attribute" }, values = { "ResetInstanceAttribute", "ramdisk" }) - void resetRamdiskForInstanceInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId); - - /** - * Resets an attribute of an instance to its default value. - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceId - * which instance to reset the attribute of - * @return the ID of the kernel associated with the AMI. - */ - @Named("ResetInstanceAttribute") - @POST - @Path("/") - @FormParams(keys = { ACTION, "Attribute" }, values = { "ResetInstanceAttribute", "kernel" }) - void resetKernelForInstanceInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId); - - /** - * Sets the userData used for starting the instance. - * <p/> - * The instance needs to be in a {@link InstanceState#STOPPED} state, which - * implies two things: - * <ol> - * <li>The instance was launched from an EBS-backed AMI so that it can stop</li> - * <li>You have stopped and waited for the instance to transition from - * {@link InstanceState#STOPPING} to {@link InstanceState#STOPPED}</li> - * </ol> - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceId - * which instance to change the attribute of - * @param unencodedData - * unencoded data to set as userData - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-ModifyInstanceAttribute.html" - * /> - */ - @Named("ModifyInstanceAttribute") - @POST - @Path("/") - @FormParams(keys = { ACTION, "Attribute" }, values = { "ModifyInstanceAttribute", "userData" }) - void setUserDataForInstanceInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId, - @FormParam("Value") @ParamParser(ConvertUnencodedBytesToBase64EncodedString.class) byte[] unencodedData); - - /** - * Sets the ramdisk used for starting the instance. - * <p/> - * The instance needs to be in a {@link InstanceState#STOPPED} state, which - * implies two things: - * <ol> - * <li>The instance was launched from an EBS-backed AMI so that it can stop</li> - * <li>You have stopped and waited for the instance to transition from - * {@link InstanceState#STOPPING} to {@link InstanceState#STOPPED}</li> - * </ol> - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceId - * which instance to change the attribute of - * @param ramdisk - * ramdisk used to start the instance - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-ModifyInstanceAttribute.html" - * /> - */ - @Named("ModifyInstanceAttribute") - @POST - @Path("/") - @FormParams(keys = { ACTION, "Attribute" }, values = { "ModifyInstanceAttribute", "ramdisk" }) - void setRamdiskForInstanceInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId, @FormParam("Value") String ramdisk); - - /** - * Sets the kernelId used for starting the instance. - * <p/> - * The instance needs to be in a {@link InstanceState#STOPPED} state, which - * implies two things: - * <ol> - * <li>The instance was launched from an EBS-backed AMI so that it can stop</li> - * <li>You have stopped and waited for the instance to transition from - * {@link InstanceState#STOPPING} to {@link InstanceState#STOPPED}</li> - * </ol> - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceId - * which instance to change the attribute of - * @param kernel - * kernelId used to start the instance - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-ModifyInstanceAttribute.html" - * /> - */ - @Named("ModifyInstanceAttribute") - @POST - @Path("/") - @FormParams(keys = { ACTION, "Attribute" }, values = { "ModifyInstanceAttribute", "kernel" }) - void setKernelForInstanceInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId, @FormParam("Value") String kernel); - - /** - * This command works while the instance is running and controls whether or - * not the api can be used to terminate the instance. - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceId - * which instance to reset the attribute of - * @param apiTerminationDisabled - * true to disable api termination - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-ModifyInstanceAttribute.html" - * /> - */ - @Named("ModifyInstanceAttribute") - @POST - @Path("/") - @FormParams(keys = { ACTION, "Attribute" }, values = { "ModifyInstanceAttribute", "disableApiTermination" }) - void setApiTerminationDisabledForInstanceInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId, @FormParam("Value") boolean apiTerminationDisabled); - - /** - * Sets the instanceType used for starting the instance. - * <p/> - * The instance needs to be in a {@link InstanceState#STOPPED} state, which - * implies two things: - * <ol> - * <li>The instance was launched from an EBS-backed AMI so that it can stop</li> - * <li>You have stopped and waited for the instance to transition from - * {@link InstanceState#STOPPING} to {@link InstanceState#STOPPED}</li> - * </ol> - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceId - * which instance to change the attribute of - * @param instanceType - * instanceType used to start the instance - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-ModifyInstanceAttribute.html" - * /> - */ - @Named("ModifyInstanceAttribute") - @POST - @Path("/") - @FormParams(keys = { ACTION, "Attribute" }, values = { "ModifyInstanceAttribute", "instanceType" }) - void setInstanceTypeForInstanceInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId, @FormParam("Value") String instanceType); - - /** - * Specifies whether the instance's Amazon EBS volumes are stopped or - * terminated when the instance is shut down. - * <p/> - * The instance needs to be in a {@link InstanceState#STOPPED} state, which - * implies two things: - * <ol> - * <li>The instance was launched from an EBS-backed AMI so that it can stop</li> - * <li>You have stopped and waited for the instance to transition from - * {@link InstanceState#STOPPING} to {@link InstanceState#STOPPED}</li> - * </ol> - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceId - * which instance to change the attribute of - * @param instanceInitiatedShutdownBehavior - * whether the instance's Amazon EBS volumes are stopped or - * terminated when the instance is shut down. - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-ModifyInstanceAttribute.html" - * /> - */ - @Named("ModifyInstanceAttribute") - @POST - @Path("/") - @FormParams(keys = { ACTION, "Attribute" }, values = { "ModifyInstanceAttribute", - "instanceInitiatedShutdownBehavior" }) - void setInstanceInitiatedShutdownBehaviorForInstanceInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId, - @FormParam("Value") InstanceInitiatedShutdownBehavior instanceInitiatedShutdownBehavior); - - /** - * Sets the blockDeviceMapping used for an instance. - * <p/> - * The instance needs to be in a {@link InstanceState#STOPPED} state, which - * implies two things: - * <ol> - * <li>The instance was launched from an EBS-backed AMI so that it can stop</li> - * <li>You have stopped and waited for the instance to transition from - * {@link InstanceState#STOPPING} to {@link InstanceState#STOPPED}</li> - * </ol> - * - * To create the instances of {@link BlockDevice}, the - * constructor can be used with the following parameters: - * {@link BlockDevice#EbsBlockDevice(String, String, boolean)} - * , that are: - * <ol> - * <li>Volume id (required), for instance, "vol-blah"</li> - * <li>Device name (optional), for instance, "/dev/sda1". To find out more - * about device names, read the next paragraph.</li> - * <li>Delete on termination flag (optional), which defines whether the - * volume will be deleted upon instance's termination.</li> - * </ol> - * <p/> - * Note that the device names between Linux and Windows differ. For Linux, - * ensure that your device name is in the form /dev/sd[a-z] . For example, - * /dev/sda , /dev/sdb and /dev/sdh are all valid device names. - * <p/> - * For Windows, the root device is still referred to as /dev/sda1 . For other - * devices, ensure that they are in the form /xvd[c-p] . For example, /xvde , - * /xvdf and /xvdp are all valid Windows device names. - * <p/> - * <b>NOTE</b>: As of now 02/20/2010, this command only works to change the - * DeleteOnTermination property of the device. The volume must be - * <i>attached</i> to a stopped instance. - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceId - * which instance to change the attribute of - * @param blockDeviceMapping - * blockDeviceMapping used to start the instance - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-ModifyInstanceAttribute.html" - * /> - */ - @Named("ModifyInstanceAttribute") - @POST - @Path("/") - @FormParams(keys = { ACTION }, values = { "ModifyInstanceAttribute" }) - void setBlockDeviceMappingForInstanceInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId, - @BinderParam(BindBlockDeviceMappingToIndexedFormParams.class) Map<String, BlockDevice> blockDeviceMapping); - - /** - * Retrieves console output for the specified instance. - * - * Instance console output is buffered and posted shortly after instance boot, reboot, and termination. Amazon EC2 preserves - * the most recent 64 KB output which will be available for at least one hour after the most recent post. - * - * @param region - * Instances are tied to Availability Zones. However, the instance - * ID is tied to the Region. - * @param instanceId - * which instance to retrieve console output for - * @return The console output - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-GetConsoleOutput.html"> - * ApiReference query GetConsoleOutput</a> - */ - @Named("GetConsoleOutput") - @POST - @Path("/") - @FormParams(keys = { ACTION }, values = { "GetConsoleOutput" }) - @XMLResponseParser(GetConsoleOutputResponseHandler.class) - String getConsoleOutputForInstanceInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId); -}
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/KeyPairApi.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/KeyPairApi.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/KeyPairApi.java deleted file mode 100644 index c10f3eb..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/KeyPairApi.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - * 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 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.Fallbacks.EmptySetOnNotFoundOr404; -import org.jclouds.aws.filters.FormSigner; -import org.jclouds.ec2.binders.BindFiltersToIndexedFormParams; -import org.jclouds.ec2.binders.BindKeyNamesToIndexedFormParams; -import org.jclouds.ec2.domain.KeyPair; -import org.jclouds.ec2.xml.DescribeKeyPairsResponseHandler; -import org.jclouds.ec2.xml.KeyPairResponseHandler; -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.Fallback; -import org.jclouds.rest.annotations.FormParams; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.VirtualHost; -import org.jclouds.rest.annotations.XMLResponseParser; - -import com.google.common.collect.Multimap; - -/** - * Provides access to EC2 via their REST API. - * <p/> - * - * @author Adrian Cole - */ -@RequestFilters(FormSigner.class) -@VirtualHost -public interface KeyPairApi { - - /** - * Creates a new 2048-bit RSA key pair with the specified name. The public key is stored by - * Amazon EC2 and the private key is displayed on the console. The private key is returned as an - * unencrypted PEM encoded PKCS#8 private key. If a key with the specified name already exists, - * Amazon EC2 returns an error. - * - * @param region - * Key pairs (to connect to instances) are Region-specific. - * @param keyName - * A unique name for the key pair. - * - * @see #runInstances - * @see #describeKeyPairs - * @see #deleteKeyPair - * - * @see <a href= - * "http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-CreateKeyPair.html" - * /> - */ - @Named("CreateKeyPair") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "CreateKeyPair") - @XMLResponseParser(KeyPairResponseHandler.class) - KeyPair createKeyPairInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("KeyName") String keyName); - - /** - * Returns information about key pairs available to you. If you specify key pairs, information - * about those key pairs is returned. Otherwise, information for all registered key pairs is - * returned. - * - * @param region - * Key pairs (to connect to instances) are Region-specific. - * @param keyPairNames - * Key pairs to describe. - * - * @see #runInstances - * @see #describeAvailabilityZones - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeKeyPairs.html" - * /> - */ - @Named("DescribeKeyPairs") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "DescribeKeyPairs") - @XMLResponseParser(DescribeKeyPairsResponseHandler.class) - @Fallback(EmptySetOnNotFoundOr404.class) - Set<KeyPair> describeKeyPairsInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @BinderParam(BindKeyNamesToIndexedFormParams.class) String... keyPairNames); - - /** - * Returns information about key pairs available to you. If you specify filters, - * information about keypairs matching those filters is returned. Otherwise, all - * keypairs you have access to are returned. - * - * @param region - * Key pairs (to connect to instances) are Region-specific. - * @param filter - * Multimap of filter key/values. - * - * @see #runInstances - * @see #describeAvailabilityZones - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeKeyPairs.html" - * /> - */ - @Named("DescribeKeyPairs") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "DescribeKeyPairs") - @XMLResponseParser(DescribeKeyPairsResponseHandler.class) - @Fallback(EmptySetOnNotFoundOr404.class) - Set<KeyPair> describeKeyPairsInRegionWithFilter( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @BinderParam(BindFiltersToIndexedFormParams.class) Multimap<String, String> filter); - - /** - * Deletes the specified key pair, by removing the public key from Amazon EC2. You must own the - * key pair - * - * @param region - * Key pairs (to connect to instances) are Region-specific. - * @param keyName - * Name of the key pair to delete - * - * @see #describeKeyPairs - * @see #createKeyPair - * - * @see <a href= - * "http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteKeyPair.html" - * /> - */ - @Named("DeleteKeyPair") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "DeleteKeyPair") - void deleteKeyPairInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("KeyName") String keyName); - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/SecurityGroupApi.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/SecurityGroupApi.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/SecurityGroupApi.java deleted file mode 100644 index c082bd0..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/SecurityGroupApi.java +++ /dev/null @@ -1,324 +0,0 @@ -/* - * 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 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.Fallbacks.EmptySetOnNotFoundOr404; -import org.jclouds.Fallbacks.VoidOnNotFoundOr404; -import org.jclouds.aws.filters.FormSigner; -import org.jclouds.ec2.binders.BindFiltersToIndexedFormParams; -import org.jclouds.ec2.binders.BindGroupNamesToIndexedFormParams; -import org.jclouds.ec2.binders.BindUserIdGroupPairToSourceSecurityGroupFormParams; -import org.jclouds.ec2.domain.SecurityGroup; -import org.jclouds.ec2.domain.UserIdGroupPair; -import org.jclouds.ec2.xml.DescribeSecurityGroupsResponseHandler; -import org.jclouds.javax.annotation.Nullable; -import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull; -import org.jclouds.net.domain.IpProtocol; -import org.jclouds.rest.annotations.BinderParam; -import org.jclouds.rest.annotations.EndpointParam; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.FormParams; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.VirtualHost; -import org.jclouds.rest.annotations.XMLResponseParser; - -import com.google.common.collect.Multimap; - -/** - * Provides access to EC2 via their REST API. - * <p/> - * - * @author Adrian Cole - */ -@RequestFilters(FormSigner.class) -@VirtualHost -public interface SecurityGroupApi { - - /** - * Creates a new security group. Group names must be unique per identity. - * - * @param region - * Security groups are not copied across Regions. Instances within the Region cannot - * communicate with instances outside the Region using group-based firewall rules. - * Traffic from instances in another Region is seen as WAN bandwidth. - * @param name - * Name of the security group. Accepts alphanumeric characters, spaces, dashes, and - * underscores. - * @param description - * Description of the group. This is informational only. If the description contains - * spaces, you must enc lose it in single quotes (') or URL-encode it. Accepts - * alphanumeric characters, spaces, dashes, and underscores. - * @see #runInstances - * @see #describeSecurityGroups - * @see #authorizeSecurityGroupIngress - * @see #revokeSecurityGroupIngress - * @see #deleteSecurityGroup - * - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-CreateSecurityGroup.html" - * /> - */ - @Named("CreateSecurityGroup") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "CreateSecurityGroup") - void createSecurityGroupInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("GroupName") String name, @FormParam("GroupDescription") String description); - - /** - * Deletes a security group that you own. - * - * @param region - * Security groups are not copied across Regions. Instances within the Region cannot - * communicate with instances outside the Region using group-based firewall rules. - * Traffic from instances in another Region is seen as WAN bandwidth. - * @param name - * Name of the security group to delete. - * - * @see #describeSecurityGroups - * @see #authorizeSecurityGroupIngress - * @see #revokeSecurityGroupIngress - * @see #createSecurityGroup - * - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteSecurityGroup.html" - * /> - */ - @Named("DeleteSecurityGroup") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "DeleteSecurityGroup") - @Fallback(VoidOnNotFoundOr404.class) - void deleteSecurityGroupInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, @FormParam("GroupName") String name); - - /** - * Returns information about security groups that you own. - * - * @param region - * Security groups are not copied across Regions. Instances within the Region cannot - * communicate with instances outside the Region using group-based firewall rules. - * Traffic from instances in another Region is seen as WAN bandwidth. - * @param securityGroupNames - * Name of the security groups - * - * @see #createSecurityGroup - * @see #authorizeSecurityGroupIngress - * @see #revokeSecurityGroupIngress - * @see #deleteSecurityGroup - * - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSecurityGroups.html" - * /> - */ - @Named("DescribeSecurityGroups") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "DescribeSecurityGroups") - @XMLResponseParser(DescribeSecurityGroupsResponseHandler.class) - @Fallback(EmptySetOnNotFoundOr404.class) - Set<SecurityGroup> describeSecurityGroupsInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @BinderParam(BindGroupNamesToIndexedFormParams.class) String... securityGroupNames); - - /** - * Returns information about security groups that you own. - * - * @param region - * Security groups are not copied across Regions. Instances within the Region cannot - * communicate with instances outside the Region using group-based firewall rules. - * Traffic from instances in another Region is seen as WAN bandwidth. - * @param filter - * Multimap of filter key/values. - * - * @see #createSecurityGroup - * @see #authorizeSecurityGroupIngress - * @see #revokeSecurityGroupIngress - * @see #deleteSecurityGroup - * - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSecurityGroups.html" - * /> - */ - @Named("DescribeSecurityGroups") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "DescribeSecurityGroups") - @XMLResponseParser(DescribeSecurityGroupsResponseHandler.class) - @Fallback(EmptySetOnNotFoundOr404.class) - Set<SecurityGroup> describeSecurityGroupsInRegionWithFilter( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @BinderParam(BindFiltersToIndexedFormParams.class) Multimap<String, String> filter); - - /** - * - * Adds permissions to a security group based on another group. - * - * @param region - * Security groups are not copied across Regions. Instances within the Region cannot - * communicate with instances outside the Region using group-based firewall rules. - * Traffic from instances in another Region is seen as WAN bandwidth. - * @param groupName - * Name of the group to modify. The name must be valid and belong to the identity - * @param sourceSecurityGroup - * group to associate with this group. - * - * @see #createSecurityGroup - * @see #describeSecurityGroups - * @see #revokeSecurityGroupIngress - * @see #deleteSecurityGroup - * - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-AuthorizeSecurityGroupIngress.html" - * - */ - @Named("AuthorizeSecurityGroupIngress") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "AuthorizeSecurityGroupIngress") - void authorizeSecurityGroupIngressInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("GroupName") String groupName, - @BinderParam(BindUserIdGroupPairToSourceSecurityGroupFormParams.class) UserIdGroupPair sourceSecurityGroup); - - /** - * - * Adds permissions to a security group. - * <p/> - * Permissions are specified by the IP protocol (TCP, UDP or ICMP), the source of the request (by - * IP range or an Amazon EC2 user-group pair), the source and destination port ranges (for TCP - * and UDP), and the ICMP codes and types (for ICMP). When authorizing ICMP, -1 can be used as a - * wildcard in the type and code fields. Permission changes are propagated to instances within - * the security group as quickly as possible. However, depending on the number of instances, a - * small delay might occur. - * - * @param region - * Security groups are not copied across Regions. Instances within the Region cannot - * communicate with instances outside the Region using group-based firewall rules. - * Traffic from instances in another Region is seen as WAN bandwidth. - * @param groupName - * Name of the group to modify. The name must be valid and belong to the identity - * @param ipProtocol - * IP protocol. - * @param fromPort - * Start of port range for the TCP and UDP protocols, or an ICMP type number. An ICMP - * type number of -1 indicates a wildcard (i.e., any ICMP type number). - * @param toPort - * End of port range for the TCP and UDP protocols, or an ICMP code. An ICMP code of -1 - * indicates a wildcard (i.e., any ICMP code). - * @param cidrIp - * CIDR range. - * - * @see #createSecurityGroup - * @see #describeSecurityGroups - * @see #revokeSecurityGroupIngress - * @see #deleteSecurityGroup - * - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-AuthorizeSecurityGroupIngress.html" - * - */ - @Named("AuthorizeSecurityGroupIngress") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "AuthorizeSecurityGroupIngress") - void authorizeSecurityGroupIngressInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("GroupName") String groupName, @FormParam("IpProtocol") IpProtocol ipProtocol, - @FormParam("FromPort") int fromPort, @FormParam("ToPort") int toPort, @FormParam("CidrIp") String cidrIp); - - /** - * - * Revokes permissions from a security group. The permissions used to revoke must be specified - * using the same values used to grant the permissions. - * - * @param region - * Security groups are not copied across Regions. Instances within the Region cannot - * communicate with instances outside the Region using group-based firewall rules. - * Traffic from instances in another Region is seen as WAN bandwidth. - * @param groupName - * Name of the group to modify. The name must be valid and belong to the identity - * @param sourceSecurityGroup - * group to associate with this group. - * - * @see #createSecurityGroup - * @see #describeSecurityGroups - * @see #authorizeSecurityGroupIngress - * @see #deleteSecurityGroup - * - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-RevokeSecurityGroupIngress.html" - * - */ - @Named("RevokeSecurityGroupIngress") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "RevokeSecurityGroupIngress") - void revokeSecurityGroupIngressInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("GroupName") String groupName, - @BinderParam(BindUserIdGroupPairToSourceSecurityGroupFormParams.class) UserIdGroupPair sourceSecurityGroup); - - /** - * - * Revokes permissions from a security group. The permissions used to revoke must be specified - * using the same values used to grant the permissions. - * <p/> - * Permissions are specified by IP protocol (TCP, UDP, or ICMP), the source of the request (by IP - * range or an Amazon EC2 user-group pair), the source and destination port ranges (for TCP and - * UDP), and the ICMP codes and types (for ICMP). - * - * Permission changes are quickly propagated to instances within the security group. However, - * depending on the number of instances in the group, a small delay is might occur. - * - * @param region - * Security groups are not copied across Regions. Instances within the Region cannot - * communicate with instances outside the Region using group-based firewall rules. - * Traffic from instances in another Region is seen as WAN bandwidth. - * @param groupName - * Name of the group to modify. The name must be valid and belong to the identity - * @param ipProtocol - * IP protocol. - * @param fromPort - * Start of port range for the TCP and UDP protocols, or an ICMP type number. An ICMP - * type number of -1 indicates a wildcard (i.e., any ICMP type number). - * @param toPort - * End of port range for the TCP and UDP protocols, or an ICMP code. An ICMP code of -1 - * indicates a wildcard (i.e., any ICMP code). - * @param cidrIp - * CIDR range. - * - * @see #createSecurityGroup - * @see #describeSecurityGroups - * @see #authorizeSecurityGroupIngress - * @see #deleteSecurityGroup - * - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-RevokeSecurityGroupIngress.html" - * - */ - @Named("RevokeSecurityGroupIngress") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "RevokeSecurityGroupIngress") - void revokeSecurityGroupIngressInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("GroupName") String groupName, @FormParam("IpProtocol") IpProtocol ipProtocol, - @FormParam("FromPort") int fromPort, @FormParam("ToPort") int toPort, @FormParam("CidrIp") String cidrIp); -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/SubnetApi.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/SubnetApi.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/SubnetApi.java deleted file mode 100644 index c9aa1c4..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/SubnetApi.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * 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 static org.jclouds.aws.reference.FormParameters.ACTION; - -import javax.inject.Named; -import javax.ws.rs.POST; -import javax.ws.rs.Path; - -import org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404; -import org.jclouds.aws.filters.FormSigner; -import org.jclouds.ec2.binders.BindFiltersToIndexedFormParams; -import org.jclouds.ec2.domain.Subnet; -import org.jclouds.ec2.xml.DescribeSubnetsResponseHandler; -import org.jclouds.rest.annotations.BinderParam; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.FormParams; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.SinceApiVersion; -import org.jclouds.rest.annotations.VirtualHost; -import org.jclouds.rest.annotations.XMLResponseParser; - -import com.google.common.collect.FluentIterable; -import com.google.common.collect.Multimap; -/** - * Provides access to Amazon EC2 via the Query API - * <p/> - * - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSubnets.html" - * >doc</a> - * @author Adrian Cole - * @author Andrew Bayer - */ -@SinceApiVersion("2011-01-01") -@RequestFilters(FormSigner.class) -@VirtualHost -public interface SubnetApi { - /** - * Describes all of your subnets for your EC2 resources. - * - * @return subnets or empty if there are none - * @see <a href= - * "http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSubnets.html" - * >docs</href> - */ - @Named("DescribeSubnets") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "DescribeSubnets") - @XMLResponseParser(DescribeSubnetsResponseHandler.class) - @Fallback(EmptyFluentIterableOnNotFoundOr404.class) - FluentIterable<Subnet> list(); - - /** - * Describes subnets for your EC2 resources qualified by a filter - * - * <h4>example</h4> - * - * <pre> - * subnets = subnetApi.filter(new SubnetFilterBuilder().vpcId("vpc-1a2b3c4d").build()); - * </pre> - * - * @param filter - * which is typically built by {@link SubnetFilterBuilder} - * @return tags or empty if there are none that match the filter - * @see <a href= - * "http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSubnets.html" - * >docs</href> - */ - @Named("DescribeSubnets") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "DescribeSubnets") - @XMLResponseParser(DescribeSubnetsResponseHandler.class) - @Fallback(EmptyFluentIterableOnNotFoundOr404.class) - FluentIterable<Subnet> filter( - @BinderParam(BindFiltersToIndexedFormParams.class) Multimap<String, String> filter); - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/TagApi.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/TagApi.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/TagApi.java deleted file mode 100644 index cdc6623..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/TagApi.java +++ /dev/null @@ -1,201 +0,0 @@ -/* - * 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 static org.jclouds.aws.reference.FormParameters.ACTION; - -import java.util.Map; - -import javax.inject.Named; -import javax.ws.rs.POST; -import javax.ws.rs.Path; - -import org.jclouds.Fallbacks.EmptyFluentIterableOnNotFoundOr404; -import org.jclouds.aws.filters.FormSigner; -import org.jclouds.ec2.binders.BindFiltersToIndexedFormParams; -import org.jclouds.ec2.binders.BindResourceIdsToIndexedFormParams; -import org.jclouds.ec2.binders.BindTagKeysToIndexedFormParams; -import org.jclouds.ec2.binders.BindTagsToIndexedFormParams; -import org.jclouds.ec2.domain.Tag; -import org.jclouds.ec2.xml.DescribeTagsResponseHandler; -import org.jclouds.rest.annotations.BinderParam; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.FormParams; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.SinceApiVersion; -import org.jclouds.rest.annotations.VirtualHost; -import org.jclouds.rest.annotations.XMLResponseParser; - -import com.google.common.collect.FluentIterable; -import com.google.common.collect.Multimap; -/** - * Provides access to Amazon EC2 via the Query API - * <p/> - * - * @see <a - * href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeTags.html" - * >doc</a> - * @author Adrian Cole - */ -@SinceApiVersion("2010-08-31") -@RequestFilters(FormSigner.class) -@VirtualHost -public interface TagApi { - /** - * Adds or overwrites one or more tags for the specified resource or - * resources. Each resource can have a maximum of 10 tags. Each tag consists - * of a key and optional value. Tag keys must be unique per resource. - * - * <h4>example</h4> - * - * <pre> - * tagApi.applyToResources(ImmutableMap.of("group", "backend"), ImmutableSet.of("i-1a2b3c4d")); - * </pre> - * - * @param tags - * key to an optional value. - * @param resourceIds - * The ID of a resource to tag. For example, {@code ami-1a2b3c4d} - * - * @see <a href= - * "http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-CreateTags.html" - * >docs</href> - */ - @Named("CreateTags") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "CreateTags") - void applyToResources(@BinderParam(BindTagsToIndexedFormParams.class) Iterable<String> tags, - @BinderParam(BindResourceIdsToIndexedFormParams.class) Iterable<String> resourceIds); - - /** - * like {@link #applyToResources(Map, Iterable)} except that the tags have no - * values. - * - * <h4>example</h4> - * - * <pre> - * tagApi.applyToResources(ImmutableSet.of("production", "pci-compliant"), ImmutableSet.of("i-1a2b3c4d")); - * </pre> - * - * @see #applyToResources(Map, Iterable) - */ - @Named("CreateTags") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "CreateTags") - void applyToResources(@BinderParam(BindTagsToIndexedFormParams.class) Map<String, String> tags, - @BinderParam(BindResourceIdsToIndexedFormParams.class) Iterable<String> resourceIds); - - /** - * Describes all of your tags for your EC2 resources. - * - * @return tags or empty if there are none - * @see <a href= - * "http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeTags.html" - * >docs</href> - */ - @Named("DescribeTags") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "DescribeTags") - @XMLResponseParser(DescribeTagsResponseHandler.class) - @Fallback(EmptyFluentIterableOnNotFoundOr404.class) - FluentIterable<Tag> list(); - - /** - * Describes tags for your EC2 resources qualified by a filter - * - * <h4>example</h4> - * - * <pre> - * tags = tagApi.filter(new TagFilterBuilder().image().put("version", "1.0").build()); - * </pre> - * - * @param filter - * which is typically built by {@link TagFilterBuilder} - * @return tags or empty if there are none that match the filter - * @see <a href= - * "http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeTags.html" - * >docs</href> - */ - @Named("DescribeTags") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "DescribeTags") - @XMLResponseParser(DescribeTagsResponseHandler.class) - @Fallback(EmptyFluentIterableOnNotFoundOr404.class) - FluentIterable<Tag> filter( - @BinderParam(BindFiltersToIndexedFormParams.class) Multimap<String, String> filter); - - /** - * Deletes a specific set of tags from a specific set of resources. This call - * is designed to follow a {@link #list() list} or {@link #filter(Multimap) - * filter} call. You first determine what tags a resource has, and then you - * call {@link TagApi#deleteFromResources(Iterable, Iterable) delete} with - * the resource ID and the specific tags you want to delete. - * - * <h4>example</h4> - * - * <pre> - * tagApi.deleteFromResources(ImmutableSet.of("Purpose"), ImmutableSet.of("ami-1a2b3c4d")); - * </pre> - * - * @param tags - * the tag keys - * @param resourceIds - * The ID of a resource with the tag. For example, - * {@code ami-1a2b3c4d} - * @see <a href= - * "http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteTags.html" - * >docs</href> - */ - @Named("DeleteTags") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "DeleteTags") - void deleteFromResources( - @BinderParam(BindTagKeysToIndexedFormParams.class) Iterable<String> tags, - @BinderParam(BindResourceIdsToIndexedFormParams.class) Iterable<String> resourceIds); - - /** - * like {@link #deleteFromResources(Iterable, Iterable)}, except that the - * tags are only deleted if they match the value. - * - * <h4>example</h4> - * - * <pre> - * tagApi.conditionallyDeleteFromResources(ImmutableMap.of("Purpose", "production"), ImmutableSet.of("ami-1a2b3c4d")); - * </pre> - * - * @param conditionalTagValues - * tag id to value it must match before deleting. For a tag without - * a value, supply empty string. - * @param resourceIds - * The ID of a resource with the tag. For example, - * {@code ami-1a2b3c4d} - * @see #deleteFromResources(Iterable, Iterable) - */ - @Named("DeleteTags") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "DeleteTags") - void conditionallyDeleteFromResources( - @BinderParam(BindTagsToIndexedFormParams.class) Map<String, String> conditionalTagValues, - @BinderParam(BindResourceIdsToIndexedFormParams.class) Iterable<String> resourceIds); - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/WindowsApi.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/WindowsApi.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/WindowsApi.java deleted file mode 100644 index 5461b23..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/features/WindowsApi.java +++ /dev/null @@ -1,229 +0,0 @@ -/* - * 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 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.Fallbacks.EmptySetOnNotFoundOr404; -import org.jclouds.Fallbacks.NullOnNotFoundOr404; -import org.jclouds.aws.filters.FormSigner; -import org.jclouds.ec2.binders.BindBundleIdsToIndexedFormParams; -import org.jclouds.ec2.binders.BindFiltersToIndexedFormParams; -import org.jclouds.ec2.binders.BindS3UploadPolicyAndSignature; -import org.jclouds.ec2.domain.BundleTask; -import org.jclouds.ec2.domain.PasswordData; -import org.jclouds.ec2.options.BundleInstanceS3StorageOptions; -import org.jclouds.ec2.xml.BundleTaskHandler; -import org.jclouds.ec2.xml.DescribeBundleTasksResponseHandler; -import org.jclouds.ec2.xml.GetPasswordDataResponseHandler; -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.Fallback; -import org.jclouds.rest.annotations.FormParams; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.SinceApiVersion; -import org.jclouds.rest.annotations.VirtualHost; -import org.jclouds.rest.annotations.XMLResponseParser; - -import com.google.common.collect.Multimap; - -/** - * Provides access to EC2 Windows Features via the Query API - * <p/> - * - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference" >doc</a> - * @author Adrian Cole - */ -@RequestFilters(FormSigner.class) -@VirtualHost -@SinceApiVersion("2008-08-08") -public interface WindowsApi { - - /** - * Bundles the Windows instance. This procedure is not applicable for Linux - * and UNIX instances. For more information, go to the Amazon Elastic Compute - * Cloud Developer Guide or Amazon Elastic Compute Cloud Getting Started - * Guide. - * - * @param region - * Bundles are tied to the Region where its files are located - * within Amazon S3. - * - * @param instanceId - * The ID of the instance to bundle. - * @param prefix - * Specifies the beginning of the file name of the AMI. - * @param bucket - * The bucket in which to store the AMI. You can specify a bucket - * that you already own or a new bucket that Amazon EC2 creates on - * your behalf. If you specify a bucket that belongs to someone - * else, Amazon EC2 returns an error. - * @param uploadPolicy - * An Amazon S3 upload policy that gives Amazon EC2 permission to - * upload items into Amazon S3 on the user's behalf. - * <p/> - * ex. - * - * <pre> - * {"expiration": "2008-08-30T08:49:09Z","conditions": ["bucket": "my-bucket"},["starts-with", "$key", "my-new-image"]]} - * </pre> - * - * @param options - * if the bucket isn't owned by you, use this to set the bucket's - * accesskeyid - * @return status of the work - * - * @see #cancelBundleTaskInRegion - * @see #describeBundleTasksInRegion - * - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-BundleInstance.html" - * /> - */ - @Named("BundleInstance") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "BundleInstance") - @XMLResponseParser(BundleTaskHandler.class) - BundleTask bundleInstanceInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId, @FormParam("Storage.S3.Prefix") String prefix, - @FormParam("Storage.S3.Bucket") String bucket, - @BinderParam(BindS3UploadPolicyAndSignature.class) String uploadPolicy, - BundleInstanceS3StorageOptions... options); - - /** - * Cancels an Amazon EC2 bundling operation. - * - * @param region - * The bundleTask ID is tied to the Region. - * @param bundleId - * The ID of the bundle task to cancel. - * @return task for the cancel. - * - * @see #bundleInstanceInRegion - * @see #describeBundleTasksInRegion - * - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-CancelBundleTask.html" - * /> - */ - @Named("CancelBundleTask") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "CancelBundleTask") - @XMLResponseParser(BundleTaskHandler.class) - BundleTask cancelBundleTaskInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("BundleId") String bundleId); - - /** - * - * Describes current bundling tasks. - * - * @param region - * The bundleTask ID is tied to the Region. - * - * @see #cancelBundleTaskInRegion - * @see #bundleInstanceInRegion - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeBundleTasks.html" - * /> - */ - @Named("DescribeBundleTasks") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "DescribeBundleTasks") - @XMLResponseParser(DescribeBundleTasksResponseHandler.class) - @Fallback(EmptySetOnNotFoundOr404.class) - Set<BundleTask> describeBundleTasksInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @BinderParam(BindBundleIdsToIndexedFormParams.class) String... bundleTaskIds); - - /** - * - * Describes current bundling tasks. - * - * @param region - * The bundleTask ID is tied to the Region. - * @param filter - * Filter multimap - * - * @see #cancelBundleTaskInRegion - * @see #bundleInstanceInRegion - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeBundleTasks.html" - * /> - */ - @Named("DescribeBundleTasks") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "DescribeBundleTasks") - @XMLResponseParser(DescribeBundleTasksResponseHandler.class) - @Fallback(EmptySetOnNotFoundOr404.class) - Set<BundleTask> describeBundleTasksInRegionWithFilter( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @BinderParam(BindFiltersToIndexedFormParams.class) Multimap<String, String> filter); - - /** - * - * Retrieves the encrypted administrator password for the instances running Windows. - * - * @param region The region where the instance is based - * @param instanceId The ID of the instance to query - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-GetPasswordData.html" /> - */ - @Named("GetPasswordData") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "GetPasswordData") - @XMLResponseParser(GetPasswordDataResponseHandler.class) - PasswordData getPasswordDataInRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region, - @FormParam("InstanceId") String instanceId); - - - /** - * - * Retrieves the encrypted administrator password for the instances running Windows. <h4>Note</h4> - * - * The Windows password is only generated the first time an AMI is launched. It is not generated - * for rebundled AMIs or after the password is changed on an instance. - * - * The password is encrypted using the key pair that you provided. - * - * @param instanceId - * The ID of the instance to query - * @return password data or null if not available - * @see <a href= - * "http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-GetPasswordData.html" - * /> - */ - @Named("GetPasswordData") - @POST - @Path("/") - @FormParams(keys = ACTION, values = "GetPasswordData") - @XMLResponseParser(GetPasswordDataResponseHandler.class) - @Fallback(NullOnNotFoundOr404.class) - PasswordData getPasswordDataForInstance(@FormParam("InstanceId") String instanceId); - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/functions/ConvertUnencodedBytesToBase64EncodedString.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/functions/ConvertUnencodedBytesToBase64EncodedString.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/functions/ConvertUnencodedBytesToBase64EncodedString.java deleted file mode 100644 index d44dc29..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/functions/ConvertUnencodedBytesToBase64EncodedString.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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.functions; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.io.BaseEncoding.base64; - -import javax.inject.Singleton; - -import com.google.common.base.Function; - -/** - * Binds base64 encodes the byte [] input - * - * @author Adrian Cole - */ -@Singleton -public class ConvertUnencodedBytesToBase64EncodedString implements Function<Object, String> { - - @Override - public String apply(Object from) { - checkArgument(checkNotNull(from, "input") instanceof byte[], "this binder is only valid for byte []!"); - byte[] unencodedData = (byte[]) from; - checkArgument(checkNotNull(unencodedData, "unencodedData").length <= 16 * 1024, - "userData cannot be larger than 16kb"); - return base64().encode(unencodedData); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/functions/EncodedRSAPublicKeyToBase64.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/functions/EncodedRSAPublicKeyToBase64.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/functions/EncodedRSAPublicKeyToBase64.java deleted file mode 100644 index 9099a41..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/functions/EncodedRSAPublicKeyToBase64.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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.functions; - -import static com.google.common.base.Charsets.UTF_8; -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.io.BaseEncoding.base64; - -import javax.inject.Singleton; - -import org.jclouds.util.Predicates2; - -import com.google.common.base.Function; -import com.google.common.base.Predicate; -import com.google.common.base.Predicates; - -/** - * @see <a href= - * "http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-ImportKeyPair.html" - * /> - * @author Adrian Cole - */ -@Singleton -public class EncodedRSAPublicKeyToBase64 implements Function<Object, String> { - private static final Predicate<String> ALLOWED_MARKERS = Predicates.or( - Predicates2.startsWith("ssh-rsa"), - Predicates2.startsWith("-----BEGIN CERTIFICATE-----"), - Predicates2.startsWith("---- BEGIN SSH2 PUBLIC KEY ----")); - - @Override - public String apply(Object from) { - String fromString = checkNotNull(from, "input").toString(); - checkArgument(ALLOWED_MARKERS.apply(fromString), "must be a ssh public key, conforming to %s ", ALLOWED_MARKERS); - return base64().encode(fromString.getBytes(UTF_8)); - } -}
