List of usage examples for com.amazonaws.services.cloudformation.model CreateChangeSetRequest setCapabilities
public void setCapabilities(java.util.Collection<String> capabilities)
In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack.
From source file:jp.classmethod.aws.gradle.cloudformation.AmazonCloudFormationCreateChangeSetTask.java
License:Apache License
private void createChangeSet(AmazonCloudFormation cfn) throws IOException { // to enable conventionMappings feature String stackName = getStackName(); String cfnTemplateUrl = getCfnTemplateUrl(); List<Parameter> cfnStackParams = getCfnStackParams(); List<Tag> cfnStackTags = getCfnStackTags(); File cfnTemplateFile = getCfnTemplateFile(); String changeSetName = changeSetName(stackName); getLogger().info("Create change set '{}' for stack '{}'", changeSetName, stackName); CreateChangeSetRequest req = new CreateChangeSetRequest().withChangeSetName(changeSetName) .withStackName(stackName).withParameters(cfnStackParams).withTags(cfnStackTags); // If template URL is specified, then use it if (Strings.isNullOrEmpty(cfnTemplateUrl) == false) { req.setTemplateURL(cfnTemplateUrl); // Else, use the template file body } else {/*w ww.j a va 2 s . c o m*/ req.setTemplateBody(FileUtils.readFileToString(cfnTemplateFile)); } if (isCapabilityIam()) { Capability selectedCapability = (getUseCapabilityIam() == null) ? Capability.CAPABILITY_IAM : getUseCapabilityIam(); getLogger().info("Using IAM capability: " + selectedCapability); req.setCapabilities(Arrays.asList(selectedCapability.toString())); } CreateChangeSetResult createChangeSetResult = cfn.createChangeSet(req); getLogger().info("Create change set requested: {}", createChangeSetResult.getId()); }