Documentation ¶
Index ¶
- Constants
- Variables
- func AddStackSetInstances(conf StackSetConfig, instanceConf StackSetInstancesConfig, wait bool) error
- func ConvertPropType(t any) any
- func CreateChangeSet(ctx *ChangeSetContext) (string, error)
- func CreateStackSet(conf StackSetConfig) (*string, error)
- func CreateStackSetInstances(conf StackSetInstancesConfig, wait bool) error
- func DeleteAllStackSetInstances(stackSetName string, wait bool, retainStacks bool, delegatedAdmin bool) error
- func DeleteChangeSet(stackName, changeSetName string) error
- func DeleteStack(stackName string, roleArn string) error
- func DeleteStackSet(stackSetName string, delegatedAdmin bool) error
- func DeleteStackSetInstances(stackSetName string, accounts []string, regions []string, wait bool, ...) error
- func ExecuteChangeSet(stackName, changeSetName string, disableRollback bool) error
- func GetChangeSet(stackName, changeSetName string) (*cloudformation.DescribeChangeSetOutput, error)
- func GetPrimaryIdentifierValues(primaryIdentifier []string, resource *yaml.Node, template *yaml.Node, ...) []string
- func GetStack(stackName string) (types.Stack, error)
- func GetStackEvents(stackName string) ([]types.StackEvent, error)
- func GetStackOutput(stack types.Stack) (string, []string)
- func GetStackOutputs(stackName string) ([]types.Output, error)
- func GetStackResource(stackName string, logicalId string) (*types.StackResourceDetail, error)
- func GetStackResources(stackName string) ([]types.StackResource, error)
- func GetStackSet(stackSetName string, delegatedAdmin bool) (*types.StackSet, error)
- func GetStackSetOperationsResult(stackSetName *string, operationId *string, delegatedAdmin bool) (*types.StackSetOperationResultSummary, error)
- func GetStackSetSummary(stackSet *types.StackSet, long bool) string
- func GetStackSummary(stack types.Stack, long bool) string
- func GetStackTemplate(stackName string, processed bool) (string, error)
- func GetTypeIdentifier(name string) ([]string, error)
- func GetTypePermissions(name string, handlerVerb string) ([]string, error)
- func GetTypeSchema(name string, cacheUsage ResourceCacheUsage) (string, error)
- func IsCCAPI(name string) (bool, error)
- func ListChangeSets(stackName string) ([]types.ChangeSetSummary, error)
- func ListLast10StackSetOperations(stackSetName string, delegatedAdmin bool) ([]types.StackSetOperationSummary, error)
- func ListResourceTypes(cacheUsage ResourceCacheUsage) ([]string, error)
- func ListStackSetInstances(stackSetName string, delegatedAdmin bool) ([]types.StackInstanceSummary, error)
- func ListStackSets(delegateAdmin bool) ([]types.StackSetSummary, error)
- func ListStacks() ([]types.StackSummary, error)
- func ResourceAlreadyExists(typeName string, resource *yaml.Node, stackExists bool, template *yaml.Node, ...) bool
- func SetTerminationProtection(stackName string, protectionEnabled bool) error
- func StackExists(stackName string) (bool, error)
- func StackHasSettled(stack types.Stack) bool
- func StatusIsSettled(status string) bool
- func UniqueStrings(input []string) []string
- func UpdateStackSet(conf StackSetConfig, instanceConf StackSetInstancesConfig, wait bool) error
- func WaitForStackToSettle(stackName string) (string, []string)
- func WaitUntilStackCreateComplete(stackName string) error
- func WaitUntilStackExists(stackName string) error
- func WaitUntilStackSetOperationCompleted(operationId string, stacksetName string) error
- type ChangeSetContext
- type Prop
- type ResourceCacheUsage
- type Schema
- type SchemaLike
- type StackSetConfig
- type StackSetInstancesConfig
Constants ¶
const WaitPeriodInSeconds = 2
Variables ¶
var AllTypes string
var Schemas map[string]string
Functions ¶
func AddStackSetInstances ¶ added in v1.3.0
func AddStackSetInstances(conf StackSetConfig, instanceConf StackSetInstancesConfig, wait bool) error
AddStackSetInstances adds instances to a stack set
func ConvertPropType ¶ added in v1.8.2
func CreateChangeSet ¶
func CreateChangeSet(ctx *ChangeSetContext) (string, error)
CreateChangeSet creates a changeset
func CreateStackSet ¶ added in v1.3.0
func CreateStackSet(conf StackSetConfig) (*string, error)
CreateStackSet creates stack set
func CreateStackSetInstances ¶ added in v1.3.0
func CreateStackSetInstances(conf StackSetInstancesConfig, wait bool) error
func DeleteAllStackSetInstances ¶ added in v1.3.0
func DeleteAllStackSetInstances(stackSetName string, wait bool, retainStacks bool, delegatedAdmin bool) error
DeleteAllStackSetInstances deletes all instances for a given stack set
func DeleteChangeSet ¶
DeleteChangeSet deletes the named changeset
func DeleteStack ¶
DeleteStack deletes a stack
func DeleteStackSet ¶ added in v1.3.0
DeleteStackSet deletes a stack set
func DeleteStackSetInstances ¶ added in v1.3.0
func DeleteStackSetInstances(stackSetName string, accounts []string, regions []string, wait bool, retainStacks bool, delegatedAdmin bool) error
DeleteStackSetInstances deletes instances for a given stack set in specified accounts and regions
func ExecuteChangeSet ¶
ExecuteChangeSet executes the named changeset
func GetChangeSet ¶
func GetChangeSet(stackName, changeSetName string) (*cloudformation.DescribeChangeSetOutput, error)
GetChangeSet returns the named changeset
func GetPrimaryIdentifierValues ¶ added in v1.4.0
func GetPrimaryIdentifierValues( primaryIdentifier []string, resource *yaml.Node, template *yaml.Node, dc *deployconfig.DeployConfig) []string
GetPrimaryIdentifierValues gets the values specified for primary identifiers in the template. The return value will only have values if they are set. TODO: Use ccapi to look at the deployed resource model for updates
func GetStackEvents ¶
func GetStackEvents(stackName string) ([]types.StackEvent, error)
GetStackEvents returns all events associated with the named stack
func GetStackOutput ¶ added in v1.4.0
GetStackOutput returns a pretty representation of a CloudFormation stack's status
func GetStackOutputs ¶ added in v1.16.0
GetStackOutputs returns an array of Output values from a single deployed stack
func GetStackResource ¶ added in v1.4.0
func GetStackResource(stackName string, logicalId string) (*types.StackResourceDetail, error)
GetStackResource gets a single deployed stack resource
func GetStackResources ¶
func GetStackResources(stackName string) ([]types.StackResource, error)
GetStackResources returns a list of the resources in the named stack
func GetStackSet ¶ added in v1.3.0
GetStackSet returns a cloudformation.StackSet
func GetStackSetOperationsResult ¶ added in v1.3.0
func GetStackSetOperationsResult(stackSetName *string, operationId *string, delegatedAdmin bool) (*types.StackSetOperationResultSummary, error)
GetStackSetOperationsResult returns an operation result for a given stack sets operation id
func GetStackSetSummary ¶ added in v1.4.0
func GetStackSummary ¶ added in v1.4.0
GetStackSummary returns a string representation of an existing stack. If long is false, only the stack status and stack outputs will be included. If long is true, resources and parameters will be also included in the output.
func GetStackTemplate ¶
GetStackTemplate returns the template used to launch the named stack
func GetTypeIdentifier ¶ added in v1.4.0
GetTypeIdentifier gets the primaryIdentifier of a resource type from the schema
func GetTypePermissions ¶ added in v1.4.0
GetTypePermissions gets the list of actions required to invoke a CloudFormation handler
func GetTypeSchema ¶ added in v1.4.0
func GetTypeSchema(name string, cacheUsage ResourceCacheUsage) (string, error)
GetTypeSchema gets the schema for a CloudFormation resource type
func ListChangeSets ¶ added in v1.8.0
func ListChangeSets(stackName string) ([]types.ChangeSetSummary, error)
ListChangeSets lists the active change sets associated with a stack
func ListLast10StackSetOperations ¶ added in v1.3.0
func ListLast10StackSetOperations(stackSetName string, delegatedAdmin bool) ([]types.StackSetOperationSummary, error)
ListLast10StackSetOperations returns a list of last 10 operations for a given stack sets
func ListResourceTypes ¶ added in v1.8.0
func ListResourceTypes(cacheUsage ResourceCacheUsage) ([]string, error)
ListResourceTypes lists all live registry resource types
func ListStackSetInstances ¶ added in v1.3.0
func ListStackSetInstances(stackSetName string, delegatedAdmin bool) ([]types.StackInstanceSummary, error)
ListStackSetInstances returns a list of all stack set instances for a given stack set
func ListStackSets ¶ added in v1.3.0
func ListStackSets(delegateAdmin bool) ([]types.StackSetSummary, error)
ListStackSets returns a list of all existing stack sets
func ListStacks ¶
func ListStacks() ([]types.StackSummary, error)
ListStacks returns a list of all existing stacks
func ResourceAlreadyExists ¶ added in v1.4.0
func ResourceAlreadyExists( typeName string, resource *yaml.Node, stackExists bool, template *yaml.Node, dc *deployconfig.DeployConfig) bool
ResourceAlreadyExists returns true if the resource has all of its primary identifiers hard coded into the template, and this is not a stack update, and a resource with those identifiers already exists.
func SetTerminationProtection ¶
SetTerminationProtection enables or disables termination protection for a stack
func StackExists ¶
StackExists checks whether the named stack currently exists
func StackHasSettled ¶ added in v1.4.0
StackHasSettled returns whether a given status represents a stack that has settled, i.e. is not updating
func StatusIsSettled ¶ added in v1.4.0
func UniqueStrings ¶ added in v1.3.0
uniqueStrings returns a unique subset of the string slice provided.
func UpdateStackSet ¶ added in v1.3.0
func UpdateStackSet(conf StackSetConfig, instanceConf StackSetInstancesConfig, wait bool) error
UpdateStackSet updates stack set and its instances
func WaitForStackToSettle ¶ added in v1.4.0
WaitForStackToSettle blocks excute until a stack has finished updating and then returns its status
func WaitUntilStackCreateComplete ¶
WaitUntilStackCreateComplete pauses execution until the stack is completed (or fails)
func WaitUntilStackExists ¶
WaitUntilStackExists pauses execution until the named stack exists
func WaitUntilStackSetOperationCompleted ¶ added in v1.3.0
Types ¶
type ChangeSetContext ¶ added in v1.17.0
type ChangeSetContext struct { Template cft.Template Params []types.Parameter Tags map[string]string StackName string // ChangeSetName is optional, if "" is set, the name will be the stack name plus a timestamp ChangeSetName string RoleArn string // Whether or not to include nested stacks in the change set IncludeNested bool }
type Prop ¶ added in v1.8.0
type Prop struct { Description string `json:"description"` Items *Prop `json:"items"` Type any `json:"type"` UniqueItems bool `json:"uniqueItems"` InsertionOrder bool `json:"insertionOrder"` Ref string `json:"$ref"` MaxLength int `json:"maxLength"` MinLength int `json:"minLength"` Pattern string `json:"pattern"` Examples []any `json:"examples"` AdditionalProperties bool `json:"additionalProperties"` Properties map[string]*Prop `json:"properties"` Enum []any `json:"enum"` Required []string `json:"required"` OneOf []*Prop `json:"oneOf"` AnyOf []*Prop `json:"anyOf"` AllOf []*Prop `json:"allOf"` PatternProperties any `json:"patternProperties"` Title string `json:"title"` }
Represents a registry schema property or definition
func (*Prop) GetProperties ¶ added in v1.8.0
func (*Prop) GetRequired ¶ added in v1.8.0
type ResourceCacheUsage ¶ added in v1.20.2
type ResourceCacheUsage int
const ( OnlyUseCache ResourceCacheUsage = 1 DoNotUseCache ResourceCacheUsage = 2 UseCacheNormally ResourceCacheUsage = 3 )
type Schema ¶ added in v1.8.0
type Schema struct { TypeName string `json:"typeName"` Description string `json:"description"` SourceUrl string `json:"sourceUrl"` Definitions map[string]*Prop `json:"definitions"` Handlers map[string]any `json:"handlers"` PrimaryIdentifier []string `json:"primaryIdentifier"` Properties map[string]*Prop `json:"properties"` AdditionalProperties bool `json:"additionalProperties"` Tagging map[string]any `json:"tagging"` Required []string `json:"required"` ReadOnlyProperties []string `json:"readOnlyProperties"` WriteOnlyProperties []string `json:"writeOnlyProperties"` CreateOnlyProperties []string `json:"createOnlyProperties"` }
Represents a registry schema for a resource type like AWS::S3::Bucket
func ParseSchema ¶ added in v1.8.0
ParseSchema unmarshals the text of a registry schema into a struct
func (*Schema) GetProperties ¶ added in v1.8.0
func (*Schema) GetRequired ¶ added in v1.8.0
type SchemaLike ¶ added in v1.8.0
type StackSetConfig ¶ added in v1.3.0
type StackSetConfig struct { // The Amazon Resource Number (ARN) of the IAM role to use to create this stack // set. Specify an IAM role only if you are using customized administrator roles to // control which users or groups can manage specific stack sets within the same // administrator account. For more information, see Prerequisites: Granting // Permissions for Stack Set Operations // (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html) // in the CloudFormation User Guide. AdministrationRoleARN *string // Describes whether StackSets automatically deploys to Organizations accounts that // are added to the target organization or organizational unit (OU). Specify only // if PermissionModel is SERVICE_MANAGED. AutoDeployment *types.AutoDeployment // [Service-managed permissions] Specifies whether you are acting as an account // administrator in the organization's management account or as a delegated // administrator in a member account. By default, SELF is specified. Use SELF for // stack sets with self-managed permissions. // // * To create a stack set with // service-managed permissions while signed in to the management account, specify // SELF. // // * To create a stack set with service-managed permissions while signed in // to a delegated administrator account, specify DELEGATED_ADMIN. Your Amazon Web // Services account must be registered as a delegated admin in the management // account. For more information, see Register a delegated administrator // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html) // in the CloudFormation User Guide. // // Stack sets with service-managed permissions // are created in the management account, including stack sets that are created by // delegated administrators. CallAs types.CallAs // In some cases, you must explicitly acknowledge that your stack set template // contains certain capabilities in order for CloudFormation to create the stack // set and related stack instances. // // * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some // stack templates might include resources that can affect permissions in your // Amazon Web Services account; for example, by creating new Identity and Access // Management (IAM) users. For those stack sets, you must explicitly acknowledge // this by specifying one of these capabilities. The following IAM resources // require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM // capability. // // * If you have IAM resources, you can specify either capability. // // * // If you have IAM resources with custom names, you must specify // CAPABILITY_NAMED_IAM. // // * If you don't specify either of these capabilities, // CloudFormation returns an InsufficientCapabilities error. // // If your stack // template contains these resources, we recommend that you review all permissions // associated with them and edit their permissions if necessary. // // * // AWS::IAM::AccessKey // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html) // // * // AWS::IAM::Group // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html) // // * // AWS::IAM::InstanceProfile // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html) // // * // AWS::IAM::Policy // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html) // // * // AWS::IAM::Role // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) // // * // AWS::IAM::User // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html) // // * // AWS::IAM::UserToGroupAddition // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html) // // For // more information, see Acknowledging IAM Resources in CloudFormation Templates // (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities). // // * // CAPABILITY_AUTO_EXPAND Some templates reference macros. If your stack set // template references one or more macros, you must create the stack set directly // from the processed template, without first reviewing the resulting changes in a // change set. To create the stack set directly, you must acknowledge this // capability. For more information, see Using CloudFormation Macros to Perform // Custom Processing on Templates // (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html). // Stack sets with service-managed permissions don't currently support the use of // macros in templates. (This includes the AWS::Include // (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) // and AWS::Serverless // (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html) // transforms, which are macros hosted by CloudFormation.) Even if you specify this // capability for a stack set with service-managed permissions, if you reference a // macro in your template the stack set operation will fail. Capabilities []types.Capability // A description of the stack set. You can use the description to identify the // stack set's purpose or other important information. Description *string // The name of the IAM execution role to use to create the stack set. If you do not // specify an execution role, CloudFormation uses the // AWSCloudFormationStackSetExecutionRole role for the stack set operation. Specify // an IAM role only if you are using customized execution roles to control which // stack resources users and groups can include in their stack sets. ExecutionRoleName *string // Describes whether StackSets performs non-conflicting operations concurrently and // queues conflicting operations. ManagedExecution *types.ManagedExecution // Describes how the IAM roles required for stack set operations are created. By // default, SELF-MANAGED is specified. // // * With self-managed permissions, you must // create the administrator and execution roles required to deploy to target // accounts. For more information, see Grant Self-Managed Stack Set Permissions // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html). // // * // With service-managed permissions, StackSets automatically creates the IAM roles // required to deploy to accounts managed by Organizations. For more information, // see Grant Service-Managed Stack Set Permissions // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html). PermissionModel types.PermissionModels // service fields, not to be used in configuration file StackSetName string `yaml:"-"` Template cft.Template `yaml:"-"` Parameters []types.Parameter `yaml:"-"` Tags []types.Tag `yaml:"-"` }
type StackSetInstancesConfig ¶ added in v1.3.0
type StackSetInstancesConfig struct { // The names of one or more Amazon Web Services Regions where you want to create // stack instances using the specified Amazon Web Services accounts. // // This member is required. Regions []string // [Service-managed permissions] The Organizations accounts for which to create // stack instances in the specified Amazon Web Services Regions. You can specify // Accounts or DeploymentTargets, but not both. Accounts []string // [Service-managed permissions] The Organizations accounts for which to create // stack instances in the specified Amazon Web Services Regions. You can specify // Accounts or DeploymentTargets, but not both. DeploymentTargets *types.DeploymentTargets // Preferences for how CloudFormation performs this stack set operation. OperationPreferences *types.StackSetOperationPreferences // service fields, not to be used in configuration file StackSetName string `yaml:"-"` CallAs types.CallAs `yaml:"-"` }
we treat list of provided accounts and regions as requirement to have instances in all the provided accounts whether updated or created(added).