Initialize connection to CloudFormation
options parameter must include values for :aws_access_key_id and :aws_secret_access_key in order to create a connection
cf = CloudFormation.new( :aws_access_key_id => your_aws_access_key_id, :aws_secret_access_key => your_aws_secret_access_key )
options<~Hash> - config arguments for connection. Defaults to {}.
CloudFormation object with connection to AWS.
# File lib/fog/aws/cloud_formation.rb, line 48 def initialize(options={}) require 'fog/core/parser' @use_iam_profile = options[:use_iam_profile] setup_credentials(options) @connection_options = options[:connection_options] || {} options[:region] ||= 'us-east-1' @host = options[:host] || "cloudformation.#{options[:region]}.amazonaws.com" @path = options[:path] || '/' @persistent = options[:persistent] || false @port = options[:port] || 443 @scheme = options[:scheme] || 'https' @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options) end
Create a stack.
stack_name [String] Name of the stack to create.
options [Hash]:
TemplateBody [String] Structure containing the template body.
or (one of the two Template parameters is required)
TemplateURL [String] URL of file containing the template body.
DisableRollback [Boolean] Controls rollback on stack creation failure, defaults to false.
NotificationARNs [Array] List of SNS topics to publish events to.
Parameters [Hash] Hash of providers to supply to template
TimeoutInMinutes [Integer] Minutes to wait before status is set to CREATE_FAILED
Capabilities [Array] List of capabilties the stack is granted. Currently CAPABILITY_IAM for allowing the creation of IAM resources
@return [Excon::Response]:
* body [Hash: * StackId [String] - Id of the new stack
@see docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html
# File lib/fog/aws/requests/cloud_formation/create_stack.rb, line 27 def create_stack(stack_name, options = {}) params = { 'StackName' => stack_name, } if options['DisableRollback'] params['DisableRollback'] = options['DisableRollback'] end if options['NotificationARNs'] params.merge!(Fog::AWS.indexed_param("NotificationARNs.member", [*options['NotificationARNs']])) end if options['Parameters'] options['Parameters'].keys.each_with_index do |key, index| index += 1 # params are 1-indexed params.merge!({ "Parameters.member.#{index}.ParameterKey" => key, "Parameters.member.#{index}.ParameterValue" => options['Parameters'][key] }) end end num_tags = 0 if options['Tags'] options['Tags'].keys.each_with_index do |key, index| index += 1 # tags are 1-indexed num_tags += 1 # 10 tag max params.merge!({ "Tags.member.#{index}.Key" => key, "Tags.member.#{index}.Value" => options['Tags'][key] }) end end if num_tags > 10 raise ArgumentError.new("a maximum of 10 tags can be specified <#{num_tags}>") end if options['TemplateBody'] params['TemplateBody'] = options['TemplateBody'] elsif options['TemplateURL'] params['TemplateURL'] = options['TemplateURL'] end if options['TimeoutInMinutes'] params['TimeoutInMinutes'] = options['TimeoutInMinutes'] end if options['Capabilities'] params.merge!(Fog::AWS.indexed_param("Capabilities.member", [*options['Capabilities']])) end request({ 'Action' => 'CreateStack', :parser => Fog::Parsers::AWS::CloudFormation::CreateStack.new }.merge!(params)) end
Delete a stack.
@param stack_name String] Name of the stack to create.
@return [Excon::Response]
@see docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/API_DeleteStack.html
# File lib/fog/aws/requests/cloud_formation/delete_stack.rb, line 16 def delete_stack(stack_name) request( 'Action' => 'DeleteStack', 'StackName' => stack_name, :parser => Fog::Parsers::AWS::CloudFormation::Basic.new ) end
Describe stack events.
@param stack_name [String] stack name to return events for. @param options [Hash] @option options NextToken [String] Identifies the start of the next list of events, if there is one.
@return [Excon::Response]
* body [Hash]: * StackEvents [Array] - Matching resources * event [Hash]: * EventId [String] - * StackId [String] - * StackName [String] - * LogicalResourceId [String] - * PhysicalResourceId [String] - * ResourceType [String] - * Timestamp [Time] - * ResourceStatus [String] - * ResourceStatusReason [String] -
@see docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/API_DescribeStackEvents.html
# File lib/fog/aws/requests/cloud_formation/describe_stack_events.rb, line 30 def describe_stack_events(stack_name, options = {}) request({ 'Action' => 'DescribeStackEvents', 'StackName' => stack_name, :parser => Fog::Parsers::AWS::CloudFormation::DescribeStackEvents.new }.merge!(options)) end
Describe stack resources.
@param options Hash]:
* PhysicalResourceId [String] name or unique identifier that corresponds to a physical instance ID or (one of PhysicalResourceId and StackName is required) * StackName [String] Only return events related to this stack name * LogicalResourceId [String] Logical name of the resource as specified in the template
@return [Excon::Response]
* body [Hash]: * StackResources [Array] - Matching resources * resource [Hash]: * StackId [String] - * StackName [String] - * LogicalResourceId [String] - * PhysicalResourceId [String] - * ResourceType [String] - * Timestamp [Time] - * ResourceStatus [String] -
@see docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/API_DescribeStackResources.html
# File lib/fog/aws/requests/cloud_formation/describe_stack_resources.rb, line 30 def describe_stack_resources(options = {}) request({ 'Action' => 'DescribeStackResources', :parser => Fog::Parsers::AWS::CloudFormation::DescribeStackResources.new }.merge!(options)) end
Describe stacks.
@param options [Hash] @option options StackName [String] Name of the stack to describe.
@return [Excon::Response]
* body [Hash]: * Stacks [Array] - Matching stacks * stack [Hash]: * StackName [String] - * StackId [String] - * CreationTime [String] - * StackStatus [String] - * DisableRollback [String] - * Outputs [Array] - * output [Hash]: * OutputKey [String] - * OutputValue [String] -
@see docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/API_DescribeStacks.html
# File lib/fog/aws/requests/cloud_formation/describe_stacks.rb, line 29 def describe_stacks(options = {}) request({ 'Action' => 'DescribeStacks', :parser => Fog::Parsers::AWS::CloudFormation::DescribeStacks.new }.merge!(options)) end
Describe stacks.
@param stack_name [String] stack name to get template from
@return [Excon::Response]
* body [Hash]: * TemplateBody [String] - structure containing the template body (json)
@see docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/API_GetTemplate.html
# File lib/fog/aws/requests/cloud_formation/get_template.rb, line 18 def get_template(stack_name) request( 'Action' => 'GetTemplate', 'StackName' => stack_name, :parser => Fog::Parsers::AWS::CloudFormation::GetTemplate.new ) end
# File lib/fog/aws/cloud_formation.rb, line 64 def reload @connection.reset end
Update a stack.
@param [String] stack_name Name of the stack to update. @param [Hash] options
* TemplateBody [String] Structure containing the template body. or (one of the two Template parameters is required) * TemplateURL [String] URL of file containing the template body. * Parameters [Hash] Hash of providers to supply to template. * Capabilities [Array] List of capabilties the stack is granted. Currently CAPABILITY_IAM for allowing the creation of IAM resources.
@return [Excon::Response]
* body [Hash]: * StackId [String] - Id of the stack being updated
@see docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/API_UpdateStack.html
# File lib/fog/aws/requests/cloud_formation/update_stack.rb, line 24 def update_stack(stack_name, options = {}) params = { 'StackName' => stack_name, } if options['Parameters'] options['Parameters'].keys.each_with_index do |key, index| index += 1 # params are 1-indexed params.merge!({ "Parameters.member.#{index}.ParameterKey" => key, "Parameters.member.#{index}.ParameterValue" => options['Parameters'][key] }) end end if options['TemplateBody'] params['TemplateBody'] = options['TemplateBody'] elsif options['TemplateURL'] params['TemplateURL'] = options['TemplateURL'] end if options['Capabilities'] params.merge!(Fog::AWS.indexed_param("Capabilities.member", [*options['Capabilities']])) end request({ 'Action' => 'UpdateStack', :parser => Fog::Parsers::AWS::CloudFormation::UpdateStack.new }.merge!(params)) end
Describe stacks.
@param [Hash] options @option options [String] TemplateBody template structure @option options [String] TemplateURL template url
@return [Excon::Response]
* body [Hash]: * Description [String] - description found within the template * Parameters [String] - list of template parameter structures
@see docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/API_ValidateTemplate.html
# File lib/fog/aws/requests/cloud_formation/validate_template.rb, line 21 def validate_template(options = {}) request({ 'Action' => 'ValidateTemplate', :parser => Fog::Parsers::AWS::CloudFormation::ValidateTemplate.new }.merge!(options)) end
Generated with the Darkfish Rdoc Generator 2.