CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/golang-github-com-pulumi-pulumi-aws-sdk-v7

A Pulumi provider SDK for creating and managing Amazon Web Services (AWS) cloud resources in Go, providing strongly-typed resource classes and data sources for all major AWS services.

Overview
Eval results
Files

cloudformation-ssm.mddocs/reference/services/

CloudFormation and SSM

Documentation for AWS CloudFormation (infrastructure stacks and stack sets) and AWS Systems Manager (SSM) Parameter Store and Documents.

Package Information

  • Package Names: cloudformation, ssm
  • Import Paths:
    • github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudformation
    • github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ssm

Core Imports

import (
    "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudformation"
    "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ssm"
    "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

CloudFormation

CloudFormation Stack

Manages a CloudFormation Stack, allowing you to deploy AWS resources defined in a CloudFormation template. Outputs from the stack are accessible via the Outputs attribute.

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

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

type Stack struct {
    pulumi.CustomResourceState

    // Valid values: "CAPABILITY_IAM", "CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND"
    Capabilities     pulumi.StringArrayOutput `pulumi:"capabilities"`
    DisableRollback  pulumi.BoolPtrOutput     `pulumi:"disableRollback"`
    IamRoleArn       pulumi.StringPtrOutput   `pulumi:"iamRoleArn"`
    Name             pulumi.StringOutput      `pulumi:"name"`
    NotificationArns pulumi.StringArrayOutput `pulumi:"notificationArns"`
    // Valid values: "DO_NOTHING", "ROLLBACK", "DELETE". Conflicts with DisableRollback.
    OnFailure        pulumi.StringPtrOutput   `pulumi:"onFailure"`
    // Map of outputs from the stack template
    Outputs          pulumi.StringMapOutput   `pulumi:"outputs"`
    // Map of input parameters for the stack
    Parameters       pulumi.StringMapOutput   `pulumi:"parameters"`
    PolicyBody       pulumi.StringOutput      `pulumi:"policyBody"`
    PolicyUrl        pulumi.StringPtrOutput   `pulumi:"policyUrl"`
    Region           pulumi.StringOutput      `pulumi:"region"`
    Tags             pulumi.StringMapOutput   `pulumi:"tags"`
    TagsAll          pulumi.StringMapOutput   `pulumi:"tagsAll"`
    // Template body JSON/YAML string (max 51,200 bytes)
    TemplateBody     pulumi.StringOutput      `pulumi:"templateBody"`
    // S3 URL to template (max 460,800 bytes). Conflicts with TemplateBody.
    TemplateUrl      pulumi.StringPtrOutput   `pulumi:"templateUrl"`
    TimeoutInMinutes pulumi.IntPtrOutput      `pulumi:"timeoutInMinutes"`
}

type StackArgs struct {
    // Valid values: "CAPABILITY_IAM", "CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND"
    Capabilities     pulumi.StringArrayInput
    // Set true to disable rollback on creation failure. Conflicts with OnFailure.
    DisableRollback  pulumi.BoolPtrInput
    IamRoleArn       pulumi.StringPtrInput
    Name             pulumi.StringPtrInput
    NotificationArns pulumi.StringArrayInput
    // Valid values: "DO_NOTHING", "ROLLBACK", "DELETE"
    OnFailure        pulumi.StringPtrInput
    Parameters       pulumi.StringMapInput
    PolicyBody       pulumi.StringPtrInput
    PolicyUrl        pulumi.StringPtrInput
    Region           pulumi.StringPtrInput
    Tags             pulumi.StringMapInput
    TemplateBody     pulumi.StringPtrInput
    TemplateUrl      pulumi.StringPtrInput
    TimeoutInMinutes pulumi.IntPtrInput
}

CloudFormation StackSet

Manages a CloudFormation StackSet for deploying stacks across multiple AWS accounts and regions.

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

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

type StackSet struct {
    pulumi.CustomResourceState

    // Required for SELF_MANAGED permission model
    AdministrationRoleArn pulumi.StringPtrOutput                  `pulumi:"administrationRoleArn"`
    Arn                   pulumi.StringOutput                     `pulumi:"arn"`
    // SERVICE_MANAGED only
    AutoDeployment        StackSetAutoDeploymentPtrOutput         `pulumi:"autoDeployment"`
    // Valid values: "SELF" (default), "DELEGATED_ADMIN"
    CallAs                pulumi.StringPtrOutput                  `pulumi:"callAs"`
    // Valid values: "CAPABILITY_IAM", "CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND"
    Capabilities          pulumi.StringArrayOutput                `pulumi:"capabilities"`
    Description           pulumi.StringPtrOutput                  `pulumi:"description"`
    // Default: "AWSCloudFormationStackSetExecutionRole" for SELF_MANAGED
    ExecutionRoleName     pulumi.StringOutput                     `pulumi:"executionRoleName"`
    ManagedExecution      StackSetManagedExecutionPtrOutput       `pulumi:"managedExecution"`
    Name                  pulumi.StringOutput                     `pulumi:"name"`
    OperationPreferences  StackSetOperationPreferencesPtrOutput   `pulumi:"operationPreferences"`
    Parameters            pulumi.StringMapOutput                  `pulumi:"parameters"`
    // Valid values: "SELF_MANAGED" (default), "SERVICE_MANAGED"
    PermissionModel       pulumi.StringPtrOutput                  `pulumi:"permissionModel"`
    Region                pulumi.StringOutput                     `pulumi:"region"`
    StackSetId            pulumi.StringOutput                     `pulumi:"stackSetId"`
    Tags                  pulumi.StringMapOutput                  `pulumi:"tags"`
    TagsAll               pulumi.StringMapOutput                  `pulumi:"tagsAll"`
    TemplateBody          pulumi.StringOutput                     `pulumi:"templateBody"`
    TemplateUrl           pulumi.StringPtrOutput                  `pulumi:"templateUrl"`
}

CloudFormation Data Source: Stack Lookup

Retrieves outputs and metadata from an existing CloudFormation stack.

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

type LookupStackArgs struct {
    // Name of the stack
    Name   string  `pulumi:"name"`
    Region *string `pulumi:"region"`
    Tags   map[string]string `pulumi:"tags"`
}

type LookupStackResult struct {
    Capabilities     []string          `pulumi:"capabilities"`
    Description      string            `pulumi:"description"`
    DisableRollback  bool              `pulumi:"disableRollback"`
    IamRoleArn       string            `pulumi:"iamRoleArn"`
    Id               string            `pulumi:"id"`
    Name             string            `pulumi:"name"`
    NotificationArns []string          `pulumi:"notificationArns"`
    // Map of stack outputs
    Outputs          map[string]string `pulumi:"outputs"`
    Parameters       map[string]string `pulumi:"parameters"`
    Region           string            `pulumi:"region"`
    Tags             map[string]string `pulumi:"tags"`
    TemplateBody     string            `pulumi:"templateBody"`
    TimeoutInMinutes int               `pulumi:"timeoutInMinutes"`
}

CloudFormation Available Resources

// Resources
func NewStack(ctx *pulumi.Context, name string, args *StackArgs, opts ...pulumi.ResourceOption) (*Stack, error)
func NewStackSet(ctx *pulumi.Context, name string, args *StackSetArgs, opts ...pulumi.ResourceOption) (*StackSet, error)
func NewStackInstances(ctx *pulumi.Context, name string, args *StackInstancesArgs, opts ...pulumi.ResourceOption) (*StackInstances, error)
func NewStackSetInstance(ctx *pulumi.Context, name string, args *StackSetInstanceArgs, opts ...pulumi.ResourceOption) (*StackSetInstance, error)
func NewCloudFormationType(ctx *pulumi.Context, name string, args *CloudFormationTypeArgs, opts ...pulumi.ResourceOption) (*CloudFormationType, error)

// Data sources
func LookupStack(ctx *pulumi.Context, args *LookupStackArgs, opts ...pulumi.InvokeOption) (*LookupStackResult, error)
func GetStackSet(ctx *pulumi.Context, args *GetStackSetArgs, opts ...pulumi.InvokeOption) (*GetStackSetResult, error)
func GetStackInstances(ctx *pulumi.Context, args *GetStackInstancesArgs, opts ...pulumi.InvokeOption) (*GetStackInstancesResult, error)
func GetStackSetInstance(ctx *pulumi.Context, args *GetStackSetInstanceArgs, opts ...pulumi.InvokeOption) (*GetStackSetInstanceResult, error)
func GetExport(ctx *pulumi.Context, args *GetExportArgs, opts ...pulumi.InvokeOption) (*GetExportResult, error)
func GetCloudFormationType(ctx *pulumi.Context, args *GetCloudFormationTypeArgs, opts ...pulumi.InvokeOption) (*GetCloudFormationTypeResult, error)

SSM (Systems Manager)

SSM Parameter

Manages SSM Parameter Store values for configuration data and secrets. Supports String, StringList, and SecureString (KMS-encrypted) types.

func NewParameter(ctx *pulumi.Context,
    name string, args *ParameterArgs, opts ...pulumi.ResourceOption) (*Parameter, error)

func GetParameter(ctx *pulumi.Context,
    name string, id pulumi.IDInput, state *ParameterState, opts ...pulumi.ResourceOption) (*Parameter, error)

type Parameter struct {
    pulumi.CustomResourceState

    AllowedPattern pulumi.StringPtrOutput `pulumi:"allowedPattern"`
    Arn            pulumi.StringOutput    `pulumi:"arn"`
    // Valid values: "text", "aws:ssm:integration", "aws:ec2:image"
    DataType       pulumi.StringOutput    `pulumi:"dataType"`
    Description    pulumi.StringPtrOutput `pulumi:"description"`
    HasValueWo     pulumi.BoolOutput      `pulumi:"hasValueWo"`
    // Insecure plain-text value. Not valid with type "SecureString".
    InsecureValue  pulumi.StringOutput    `pulumi:"insecureValue"`
    // KMS key ID or ARN for SecureString encryption
    KeyId          pulumi.StringOutput    `pulumi:"keyId"`
    Name           pulumi.StringOutput    `pulumi:"name"`
    Overwrite      pulumi.BoolPtrOutput   `pulumi:"overwrite"`
    Region         pulumi.StringOutput    `pulumi:"region"`
    Tags           pulumi.StringMapOutput `pulumi:"tags"`
    TagsAll        pulumi.StringMapOutput `pulumi:"tagsAll"`
    // Valid values: "Standard", "Advanced", "Intelligent-Tiering"
    Tier           pulumi.StringOutput    `pulumi:"tier"`
    // Required. Valid values: "String", "StringList", "SecureString"
    Type           pulumi.StringOutput    `pulumi:"type"`
    // Always shown as sensitive in preview output
    Value          pulumi.StringOutput    `pulumi:"value"`
    // Write-only field; never stored in state
    ValueWo        pulumi.StringPtrOutput `pulumi:"valueWo"`
    ValueWoVersion pulumi.IntPtrOutput    `pulumi:"valueWoVersion"`
    Version        pulumi.IntOutput       `pulumi:"version"`
}

type ParameterArgs struct {
    AllowedPattern pulumi.StringPtrInput
    Arn            pulumi.StringPtrInput
    // Valid values: "text", "aws:ssm:integration", "aws:ec2:image"
    DataType       pulumi.StringPtrInput
    Description    pulumi.StringPtrInput
    // Insecure plain-text value. Not valid with type "SecureString".
    InsecureValue  pulumi.StringPtrInput
    KeyId          pulumi.StringPtrInput
    // Path parameters must start with "/" (e.g., "/myapp/db/password")
    Name           pulumi.StringPtrInput
    Overwrite      pulumi.BoolPtrInput
    Region         pulumi.StringPtrInput
    Tags           pulumi.StringMapInput
    // Valid values: "Standard", "Advanced", "Intelligent-Tiering"
    Tier           pulumi.StringPtrInput
    // Required. Valid values: "String", "StringList", "SecureString"
    Type           pulumi.StringInput
    Value          pulumi.StringPtrInput
    // Write-only. Use with ValueWoVersion to trigger updates.
    ValueWo        pulumi.StringPtrInput
    ValueWoVersion pulumi.IntPtrInput
}

SSM Document

Manages SSM Documents which define runbooks or configuration for running commands, automations, and other operations on managed instances.

func NewDocument(ctx *pulumi.Context,
    name string, args *DocumentArgs, opts ...pulumi.ResourceOption) (*Document, error)

func GetDocument(ctx *pulumi.Context,
    name string, id pulumi.IDInput, state *DocumentState, opts ...pulumi.ResourceOption) (*Document, error)

type Document struct {
    pulumi.CustomResourceState

    Arn              pulumi.StringOutput                   `pulumi:"arn"`
    AttachmentsSources DocumentAttachmentsSourceArrayOutput `pulumi:"attachmentsSources"`
    // JSON or YAML content (max 64KB)
    Content          pulumi.StringOutput                   `pulumi:"content"`
    CreatedDate      pulumi.StringOutput                   `pulumi:"createdDate"`
    DefaultVersion   pulumi.StringOutput                   `pulumi:"defaultVersion"`
    Description      pulumi.StringOutput                   `pulumi:"description"`
    // Valid values: "JSON" (default), "TEXT", "YAML"
    DocumentFormat   pulumi.StringPtrOutput                `pulumi:"documentFormat"`
    // See AWS API Reference for valid document types
    DocumentType     pulumi.StringOutput                   `pulumi:"documentType"`
    DocumentVersion  pulumi.StringOutput                   `pulumi:"documentVersion"`
    Hash             pulumi.StringOutput                   `pulumi:"hash"`
    HashType         pulumi.StringOutput                   `pulumi:"hashType"`
    LatestVersion    pulumi.StringOutput                   `pulumi:"latestVersion"`
    Name             pulumi.StringOutput                   `pulumi:"name"`
    Owner            pulumi.StringOutput                   `pulumi:"owner"`
    Parameters       DocumentParameterArrayOutput          `pulumi:"parameters"`
    Permissions      pulumi.StringMapOutput                `pulumi:"permissions"`
    // Valid values: "Windows", "Linux", "MacOS"
    PlatformTypes    pulumi.StringArrayOutput              `pulumi:"platformTypes"`
    Region           pulumi.StringOutput                   `pulumi:"region"`
    SchemaVersion    pulumi.StringOutput                   `pulumi:"schemaVersion"`
    // Valid values: "Creating", "Active", "Updating", "Deleting", "Failed"
    Status           pulumi.StringOutput                   `pulumi:"status"`
    Tags             pulumi.StringMapOutput                `pulumi:"tags"`
    TagsAll          pulumi.StringMapOutput                `pulumi:"tagsAll"`
    TargetType       pulumi.StringPtrOutput                `pulumi:"targetType"`
    VersionName      pulumi.StringPtrOutput                `pulumi:"versionName"`
}

type DocumentArgs struct {
    AttachmentsSources DocumentAttachmentsSourceArrayInput
    Content            pulumi.StringInput
    // Valid values: "JSON" (default), "TEXT", "YAML"
    DocumentFormat     pulumi.StringPtrInput
    // e.g., "Command", "Automation", "Package", "Session", "Policy"
    DocumentType       pulumi.StringInput
    Name               pulumi.StringPtrInput
    Permissions        pulumi.StringMapInput
    Region             pulumi.StringPtrInput
    Tags               pulumi.StringMapInput
    TargetType         pulumi.StringPtrInput
    VersionName        pulumi.StringPtrInput
}

SSM Data Source: Parameter Lookup

Retrieves the value of an SSM parameter by name. Use name:version format to retrieve a specific version.

func LookupParameter(ctx *pulumi.Context, args *LookupParameterArgs, opts ...pulumi.InvokeOption) (*LookupParameterResult, error)

type LookupParameterArgs struct {
    // Parameter name. Use "name:version" (e.g., "foo:3") to retrieve a specific version.
    Name           string  `pulumi:"name"`
    Region         *string `pulumi:"region"`
    // Whether to decrypt SecureString values. Default: true.
    WithDecryption *bool   `pulumi:"withDecryption"`
}

type LookupParameterResult struct {
    Arn            string `pulumi:"arn"`
    Id             string `pulumi:"id"`
    Name           string `pulumi:"name"`
    Type           string `pulumi:"type"`
    Value          string `pulumi:"value"`
    Version        int    `pulumi:"version"`
    WithDecryption bool   `pulumi:"withDecryption"`
}

SSM Data Source: Parameters by Path

Retrieves all SSM parameters under a given path hierarchy.

func GetParametersByPath(ctx *pulumi.Context, args *GetParametersByPathArgs, opts ...pulumi.InvokeOption) (*GetParametersByPathResult, error)

type GetParametersByPathArgs struct {
    // The hierarchy prefix path (e.g., "/myapp/production/").
    // Note: specifying a full parameter name will not retrieve its value unless
    // other parameters use it as a path prefix.
    Path           string  `pulumi:"path"`
    // Whether to retrieve parameters recursively. Default: false.
    Recursive      *bool   `pulumi:"recursive"`
    Region         *string `pulumi:"region"`
    // Whether to decrypt SecureString values. Default: true.
    WithDecryption *bool   `pulumi:"withDecryption"`
}

type GetParametersByPathResult struct {
    Arns           []string          `pulumi:"arns"`
    Id             string            `pulumi:"id"`
    Names          []string          `pulumi:"names"`
    Path           string            `pulumi:"path"`
    Recursive      bool              `pulumi:"recursive"`
    Region         string            `pulumi:"region"`
    // Map of parameter name to value
    Values         []string          `pulumi:"values"`
    WithDecryption bool              `pulumi:"withDecryption"`
    Types          []string          `pulumi:"types"`
}

SSM Available Resources

// Resources
func NewParameter(ctx *pulumi.Context, name string, args *ParameterArgs, opts ...pulumi.ResourceOption) (*Parameter, error)
func NewDocument(ctx *pulumi.Context, name string, args *DocumentArgs, opts ...pulumi.ResourceOption) (*Document, error)
func NewActivation(ctx *pulumi.Context, name string, args *ActivationArgs, opts ...pulumi.ResourceOption) (*Activation, error)
func NewAssociation(ctx *pulumi.Context, name string, args *AssociationArgs, opts ...pulumi.ResourceOption) (*Association, error)
func NewDefaultPatchBaseline(ctx *pulumi.Context, name string, args *DefaultPatchBaselineArgs, opts ...pulumi.ResourceOption) (*DefaultPatchBaseline, error)
func NewMaintenanceWindow(ctx *pulumi.Context, name string, args *MaintenanceWindowArgs, opts ...pulumi.ResourceOption) (*MaintenanceWindow, error)
func NewMaintenanceWindowTarget(ctx *pulumi.Context, name string, args *MaintenanceWindowTargetArgs, opts ...pulumi.ResourceOption) (*MaintenanceWindowTarget, error)
func NewMaintenanceWindowTask(ctx *pulumi.Context, name string, args *MaintenanceWindowTaskArgs, opts ...pulumi.ResourceOption) (*MaintenanceWindowTask, error)
func NewPatchBaseline(ctx *pulumi.Context, name string, args *PatchBaselineArgs, opts ...pulumi.ResourceOption) (*PatchBaseline, error)
func NewPatchGroup(ctx *pulumi.Context, name string, args *PatchGroupArgs, opts ...pulumi.ResourceOption) (*PatchGroup, error)
func NewResourceDataSync(ctx *pulumi.Context, name string, args *ResourceDataSyncArgs, opts ...pulumi.ResourceOption) (*ResourceDataSync, error)
func NewServiceSetting(ctx *pulumi.Context, name string, args *ServiceSettingArgs, opts ...pulumi.ResourceOption) (*ServiceSetting, error)
func NewContactsRotation(ctx *pulumi.Context, name string, args *ContactsRotationArgs, opts ...pulumi.ResourceOption) (*ContactsRotation, error)
func NewQuicksetupConfigurationManager(ctx *pulumi.Context, name string, args *QuicksetupConfigurationManagerArgs, opts ...pulumi.ResourceOption) (*QuicksetupConfigurationManager, error)

// Data sources
func LookupParameter(ctx *pulumi.Context, args *LookupParameterArgs, opts ...pulumi.InvokeOption) (*LookupParameterResult, error)
func GetParametersByPath(ctx *pulumi.Context, args *GetParametersByPathArgs, opts ...pulumi.InvokeOption) (*GetParametersByPathResult, error)
func GetActivation(ctx *pulumi.Context, args *GetActivationArgs, opts ...pulumi.InvokeOption) (*GetActivationResult, error)
func GetAssociation(ctx *pulumi.Context, args *GetAssociationArgs, opts ...pulumi.InvokeOption) (*GetAssociationResult, error)
func GetDocument(ctx *pulumi.Context, args *GetDocumentArgs, opts ...pulumi.InvokeOption) (*GetDocumentResult, error)
func GetInstances(ctx *pulumi.Context, args *GetInstancesArgs, opts ...pulumi.InvokeOption) (*GetInstancesResult, error)
func GetMaintenanceWindow(ctx *pulumi.Context, args *GetMaintenanceWindowArgs, opts ...pulumi.InvokeOption) (*GetMaintenanceWindowResult, error)
func GetMaintenanceWindows(ctx *pulumi.Context, args *GetMaintenanceWindowsArgs, opts ...pulumi.InvokeOption) (*GetMaintenanceWindowsResult, error)
func GetPatchBaseline(ctx *pulumi.Context, args *GetPatchBaselineArgs, opts ...pulumi.InvokeOption) (*GetPatchBaselineResult, error)
func GetPatchBaselines(ctx *pulumi.Context, args *GetPatchBaselinesArgs, opts ...pulumi.InvokeOption) (*GetPatchBaselinesResult, error)
func GetDefaultPatchBaseline(ctx *pulumi.Context, args *GetDefaultPatchBaselineArgs, opts ...pulumi.InvokeOption) (*GetDefaultPatchBaselineResult, error)
func GetServiceSetting(ctx *pulumi.Context, args *GetServiceSettingArgs, opts ...pulumi.InvokeOption) (*GetServiceSettingResult, error)
func GetContactsRotation(ctx *pulumi.Context, args *GetContactsRotationArgs, opts ...pulumi.InvokeOption) (*GetContactsRotationResult, error)

Usage Examples

CloudFormation Stack with Template Body

package main

import (
    "encoding/json"

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

func main() {
    pulumi.Run(func(ctx *pulumi.Context) error {
        template, _ := json.Marshal(map[string]interface{}{
            "Parameters": map[string]interface{}{
                "VPCCidr": map[string]interface{}{
                    "Type":    "String",
                    "Default": "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"},
                    },
                },
            },
        })

        stack, 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(string(template)),
            Tags: pulumi.StringMap{
                "Environment": pulumi.String("production"),
            },
        })
        if err != nil {
            return err
        }

        ctx.Export("vpcId", stack.Outputs.ApplyT(func(outputs map[string]string) string {
            return outputs["VpcId"]
        }).(pulumi.StringOutput))
        return nil
    })
}

Reading CloudFormation Stack Outputs

network, err := cloudformation.LookupStack(ctx, &cloudformation.LookupStackArgs{
    Name: "my-network-stack",
}, nil)
if err != nil {
    return err
}
// Access stack outputs
subnetId := network.Outputs["SubnetId"]

SSM Parameter Store - Create and Read

package main

import (
    "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ssm"
    "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
    pulumi.Run(func(ctx *pulumi.Context) error {
        // Create a SecureString parameter
        _, err := ssm.NewParameter(ctx, "dbPassword", &ssm.ParameterArgs{
            Name:        pulumi.String("/production/database/password"),
            Description: pulumi.String("Database master password"),
            Type:        pulumi.String(ssm.ParameterTypeSecureString),
            Value:       pulumi.String("supersecret"),
            Tags: pulumi.StringMap{
                "Environment": pulumi.String("production"),
            },
        })
        if err != nil {
            return err
        }

        // Read an existing parameter
        param, err := ssm.LookupParameter(ctx, &ssm.LookupParameterArgs{
            Name:           "/production/database/host",
            WithDecryption: pulumi.BoolRef(true),
        }, nil)
        if err != nil {
            return err
        }
        ctx.Export("dbHost", pulumi.String(param.Value))
        return nil
    })
}

SSM Parameters by Path

// Retrieve all parameters under a path
params, err := ssm.GetParametersByPath(ctx, &ssm.GetParametersByPathArgs{
    Path:      "/production/database/",
    Recursive: pulumi.BoolRef(true),
}, nil)
if err != nil {
    return err
}
// params.Names contains all parameter names
// params.Values contains all parameter values

SSM Document (Command Document)

_, err = ssm.NewDocument(ctx, "installPkg", &ssm.DocumentArgs{
    Name:         pulumi.String("install-package"),
    DocumentType: pulumi.String("Command"),
    Content: pulumi.String(`{
        "schemaVersion": "2.2",
        "description": "Install a package",
        "parameters": {},
        "mainSteps": [
            {
                "action": "aws:runShellScript",
                "name": "installPackage",
                "inputs": {
                    "runCommand": ["yum install -y httpd"]
                }
            }
        ]
    }`),
})

Install with Tessl CLI

npx tessl i tessl/golang-github-com-pulumi-pulumi-aws-sdk-v7@7.16.1

docs

index.md

tile.json