Package org.jclouds.ec2.features
Interface InstanceApi
-
- All Known Subinterfaces:
AWSInstanceApi
public interface InstanceApi
Provides access to EC2 Instance Services via their REST API.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Set<? extends Reservation<? extends RunningInstance>>
describeInstancesInRegion(String region, String... instanceIds)
Returns information about instances that you own.Set<? extends Reservation<? extends RunningInstance>>
describeInstancesInRegionWithFilter(String region, com.google.common.collect.Multimap<String,String> filter)
Returns information about instances that you own.Map<String,BlockDevice>
getBlockDeviceMappingForInstanceInRegion(String region, String instanceId)
String
getConsoleOutputForInstanceInRegion(String region, String instanceId)
Retrieves console output for the specified instance.Volume.InstanceInitiatedShutdownBehavior
getInstanceInitiatedShutdownBehaviorForInstanceInRegion(String region, String instanceId)
String
getInstanceTypeForInstanceInRegion(String region, String instanceId)
String
getKernelForInstanceInRegion(String region, String instanceId)
String
getRamdiskForInstanceInRegion(String region, String instanceId)
String
getRootDeviceNameForInstanceInRegion(String region, String instanceId)
String
getUserDataForInstanceInRegion(String region, String instanceId)
boolean
isApiTerminationDisabledForInstanceInRegion(String region, String instanceId)
void
rebootInstancesInRegion(String region, String... instanceIds)
Requests a reboot of one or more instances.void
resetKernelForInstanceInRegion(String region, String instanceId)
Resets an attribute of an instance to its default value.void
resetRamdiskForInstanceInRegion(String region, String instanceId)
Resets an attribute of an instance to its default value.Reservation<? extends RunningInstance>
runInstancesInRegion(String region, String nullableAvailabilityZone, String imageId, int minCount, int maxCount, RunInstancesOptions... options)
Launches a specified number of instances of an AMI for which you have permissions.void
setApiTerminationDisabledForInstanceInRegion(String region, String instanceId, boolean apiTerminationDisabled)
This command works while the instance is running and controls whether or not the api can be used to terminate the instance.void
setBlockDeviceMappingForInstanceInRegion(String region, String instanceId, Map<String,BlockDevice> blockDeviceMapping)
Sets the blockDeviceMapping used for an instance.void
setInstanceInitiatedShutdownBehaviorForInstanceInRegion(String region, String instanceId, Volume.InstanceInitiatedShutdownBehavior instanceInitiatedShutdownBehavior)
Specifies whether the instance's Amazon EBS volumes are stopped or terminated when the instance is shut down.void
setInstanceTypeForInstanceInRegion(String region, String instanceId, String instanceType)
Sets the instanceType used for starting the instance.void
setKernelForInstanceInRegion(String region, String instanceId, String kernel)
Sets the kernelId used for starting the instance.void
setRamdiskForInstanceInRegion(String region, String instanceId, String ramdisk)
Sets the ramdisk used for starting the instance.void
setUserDataForInstanceInRegion(String region, String instanceId, byte[] unencodedData)
Sets the userData used for starting the instance.Set<? extends InstanceStateChange>
startInstancesInRegion(String region, String... instanceIds)
Starts an instance that uses an Amazon EBS volume as its root device.Set<? extends InstanceStateChange>
stopInstancesInRegion(String region, boolean force, String... instanceIds)
Stops an instance that uses an Amazon EBS volume as its root device.Set<? extends InstanceStateChange>
terminateInstancesInRegion(String region, String... instanceIds)
Shuts down one or more instances.
-
-
-
Method Detail
-
describeInstancesInRegion
@Named("DescribeInstances") @POST @Path("/") Set<? extends Reservation<? extends RunningInstance>> describeInstancesInRegion(@Nullable String region, String... instanceIds)
Returns information about instances that you own. 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. Recently terminated instances might appear in the returned results.This interval is usually less than one hour.- Parameters:
region
- Instances are tied to Availability Zones. However, the instance ID is tied to the Region.- See Also:
runInstancesInRegion(java.lang.String, java.lang.String, java.lang.String, int, int, org.jclouds.ec2.options.RunInstancesOptions...)
,terminateInstancesInRegion(java.lang.String, java.lang.String...)
,
-
describeInstancesInRegionWithFilter
@Named("DescribeInstances") @POST @Path("/") Set<? extends Reservation<? extends RunningInstance>> describeInstancesInRegionWithFilter(@Nullable String region, com.google.common.collect.Multimap<String,String> filter)
Returns information about instances that you own. 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. Recently terminated instances might appear in the returned results. This interval is usually less than one hour.- Parameters:
region
- Instances are tied to Availability Zones. However, the instance ID is tied to the Region.filter
-- See Also:
runInstancesInRegion(java.lang.String, java.lang.String, java.lang.String, int, int, org.jclouds.ec2.options.RunInstancesOptions...)
,terminateInstancesInRegion(java.lang.String, java.lang.String...)
,
-
runInstancesInRegion
@Named("RunInstances") @POST @Path("/") Reservation<? extends RunningInstance> runInstancesInRegion(@Nullable String region, @Nullable String nullableAvailabilityZone, @FormParam("ImageId") String imageId, @FormParam("MinCount") int minCount, @FormParam("MaxCount") int maxCount, RunInstancesOptions... options)
Launches a specified number of instances of an AMI for which you have permissions. 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.Security Groups
Note: Every instance is launched in a security group (created using the CreateSecurityGroup operation.Key Pair
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. Note: Launching public images without a key pair ID will leave them inaccessible. 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.User Data
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.Product Codes
Note: If any of the AMIs have a product code attached for which the user has not subscribed, the RunInstances call will fail.Kernel
Important: 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.- Parameters:
region
- Instances are tied to Availability Zones. However, the instance ID is tied to the Region.nullableAvailabilityZone
- Specifies the placement constraints (Availability Zones) for launching the instances. If null, Amazon will determine the best availability zone to place the instance.imageId
- Unique ID of a machine image, returned by a call tominCount
- 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).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 Also:
describeInstancesInRegion(java.lang.String, java.lang.String...)
,terminateInstancesInRegion(java.lang.String, java.lang.String...)
,#authorizeSecurityGroupIngressInRegion
,#revokeSecurityGroupIngressInRegion
,#describeSecurityGroupsInRegion
,#createSecurityGroupInRegion
,#createKeyPairInRegion
, ,RunInstancesOptions
-
rebootInstancesInRegion
@Named("RebootInstances") @POST @Path("/") void rebootInstancesInRegion(@Nullable String region, String... instanceIds)
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.Note
If a Linux/UNIX instance does not cleanly shut down within four minutes, Amazon EC2 will perform a hard reboot.- Parameters:
region
- Instances are tied to Availability Zones. However, the instance ID is tied to the Region.instanceIds
- Instance ID to reboot.- See Also:
startInstancesInRegion(java.lang.String, java.lang.String...)
,runInstancesInRegion(java.lang.String, java.lang.String, java.lang.String, int, int, org.jclouds.ec2.options.RunInstancesOptions...)
,describeInstancesInRegion(java.lang.String, java.lang.String...)
,terminateInstancesInRegion(java.lang.String, java.lang.String...)
,
-
terminateInstancesInRegion
@Named("TerminateInstances") @POST @Path("/") Set<? extends InstanceStateChange> terminateInstancesInRegion(@Nullable String region, String... instanceIds)
Shuts down one or more instances. This operation is idempotent; if you terminate an instance more than once, each call will succeed. Terminated instances will remain visible after termination (approximately one hour).- Parameters:
region
- Instances are tied to Availability Zones. However, the instance ID is tied to the Region.instanceIds
- Instance ID to terminate.- See Also:
describeInstancesInRegion(java.lang.String, java.lang.String...)
,
-
stopInstancesInRegion
@Named("StopInstances") @POST @Path("/") Set<? extends InstanceStateChange> stopInstancesInRegion(@Nullable String region, @FormParam("Force") boolean force, String... instanceIds)
Stops an instance that uses an Amazon EBS volume as its root device. 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.Note
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. Performing this operation on an instance that uses an instance store as its root device returns an error.- Parameters:
region
- Instances are tied to Availability Zones. However, the instance ID is tied to the Region.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.instanceIds
- Instance ID to stop.- See Also:
startInstancesInRegion(java.lang.String, java.lang.String...)
,runInstancesInRegion(java.lang.String, java.lang.String, java.lang.String, int, int, org.jclouds.ec2.options.RunInstancesOptions...)
,describeInstancesInRegion(java.lang.String, java.lang.String...)
,terminateInstancesInRegion(java.lang.String, java.lang.String...)
,
-
startInstancesInRegion
@Named("StartInstances") @POST @Path("/") Set<? extends InstanceStateChange> startInstancesInRegion(@Nullable String region, String... instanceIds)
Starts an instance that uses an Amazon EBS volume as its root device. 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.Note
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. Performing this operation on an instance that uses an instance store as its root device returns an error.- Parameters:
region
- Instances are tied to Availability Zones. However, the instance ID is tied to the Region.instanceIds
- Instance ID to start.- See Also:
stopInstancesInRegion(java.lang.String, boolean, java.lang.String...)
,runInstancesInRegion(java.lang.String, java.lang.String, java.lang.String, int, int, org.jclouds.ec2.options.RunInstancesOptions...)
,describeInstancesInRegion(java.lang.String, java.lang.String...)
,terminateInstancesInRegion(java.lang.String, java.lang.String...)
,
-
getUserDataForInstanceInRegion
@Named("DescribeInstanceAttribute") @POST @Path("/") String getUserDataForInstanceInRegion(@Nullable String region, @FormParam("InstanceId") String instanceId)
- Parameters:
region
- Instances are tied to Availability Zones. However, the instance ID is tied to the Region.instanceId
- which instance to describe the attribute of- Returns:
- unencoded user data
-
getRootDeviceNameForInstanceInRegion
@Named("DescribeInstanceAttribute") @POST @Path("/") String getRootDeviceNameForInstanceInRegion(@Nullable String region, @FormParam("InstanceId") String instanceId)
- Parameters:
region
- Instances are tied to Availability Zones. However, the instance ID is tied to the Region.instanceId
- which instance to describe the attribute of- Returns:
- The root device name (e.g., /dev/sda1).
-
getRamdiskForInstanceInRegion
@Named("DescribeInstanceAttribute") @POST @Path("/") String getRamdiskForInstanceInRegion(@Nullable String region, @FormParam("InstanceId") String instanceId)
- Parameters:
region
- Instances are tied to Availability Zones. However, the instance ID is tied to the Region.instanceId
- which instance to describe the attribute of- Returns:
- the ID of the RAM disk associated with the AMI.
-
getKernelForInstanceInRegion
@Named("DescribeInstanceAttribute") @POST @Path("/") String getKernelForInstanceInRegion(@Nullable String region, @FormParam("InstanceId") String instanceId)
- Parameters:
region
- Instances are tied to Availability Zones. However, the instance ID is tied to the Region.instanceId
- which instance to describe the attribute of- Returns:
- the ID of the kernel associated with the AMI.
-
isApiTerminationDisabledForInstanceInRegion
@Named("DescribeInstanceAttribute") @POST @Path("/") boolean isApiTerminationDisabledForInstanceInRegion(@Nullable String region, @FormParam("InstanceId") String instanceId)
- Parameters:
region
- Instances are tied to Availability Zones. However, the instance ID is tied to the Region.instanceId
- which instance to describe the attribute of- Returns:
- 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.
-
getInstanceTypeForInstanceInRegion
@Named("DescribeInstanceAttribute") @POST @Path("/") String getInstanceTypeForInstanceInRegion(@Nullable String region, @FormParam("InstanceId") String instanceId)
- Parameters:
region
- Instances are tied to Availability Zones. However, the instance ID is tied to the Region.instanceId
- which instance to describe the attribute of- Returns:
- The instance type of the instance.
-
getInstanceInitiatedShutdownBehaviorForInstanceInRegion
@Named("DescribeInstanceAttribute") @POST @Path("/") Volume.InstanceInitiatedShutdownBehavior getInstanceInitiatedShutdownBehaviorForInstanceInRegion(@Nullable String region, @FormParam("InstanceId") String instanceId)
- Parameters:
region
- Instances are tied to Availability Zones. However, the instance ID is tied to the Region.instanceId
- which instance to describe the attribute of- Returns:
- whether the instance's Amazon EBS volumes are stopped or terminated when the instance is shut down.
-
getBlockDeviceMappingForInstanceInRegion
@Named("DescribeInstanceAttribute") @POST @Path("/") Map<String,BlockDevice> getBlockDeviceMappingForInstanceInRegion(@Nullable String region, @FormParam("InstanceId") String instanceId)
- Parameters:
region
- Instances are tied to Availability Zones. However, the instance ID is tied to the Region.instanceId
- which instance to describe the attribute of- Returns:
- Describes the mapping that defines native device names to use when exposing virtual devices.
-
resetRamdiskForInstanceInRegion
@Named("ResetInstanceAttribute") @POST @Path("/") void resetRamdiskForInstanceInRegion(@Nullable String region, @FormParam("InstanceId") String instanceId)
Resets an attribute of an instance to its default value.- Parameters:
region
- Instances are tied to Availability Zones. However, the instance ID is tied to the Region.instanceId
- which instance to reset the attribute of
-
resetKernelForInstanceInRegion
@Named("ResetInstanceAttribute") @POST @Path("/") void resetKernelForInstanceInRegion(@Nullable String region, @FormParam("InstanceId") String instanceId)
Resets an attribute of an instance to its default value.- Parameters:
region
- Instances are tied to Availability Zones. However, the instance ID is tied to the Region.instanceId
- which instance to reset the attribute of
-
setUserDataForInstanceInRegion
@Named("ModifyInstanceAttribute") @POST @Path("/") void setUserDataForInstanceInRegion(@Nullable String region, @FormParam("InstanceId") String instanceId, @FormParam("Value") byte[] unencodedData)
Sets the userData used for starting the instance. The instance needs to be in aInstanceState#STOPPED
state, which implies two things:- The instance was launched from an EBS-backed AMI so that it can stop
- You have stopped and waited for the instance to transition from
InstanceState#STOPPING
toInstanceState#STOPPED
-
setRamdiskForInstanceInRegion
@Named("ModifyInstanceAttribute") @POST @Path("/") void setRamdiskForInstanceInRegion(@Nullable String region, @FormParam("InstanceId") String instanceId, @FormParam("Value") String ramdisk)
Sets the ramdisk used for starting the instance. The instance needs to be in aInstanceState#STOPPED
state, which implies two things:- The instance was launched from an EBS-backed AMI so that it can stop
- You have stopped and waited for the instance to transition from
InstanceState#STOPPING
toInstanceState#STOPPED
-
setKernelForInstanceInRegion
@Named("ModifyInstanceAttribute") @POST @Path("/") void setKernelForInstanceInRegion(@Nullable String region, @FormParam("InstanceId") String instanceId, @FormParam("Value") String kernel)
Sets the kernelId used for starting the instance. The instance needs to be in aInstanceState#STOPPED
state, which implies two things:- The instance was launched from an EBS-backed AMI so that it can stop
- You have stopped and waited for the instance to transition from
InstanceState#STOPPING
toInstanceState#STOPPED
-
setApiTerminationDisabledForInstanceInRegion
@Named("ModifyInstanceAttribute") @POST @Path("/") void setApiTerminationDisabledForInstanceInRegion(@Nullable String region, @FormParam("InstanceId") String instanceId, @FormParam("Value") boolean apiTerminationDisabled)
This command works while the instance is running and controls whether or not the api can be used to terminate the instance.
-
setInstanceTypeForInstanceInRegion
@Named("ModifyInstanceAttribute") @POST @Path("/") void setInstanceTypeForInstanceInRegion(@Nullable String region, @FormParam("InstanceId") String instanceId, @FormParam("Value") String instanceType)
Sets the instanceType used for starting the instance. The instance needs to be in aInstanceState#STOPPED
state, which implies two things:- The instance was launched from an EBS-backed AMI so that it can stop
- You have stopped and waited for the instance to transition from
InstanceState#STOPPING
toInstanceState#STOPPED
-
setInstanceInitiatedShutdownBehaviorForInstanceInRegion
@Named("ModifyInstanceAttribute") @POST @Path("/") void setInstanceInitiatedShutdownBehaviorForInstanceInRegion(@Nullable String region, @FormParam("InstanceId") String instanceId, @FormParam("Value") Volume.InstanceInitiatedShutdownBehavior instanceInitiatedShutdownBehavior)
Specifies whether the instance's Amazon EBS volumes are stopped or terminated when the instance is shut down. The instance needs to be in aInstanceState#STOPPED
state, which implies two things:- The instance was launched from an EBS-backed AMI so that it can stop
- You have stopped and waited for the instance to transition from
InstanceState#STOPPING
toInstanceState#STOPPED
- Parameters:
region
- Instances are tied to Availability Zones. However, the instance ID is tied to the Region.instanceId
- which instance to change the attribute ofinstanceInitiatedShutdownBehavior
- whether the instance's Amazon EBS volumes are stopped or terminated when the instance is shut down.- See Also:
-
setBlockDeviceMappingForInstanceInRegion
@Named("ModifyInstanceAttribute") @POST @Path("/") void setBlockDeviceMappingForInstanceInRegion(@Nullable String region, @FormParam("InstanceId") String instanceId, Map<String,BlockDevice> blockDeviceMapping)
Sets the blockDeviceMapping used for an instance. The instance needs to be in aInstanceState#STOPPED
state, which implies two things:- The instance was launched from an EBS-backed AMI so that it can stop
- You have stopped and waited for the instance to transition from
InstanceState#STOPPING
toInstanceState#STOPPED
BlockDevice
, the constructor can be used with the following parameters:BlockDevice#EbsBlockDevice(String, String, boolean)
, that are:- Volume id (required), for instance, "vol-blah"
- Device name (optional), for instance, "/dev/sda1". To find out more about device names, read the next paragraph.
- Delete on termination flag (optional), which defines whether the volume will be deleted upon instance's termination.
-
getConsoleOutputForInstanceInRegion
@Named("GetConsoleOutput") @POST @Path("/") String getConsoleOutputForInstanceInRegion(@Nullable String region, @FormParam("InstanceId") String instanceId)
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.- Parameters:
region
- Instances are tied to Availability Zones. However, the instance ID is tied to the Region.instanceId
- which instance to retrieve console output for- Returns:
- The console output
- See Also:
- ApiReference query GetConsoleOutput
-
-