Example usage for com.amazonaws.services.ec2.model RunInstancesRequest setDisableApiTermination

List of usage examples for com.amazonaws.services.ec2.model RunInstancesRequest setDisableApiTermination

Introduction

In this page you can find the example usage for com.amazonaws.services.ec2.model RunInstancesRequest setDisableApiTermination.

Prototype


public void setDisableApiTermination(Boolean disableApiTermination) 

Source Link

Document

If you set this parameter to true, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can.

Usage

From source file:com.yosanai.java.aws.console.DefaultAWSConnectionProvider.java

License:Open Source License

@Override
public void launchInstance(String amiId, InstanceType instanceType, int instanceCount, String keyName,
        Collection<String> securityGroups, boolean terminateViaAPI, Map<String, String> tags) throws Exception {
    if (1 > instanceCount) {
        throw new Exception("Invalid instanceCount " + instanceCount);
    }//from   ww  w  .  java 2  s  . co m
    if (null == instanceType) {
        throw new Exception("Invalid instanceType");
    }
    if (StringUtils.isBlank(amiId)) {
        throw new Exception("Invalid amiId");
    }
    RunInstancesRequest runInstancesRequest = new RunInstancesRequest(amiId, instanceCount, instanceCount);
    runInstancesRequest.setKeyName(keyName);
    runInstancesRequest.setSecurityGroups(securityGroups);
    runInstancesRequest.setDisableApiTermination(!terminateViaAPI);
    runInstancesRequest.setInstanceType(instanceType.toString());
    RunInstancesResult result = getConnection().runInstances(runInstancesRequest);
    if (null != tags && !tags.isEmpty()) {
        List<Tag> tagList = new ArrayList<Tag>();
        for (String key : tags.keySet()) {
            tagList.add(new Tag(key, tags.get(key)));
        }
        List<String> resources = new ArrayList<String>();
        Reservation reservation = result.getReservation();
        for (Instance instance : reservation.getInstances()) {
            resources.add(instance.getInstanceId());
        }
        getConnection().createTags(new CreateTagsRequest(resources, tagList));
    }
}