Class AWS::CloudFormation::StackCollection
In: lib/aws/cloud_formation/stack_collection.rb
Parent: Object

Methods

[]   _each_item   create   new   with_status  

Included Modules

Core::Collection::WithNextToken StackOptions

Public Class methods

@api private

Public Instance methods

Creates a new stack.

@example Creating a stack with a template string.

  template = <<-JSON
   {
     "AWSTemplateFormatVersion" : "2010-09-09",
     "Description": "A simple template",
     "Resources": {
       "web": {
         "Type": "AWS::EC2::Instance",
         "Properties": {
           "ImageId": "ami-41814f28"
         }
       }
     }
  }
  JSON
  stack = cfm.stacks.create('stack-name', template)

@example Creating a stack from an S3 object.

  template = AWS::S3.new.buckets['templates'].objects['template-1']
  stack = cfm.stacks.create('stack-name', template)

@example Creating a stack with 3 parameters.

  template = <<-JSON
  {
    "AWSTemplateFormatVersion" : "2010-09-09",
    "Description": "A simple template",
    "Parameters" : {
      "KeyName" : {
        "Description" : "Name of a KeyPair to use with SSH.",
        "Type" : "String"
      },
      "SecurityGroup" : {
        "Description" : "The security group to launch in.",
        "Type" : "String"
      },
      "InstanceType" : {
        "Description" : "The size of instance to launch.",
        "Type" : "String"
      }
    },
    "Resources": {
      "web": {
        "Type": "AWS::EC2::Instance",
        "Properties": {
          "InstanceType": { "Ref" : "InstanceType" },
          "SecurityGroups" : [ {"Ref" : "SecurityGroup"} ],
          "KeyName": { "Ref" : "KeyName" },
          "ImageId": "ami-41814f28"
        }
      }
    }
  }
  JSON

  stack = cfm.stacks.create('name', template, :parameters => {
    'KeyName' => 'key-pair-name',
    'SecurityGroup' => 'security-group-name',
    'InstanceType' => 'm1.large',
  })

@param [String] stack_name

@param [String,URI,S3::S3Object,Object] template The stack template.

  This may be provided in a number of formats including:

    * a String, containing the template as a JSON document.
    * a URL String pointing to the document in S3.
    * a URI object pointing to the document in S3.
    * an {S3::S3Object} which contains the template.
    * an Object which responds to #to_json and returns the template.

@param [Hash] options

@option options [Array<String>] :capabilities The list of capabilities

  that you want to allow in the stack. If your stack contains IAM
  resources, you must specify the CAPABILITY_IAM value for this
  parameter; otherwise, this action returns an
  InsufficientCapabilities error. IAM resources are the following:

    * AWS::IAM::AccessKey
    * AWS::IAM::Group
    * AWS::IAM::Policy
    * AWS::IAM::User
    * AWS::IAM::UserToGroupAddition

@option options [Boolean] :disable_rollback (false)

  Set to true to disable rollback on stack creation failures.

@option options [Object] :notify One or more SNS topics ARN

  string or {SNS::Topic} objects.  This param may be passed
  as a single value or as an array. CloudFormation will publish
  stack related events to these topics.

@option options [Hash] :parameters A hash that specifies the

  input parameters of the new stack.

@option options [Integer] :timeout The number of minutes

  that may pass before the stack creation fails.  If
  `:disable_rollback` is false, the stack will be rolled back.

@return [Stack]

Limits the stacks that are enumerated.

  cloud_formation.stacks.with_status(:create_complete).each do |stack|
    puts stack.name
  end

You can provide multiple statuses:

  statuses = [:create_failed, :rollback_failed]
  cloud_formation.stacks.with_status(statuses).each do |stack|
    puts stack.name
  end

Status names may be symbolized (snake-cased) or upper-cased strings (e.g. :create_in_progress, ‘CREATE_IN_PROGRESS’).

@param [Symbol,String] status_filters A status to filter stacks with.

  Valid values include:

    * `:create_in_progress`
    * `:create_failed`
    * `:create_complete`
    * `:rollback_in_progress`
    * `:rollback_failed`
    * `:rollback_complete`
    * `:delete_in_progress`
    * `:delete_failed`
    * `:delete_complete`
    * `:update_in_progress`
    * `:update_complete_cleanup_in_progress`
    * `:update_complete`
    * `:update_rollback_in_progress`
    * `:update_rollback_failed`
    * `:update_rollback_complete_cleanup_in_progress`
    * `:update_rollback_complete`

@return [StackCollection] Returns a new stack collection that

  filters the stacks returned by the given status.

Protected Instance methods

[Validate]