cloudformation

package
v3.34.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 19, 2021 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type GetExportArgs

type GetExportArgs struct {
	// The name of the export as it appears in the console or from [list-exports](http://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-exports.html)
	Name string `pulumi:"name"`
}

A collection of arguments for invoking getExport.

type GetExportResult

type GetExportResult struct {
	// The exportingStackId (AWS ARNs) equivalent `ExportingStackId` from [list-exports](http://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-exports.html)
	ExportingStackId string `pulumi:"exportingStackId"`
	// The provider-assigned unique ID for this managed resource.
	Id   string `pulumi:"id"`
	Name string `pulumi:"name"`
	// The value from Cloudformation export identified by the export name found from [list-exports](http://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-exports.html)
	Value string `pulumi:"value"`
}

A collection of values returned by getExport.

func GetExport

func GetExport(ctx *pulumi.Context, args *GetExportArgs, opts ...pulumi.InvokeOption) (*GetExportResult, error)

The CloudFormation Export data source allows access to stack exports specified in the [Output](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html) section of the Cloudformation Template using the optional Export Property.

> Note: If you are trying to use a value from a Cloudformation Stack in the same deployment please use normal interpolation or Cloudformation Outputs.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/cloudformation"
"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		subnetId, err := cloudformation.GetExport(ctx, &cloudformation.GetExportArgs{
			Name: "mySubnetIdExportName",
		}, nil)
		if err != nil {
			return err
		}
		_, err = ec2.NewInstance(ctx, "web", &ec2.InstanceArgs{
			Ami:          pulumi.String("ami-abb07bcb"),
			InstanceType: pulumi.String("t2.micro"),
			SubnetId:     pulumi.String(subnetId.Value),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupStackArgs

type LookupStackArgs struct {
	// The name of the stack
	Name string `pulumi:"name"`
	// A map of tags associated with this stack.
	Tags map[string]string `pulumi:"tags"`
}

A collection of arguments for invoking getStack.

type LookupStackResult

type LookupStackResult struct {
	// A list of capabilities
	Capabilities []string `pulumi:"capabilities"`
	// Description of the stack
	Description string `pulumi:"description"`
	// Whether the rollback of the stack is disabled when stack creation fails
	DisableRollback bool `pulumi:"disableRollback"`
	// The ARN of the IAM role used to create the stack.
	IamRoleArn string `pulumi:"iamRoleArn"`
	// The provider-assigned unique ID for this managed resource.
	Id   string `pulumi:"id"`
	Name string `pulumi:"name"`
	// A list of SNS topic ARNs to publish stack related events
	NotificationArns []string `pulumi:"notificationArns"`
	// A map of outputs from the stack.
	Outputs map[string]string `pulumi:"outputs"`
	// A map of parameters that specify input parameters for the stack.
	Parameters map[string]string `pulumi:"parameters"`
	// A map of tags associated with this stack.
	Tags map[string]string `pulumi:"tags"`
	// Structure containing the template body.
	TemplateBody string `pulumi:"templateBody"`
	// The amount of time that can pass before the stack status becomes `CREATE_FAILED`
	TimeoutInMinutes int `pulumi:"timeoutInMinutes"`
}

A collection of values returned by getStack.

func LookupStack

func LookupStack(ctx *pulumi.Context, args *LookupStackArgs, opts ...pulumi.InvokeOption) (*LookupStackResult, error)

The CloudFormation Stack data source allows access to stack outputs and other useful data including the template body.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/cloudformation"
"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		network, err := cloudformation.LookupStack(ctx, &cloudformation.LookupStackArgs{
			Name: "my-network-stack",
		}, nil)
		if err != nil {
			return err
		}
		_, err = ec2.NewInstance(ctx, "web", &ec2.InstanceArgs{
			Ami:          pulumi.String("ami-abb07bcb"),
			InstanceType: pulumi.String("t2.micro"),
			SubnetId:     pulumi.String(network.Outputs.SubnetId),
			Tags: pulumi.StringMap{
				"Name": pulumi.String("HelloWorld"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

type Stack

type Stack struct {
	pulumi.CustomResourceState

	// A list of capabilities.
	// Valid values: `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM`, or `CAPABILITY_AUTO_EXPAND`
	Capabilities pulumi.StringArrayOutput `pulumi:"capabilities"`
	// Set to true to disable rollback of the stack if stack creation failed.
	// Conflicts with `onFailure`.
	DisableRollback pulumi.BoolPtrOutput `pulumi:"disableRollback"`
	// 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.
	IamRoleArn pulumi.StringPtrOutput `pulumi:"iamRoleArn"`
	// Stack name.
	Name pulumi.StringOutput `pulumi:"name"`
	// A list of SNS topic ARNs to publish stack related events.
	NotificationArns pulumi.StringArrayOutput `pulumi:"notificationArns"`
	// Action to be taken if stack creation fails. This must be
	// one of: `DO_NOTHING`, `ROLLBACK`, or `DELETE`. Conflicts with `disableRollback`.
	OnFailure pulumi.StringPtrOutput `pulumi:"onFailure"`
	// A map of outputs from the stack.
	Outputs pulumi.StringMapOutput `pulumi:"outputs"`
	// A map of Parameter structures that specify input parameters for the stack.
	Parameters pulumi.StringMapOutput `pulumi:"parameters"`
	// Structure containing the stack policy body.
	// Conflicts w/ `policyUrl`.
	PolicyBody pulumi.StringOutput `pulumi:"policyBody"`
	// Location of a file containing the stack policy.
	// Conflicts w/ `policyBody`.
	PolicyUrl pulumi.StringPtrOutput `pulumi:"policyUrl"`
	// A list of tags to associate with this stack.
	Tags pulumi.StringMapOutput `pulumi:"tags"`
	// Structure containing the template body (max size: 51,200 bytes).
	TemplateBody pulumi.StringOutput `pulumi:"templateBody"`
	// Location of a file containing the template body (max size: 460,800 bytes).
	TemplateUrl pulumi.StringPtrOutput `pulumi:"templateUrl"`
	// The amount of time that can pass before the stack status becomes `CREATE_FAILED`.
	TimeoutInMinutes pulumi.IntPtrOutput `pulumi:"timeoutInMinutes"`
}

Provides a CloudFormation Stack resource.

## Example Usage

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/cloudformation"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := cloudformation.NewStack(ctx, "network", &cloudformation.StackArgs{
			Parameters: pulumi.StringMap{
				"VPCCidr": pulumi.String("10.0.0.0/16"),
			},
			TemplateBody: pulumi.String(fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v", "{\n", "  \"Parameters\" : {\n", "    \"VPCCidr\" : {\n", "      \"Type\" : \"String\",\n", "      \"Default\" : \"10.0.0.0/16\",\n", "      \"Description\" : \"Enter the CIDR block for the VPC. Default is 10.0.0.0/16.\"\n", "    }\n", "  },\n", "  \"Resources\" : {\n", "    \"myVpc\": {\n", "      \"Type\" : \"AWS::EC2::VPC\",\n", "      \"Properties\" : {\n", "        \"CidrBlock\" : { \"Ref\" : \"VPCCidr\" },\n", "        \"Tags\" : [\n", "          {\"Key\": \"Name\", \"Value\": \"Primary_CF_VPC\"}\n", "        ]\n", "      }\n", "    }\n", "  }\n", "}\n", "\n")),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Cloudformation Stacks can be imported using the `name`, e.g.

```sh

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

```

func GetStack

func GetStack(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *StackState, opts ...pulumi.ResourceOption) (*Stack, error)

GetStack gets an existing Stack resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewStack

func NewStack(ctx *pulumi.Context,
	name string, args *StackArgs, opts ...pulumi.ResourceOption) (*Stack, error)

NewStack registers a new resource with the given unique name, arguments, and options.

func (*Stack) ElementType added in v3.13.0

func (*Stack) ElementType() reflect.Type

func (*Stack) ToStackOutput added in v3.13.0

func (i *Stack) ToStackOutput() StackOutput

func (*Stack) ToStackOutputWithContext added in v3.13.0

func (i *Stack) ToStackOutputWithContext(ctx context.Context) StackOutput

func (*Stack) ToStackPtrOutput added in v3.25.0

func (i *Stack) ToStackPtrOutput() StackPtrOutput

func (*Stack) ToStackPtrOutputWithContext added in v3.25.0

func (i *Stack) ToStackPtrOutputWithContext(ctx context.Context) StackPtrOutput

type StackArgs

type StackArgs struct {
	// A list of capabilities.
	// Valid values: `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM`, or `CAPABILITY_AUTO_EXPAND`
	Capabilities pulumi.StringArrayInput
	// Set to true to disable rollback of the stack if stack creation failed.
	// Conflicts with `onFailure`.
	DisableRollback pulumi.BoolPtrInput
	// 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.
	IamRoleArn pulumi.StringPtrInput
	// Stack name.
	Name pulumi.StringPtrInput
	// A list of SNS topic ARNs to publish stack related events.
	NotificationArns pulumi.StringArrayInput
	// Action to be taken if stack creation fails. This must be
	// one of: `DO_NOTHING`, `ROLLBACK`, or `DELETE`. Conflicts with `disableRollback`.
	OnFailure pulumi.StringPtrInput
	// A map of Parameter structures that specify input parameters for the stack.
	Parameters pulumi.StringMapInput
	// Structure containing the stack policy body.
	// Conflicts w/ `policyUrl`.
	PolicyBody pulumi.StringPtrInput
	// Location of a file containing the stack policy.
	// Conflicts w/ `policyBody`.
	PolicyUrl pulumi.StringPtrInput
	// A list of tags to associate with this stack.
	Tags pulumi.StringMapInput
	// Structure containing the template body (max size: 51,200 bytes).
	TemplateBody pulumi.StringPtrInput
	// Location of a file containing the template body (max size: 460,800 bytes).
	TemplateUrl pulumi.StringPtrInput
	// The amount of time that can pass before the stack status becomes `CREATE_FAILED`.
	TimeoutInMinutes pulumi.IntPtrInput
}

The set of arguments for constructing a Stack resource.

func (StackArgs) ElementType

func (StackArgs) ElementType() reflect.Type

type StackArray added in v3.25.0

type StackArray []StackInput

func (StackArray) ElementType added in v3.25.0

func (StackArray) ElementType() reflect.Type

func (StackArray) ToStackArrayOutput added in v3.25.0

func (i StackArray) ToStackArrayOutput() StackArrayOutput

func (StackArray) ToStackArrayOutputWithContext added in v3.25.0

func (i StackArray) ToStackArrayOutputWithContext(ctx context.Context) StackArrayOutput

type StackArrayInput added in v3.25.0

type StackArrayInput interface {
	pulumi.Input

	ToStackArrayOutput() StackArrayOutput
	ToStackArrayOutputWithContext(context.Context) StackArrayOutput
}

StackArrayInput is an input type that accepts StackArray and StackArrayOutput values. You can construct a concrete instance of `StackArrayInput` via:

StackArray{ StackArgs{...} }

type StackArrayOutput added in v3.25.0

type StackArrayOutput struct{ *pulumi.OutputState }

func (StackArrayOutput) ElementType added in v3.25.0

func (StackArrayOutput) ElementType() reflect.Type

func (StackArrayOutput) Index added in v3.25.0

func (StackArrayOutput) ToStackArrayOutput added in v3.25.0

func (o StackArrayOutput) ToStackArrayOutput() StackArrayOutput

func (StackArrayOutput) ToStackArrayOutputWithContext added in v3.25.0

func (o StackArrayOutput) ToStackArrayOutputWithContext(ctx context.Context) StackArrayOutput

type StackInput added in v3.13.0

type StackInput interface {
	pulumi.Input

	ToStackOutput() StackOutput
	ToStackOutputWithContext(ctx context.Context) StackOutput
}

type StackMap added in v3.25.0

type StackMap map[string]StackInput

func (StackMap) ElementType added in v3.25.0

func (StackMap) ElementType() reflect.Type

func (StackMap) ToStackMapOutput added in v3.25.0

func (i StackMap) ToStackMapOutput() StackMapOutput

func (StackMap) ToStackMapOutputWithContext added in v3.25.0

func (i StackMap) ToStackMapOutputWithContext(ctx context.Context) StackMapOutput

type StackMapInput added in v3.25.0

type StackMapInput interface {
	pulumi.Input

	ToStackMapOutput() StackMapOutput
	ToStackMapOutputWithContext(context.Context) StackMapOutput
}

StackMapInput is an input type that accepts StackMap and StackMapOutput values. You can construct a concrete instance of `StackMapInput` via:

StackMap{ "key": StackArgs{...} }

type StackMapOutput added in v3.25.0

type StackMapOutput struct{ *pulumi.OutputState }

func (StackMapOutput) ElementType added in v3.25.0

func (StackMapOutput) ElementType() reflect.Type

func (StackMapOutput) MapIndex added in v3.25.0

func (StackMapOutput) ToStackMapOutput added in v3.25.0

func (o StackMapOutput) ToStackMapOutput() StackMapOutput

func (StackMapOutput) ToStackMapOutputWithContext added in v3.25.0

func (o StackMapOutput) ToStackMapOutputWithContext(ctx context.Context) StackMapOutput

type StackOutput added in v3.13.0

type StackOutput struct {
	*pulumi.OutputState
}

func (StackOutput) ElementType added in v3.13.0

func (StackOutput) ElementType() reflect.Type

func (StackOutput) ToStackOutput added in v3.13.0

func (o StackOutput) ToStackOutput() StackOutput

func (StackOutput) ToStackOutputWithContext added in v3.13.0

func (o StackOutput) ToStackOutputWithContext(ctx context.Context) StackOutput

func (StackOutput) ToStackPtrOutput added in v3.25.0

func (o StackOutput) ToStackPtrOutput() StackPtrOutput

func (StackOutput) ToStackPtrOutputWithContext added in v3.25.0

func (o StackOutput) ToStackPtrOutputWithContext(ctx context.Context) StackPtrOutput

type StackPtrInput added in v3.25.0

type StackPtrInput interface {
	pulumi.Input

	ToStackPtrOutput() StackPtrOutput
	ToStackPtrOutputWithContext(ctx context.Context) StackPtrOutput
}

type StackPtrOutput added in v3.25.0

type StackPtrOutput struct {
	*pulumi.OutputState
}

func (StackPtrOutput) ElementType added in v3.25.0

func (StackPtrOutput) ElementType() reflect.Type

func (StackPtrOutput) ToStackPtrOutput added in v3.25.0

func (o StackPtrOutput) ToStackPtrOutput() StackPtrOutput

func (StackPtrOutput) ToStackPtrOutputWithContext added in v3.25.0

func (o StackPtrOutput) ToStackPtrOutputWithContext(ctx context.Context) StackPtrOutput

type StackSet

type StackSet struct {
	pulumi.CustomResourceState

	// Amazon Resource Number (ARN) of the IAM Role in the administrator account.
	AdministrationRoleArn pulumi.StringOutput `pulumi:"administrationRoleArn"`
	// Amazon Resource Name (ARN) of the StackSet.
	Arn pulumi.StringOutput `pulumi:"arn"`
	// A list of capabilities. Valid values: `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM`, `CAPABILITY_AUTO_EXPAND`.
	Capabilities pulumi.StringArrayOutput `pulumi:"capabilities"`
	// Description of the StackSet.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Name of the IAM Role in all target accounts for StackSet operations. Defaults to `AWSCloudFormationStackSetExecutionRole`.
	ExecutionRoleName pulumi.StringPtrOutput `pulumi:"executionRoleName"`
	// Name of the StackSet. The name must be unique in the region where you create your StackSet. The name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.
	Name pulumi.StringOutput `pulumi:"name"`
	// Key-value map of input parameters for the StackSet template. All template parameters, including those with a `Default`, must be configured or ignored with `lifecycle` configuration block `ignoreChanges` argument. All `NoEcho` template parameters must be ignored with the `lifecycle` configuration block `ignoreChanges` argument.
	Parameters pulumi.StringMapOutput `pulumi:"parameters"`
	// Unique identifier of the StackSet.
	StackSetId pulumi.StringOutput `pulumi:"stackSetId"`
	// Key-value map of tags to associate with this StackSet and the Stacks created from it. AWS CloudFormation also propagates these tags to supported resources that are created in the Stacks. A maximum number of 50 tags can be specified.
	Tags pulumi.StringMapOutput `pulumi:"tags"`
	// String containing the CloudFormation template body. Maximum size: 51,200 bytes. Conflicts with `templateUrl`.
	TemplateBody pulumi.StringOutput `pulumi:"templateBody"`
	// String containing the location of a file containing the CloudFormation template body. The URL must point to a template that is located in an Amazon S3 bucket. Maximum location file size: 460,800 bytes. Conflicts with `templateBody`.
	TemplateUrl pulumi.StringPtrOutput `pulumi:"templateUrl"`
}

Manages a CloudFormation StackSet. StackSets allow CloudFormation templates to be easily deployed across multiple accounts and regions via StackSet Instances (`cloudformation.StackSetInstance` resource). Additional information about StackSets can be found in the [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html).

> **NOTE:** All template parameters, including those with a `Default`, must be configured or ignored with the `lifecycle` configuration block `ignoreChanges` argument.

> **NOTE:** All `NoEcho` template parameters must be ignored with the `lifecycle` configuration block `ignoreChanges` argument.

## Example Usage

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/cloudformation"
"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/iam"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		aWSCloudFormationStackSetAdministrationRoleAssumeRolePolicy, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
			Statements: []iam.GetPolicyDocumentStatement{
				iam.GetPolicyDocumentStatement{
					Actions: []string{
						"sts:AssumeRole",
					},
					Effect: "Allow",
					Principals: []iam.GetPolicyDocumentStatementPrincipal{
						iam.GetPolicyDocumentStatementPrincipal{
							Identifiers: []string{
								"cloudformation.amazonaws.com",
							},
							Type: "Service",
						},
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		aWSCloudFormationStackSetAdministrationRole, err := iam.NewRole(ctx, "aWSCloudFormationStackSetAdministrationRole", &iam.RoleArgs{
			AssumeRolePolicy: pulumi.String(aWSCloudFormationStackSetAdministrationRoleAssumeRolePolicy.Json),
		})
		if err != nil {
			return err
		}
		example, err := cloudformation.NewStackSet(ctx, "example", &cloudformation.StackSetArgs{
			AdministrationRoleArn: aWSCloudFormationStackSetAdministrationRole.Arn,
			Parameters: pulumi.StringMap{
				"VPCCidr": pulumi.String("10.0.0.0/16"),
			},
			TemplateBody: pulumi.String(fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v", "{\n", "  \"Parameters\" : {\n", "    \"VPCCidr\" : {\n", "      \"Type\" : \"String\",\n", "      \"Default\" : \"10.0.0.0/16\",\n", "      \"Description\" : \"Enter the CIDR block for the VPC. Default is 10.0.0.0/16.\"\n", "    }\n", "  },\n", "  \"Resources\" : {\n", "    \"myVpc\": {\n", "      \"Type\" : \"AWS::EC2::VPC\",\n", "      \"Properties\" : {\n", "        \"CidrBlock\" : { \"Ref\" : \"VPCCidr\" },\n", "        \"Tags\" : [\n", "          {\"Key\": \"Name\", \"Value\": \"Primary_CF_VPC\"}\n", "        ]\n", "      }\n", "    }\n", "  }\n", "}\n")),
		})
		if err != nil {
			return err
		}
		_, err = iam.NewRolePolicy(ctx, "aWSCloudFormationStackSetAdministrationRoleExecutionPolicyRolePolicy", &iam.RolePolicyArgs{
			Policy: aWSCloudFormationStackSetAdministrationRoleExecutionPolicyPolicyDocument.ApplyT(func(aWSCloudFormationStackSetAdministrationRoleExecutionPolicyPolicyDocument iam.GetPolicyDocumentResult) (string, error) {
				return aWSCloudFormationStackSetAdministrationRoleExecutionPolicyPolicyDocument.Json, nil
			}).(pulumi.StringOutput),
			Role: aWSCloudFormationStackSetAdministrationRole.Name,
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

CloudFormation StackSets can be imported using the `name`, e.g.

```sh

$ pulumi import aws:cloudformation/stackSet:StackSet example example

```

func GetStackSet

func GetStackSet(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *StackSetState, opts ...pulumi.ResourceOption) (*StackSet, error)

GetStackSet gets an existing StackSet resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewStackSet

func NewStackSet(ctx *pulumi.Context,
	name string, args *StackSetArgs, opts ...pulumi.ResourceOption) (*StackSet, error)

NewStackSet registers a new resource with the given unique name, arguments, and options.

func (*StackSet) ElementType added in v3.13.0

func (*StackSet) ElementType() reflect.Type

func (*StackSet) ToStackSetOutput added in v3.13.0

func (i *StackSet) ToStackSetOutput() StackSetOutput

func (*StackSet) ToStackSetOutputWithContext added in v3.13.0

func (i *StackSet) ToStackSetOutputWithContext(ctx context.Context) StackSetOutput

func (*StackSet) ToStackSetPtrOutput added in v3.25.0

func (i *StackSet) ToStackSetPtrOutput() StackSetPtrOutput

func (*StackSet) ToStackSetPtrOutputWithContext added in v3.25.0

func (i *StackSet) ToStackSetPtrOutputWithContext(ctx context.Context) StackSetPtrOutput

type StackSetArgs

type StackSetArgs struct {
	// Amazon Resource Number (ARN) of the IAM Role in the administrator account.
	AdministrationRoleArn pulumi.StringInput
	// A list of capabilities. Valid values: `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM`, `CAPABILITY_AUTO_EXPAND`.
	Capabilities pulumi.StringArrayInput
	// Description of the StackSet.
	Description pulumi.StringPtrInput
	// Name of the IAM Role in all target accounts for StackSet operations. Defaults to `AWSCloudFormationStackSetExecutionRole`.
	ExecutionRoleName pulumi.StringPtrInput
	// Name of the StackSet. The name must be unique in the region where you create your StackSet. The name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.
	Name pulumi.StringPtrInput
	// Key-value map of input parameters for the StackSet template. All template parameters, including those with a `Default`, must be configured or ignored with `lifecycle` configuration block `ignoreChanges` argument. All `NoEcho` template parameters must be ignored with the `lifecycle` configuration block `ignoreChanges` argument.
	Parameters pulumi.StringMapInput
	// Key-value map of tags to associate with this StackSet and the Stacks created from it. AWS CloudFormation also propagates these tags to supported resources that are created in the Stacks. A maximum number of 50 tags can be specified.
	Tags pulumi.StringMapInput
	// String containing the CloudFormation template body. Maximum size: 51,200 bytes. Conflicts with `templateUrl`.
	TemplateBody pulumi.StringPtrInput
	// String containing the location of a file containing the CloudFormation template body. The URL must point to a template that is located in an Amazon S3 bucket. Maximum location file size: 460,800 bytes. Conflicts with `templateBody`.
	TemplateUrl pulumi.StringPtrInput
}

The set of arguments for constructing a StackSet resource.

func (StackSetArgs) ElementType

func (StackSetArgs) ElementType() reflect.Type

type StackSetArray added in v3.25.0

type StackSetArray []StackSetInput

func (StackSetArray) ElementType added in v3.25.0

func (StackSetArray) ElementType() reflect.Type

func (StackSetArray) ToStackSetArrayOutput added in v3.25.0

func (i StackSetArray) ToStackSetArrayOutput() StackSetArrayOutput

func (StackSetArray) ToStackSetArrayOutputWithContext added in v3.25.0

func (i StackSetArray) ToStackSetArrayOutputWithContext(ctx context.Context) StackSetArrayOutput

type StackSetArrayInput added in v3.25.0

type StackSetArrayInput interface {
	pulumi.Input

	ToStackSetArrayOutput() StackSetArrayOutput
	ToStackSetArrayOutputWithContext(context.Context) StackSetArrayOutput
}

StackSetArrayInput is an input type that accepts StackSetArray and StackSetArrayOutput values. You can construct a concrete instance of `StackSetArrayInput` via:

StackSetArray{ StackSetArgs{...} }

type StackSetArrayOutput added in v3.25.0

type StackSetArrayOutput struct{ *pulumi.OutputState }

func (StackSetArrayOutput) ElementType added in v3.25.0

func (StackSetArrayOutput) ElementType() reflect.Type

func (StackSetArrayOutput) Index added in v3.25.0

func (StackSetArrayOutput) ToStackSetArrayOutput added in v3.25.0

func (o StackSetArrayOutput) ToStackSetArrayOutput() StackSetArrayOutput

func (StackSetArrayOutput) ToStackSetArrayOutputWithContext added in v3.25.0

func (o StackSetArrayOutput) ToStackSetArrayOutputWithContext(ctx context.Context) StackSetArrayOutput

type StackSetInput added in v3.13.0

type StackSetInput interface {
	pulumi.Input

	ToStackSetOutput() StackSetOutput
	ToStackSetOutputWithContext(ctx context.Context) StackSetOutput
}

type StackSetInstance

type StackSetInstance struct {
	pulumi.CustomResourceState

	// Target AWS Account ID to create a Stack based on the StackSet. Defaults to current account.
	AccountId pulumi.StringOutput `pulumi:"accountId"`
	// Key-value map of input parameters to override from the StackSet for this Instance.
	ParameterOverrides pulumi.StringMapOutput `pulumi:"parameterOverrides"`
	// Target AWS Region to create a Stack based on the StackSet. Defaults to current region.
	Region pulumi.StringOutput `pulumi:"region"`
	// During resource destroy, remove Instance from StackSet while keeping the Stack and its associated resources. Must be enabled in the state _before_ destroy operation to take effect. You cannot reassociate a retained Stack or add an existing, saved Stack to a new StackSet. Defaults to `false`.
	RetainStack pulumi.BoolPtrOutput `pulumi:"retainStack"`
	// Stack identifier
	StackId pulumi.StringOutput `pulumi:"stackId"`
	// Name of the StackSet.
	StackSetName pulumi.StringOutput `pulumi:"stackSetName"`
}

Manages a CloudFormation StackSet Instance. Instances are managed in the account and region of the StackSet after the target account permissions have been configured. Additional information about StackSets can be found in the [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html).

> **NOTE:** All target accounts must have an IAM Role created that matches the name of the execution role configured in the StackSet (the `executionRoleName` argument in the `cloudformation.StackSet` resource) in a trust relationship with the administrative account or administration IAM Role. The execution role must have appropriate permissions to manage resources defined in the template along with those required for StackSets to operate. See the [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html) for more details.

> **NOTE:** To retain the Stack during resource destroy, ensure `retainStack` has been set to `true` in the state first. This must be completed _before_ a deployment that would destroy the resource.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/cloudformation"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := cloudformation.NewStackSetInstance(ctx, "example", &cloudformation.StackSetInstanceArgs{
			AccountId:    pulumi.String("123456789012"),
			Region:       pulumi.String("us-east-1"),
			StackSetName: pulumi.Any(aws_cloudformation_stack_set.Example.Name),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

CloudFormation StackSet Instances can be imported using the StackSet name, target AWS account ID, and target AWS region separated by commas (`,`) e.g.

```sh

$ pulumi import aws:cloudformation/stackSetInstance:StackSetInstance example example,123456789012,us-east-1

```

func GetStackSetInstance

func GetStackSetInstance(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *StackSetInstanceState, opts ...pulumi.ResourceOption) (*StackSetInstance, error)

GetStackSetInstance gets an existing StackSetInstance resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewStackSetInstance

func NewStackSetInstance(ctx *pulumi.Context,
	name string, args *StackSetInstanceArgs, opts ...pulumi.ResourceOption) (*StackSetInstance, error)

NewStackSetInstance registers a new resource with the given unique name, arguments, and options.

func (*StackSetInstance) ElementType added in v3.13.0

func (*StackSetInstance) ElementType() reflect.Type

func (*StackSetInstance) ToStackSetInstanceOutput added in v3.13.0

func (i *StackSetInstance) ToStackSetInstanceOutput() StackSetInstanceOutput

func (*StackSetInstance) ToStackSetInstanceOutputWithContext added in v3.13.0

func (i *StackSetInstance) ToStackSetInstanceOutputWithContext(ctx context.Context) StackSetInstanceOutput

func (*StackSetInstance) ToStackSetInstancePtrOutput added in v3.25.0

func (i *StackSetInstance) ToStackSetInstancePtrOutput() StackSetInstancePtrOutput

func (*StackSetInstance) ToStackSetInstancePtrOutputWithContext added in v3.25.0

func (i *StackSetInstance) ToStackSetInstancePtrOutputWithContext(ctx context.Context) StackSetInstancePtrOutput

type StackSetInstanceArgs

type StackSetInstanceArgs struct {
	// Target AWS Account ID to create a Stack based on the StackSet. Defaults to current account.
	AccountId pulumi.StringPtrInput
	// Key-value map of input parameters to override from the StackSet for this Instance.
	ParameterOverrides pulumi.StringMapInput
	// Target AWS Region to create a Stack based on the StackSet. Defaults to current region.
	Region pulumi.StringPtrInput
	// During resource destroy, remove Instance from StackSet while keeping the Stack and its associated resources. Must be enabled in the state _before_ destroy operation to take effect. You cannot reassociate a retained Stack or add an existing, saved Stack to a new StackSet. Defaults to `false`.
	RetainStack pulumi.BoolPtrInput
	// Name of the StackSet.
	StackSetName pulumi.StringInput
}

The set of arguments for constructing a StackSetInstance resource.

func (StackSetInstanceArgs) ElementType

func (StackSetInstanceArgs) ElementType() reflect.Type

type StackSetInstanceArray added in v3.25.0

type StackSetInstanceArray []StackSetInstanceInput

func (StackSetInstanceArray) ElementType added in v3.25.0

func (StackSetInstanceArray) ElementType() reflect.Type

func (StackSetInstanceArray) ToStackSetInstanceArrayOutput added in v3.25.0

func (i StackSetInstanceArray) ToStackSetInstanceArrayOutput() StackSetInstanceArrayOutput

func (StackSetInstanceArray) ToStackSetInstanceArrayOutputWithContext added in v3.25.0

func (i StackSetInstanceArray) ToStackSetInstanceArrayOutputWithContext(ctx context.Context) StackSetInstanceArrayOutput

type StackSetInstanceArrayInput added in v3.25.0

type StackSetInstanceArrayInput interface {
	pulumi.Input

	ToStackSetInstanceArrayOutput() StackSetInstanceArrayOutput
	ToStackSetInstanceArrayOutputWithContext(context.Context) StackSetInstanceArrayOutput
}

StackSetInstanceArrayInput is an input type that accepts StackSetInstanceArray and StackSetInstanceArrayOutput values. You can construct a concrete instance of `StackSetInstanceArrayInput` via:

StackSetInstanceArray{ StackSetInstanceArgs{...} }

type StackSetInstanceArrayOutput added in v3.25.0

type StackSetInstanceArrayOutput struct{ *pulumi.OutputState }

func (StackSetInstanceArrayOutput) ElementType added in v3.25.0

func (StackSetInstanceArrayOutput) Index added in v3.25.0

func (StackSetInstanceArrayOutput) ToStackSetInstanceArrayOutput added in v3.25.0

func (o StackSetInstanceArrayOutput) ToStackSetInstanceArrayOutput() StackSetInstanceArrayOutput

func (StackSetInstanceArrayOutput) ToStackSetInstanceArrayOutputWithContext added in v3.25.0

func (o StackSetInstanceArrayOutput) ToStackSetInstanceArrayOutputWithContext(ctx context.Context) StackSetInstanceArrayOutput

type StackSetInstanceInput added in v3.13.0

type StackSetInstanceInput interface {
	pulumi.Input

	ToStackSetInstanceOutput() StackSetInstanceOutput
	ToStackSetInstanceOutputWithContext(ctx context.Context) StackSetInstanceOutput
}

type StackSetInstanceMap added in v3.25.0

type StackSetInstanceMap map[string]StackSetInstanceInput

func (StackSetInstanceMap) ElementType added in v3.25.0

func (StackSetInstanceMap) ElementType() reflect.Type

func (StackSetInstanceMap) ToStackSetInstanceMapOutput added in v3.25.0

func (i StackSetInstanceMap) ToStackSetInstanceMapOutput() StackSetInstanceMapOutput

func (StackSetInstanceMap) ToStackSetInstanceMapOutputWithContext added in v3.25.0

func (i StackSetInstanceMap) ToStackSetInstanceMapOutputWithContext(ctx context.Context) StackSetInstanceMapOutput

type StackSetInstanceMapInput added in v3.25.0

type StackSetInstanceMapInput interface {
	pulumi.Input

	ToStackSetInstanceMapOutput() StackSetInstanceMapOutput
	ToStackSetInstanceMapOutputWithContext(context.Context) StackSetInstanceMapOutput
}

StackSetInstanceMapInput is an input type that accepts StackSetInstanceMap and StackSetInstanceMapOutput values. You can construct a concrete instance of `StackSetInstanceMapInput` via:

StackSetInstanceMap{ "key": StackSetInstanceArgs{...} }

type StackSetInstanceMapOutput added in v3.25.0

type StackSetInstanceMapOutput struct{ *pulumi.OutputState }

func (StackSetInstanceMapOutput) ElementType added in v3.25.0

func (StackSetInstanceMapOutput) ElementType() reflect.Type

func (StackSetInstanceMapOutput) MapIndex added in v3.25.0

func (StackSetInstanceMapOutput) ToStackSetInstanceMapOutput added in v3.25.0

func (o StackSetInstanceMapOutput) ToStackSetInstanceMapOutput() StackSetInstanceMapOutput

func (StackSetInstanceMapOutput) ToStackSetInstanceMapOutputWithContext added in v3.25.0

func (o StackSetInstanceMapOutput) ToStackSetInstanceMapOutputWithContext(ctx context.Context) StackSetInstanceMapOutput

type StackSetInstanceOutput added in v3.13.0

type StackSetInstanceOutput struct {
	*pulumi.OutputState
}

func (StackSetInstanceOutput) ElementType added in v3.13.0

func (StackSetInstanceOutput) ElementType() reflect.Type

func (StackSetInstanceOutput) ToStackSetInstanceOutput added in v3.13.0

func (o StackSetInstanceOutput) ToStackSetInstanceOutput() StackSetInstanceOutput

func (StackSetInstanceOutput) ToStackSetInstanceOutputWithContext added in v3.13.0

func (o StackSetInstanceOutput) ToStackSetInstanceOutputWithContext(ctx context.Context) StackSetInstanceOutput

func (StackSetInstanceOutput) ToStackSetInstancePtrOutput added in v3.25.0

func (o StackSetInstanceOutput) ToStackSetInstancePtrOutput() StackSetInstancePtrOutput

func (StackSetInstanceOutput) ToStackSetInstancePtrOutputWithContext added in v3.25.0

func (o StackSetInstanceOutput) ToStackSetInstancePtrOutputWithContext(ctx context.Context) StackSetInstancePtrOutput

type StackSetInstancePtrInput added in v3.25.0

type StackSetInstancePtrInput interface {
	pulumi.Input

	ToStackSetInstancePtrOutput() StackSetInstancePtrOutput
	ToStackSetInstancePtrOutputWithContext(ctx context.Context) StackSetInstancePtrOutput
}

type StackSetInstancePtrOutput added in v3.25.0

type StackSetInstancePtrOutput struct {
	*pulumi.OutputState
}

func (StackSetInstancePtrOutput) ElementType added in v3.25.0

func (StackSetInstancePtrOutput) ElementType() reflect.Type

func (StackSetInstancePtrOutput) ToStackSetInstancePtrOutput added in v3.25.0

func (o StackSetInstancePtrOutput) ToStackSetInstancePtrOutput() StackSetInstancePtrOutput

func (StackSetInstancePtrOutput) ToStackSetInstancePtrOutputWithContext added in v3.25.0

func (o StackSetInstancePtrOutput) ToStackSetInstancePtrOutputWithContext(ctx context.Context) StackSetInstancePtrOutput

type StackSetInstanceState

type StackSetInstanceState struct {
	// Target AWS Account ID to create a Stack based on the StackSet. Defaults to current account.
	AccountId pulumi.StringPtrInput
	// Key-value map of input parameters to override from the StackSet for this Instance.
	ParameterOverrides pulumi.StringMapInput
	// Target AWS Region to create a Stack based on the StackSet. Defaults to current region.
	Region pulumi.StringPtrInput
	// During resource destroy, remove Instance from StackSet while keeping the Stack and its associated resources. Must be enabled in the state _before_ destroy operation to take effect. You cannot reassociate a retained Stack or add an existing, saved Stack to a new StackSet. Defaults to `false`.
	RetainStack pulumi.BoolPtrInput
	// Stack identifier
	StackId pulumi.StringPtrInput
	// Name of the StackSet.
	StackSetName pulumi.StringPtrInput
}

func (StackSetInstanceState) ElementType

func (StackSetInstanceState) ElementType() reflect.Type

type StackSetMap added in v3.25.0

type StackSetMap map[string]StackSetInput

func (StackSetMap) ElementType added in v3.25.0

func (StackSetMap) ElementType() reflect.Type

func (StackSetMap) ToStackSetMapOutput added in v3.25.0

func (i StackSetMap) ToStackSetMapOutput() StackSetMapOutput

func (StackSetMap) ToStackSetMapOutputWithContext added in v3.25.0

func (i StackSetMap) ToStackSetMapOutputWithContext(ctx context.Context) StackSetMapOutput

type StackSetMapInput added in v3.25.0

type StackSetMapInput interface {
	pulumi.Input

	ToStackSetMapOutput() StackSetMapOutput
	ToStackSetMapOutputWithContext(context.Context) StackSetMapOutput
}

StackSetMapInput is an input type that accepts StackSetMap and StackSetMapOutput values. You can construct a concrete instance of `StackSetMapInput` via:

StackSetMap{ "key": StackSetArgs{...} }

type StackSetMapOutput added in v3.25.0

type StackSetMapOutput struct{ *pulumi.OutputState }

func (StackSetMapOutput) ElementType added in v3.25.0

func (StackSetMapOutput) ElementType() reflect.Type

func (StackSetMapOutput) MapIndex added in v3.25.0

func (StackSetMapOutput) ToStackSetMapOutput added in v3.25.0

func (o StackSetMapOutput) ToStackSetMapOutput() StackSetMapOutput

func (StackSetMapOutput) ToStackSetMapOutputWithContext added in v3.25.0

func (o StackSetMapOutput) ToStackSetMapOutputWithContext(ctx context.Context) StackSetMapOutput

type StackSetOutput added in v3.13.0

type StackSetOutput struct {
	*pulumi.OutputState
}

func (StackSetOutput) ElementType added in v3.13.0

func (StackSetOutput) ElementType() reflect.Type

func (StackSetOutput) ToStackSetOutput added in v3.13.0

func (o StackSetOutput) ToStackSetOutput() StackSetOutput

func (StackSetOutput) ToStackSetOutputWithContext added in v3.13.0

func (o StackSetOutput) ToStackSetOutputWithContext(ctx context.Context) StackSetOutput

func (StackSetOutput) ToStackSetPtrOutput added in v3.25.0

func (o StackSetOutput) ToStackSetPtrOutput() StackSetPtrOutput

func (StackSetOutput) ToStackSetPtrOutputWithContext added in v3.25.0

func (o StackSetOutput) ToStackSetPtrOutputWithContext(ctx context.Context) StackSetPtrOutput

type StackSetPtrInput added in v3.25.0

type StackSetPtrInput interface {
	pulumi.Input

	ToStackSetPtrOutput() StackSetPtrOutput
	ToStackSetPtrOutputWithContext(ctx context.Context) StackSetPtrOutput
}

type StackSetPtrOutput added in v3.25.0

type StackSetPtrOutput struct {
	*pulumi.OutputState
}

func (StackSetPtrOutput) ElementType added in v3.25.0

func (StackSetPtrOutput) ElementType() reflect.Type

func (StackSetPtrOutput) ToStackSetPtrOutput added in v3.25.0

func (o StackSetPtrOutput) ToStackSetPtrOutput() StackSetPtrOutput

func (StackSetPtrOutput) ToStackSetPtrOutputWithContext added in v3.25.0

func (o StackSetPtrOutput) ToStackSetPtrOutputWithContext(ctx context.Context) StackSetPtrOutput

type StackSetState

type StackSetState struct {
	// Amazon Resource Number (ARN) of the IAM Role in the administrator account.
	AdministrationRoleArn pulumi.StringPtrInput
	// Amazon Resource Name (ARN) of the StackSet.
	Arn pulumi.StringPtrInput
	// A list of capabilities. Valid values: `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM`, `CAPABILITY_AUTO_EXPAND`.
	Capabilities pulumi.StringArrayInput
	// Description of the StackSet.
	Description pulumi.StringPtrInput
	// Name of the IAM Role in all target accounts for StackSet operations. Defaults to `AWSCloudFormationStackSetExecutionRole`.
	ExecutionRoleName pulumi.StringPtrInput
	// Name of the StackSet. The name must be unique in the region where you create your StackSet. The name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters.
	Name pulumi.StringPtrInput
	// Key-value map of input parameters for the StackSet template. All template parameters, including those with a `Default`, must be configured or ignored with `lifecycle` configuration block `ignoreChanges` argument. All `NoEcho` template parameters must be ignored with the `lifecycle` configuration block `ignoreChanges` argument.
	Parameters pulumi.StringMapInput
	// Unique identifier of the StackSet.
	StackSetId pulumi.StringPtrInput
	// Key-value map of tags to associate with this StackSet and the Stacks created from it. AWS CloudFormation also propagates these tags to supported resources that are created in the Stacks. A maximum number of 50 tags can be specified.
	Tags pulumi.StringMapInput
	// String containing the CloudFormation template body. Maximum size: 51,200 bytes. Conflicts with `templateUrl`.
	TemplateBody pulumi.StringPtrInput
	// String containing the location of a file containing the CloudFormation template body. The URL must point to a template that is located in an Amazon S3 bucket. Maximum location file size: 460,800 bytes. Conflicts with `templateBody`.
	TemplateUrl pulumi.StringPtrInput
}

func (StackSetState) ElementType

func (StackSetState) ElementType() reflect.Type

type StackState

type StackState struct {
	// A list of capabilities.
	// Valid values: `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM`, or `CAPABILITY_AUTO_EXPAND`
	Capabilities pulumi.StringArrayInput
	// Set to true to disable rollback of the stack if stack creation failed.
	// Conflicts with `onFailure`.
	DisableRollback pulumi.BoolPtrInput
	// 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.
	IamRoleArn pulumi.StringPtrInput
	// Stack name.
	Name pulumi.StringPtrInput
	// A list of SNS topic ARNs to publish stack related events.
	NotificationArns pulumi.StringArrayInput
	// Action to be taken if stack creation fails. This must be
	// one of: `DO_NOTHING`, `ROLLBACK`, or `DELETE`. Conflicts with `disableRollback`.
	OnFailure pulumi.StringPtrInput
	// A map of outputs from the stack.
	Outputs pulumi.StringMapInput
	// A map of Parameter structures that specify input parameters for the stack.
	Parameters pulumi.StringMapInput
	// Structure containing the stack policy body.
	// Conflicts w/ `policyUrl`.
	PolicyBody pulumi.StringPtrInput
	// Location of a file containing the stack policy.
	// Conflicts w/ `policyBody`.
	PolicyUrl pulumi.StringPtrInput
	// A list of tags to associate with this stack.
	Tags pulumi.StringMapInput
	// Structure containing the template body (max size: 51,200 bytes).
	TemplateBody pulumi.StringPtrInput
	// Location of a file containing the template body (max size: 460,800 bytes).
	TemplateUrl pulumi.StringPtrInput
	// The amount of time that can pass before the stack status becomes `CREATE_FAILED`.
	TimeoutInMinutes pulumi.IntPtrInput
}

func (StackState) ElementType

func (StackState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL