@attr_reader [String] template Returns the stack's template as a JSON
string.
@attr_reader [Time] creation_time The time the stack was created.
@attr_reader [Time,nil] last_updated_time The time the stack was
last updated.
@attr_reader [String] stack_id Unique stack identifier.
@attr_reader [Symbol] status The status of the stack.
@attr_reader [String] status_reason Success/Failure message
associated with the +status+.
@attr_reader [Array<String>] capabilities The capabilities
allowed in the stack.
@attr_reader [String] description User defined description
associated with the stack.
@attr_reader [Boolean] disable_rollback Specifies if the stack
is rolled back due to stack creation errors.
@attr_reader [Array<String>] notification_arns
SNS topic ARNs to which stack related events are published.
@attr_reader [Hash] parameters Returns a hash of stack parameters.
@attr_reader [Integer] timeout
The number of minutes within the stack creation should complete.
@return [String] Returns the stack name.
@private
# File lib/aws/cloud_formation/stack.rb, line 55 def initialize name, options = {} @name = name super end
Deletes the current stack. @return [nil]
# File lib/aws/cloud_formation/stack.rb, line 224 def delete client.delete_stack(:stack_name => name) nil end
@return (see AWS::CloudFormation#estimate_template_cost)
# File lib/aws/cloud_formation/stack.rb, line 217 def estimate_template_cost cloud_formation = CloudFormation.new(:config => config) cloud_formation.estimate_template_cost(template, parameters) end
@return [StackEventCollection] Returns a collection that represents
all events for this stack.
# File lib/aws/cloud_formation/stack.rb, line 136 def events StackEventCollection.new(self) end
@return [Boolean]
# File lib/aws/cloud_formation/stack.rb, line 230 def exists? begin client.describe_stacks(resource_options) true rescue Errors::ValidationError false end end
@return [Array<StackOutput>]
# File lib/aws/cloud_formation/stack.rb, line 128 def outputs output_details.collect do |o| StackOutput.new(self, o.output_key, o.output_value, o.description) end end
Returns a stack resource summary collection, that when enumerated yields summary hashes. Each hash has the following keys:
:last_updated_timestamp
:logical_resource_id
:physical_resource_id
:resource_status
:resource_status_reason
:resource_type
@return [StackResourceSummaryCollection]
# File lib/aws/cloud_formation/stack.rb, line 170 def resource_summaries StackResourceSummaryCollection.new(self) end
Returns a stack resource collection that enumerates all resources for this stack.
stack.resources.each do |resource| puts "#{resource.resource_type}: #{resource.physical_resource_id}" end
If you want a specific resource and you know its logical resource id, you can use this collection to return a reference to it.
resource = stack.resources['logical-resource-id']
@return [StackResourceCollection]
# File lib/aws/cloud_formation/stack.rb, line 154 def resources StackResourceCollection.new(self) end
@param [Hash] options
@option options [String,URI,S3::S3Object,Object] :template
A new 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.
@option options [Hash] :parameters A hash that specifies the
input parameters of the new stack.
@option options :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
@return [nil]
# File lib/aws/cloud_formation/stack.rb, line 203 def update options = {} client_opts = options.dup apply_stack_name(name, client_opts) apply_template(client_opts) apply_parameters(client_opts) client.update_stack(client_opts) nil end
# File lib/aws/cloud_formation/stack.rb, line 245 def get_resource attribute if attribute.name == :template client.get_template(resource_options) else client.describe_stacks(resource_options) end end
# File lib/aws/cloud_formation/stack.rb, line 241 def resource_identifiers [[:stack_name, name]] end