Stack

class Stack : KotlinCustomResource

Provides a CloudFormation Stack resource.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const network = new aws.cloudformation.Stack("network", {
name: "networking-stack",
parameters: {
VPCCidr: "10.0.0.0/16",
},
templateBody: JSON.stringify({
Parameters: {
VPCCidr: {
Type: "String",
Default: "10.0.0.0/16",
Description: "Enter the CIDR block for the VPC. Default is 10.0.0.0/16.",
},
},
Resources: {
myVpc: {
Type: "AWS::EC2::VPC",
Properties: {
CidrBlock: {
Ref: "VPCCidr",
},
Tags: [{
Key: "Name",
Value: "Primary_CF_VPC",
}],
},
},
},
}),
});
import pulumi
import json
import pulumi_aws as aws
network = aws.cloudformation.Stack("network",
name="networking-stack",
parameters={
"VPCCidr": "10.0.0.0/16",
},
template_body=json.dumps({
"Parameters": {
"VPCCidr": {
"Type": "String",
"Default": "10.0.0.0/16",
"Description": "Enter the CIDR block for the VPC. Default is 10.0.0.0/16.",
},
},
"Resources": {
"myVpc": {
"Type": "AWS::EC2::VPC",
"Properties": {
"CidrBlock": {
"Ref": "VPCCidr",
},
"Tags": [{
"Key": "Name",
"Value": "Primary_CF_VPC",
}],
},
},
},
}))
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var network = new Aws.CloudFormation.Stack("network", new()
{
Name = "networking-stack",
Parameters =
{
{ "VPCCidr", "10.0.0.0/16" },
},
TemplateBody = JsonSerializer.Serialize(new Dictionary<string, object?>
{
["Parameters"] = new Dictionary<string, object?>
{
["VPCCidr"] = new Dictionary<string, object?>
{
["Type"] = "String",
["Default"] = "10.0.0.0/16",
["Description"] = "Enter the CIDR block for the VPC. Default is 10.0.0.0/16.",
},
},
["Resources"] = new Dictionary<string, object?>
{
["myVpc"] = new Dictionary<string, object?>
{
["Type"] = "AWS::EC2::VPC",
["Properties"] = new Dictionary<string, object?>
{
["CidrBlock"] = new Dictionary<string, object?>
{
["Ref"] = "VPCCidr",
},
["Tags"] = new[]
{
new Dictionary<string, object?>
{
["Key"] = "Name",
["Value"] = "Primary_CF_VPC",
},
},
},
},
},
}),
});
});
package main
import (
"encoding/json"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudformation"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
tmpJSON0, err := json.Marshal(map[string]interface{}{
"Parameters": map[string]interface{}{
"VPCCidr": map[string]interface{}{
"Type": "String",
"Default": "10.0.0.0/16",
"Description": "Enter the CIDR block for the VPC. Default is 10.0.0.0/16.",
},
},
"Resources": map[string]interface{}{
"myVpc": map[string]interface{}{
"Type": "AWS::EC2::VPC",
"Properties": map[string]interface{}{
"CidrBlock": map[string]interface{}{
"Ref": "VPCCidr",
},
"Tags": []map[string]interface{}{
map[string]interface{}{
"Key": "Name",
"Value": "Primary_CF_VPC",
},
},
},
},
},
})
if err != nil {
return err
}
json0 := string(tmpJSON0)
_, err = cloudformation.NewStack(ctx, "network", &cloudformation.StackArgs{
Name: pulumi.String("networking-stack"),
Parameters: pulumi.StringMap{
"VPCCidr": pulumi.String("10.0.0.0/16"),
},
TemplateBody: pulumi.String(json0),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.cloudformation.Stack;
import com.pulumi.aws.cloudformation.StackArgs;
import static com.pulumi.codegen.internal.Serialization.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var network = new Stack("network", StackArgs.builder()
.name("networking-stack")
.parameters(Map.of("VPCCidr", "10.0.0.0/16"))
.templateBody(serializeJson(
jsonObject(
jsonProperty("Parameters", jsonObject(
jsonProperty("VPCCidr", jsonObject(
jsonProperty("Type", "String"),
jsonProperty("Default", "10.0.0.0/16"),
jsonProperty("Description", "Enter the CIDR block for the VPC. Default is 10.0.0.0/16.")
))
)),
jsonProperty("Resources", jsonObject(
jsonProperty("myVpc", jsonObject(
jsonProperty("Type", "AWS::EC2::VPC"),
jsonProperty("Properties", jsonObject(
jsonProperty("CidrBlock", jsonObject(
jsonProperty("Ref", "VPCCidr")
)),
jsonProperty("Tags", jsonArray(jsonObject(
jsonProperty("Key", "Name"),
jsonProperty("Value", "Primary_CF_VPC")
)))
))
))
))
)))
.build());
}
}
resources:
network:
type: aws:cloudformation:Stack
properties:
name: networking-stack
parameters:
VPCCidr: 10.0.0.0/16
templateBody:
fn::toJSON:
Parameters:
VPCCidr:
Type: String
Default: 10.0.0.0/16
Description: Enter the CIDR block for the VPC. Default is 10.0.0.0/16.
Resources:
myVpc:
Type: AWS::EC2::VPC
Properties:
CidrBlock:
Ref: VPCCidr
Tags:
- Key: Name
Value: Primary_CF_VPC

Import

Using pulumi import, import Cloudformation Stacks using the name. For example:

$ pulumi import aws:cloudformation/stack:Stack stack networking-stack

Properties

Link copied to clipboard
val capabilities: Output<List<String>>?

A list of capabilities. Valid values: CAPABILITY_IAM, CAPABILITY_NAMED_IAM, or CAPABILITY_AUTO_EXPAND

Link copied to clipboard
val disableRollback: Output<Boolean>?

Set to true to disable rollback of the stack if stack creation failed. Conflicts with on_failure.

Link copied to clipboard
val iamRoleArn: Output<String>?

The ARN of an IAM role that AWS CloudFormation assumes to create the stack. If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val name: Output<String>

Stack name.

Link copied to clipboard

A list of SNS topic ARNs to publish stack related events.

Link copied to clipboard
val onFailure: Output<String>?

Action to be taken if stack creation fails. This must be one of: DO_NOTHING, ROLLBACK, or DELETE. Conflicts with disable_rollback.

Link copied to clipboard
val outputs: Output<Map<String, String>>

A map of outputs from the stack.

Link copied to clipboard
val parameters: Output<Map<String, String>>

A map of Parameter structures that specify input parameters for the stack.

Link copied to clipboard
val policyBody: Output<String>

Structure containing the stack policy body. Conflicts w/ policy_url.

Link copied to clipboard
val policyUrl: Output<String>?

Location of a file containing the stack policy. Conflicts w/ policy_body.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val tags: Output<Map<String, String>>?

Map of resource tags to associate with this stack. .If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

Link copied to clipboard
val tagsAll: Output<Map<String, String>>

A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Link copied to clipboard
val templateBody: Output<String>

Structure containing the template body (max size: 51,200 bytes).

Link copied to clipboard
val templateUrl: Output<String>?

Location of a file containing the template body (max size: 460,800 bytes).

Link copied to clipboard
val timeoutInMinutes: Output<Int>?

The amount of time that can pass before the stack status becomes CREATE_FAILED.

Link copied to clipboard
val urn: Output<String>