class Fog::AWS::AutoScaling::Real

Attributes

region[RW]

Public Class Methods

new(options={}) click to toggle source

Initialize connection to AutoScaling

Notes

options parameter must include values for :aws_access_key_id and :aws_secret_access_key in order to create a connection

Examples

as = AutoScaling.new(
 :aws_access_key_id => your_aws_access_key_id,
 :aws_secret_access_key => your_aws_secret_access_key
)

Parameters

  • options<~Hash> - config arguments for connection. Defaults to {}.

Returns

# File lib/fog/aws/auto_scaling.rb, line 93
def initialize(options={})
  @use_iam_profile = options[:use_iam_profile]

  @connection_options = options[:connection_options] || {}

  @instrumentor           = options[:instrumentor]
  @instrumentor_name      = options[:instrumentor_name] || 'fog.aws.auto_scaling'

  options[:region] ||= 'us-east-1'
  @region = options[:region]

  @host = options[:host] || "autoscaling.#{options[:region]}.amazonaws.com"
  @path       = options[:path]        || '/'
  @port       = options[:port]        || 443
  @persistent = options[:persistent]  || false
  @scheme     = options[:scheme]      || 'https'
  @connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)

  setup_credentials(options)
end

Public Instance Methods

attach_instances(auto_scaling_group_name, options = {}) click to toggle source
# File lib/fog/aws/requests/auto_scaling/attach_instances.rb, line 24
def attach_instances(auto_scaling_group_name, options = {})

  if instance_ids = options.delete('InstanceIds')
    options.merge!(AWS.indexed_param('InstanceIds.member.%d', [*instance_ids]))
  end

  request({
    'Action'               => 'AttachInstances',
    'AutoScalingGroupName' => auto_scaling_group_name,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end
attach_load_balancer_target_groups(auto_scaling_group_name, options = {}) click to toggle source
# File lib/fog/aws/requests/auto_scaling/attach_load_balancer_target_groups.rb, line 22
def attach_load_balancer_target_groups(auto_scaling_group_name, options = {})
  if target_group_arns = options.delete('TargetGroupARNs')
    options.merge!(AWS.indexed_param('TargetGroupARNs.member.%d', *target_group_arns))
  end

  request({
    'Action'               => 'AttachLoadBalancerTargetGroups',
    'AutoScalingGroupName' => auto_scaling_group_name,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end
attach_load_balancers(auto_scaling_group_name, options = {}) click to toggle source
# File lib/fog/aws/requests/auto_scaling/attach_load_balancers.rb, line 22
def attach_load_balancers(auto_scaling_group_name, options = {})
  if load_balancer_names = options.delete('LoadBalancerNames')
    options.merge!(AWS.indexed_param('LoadBalancerNames.member.%d', [*load_balancer_names]))
  end

  request({
    'Action'               => 'AttachLoadBalancers',
    'AutoScalingGroupName' => auto_scaling_group_name,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end
create_auto_scaling_group(auto_scaling_group_name, availability_zones, launch_configuration_name, max_size, min_size, options = {}) click to toggle source
# File lib/fog/aws/requests/auto_scaling/create_auto_scaling_group.rb, line 67
def create_auto_scaling_group(auto_scaling_group_name, availability_zones, launch_configuration_name, max_size, min_size, options = {})
  options.merge!(AWS.indexed_param('AvailabilityZones.member.%d', [*availability_zones]))
  options.delete('AvailabilityZones')
  if load_balancer_names = options.delete('LoadBalancerNames')
    options.merge!(AWS.indexed_param('LoadBalancerNames.member.%d', [*load_balancer_names]))
  end

  if tags = options.delete('Tags')
    options.merge!(AWS.indexed_param("Tags.member.%d", [*tags]))
  end

  if termination_policies = options.delete('TerminationPolicies')
    options.merge!(AWS.indexed_param('TerminationPolicies.member.%d', [*termination_policies]))
  end

  request({
    'Action'                  => 'CreateAutoScalingGroup',
    'AutoScalingGroupName'    => auto_scaling_group_name,
    'LaunchConfigurationName' => launch_configuration_name,
    'MaxSize'                 => max_size,
    'MinSize'                 => min_size,
    :parser                   => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end
create_launch_configuration(image_id, instance_type, launch_configuration_name, options = {}) click to toggle source

Creates a new launch configuration. When created, the new launch configuration is available for immediate use.

Parameters

  • image_id<~String> - Unique ID of the Amazon Machine Image (AMI) which was assigned during registration.

  • instance_type<~String> - The instance type of the EC2 instance.

  • launch_configuration_name<~String> - The name of the launch configuration to create.

  • options<~Hash>:

    • 'BlockDeviceMappings'<~Array>:

      • 'DeviceName'<~String> - The name of the device within Amazon EC2.

      • 'Ebs.SnapshotId'<~String> - The snapshot ID.

      • 'Ebs.VolumeSize'<~Integer> - The volume size, in GigaBytes.

      • 'VirtualName'<~String> - The virtual name associated with the device.

    • 'IamInstanceProfile'<~String> The name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance.

    • 'InstanceMonitoring.Enabled'<~Boolean> - Enables detailed monitoring, which is enabled by default.

    • 'KernelId'<~String> - The ID of the kernel associated with the Amazon EC2 AMI.

    • 'KeyName'<~String> - The name of the Amazon EC2 key pair.

    • 'RamdiskId'<~String> - The ID of the RAM disk associated with the Amazon EC2 AMI.

    • 'SecurityGroups'<~Array> - The names of the security groups with which to associate Amazon EC2 or Amazon VPC instances.

    • 'SpotPrice'<~String> - The maximum hourly price to be paid for any Spot Instance launched to fulfill the request. Spot Instances are launched when the price you specify exceeds the current Spot market price.

    • 'UserData'<~String> - The user data available to the launched Amazon EC2 instances.

    • 'EbsOptimized'<~Boolean> - Whether the instance is optimized for EBS I/O. Not required, default false.

    • 'PlacementTenancy'<~String> - The tenancy of the instance. Valid values: default | dedicated. Default: default

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_CreateLaunchConfiguration.html

# File lib/fog/aws/requests/auto_scaling/create_launch_configuration.rb, line 56
def create_launch_configuration(image_id, instance_type, launch_configuration_name, options = {})
  if block_device_mappings = options.delete('BlockDeviceMappings')
    block_device_mappings.each_with_index do |mapping, i|
      for key, value in mapping
        options.merge!({ format("BlockDeviceMappings.member.%d.#{key}", i+1) => value })
      end
    end
  end
  if security_groups = options.delete('SecurityGroups')
     options.merge!(AWS.indexed_param('SecurityGroups.member.%d', [*security_groups]))
  end

  if classic_link_groups = options.delete('ClassicLinkVPCSecurityGroups')
    options.merge!(AWS.indexed_param('ClassicLinkVPCSecurityGroups.member.%d', [*classic_link_groups]))
  end
  
  if options['UserData']
    options['UserData'] = Base64.encode64(options['UserData'])
  end
  request({
    'Action'                  => 'CreateLaunchConfiguration',
    'ImageId'                 => image_id,
    'InstanceType'            => instance_type,
    'LaunchConfigurationName' => launch_configuration_name,
    :parser                   => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end
create_or_update_tags(tags) click to toggle source

Creates new tags or updates existing tags for an Auto Scaling group.

Parameters

  • tags<~Array>:

    • tag<~Hash>:

      • Key<~String> - The key of the tag.

      • PropagateAtLaunch<~Boolean> - Specifies whether the new tag will be applied to instances launched after the tag is created. The same behavior applies to updates: If you change a tag, the changed tag will be applied to all instances launched after you made the change.

      • ResourceId<~String> - The name of the Auto Scaling group.

      • ResourceType<~String> - The kind of resource to which the tag is applied. Currently, Auto Scaling supports the auto-scaling-group resource type.

      • Value<~String> - The value of the tag.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_CreateOrUpdateTags.html

# File lib/fog/aws/requests/auto_scaling/create_or_update_tags.rb, line 33
def create_or_update_tags(tags)
  params = {}
  tags.each_with_index do |tag, i|
    tag.each do |key, value|
      params["Tags.member.#{i+1}.#{key}"] = value unless value.nil?
    end
  end
  request({
    'Action' => 'CreateOrUpdateTags',
    :parser  => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(params))
end
delete_auto_scaling_group(auto_scaling_group_name, options = {}) click to toggle source

Deletes the specified auto scaling group if the group has no instances and no scaling activities in progress.

Parameters

  • auto_scaling_group_name<~String> - The name of the Auto Scaling group.

  • options<~Hash>:

    • 'ForceDelete'<~Boolean> - Starting with API version 2011-01-01, specifies that the Auto Scaling group will be deleted along with all instances associated with the group, without waiting for all instances to be terminated.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DeleteAutoScalingGroup.html

# File lib/fog/aws/requests/auto_scaling/delete_auto_scaling_group.rb, line 28
def delete_auto_scaling_group(auto_scaling_group_name, options = {})
  request({
    'Action'               => 'DeleteAutoScalingGroup',
    'AutoScalingGroupName' => auto_scaling_group_name,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end
delete_launch_configuration(launch_configuration_name) click to toggle source

Deletes the specified launch configuration.

The specified launch configuration must not be attached to an Auto Scaling group. Once this call completes, the launch configuration is no longer available for use.

Parameters

  • launch_configuration_name<~String> - The name of the launch configuration.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DeleteLaunchConfiguration.html

# File lib/fog/aws/requests/auto_scaling/delete_launch_configuration.rb, line 26
def delete_launch_configuration(launch_configuration_name)
  request({
    'Action'                  => 'DeleteLaunchConfiguration',
    'LaunchConfigurationName' => launch_configuration_name,
    :parser                   => Fog::Parsers::AWS::AutoScaling::Basic.new
  })
end
delete_notification_configuration(auto_scaling_group_name, topic_arn) click to toggle source

Deletes notifications created by put_notification_configuration.

Parameters

  • auto_scaling_group_name<~String> - The name of the Auto Scaling group.

  • topic_arn<~String> - The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DeleteNotificationConfiguration.html

# File lib/fog/aws/requests/auto_scaling/delete_notification_configuration.rb, line 24
def delete_notification_configuration(auto_scaling_group_name, topic_arn)
  request({
    'Action'               => 'DeleteNotificationConfiguration',
    'AutoScalingGroupName' => auto_scaling_group_name,
    'TopicARN'             => topic_arn,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  })
end
delete_policy(auto_scaling_group_name, policy_name) click to toggle source

Deletes a policy created by put_scaling_policy

Parameters

  • auto_scaling_group_name<~String> - The name of the Auto Scaling group.

  • policy_name<~String> - The name or PolicyARN of the policy you want to delete.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DeletePolicy.html

# File lib/fog/aws/requests/auto_scaling/delete_policy.rb, line 24
def delete_policy(auto_scaling_group_name, policy_name)
  request({
    'Action'               => 'DeletePolicy',
    'AutoScalingGroupName' => auto_scaling_group_name,
    'PolicyName'           => policy_name,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  })
end
delete_scheduled_action(auto_scaling_group_name, scheduled_action_name) click to toggle source

Deletes a scheduled action previously created using the put_scheduled_update_group_action.

Parameters

  • auto_scaling_group_name<~String> - The name of the Auto Scaling group.

  • scheduled_action_name<~String> - The name of the action you want to delete.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DeleteScheduledAction.html

# File lib/fog/aws/requests/auto_scaling/delete_scheduled_action.rb, line 25
def delete_scheduled_action(auto_scaling_group_name, scheduled_action_name)
  request({
    'Action'               => 'DeleteScheduledAction',
    'AutoScalingGroupName' => auto_scaling_group_name,
    'ScheduledActionName'  => scheduled_action_name,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  })
end
delete_tags(tags) click to toggle source

Removes the specified tags or a set of tags from a set of resources.

Parameters

  • tags<~Array>:

    • tag<~Hash>:

      • Key<~String> - The key of the tag.

      • PropagateAtLaunch<~Boolean> - Specifies whether the new tag will be applied to instances launched after the tag is created. The same behavior applies to updates: If you change a tag, the changed tag will be applied to all instances launched after you made the change.

      • ResourceId<~String> - The name of the Auto Scaling group.

      • ResourceType<~String> - The kind of resource to which the tag is applied. Currently, Auto Scaling supports the auto-scaling-group resource type.

      • Value<~String> - The value of the tag.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DeleteTags.html

# File lib/fog/aws/requests/auto_scaling/delete_tags.rb, line 33
def delete_tags(tags)
  params = {}
  tags.each_with_index do |tag, i|
    tag.each do |key, value|
      params["Tags.member.#{i+1}.#{key}"] = value unless value.nil?
    end
  end
  request({
    'Action' => 'DeleteTags',
    :parser  => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(params))
end
describe_adjustment_types() click to toggle source

Returns policy adjustment types for use in the put_scaling_policy action.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

      • 'DescribeAdjustmentTypesResponse'<~Hash>:

        • 'AdjustmentTypes'<~Array>:

          • 'AdjustmentType'<~String> - A policy adjustment type.

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DescribeAdjustmentTypes.html

# File lib/fog/aws/requests/auto_scaling/describe_adjustment_types.rb, line 22
def describe_adjustment_types()
  request({
    'Action'    => 'DescribeAdjustmentTypes',
    :idempotent => true,
    :parser     => Fog::Parsers::AWS::AutoScaling::DescribeAdjustmentTypes.new
  })
end
describe_auto_scaling_groups(options = {}) click to toggle source

Returns a full description of each Auto Scaling group in the given list. This includes all Amazon EC2 instances that are members of the group. If a list of names is not provided, the service returns the full details of all Auto Scaling groups.

This action supports pagination by returning a token if there are more pages to retrieve. To get the next page, call this action again with the returned token as the NextToken parameter.

Parameters

  • options<~Hash>:

    • 'AutoScalingGroupNames'<~Array> - A list of Auto Scaling group names.

    • 'MaxRecords'<~Integer> - The maximum number of records to return.

    • 'NextToken'<~String> - A string that marks the start of the next batch of returned results.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

      • 'DescribeAutoScalingGroupsResponse'<~Hash>:

        • 'AutoScalingGroups'<~Array>:

          • 'AutoScalingGroup'<~Hash>:

            • 'AutoScalingGroupARN'<~String> - The Amazon Resource Name

              (ARN) of the Auto Scaling group.
            • 'AutoScalingGroupName'<~String> - Specifies the name of the group.

            • 'AvailabilityZones'<~Array> - Contains a list of availability zones for the group.

            • 'CreatedTime'<~Time> - Specifies the date and time the Auto Scaling group was created.

            • 'DefaultCooldown'<~Integer> - The number of seconds after a scaling activity completes before any further scaling activities can start.

            • 'DesiredCapacity'<~Integer> - Specifies the desired capacity of the Auto Scaling group.

            • 'EnabledMetrics'<~Array>:

              • enabledmetric<~Hash>:

                • 'Granularity'<~String> - The granularity of the enabled metric.

                • 'Metrics'<~String> - The name of the enabled metric.

            • 'HealthCheckGracePeriod'<~Integer>: The length of time that Auto Scaling waits before checking an instance's health status. The grace period begins when an instance comes into service.

            • 'HealthCheckType'<~String>: The service of interest for the health status check, either “EC2” for Amazon EC2 or “ELB” for Elastic Load Balancing.

            • 'Instances'<~Array>:

              • instance<~Hash>:

                • 'AvailabilityZone'<~String>: Availability zone associated with this instance.

                • 'HealthStatus'<~String>: The instance's health status.

                • 'InstanceId'<~String>: Specifies the EC2 instance ID.

                • 'LaunchConfigurationName'<~String>: The launch configuration associated with this instance.

                • 'LifecycleState'<~String>: Contains a description of the current lifecycle state.

            • 'LaunchConfigurationName'<~String> - Specifies the name of the associated launch configuration.

            • 'LoadBalancerNames'<~Array> - A list of load balancers associated with this Auto Scaling group.

            • 'MaxSize'<~Integer> - The maximum size of the Auto Scaling group.

            • 'MinSize'<~Integer> - The minimum size of the Auto Scaling group.

            • 'PlacementGroup'<~String> - The name of the cluster placement group, if applicable.

            • 'SuspendedProcesses'<~Array>:

              • suspendedprocess'<~Hash>:

                • 'ProcessName'<~String> - The name of the suspended process.

                • 'SuspensionReason'<~String> - The reason that the process was suspended.

            • 'TerminationPolicies'<~Array> - A standalone termination policy or a list of termination policies for this Auto Scaling group.

            • 'VPCZoneIdentifier'<~String> - The subnet identifier for the Amazon VPC connection, if applicable. You can specify several subnets in a comma-separated list.

        • 'NextToken'<~String> - A string that marks the start of the next batch of returned results.

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DescribeAutoScalingGroups.html

# File lib/fog/aws/requests/auto_scaling/describe_auto_scaling_groups.rb, line 96
def describe_auto_scaling_groups(options = {})
  if auto_scaling_group_names = options.delete('AutoScalingGroupNames')
    options.merge!(AWS.indexed_param('AutoScalingGroupNames.member.%d', [*auto_scaling_group_names]))
  end
  request({
    'Action' => 'DescribeAutoScalingGroups',
    :parser  => Fog::Parsers::AWS::AutoScaling::DescribeAutoScalingGroups.new
  }.merge!(options))
end
describe_auto_scaling_instances(options = {}) click to toggle source

Returns a description of each Auto Scaling instance in the instance_ids list. If a list is not provided, the service returns the full details of all instances.

This action supports pagination by returning a token if there are more pages to retrieve. To get the next page, call this action again with the returned token as the NextToken parameter.

Parameters

  • options<~Hash>:

    • 'InstanceIds'<~Array> - The list of Auto Scaling instances to describe. If this list is omitted, all auto scaling instances are described. The list of requested instances cannot contain more than 50 items. If unknown instances are requested, they are ignored with no error.

    • 'MaxRecords'<~Integer> - The aximum number of Auto Scaling instances to be described with each call.

    • 'NextToken'<~String> - The token returned by a previous call to indicate that there is more data available.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

      • 'DescribeAutoScalingInstancesResponse'<~Hash>:

        • 'AutoScalingInstances'<~Array>:

          • autoscalinginstancedetails<~Hash>:

            • 'AutoScalingGroupName'<~String> - The name of the Auto Scaling Group associated with this instance.

            • 'AvailabilityZone'<~String> - The availability zone in which this instance resides.

            • 'HealthStatus'<~String> - The health status of this instance. “Healthy” means that the instance is healthy and should remain in service. “Unhealthy” means that the instance is unhealthy. Auto Scaling should terminate and replace it.

            • 'InstanceId'<~String> - The instance's EC2 instance ID.

            • 'LaunchConfigurationName'<~String> - The launch

              configuration associated with this instance.
            • 'LifecycleState'<~String> - The life cycle state of this instance.

        • 'NextToken'<~String> - Acts as a paging mechanism for large result sets. Set to a non-empty string if there are additional results waiting to be returned. Pass this in to subsequent calls to return additional results.

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DescribeAutoScalingInstances.html

# File lib/fog/aws/requests/auto_scaling/describe_auto_scaling_instances.rb, line 57
def describe_auto_scaling_instances(options = {})
  if instance_ids = options.delete('InstanceIds')
    options.merge!(AWS.indexed_param('InstanceIds.member.%d', [*instance_ids]))
  end
  request({
    'Action' => 'DescribeAutoScalingInstances',
    :parser  => Fog::Parsers::AWS::AutoScaling::DescribeAutoScalingInstances.new
  }.merge!(options))
end
describe_auto_scaling_notification_types() click to toggle source

Returns a list of all notification types that are supported by Auto Scaling.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

      • 'DescribeAutoScalingNotificationTypesResult'<~Hash>:

        • 'AutoScalingNotificationTypes'<~Array>:

          • 'notificationType'<~String> - A notification type.

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DescribeAutoScalingNotificationTypes.html

# File lib/fog/aws/requests/auto_scaling/describe_auto_scaling_notification_types.rb, line 22
def describe_auto_scaling_notification_types()
  request({
    'Action'    => 'DescribeAutoScalingNotificationTypes',
    :idempotent => true,
    :parser     => Fog::Parsers::AWS::AutoScaling::DescribeAutoScalingNotificationTypes.new
  })
end
describe_launch_configurations(options = {}) click to toggle source

Returns a full description of the launch configurations given the specified names.

If no names are specified, then the full details of all launch configurations are returned.

Parameters

  • options<~Hash>:

    • 'LaunchConfigurationNames'<~Array> - A list of launch configuration names.

    • 'MaxRecords'<~Integer> - The maximum number of launch configurations.

    • 'NextToken'<~String> - The token returned by a previous call to indicate that there is more data available.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

      • 'DescribeLaunchConfigurationsResponse'<~Hash>:

        • 'LaunchConfigurations'<~Array>:

          • launchconfiguration'<~Hash>:

            • 'BlockDeviceMappings'<~Array>:

              • blockdevicemapping<~Hash>:

                • 'DeviceName'<~String> - The name of the device within EC2.

                • 'Ebs'<~Hash>:

                  • 'SnapshotId'<~String> - The snapshot ID

                  • 'VolumeSize'<~Integer> - The volume size, in GigaBytes.

                • 'VirtualName'<~String> - The virtual name associated with the device.

            • 'CreatedTime'<~Time> - Provides the creation date and time for this launch configuration.

            • 'ImageId'<~String> - Provides the unique ID of the Amazon Machine Image (AMI) that was assigned during registration.

            • 'InstanceMonitoring'<~Hash>:

              • 'Enabled'<~Boolean> - If true, instance monitoring is enabled.

            • 'InstanceType'<~String> - Specifies the instance type of the EC2 instance.

            • 'KernelId'<~String> - Provides the ID of the kernel associated with the EC2 AMI.

            • 'KeyName'<~String> - Provides the name of the EC2 key pair.

            • 'LaunchConfigurationARN'<~String> - The launch configuration's Amazon Resource Name (ARN).

            • 'LaunchConfigurationName'<~String> - Specifies the name of the launch configuration.

            • 'RamdiskId'<~String> - Provides ID of the RAM disk associated with the EC2 AMI.

            • 'PlacementTenancy'<~String> - The tenancy of the instance.

            • 'SecurityGroups'<~Array> - A description of the security groups to associate with the EC2 instances.

            • 'UserData'<~String> - The user data available to the launched EC2 instances.

        • 'NextToken'<~String> - Acts as a paging mechanism for large result sets. Set to a non-empty string if there are additional results waiting to be returned. Pass this in to subsequent calls to return additional results.

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DescribeLaunchConfigurations.html

# File lib/fog/aws/requests/auto_scaling/describe_launch_configurations.rb, line 73
def describe_launch_configurations(options = {})
  if launch_configuration_names = options.delete('LaunchConfigurationNames')
    options.merge!(AWS.indexed_param('LaunchConfigurationNames.member.%d', [*launch_configuration_names]))
  end
  request({
    'Action' => 'DescribeLaunchConfigurations',
    :parser  => Fog::Parsers::AWS::AutoScaling::DescribeLaunchConfigurations.new
  }.merge!(options))
end
describe_metric_collection_types() click to toggle source

Returns a list of metrics and a corresponding list of granularities for each metric.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

      • 'DescribeMetricCollectionTypesResult'<~Hash>:

        • 'Granularities'<~Array>:

          • 'Granularity'<~String> - The granularity of a Metric.

        • 'Metrics'<~Array>:

          • 'Metric'<~String> - The name of a Metric.

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DescribeMetricCollectionTypes.html

# File lib/fog/aws/requests/auto_scaling/describe_metric_collection_types.rb, line 24
def describe_metric_collection_types()
  request({
    'Action'    => 'DescribeMetricCollectionTypes',
    :idempotent => true,
    :parser     => Fog::Parsers::AWS::AutoScaling::DescribeMetricCollectionTypes.new
  })
end
describe_notification_configurations(options = {}) click to toggle source

Returns a list of notification actions associated with Auto Scaling groups for specified events.

Parameters

  • options<~Hash>:

    • 'AutoScalingGroupNames'<~String> - The name of the Auto Scaling group.

    • 'MaxRecords'<~Integer> - The maximum number of records to return.

    • 'NextToken'<~String> - A string that is used to mark the start of the next batch of returned results for pagination.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

      • 'DescribeNotificationConfigurationsResult'<~Hash>:

        • 'NotificationConfigurations'<~Array>:

          • notificationConfiguration<~Hash>:

            • 'AutoScalingGroupName'<~String> - Specifies the Auto Scaling group name.

            • 'NotificationType'<~String> - The types of events for an action to start.

          • 'TopicARN'<~String> - The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic.

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DescribeNotificationConfigurations.html

# File lib/fog/aws/requests/auto_scaling/describe_notification_configurations.rb, line 36
def describe_notification_configurations(options = {})
  if auto_scaling_group_names = options.delete('AutoScalingGroupNames')
    options.merge!(AWS.indexed_param('AutoScalingGroupNames.member.%d', [*auto_scaling_group_names]))
  end
  request({
    'Action' => 'DescribeNotificationConfigurations',
    :parser  => Fog::Parsers::AWS::AutoScaling::DescribeNotificationConfigurations.new
  }.merge!(options))
end
describe_policies(options = {}) click to toggle source

Returns descriptions of what each policy does. This action supports pagination. If the response includes a token, there are more records available. To get the additional records, repeat the request with the response token as the NextToken parameter.

Parameters

  • options<~Hash>:

    • 'AutoScalingGroupName'<~String> - The name of the Auto Scaling group.

    • 'MaxRecords'<~Integer> - The maximum number of policies that will be described with each call.

    • 'NextToken'<~String> - The token returned by a previous call to indicate that there is more data available.

    • PolicyNames<~Array> - A list of policy names or policy ARNs to be described. If this list is omitted, all policy names are described. If an auto scaling group name is provided, the results are limited to that group.The list of requested policy names cannot contain more than 50 items. If unknown policy names are requested, they are ignored with no error.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

      • 'DescribePoliciesResult'<~Hash>:

        • 'ScalingPolicies'<~Array>:

          • 'AdjustmentType'<~String> - Specifies whether the adjustment is an absolute number or a percentage of the current capacity.

          • 'Alarms'<~Array>:

            • 'AlarmARN'<~String> - The Amazon Resource Name (ARN) of the alarm.

            • 'AlarmName'<~String> - The name of the alarm.

          • 'AutoScalingGroupName'<~String> - The name of the Auto Scaling group associated with this scaling policy.

          • 'Cooldown'<~Integer> - The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start.

          • 'PolicyARN'<~String> - The Amazon Resource Name (ARN) of the policy.

          • 'PolicyName'<~String> - The name of the scaling policy.

          • 'ScalingAdjustment'<~Integer> - The number associated with the specified AdjustmentType. A positive value adds to the current capacity and a negative value removes from the current capacity.

        • 'NextToken'<~String> - Acts as a paging mechanism for large result sets. Set to a non-empty string if there are additional results waiting to be returned. Pass this in to subsequent calls to return additional results.

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DescribePolicies.html

# File lib/fog/aws/requests/auto_scaling/describe_policies.rb, line 61
def describe_policies(options = {})
  if policy_names = options.delete('PolicyNames')
    options.merge!(AWS.indexed_param('PolicyNames.member.%d', [*policy_names]))
  end
  request({
    'Action' => 'DescribePolicies',
    :parser  => Fog::Parsers::AWS::AutoScaling::DescribePolicies.new
  }.merge!(options))
end
describe_scaling_activities(options = {}) click to toggle source

Returns the scaling activities for the specified Auto Scaling group.

If the specified activity_ids list is empty, all the activities from the past six weeks are returned. Activities are sorted by completion time. Activities still in progress appear first on the list.

This action supports pagination. If the response includes a token, there are more records available. To get the additional records, repeat the request with the response token as the NextToken parameter.

Parameters

  • options<~Hash>:

    • 'ActivityIds'<~Array> - A list containing the activity IDs of the desired scaling activities. If this list is omitted, all activities are described. If an AutoScalingGroupName is provided, the results are limited to that group. The list of requested activities cannot contain more than 50 items. If unknown activities are requested, they are ignored with no error.

    • 'AutoScalingGroupName'<~String> - The name of the Auto Scaling group.

    • 'MaxRecords'<~Integer> - The maximum number of scaling activities to return.

    • 'NextToken'<~String> - The token returned by a previous call to indicate that there is more data available.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

      • 'DescribeScalingActivitiesResponse'<~Hash>:

        • 'Activities'<~Array>:

          • 'ActivityId'<~String> - Specifies the ID of the activity.

          • 'AutoScalingGroupName'<~String> - The name of the Auto Scaling group.

          • 'Cause'<~String> - Contins the reason the activity was begun.

          • 'Description'<~String> - Contains a friendly, more verbose description of the scaling activity.

          • 'EndTime'<~Time> - Provides the end time of this activity.

          • 'Progress'<~Integer> - Specifies a value between 0 and 100 that indicates the progress of the activity.

          • 'StartTime'<~Time> - Provides the start time of this activity.

          • 'StatusCode'<~String> - Contains the current status of the activity.

          • 'StatusMessage'<~String> - Contains a friendly, more verbose description of the activity status.

        • 'NextToken'<~String> - Acts as a paging mechanism for large result sets. Set to a non-empty string if there are additional results waiting to be returned. Pass this in to subsequent calls to return additional results.

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DescribeScalingActivities.html

# File lib/fog/aws/requests/auto_scaling/describe_scaling_activities.rb, line 64
def describe_scaling_activities(options = {})
  if activity_ids = options.delete('ActivityIds')
    options.merge!(AWS.indexed_param('ActivityIds.member.%d', [*activity_ids]))
  end
  request({
    'Action' => 'DescribeScalingActivities',
    :parser  => Fog::Parsers::AWS::AutoScaling::DescribeScalingActivities.new
  }.merge!(options))
end
describe_scaling_process_types() click to toggle source

Returns scaling process types for use in the resume_processes and suspend_processes actions.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

      • 'DescribeScalingProcessTypesResult'<~Hash>:

        • 'Processes'<~Array>:

          • processtype<~Hash>:

            • 'ProcessName'<~String> - The name of a process.

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DescribeScalingProcessTypes.html

# File lib/fog/aws/requests/auto_scaling/describe_scaling_process_types.rb, line 23
def describe_scaling_process_types()
  request({
    'Action'    => 'DescribeScalingProcessTypes',
    :idempotent => true,
    :parser     => Fog::Parsers::AWS::AutoScaling::DescribeScalingProcessTypes.new
  })
end
describe_scheduled_actions(options = {}) click to toggle source

List all the actions scheduled for your Auto Scaling group that haven't been executed. To see a list of action already executed, see the activity record returned in describe_scaling_activities.

Parameters

  • options<~Hash>:

    • 'AutoScalingGroupName'<~String> - The name of the Auto Scaling group.

    • 'EndTime'<~Time> - The latest scheduled start time to return. If scheduled action names are provided, this field will be ignored.

    • 'MaxRecords'<~Integer> - The maximum number of scheduled actions to return.

    • 'NextToken'<~String> - The token returned by a previous call to indicate that there is more data available.

    • 'ScheduledActionNames'<~Array> - A list of scheduled actions to be described. If this list is omitted, all scheduled actions are described. The list of requested scheduled actions cannot contain more than 50 items. If an auto scaling group name is provided, the results are limited to that group. If unknown scheduled actions are requested, they are ignored with no error.

    • 'StartTime'<~Time> - The earliest scheduled start time to return. If scheduled action names are provided, this field will be ignored.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

      • 'DescribeScheduledActionsResponse'<~Hash>:

        • 'ScheduledUpdateGroupActions'<~Array>:

          • scheduledupdatesroupAction<~Hash>:

            • 'AutoScalingGroupName'<~String> - The name of the Auto Scaling group to be updated.

          • 'DesiredCapacity'<~Integer> -The number of instances you prefer to maintain in your Auto Scaling group.

          • 'EndTime'<~Time> - The time for this action to end.

          • 'MaxSize'<~Integer> - The maximum size of the Auto Scaling group.

          • 'MinSize'<~Integer> - The minimum size of the Auto Scaling group.

          • 'Recurrence'<~String> - The time when recurring future actions will start. Start time is specified by the user following the Unix cron syntax format.

          • 'ScheduledActionARN'<~String> - The Amazon Resource Name (ARN) of this scheduled action.

          • 'StartTime'<~Time> - The time for this action to start.

          • 'Time'<~Time> - The time that the action is scheduled to occur. This value can be up to one month in the future.

        • 'NextToken'<~String> - Acts as a paging mechanism for large result sets. Set to a non-empty string if there are additional results waiting to be returned. Pass this in to subsequent calls to return additional results.

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DescribeScheduledActions.html

# File lib/fog/aws/requests/auto_scaling/describe_scheduled_actions.rb, line 64
def describe_scheduled_actions(options = {})
  if scheduled_action_names = options.delete('ScheduledActionNames')
    options.merge!(AWS.indexed_param('ScheduledActionNames.member.%d', [*scheduled_action_names]))
  end
  request({
    'Action' => 'DescribeScheduledActions',
    :parser  => Fog::Parsers::AWS::AutoScaling::DescribeScheduledActions.new
  }.merge!(options))
end
describe_tags(options={}) click to toggle source

Lists the Auto Scaling group tags.

Parameters

  • options<~Hash>:

    • tag<~Hash>:

      • Key<~String> - The key of the tag.

      • PropagateAtLaunch<~Boolean> - Specifies whether the new tag will be applied to instances launched after the tag is created. The same behavior applies to updates: If you change a tag, changed tag will be applied to all instances launched after you made the change.

      • ResourceId<~String> - The name of the Auto Scaling group.

      • ResourceType<~String> - The kind of resource to which the tag is applied. Currently, Auto Scaling supports the auto-scaling-group resource type.

      • Value<~String> - The value of the tag.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

      • 'DescribeTagsResult'<~Hash>:

        • 'NextToken'<~String> - A string used to mark the start of the next batch of returned results.

        • 'Tags'<~Hash>:

          • tagDescription<~Hash>:

            • 'Key'<~String> - The key of the tag.

            • 'PropagateAtLaunch'<~Boolean> - Specifies whether the new tag will be applied to instances launched after the tag is created. The same behavior applies to updates: If you change a tag, the changed tag will be applied to all instances launched after you made the change.

            • 'ResourceId'<~String> - The name of the Auto Scaling group.

            • 'ResourceType'<~String> - The kind of resource to which the tag is applied. Currently, Auto Scaling supports the auto-scaling-group resource type.

            • 'Value'<~String> - The value of the tag.

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DescribeTags.html

# File lib/fog/aws/requests/auto_scaling/describe_tags.rb, line 50
def describe_tags(options={})
  if filters = options.delete('Filters')
    options.merge!(Fog::AWS.indexed_filters(filters))
  end
  request({
    'Action' => 'DescribeTags',
    :parser  => Fog::Parsers::AWS::AutoScaling::DescribeTags.new
  }.merge!(options))
end
describe_termination_policy_types() click to toggle source

Returns a list of all termination policies supported by Auto Scaling.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

      • 'DescribeTerminationPolicyTypesResult'<~Hash>:

        • 'TerminationPolicyTypes'<~Array>:

          • terminationtype<~String>:

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DescribeTerminationPolicyTypes.html

# File lib/fog/aws/requests/auto_scaling/describe_termination_policy_types.rb, line 21
def describe_termination_policy_types()
  request({
    'Action'    => 'DescribeTerminationPolicyTypes',
    :idempotent => true,
    :parser     => Fog::Parsers::AWS::AutoScaling::DescribeTerminationPolicyTypes.new
  })
end
detach_instances(auto_scaling_group_name, options = {}) click to toggle source
# File lib/fog/aws/requests/auto_scaling/detach_instances.rb, line 26
def detach_instances(auto_scaling_group_name, options = {})

  if should_decrement_desired_capacity = options.delete('ShouldDecrementDesiredCapacity')
    options.merge!('ShouldDecrementDesiredCapacity' => true.to_s)
  else
    options.merge!('ShouldDecrementDesiredCapacity' => false.to_s)
  end

  if instance_ids = options.delete('InstanceIds')
    options.merge!(AWS.indexed_param('InstanceIds.member.%d', [*instance_ids]))
  end

  request({
    'Action'               => 'DetachInstances',
    'AutoScalingGroupName' => auto_scaling_group_name,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end
detach_load_balancer_target_groups(auto_scaling_group_name, options = {}) click to toggle source
# File lib/fog/aws/requests/auto_scaling/detach_load_balancer_target_groups.rb, line 22
def detach_load_balancer_target_groups(auto_scaling_group_name, options = {})
  if target_group_arns = options.delete('TargetGroupARNs')
    options.merge!(AWS.indexed_param('TargetGroupARNs.member.%d', *target_group_arns))
  end

  request({
    'Action'               => 'DetachLoadBalancerTargetGroups',
    'AutoScalingGroupName' => auto_scaling_group_name,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end
detach_load_balancers(auto_scaling_group_name, options = {}) click to toggle source
# File lib/fog/aws/requests/auto_scaling/detach_load_balancers.rb, line 27
def detach_load_balancers(auto_scaling_group_name, options = {})
  if load_balancer_names = options.delete('LoadBalancerNames')
    options.merge!(AWS.indexed_param('LoadBalancerNames.member.%d', [*load_balancer_names]))
  end

  request({
    'Action'               => 'DetachLoadBalancers',
    'AutoScalingGroupName' => auto_scaling_group_name,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end
disable_metrics_collection(auto_scaling_group_name, options = {}) click to toggle source

Disables monitoring of group metrics for the Auto Scaling group specified in AutoScalingGroupName. You can specify the list of affected metrics with the Metrics parameter.

Parameters

  • 'AutoScalingGroupName'<~String> - The name or ARN of the Auto Scaling group.

  • options<~Hash>:

    • Metrics<~Array> - The list of metrics to disable. If no metrics are specified, all metrics are disabled.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DisableMetricsCollection.html

# File lib/fog/aws/requests/auto_scaling/disable_metrics_collection.rb, line 27
def disable_metrics_collection(auto_scaling_group_name, options = {})
  if metrics = options.delete('Metrics')
    options.merge!(AWS.indexed_param('Metrics.member.%d', [*metrics]))
  end
  request({
    'Action'               => 'DisableMetricsCollection',
    'AutoScalingGroupName' => auto_scaling_group_name,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end
enable_metrics_collection(auto_scaling_group_name, granularity, options = {}) click to toggle source

Enables monitoring of group metrics for the Auto Scaling group specified in auto_scaling_group_name. You can specify the list of enabled metrics with the metrics parameter.

Auto scaling metrics collection can be turned on only if the instance_monitoring.enabled flag, in the Auto Scaling group's launch configuration, is set to true.

Parameters

  • 'AutoScalingGroupName'<~String>: The name or ARN of the Auto Scaling group

  • options<~Hash>:

    • Granularity<~String>: The granularity to associate with the metrics to collect.

    • Metrics<~Array>: The list of metrics to collect. If no metrics are specified, all metrics are enabled.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_EnableMetricsCollection.html

# File lib/fog/aws/requests/auto_scaling/enable_metrics_collection.rb, line 33
def enable_metrics_collection(auto_scaling_group_name, granularity, options = {})
  if metrics = options.delete('Metrics')
    options.merge!(AWS.indexed_param('Metrics.member.%d', [*metrics]))
  end
  request({
    'Action'               => 'EnableMetricsCollection',
    'AutoScalingGroupName' => auto_scaling_group_name,
    'Granularity'          => granularity,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end
execute_policy(policy_name, options = {}) click to toggle source

Runs the policy you create for your Auto Scaling group in put_scaling_policy.

Parameters

  • 'PolicyName'<~String> - The name or PolicyARN of the policy you want to run.

  • options<~Hash>:

    • 'AutoScalingGroupName'<~String> - The name or ARN of the Auto Scaling group.

    • 'HonorCooldown'<~Boolean> - Set to true if you want Auto Scaling to reject this request if the Auto Scaling group is in cooldown.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_ExecutePolicy.html

# File lib/fog/aws/requests/auto_scaling/execute_policy.rb, line 28
def execute_policy(policy_name, options = {})
  request({
    'Action'     => 'ExecutePolicy',
    'PolicyName' => policy_name,
    :parser      => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end
put_notification_configuration(auto_scaling_group_name, notification_types, topic_arn) click to toggle source

Creates a notification configuration for an Auto Scaling group. To update an existing policy, overwrite the existing notification configuration name and set the parameter(s) you want to change.

Parameters

  • auto_scaling_group_name<~String> - The name of the Auto Scaling group.

  • notification_types<~Array> - The type of events that will trigger the notification.

  • topic_arn<~String> - The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_PutNotificationConfiguration.html

# File lib/fog/aws/requests/auto_scaling/put_notification_configuration.rb, line 27
def put_notification_configuration(auto_scaling_group_name, notification_types, topic_arn)
  params = AWS.indexed_param('NotificationTypes.member.%d', [*notification_types])
  request({
    'Action'               => 'PutNotificationConfiguration',
    'AutoScalingGroupName' => auto_scaling_group_name,
    'TopicARN'             => topic_arn,
    :parser                => Fog::Parsers::AWS::AutoScaling::PutNotificationConfiguration.new
  }.merge!(params))
end
put_scaling_policy(adjustment_type, auto_scaling_group_name, policy_name, scaling_adjustment, options = {}) click to toggle source

Creates or updates a policy for an Auto Scaling group. To update an existing policy, use the existing policy name and set the parameter(s) you want to change. Any existing parameter not changed in an update to an existing policy is not changed in this update request.

Parameters

  • adjustment_type<~String> - Specifies whether the scaling_adjustment is an absolute number or a percentage of the current capacity.

  • auto_scaling_group_name<~String> - The name or ARN of the Auto Scaling group.

  • policy_name<~String> - The name of the policy you want to create or update.

  • scaling_adjustment<~Integer> - The number of instances by which to scale. AdjustmentType determines the interpretation of this number (e.g., as an absolute number or as a percentage of the existing Auto Scaling group size). A positive increment adds to the current capacity and a negative value removes from the current capacity.

  • options<~Hash>:

    • 'Cooldown'<~Integer> - The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

      • 'PutScalingPolicyResult'<~Hash>:

        • 'PolicyARN'<~String> - A policy's Amazon Resource Name (ARN).

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_PutScalingPolicy.html

# File lib/fog/aws/requests/auto_scaling/put_scaling_policy.rb, line 41
def put_scaling_policy(adjustment_type, auto_scaling_group_name, policy_name, scaling_adjustment, options = {})
  request({
    'Action'               => 'PutScalingPolicy',
    'AdjustmentType'       => adjustment_type,
    'AutoScalingGroupName' => auto_scaling_group_name,
    'PolicyName'           => policy_name,
    'ScalingAdjustment'    => scaling_adjustment,
    :parser                => Fog::Parsers::AWS::AutoScaling::PutScalingPolicy.new
  }.merge!(options))
end
put_scheduled_update_group_action(auto_scaling_group_name, scheduled_action_name, time=nil, options = {}) click to toggle source

Creates a scheduled scaling action for a Auto Scaling group. If you leave a parameter unspecified, the corresponding value remains unchanged in the affected Auto Scaling group.

Parameters

  • auto_scaling_group_name<~String> - The name or ARN of the Auto Scaling Group.

  • scheduled_action_name<~String> - Name of this scaling action.

  • time<~Datetime> - The time for this action to start (deprecated: use StartTime, EndTime and Recurrence).

  • options<~Hash>:

    • 'DesiredCapacity'<~Integer> - The number of EC2 instances that should be running in this group.

    • 'EndTime'<~DateTime> - The time for this action to end.

    • 'MaxSize'<~Integer> - The maximum size for the Auto Scaling group.

    • 'MinSize'<~Integer> - The minimum size for the Auto Scaling group.

    • 'Recurrence'<~String> - The time when recurring future actions will start. Start time is specified by the user following the Unix cron syntax format. When StartTime and EndTime are specified with Recurrence, they form the boundaries of when the recurring action will start and stop.

    • 'StartTime'<~DateTime> - The time for this action to start

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_PutScheduledUpdateGroupAction.html

# File lib/fog/aws/requests/auto_scaling/put_scheduled_update_group_action.rb, line 41
def put_scheduled_update_group_action(auto_scaling_group_name, scheduled_action_name, time=nil, options = {})
  # The 'Time' paramenter is now an alias for StartTime and needs to be identical if specified.
  time = options['StartTime'].nil? ? time : options['StartTime']
  if !time.nil?
    time = time.class == Time ? time.utc.iso8601 : Time.parse(time).utc.iso8601
  end
  request({
    'Action'               => 'PutScheduledUpdateGroupAction',
    'AutoScalingGroupName' => auto_scaling_group_name,
    'ScheduledActionName'  => scheduled_action_name,
    'Time'                 => time,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end
reload() click to toggle source
# File lib/fog/aws/auto_scaling.rb, line 114
def reload
  @connection.reset
end
resume_processes(auto_scaling_group_name, options = {}) click to toggle source

Resumes Auto Scaling processes for an Auto Scaling group.

Parameters

  • auto_scaling_group_name'<~String> - The name or Amazon Resource Name (ARN) of the Auto Scaling group.

  • options<~Hash>:

    • 'ScalingProcesses'<~Array> - The processes that you want to resume. To resume all process types, omit this parameter.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_ResumeProcesses.html

# File lib/fog/aws/requests/auto_scaling/resume_processes.rb, line 25
def resume_processes(auto_scaling_group_name, options = {})
  if scaling_processes = options.delete('ScalingProcesses')
    options.merge!(AWS.indexed_param('ScalingProcesses.member.%d', [*scaling_processes]))
  end
  request({
    'Action'               => 'ResumeProcesses',
    'AutoScalingGroupName' => auto_scaling_group_name,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end
set_desired_capacity(auto_scaling_group_name, desired_capacity, options = {}) click to toggle source

Adjusts the desired size of the AutoScalingGroup by initiating scaling activities. When reducing the size of the group, it is not possible to define which EC2 instances will be terminated. This applies to any auto-scaling decisions that might result in terminating instances.

There are two common use cases for set_desired_capacity: one for users of the Auto Scaling triggering system, and another for developers who write their own triggering systems. Both use cases relate to the concept of cooldown.

In the first case, if you use the Auto Scaling triggering system, set_desired_capacity changes the size of your Auto Scaling group without regard to the cooldown period. This could be useful, for example, if Auto Scaling did something unexpected for some reason. If your cooldown period is 10 minutes, Auto Scaling would normally reject requests to change the size of the group for that entire 10 minute period. The set_desired_capacity command allows you to circumvent this restriction and change the size of the group before the end of the cooldown period.

In the second case, if you write your own triggering system, you can use set_desired_capacity to control the size of your Auto Scaling group. If you want the same cooldown functionality that Auto Scaling offers, you can configure set_desired_capacity to honor cooldown by setting the HonorCooldown parameter to true.

Parameters

  • auto_scaling_group_name<~String> - The name of the Auto Scaling group.

  • desired_capacity<~Integer> - The new capacity setting for the Auto Scaling group.

  • options<~Hash>:

    • 'HonorCooldown'<~Boolean> - By default, set_desired_capacity overrides any cooldown period. Set to true if you want Auto Scaling to reject this request if the Auto Scaling group is in cooldown.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_SetDesiredCapacity.html

# File lib/fog/aws/requests/auto_scaling/set_desired_capacity.rb, line 54
def set_desired_capacity(auto_scaling_group_name, desired_capacity, options = {})
  request({
    'Action'               => 'SetDesiredCapacity',
    'AutoScalingGroupName' => auto_scaling_group_name,
    'DesiredCapacity'      => desired_capacity,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end
set_instance_health(health_status, instance_id, options = {}) click to toggle source

Sets the health status of an instance.

Parameters

  • health_status<~String> - The health status of the instance. “Healthy” means that the instance is healthy and should remain in service. “Unhealthy” means that the instance is unhealthy. Auto Scaling should terminate and replace it.

  • instance_id<~String> - The identifier of the EC2 instance.

  • options<~Hash>:

    • 'ShouldRespectGracePeriod'<~Boolean> - If true, this call should

    respect the grace period associated with the group.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_SetInstanceHealth.html

# File lib/fog/aws/requests/auto_scaling/set_instance_health.rb, line 28
def set_instance_health(health_status, instance_id, options = {})
  request({
    'Action'       => 'SetInstanceHealth',
    'HealthStatus' => health_status,
    'InstanceId'   => instance_id,
    :parser        => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end
set_instance_protection(auto_scaling_group_name, options = {}) click to toggle source
# File lib/fog/aws/requests/auto_scaling/set_instance_protection.rb, line 27
def set_instance_protection(auto_scaling_group_name, options = {})
  if instance_ids = options.delete('InstanceIds')
    options.merge!(AWS.indexed_param('InstanceIds.member.%d', [*instance_ids]))
  end
  protected_from_scale_in = options.delete('ProtectedFromScaleIn')

  request({
    'Action'               => 'SetInstanceProtection',
    'AutoScalingGroupName' => auto_scaling_group_name,
    'ProtectedFromScaleIn' => protected_from_scale_in,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end
suspend_processes(auto_scaling_group_name, options = {}) click to toggle source

Suspends Auto Scaling processes for an Auto Scaling group. To suspend specific process types, specify them by name with the ScalingProcesses parameter. To suspend all process types, omit the ScalingProcesses.member.N parameter.

Parameters

  • 'AutoScalingGroupName'<~String> - The name or Amazon Resource Name (ARN) of the Auto Scaling group.

  • options<~Hash>:

    • 'ScalingProcesses'<~Array> - The processes that you want to suspend. To suspend all process types, omit this parameter.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_SuspendProcesses.html

# File lib/fog/aws/requests/auto_scaling/suspend_processes.rb, line 28
def suspend_processes(auto_scaling_group_name, options = {})
  if scaling_processes = options.delete('ScalingProcesses')
    options.merge!(AWS.indexed_param('ScalingProcesses.member.%d', [*scaling_processes]))
  end
  request({
    'Action'               => 'SuspendProcesses',
    'AutoScalingGroupName' => auto_scaling_group_name,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end
terminate_instance_in_auto_scaling_group(instance_id, should_decrement_desired_capacity) click to toggle source

Terminates the specified instance. Optionally, the desired group size can be adjusted.

Parameters

  • instance_id<~String> - The ID of the EC2 instance to be terminated.

  • should_decrement_desired_capacity<~Boolean> - Specifies whether (true) or not (false) terminating this instance should also decrement the size of the AutoScalingGroup.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • 'ResponseMetadata'<~Hash>:

        • 'RequestId'<~String> - Id of request

      • 'TerminateGroupInAutoScalingInstanceResult'<~Hash>:

        • 'ActivityId'<~String> - Specifies the ID of the activity.

        • 'AutoScalingGroupName'<~String> - The name of the Auto Scaling group.

        • 'Cause'<~String> - Contains the reason the activity was begun.

        • 'Description'<~String> - Contains a friendly, more verbose description of the scaling activity.

        • 'EndTime'<~Time> - Provides the end time of this activity.

        • 'Progress'<~Integer> - Specifies a value between 0 and 100 that indicates the progress of the activity.

        • 'StartTime'<~Time> - Provides the start time of this activity.

        • 'StatusCode'<~String> - Contains the current status of the activity.

        • 'StatusMessage'<~String> - Contains a friendly, more verbose description of the activity status.

See Also

docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_TerminateInstanceInAutoScalingGroup.html

# File lib/fog/aws/requests/auto_scaling/terminate_instance_in_auto_scaling_group.rb, line 42
def terminate_instance_in_auto_scaling_group(instance_id, should_decrement_desired_capacity)
  request({
    'Action'                         => 'TerminateInstanceInAutoScalingGroup',
    'InstanceId'                     => instance_id,
    'ShouldDecrementDesiredCapacity' => should_decrement_desired_capacity.to_s,
    :parser                          => Fog::Parsers::AWS::AutoScaling::TerminateInstanceInAutoScalingGroup.new
  })
end
update_auto_scaling_group(auto_scaling_group_name, options = {}) click to toggle source
# File lib/fog/aws/requests/auto_scaling/update_auto_scaling_group.rb, line 56
def update_auto_scaling_group(auto_scaling_group_name, options = {})
  if availability_zones = options.delete('AvailabilityZones')
    options.merge!(AWS.indexed_param('AvailabilityZones.member.%d', [*availability_zones]))
  end
  if termination_policies = options.delete('TerminationPolicies')
    options.merge!(AWS.indexed_param('TerminationPolicies.member.%d', [*termination_policies]))
  end
  request({
    'Action'               => 'UpdateAutoScalingGroup',
    'AutoScalingGroupName' => auto_scaling_group_name,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end

Private Instance Methods

_request(body, headers, idempotent, parser) click to toggle source
# File lib/fog/aws/auto_scaling.rb, line 149
def _request(body,  headers, idempotent, parser)
  begin
    @connection.request({
      :body       => body,
      :expects    => 200,
      :idempotent => idempotent,
      :headers    =>  headers,
      :method     => 'POST',
      :parser     => parser
    })
  rescue Excon::Errors::HTTPStatusError => error
    match = Fog::AWS::Errors.match_error(error)
    raise if match.empty?
    raise case match[:code]
          when 'AlreadyExists'
            Fog::AWS::AutoScaling::IdentifierTaken.slurp(error, match[:message])
          when 'ResourceInUse'
            Fog::AWS::AutoScaling::ResourceInUse.slurp(error, match[:message])
          when 'ValidationError'
            Fog::AWS::AutoScaling::ValidationError.slurp(error, CGI.unescapeHTML(match[:message]))
          else
            Fog::AWS::AutoScaling::Error.slurp(error, "#{match[:code]} => #{match[:message]}")
          end
  end
end
request(params) click to toggle source
# File lib/fog/aws/auto_scaling.rb, line 120
def request(params)
  refresh_credentials_if_expired

  idempotent  = params.delete(:idempotent)
  parser      = params.delete(:parser)

  body, headers = AWS.signed_params_v4(
    params,
    { 'Content-Type' => 'application/x-www-form-urlencoded' },
    {
      :aws_session_token  => @aws_session_token,
      :method             => 'POST',
      :signer             => @signer,
      :host               => @host,
      :path               => @path,
      :port               => @port,
      :version            => '2011-01-01'
    }
  )

  if @instrumentor
    @instrumentor.instrument("#{@instrumentor_name}.request", params) do
      _request(body, headers, idempotent, parser)
    end
  else
    _request(body,  headers, idempotent, parser)
  end
end
setup_credentials(options) click to toggle source
# File lib/fog/aws/auto_scaling.rb, line 175
def setup_credentials(options)
  @aws_access_key_id         = options[:aws_access_key_id]
  @aws_secret_access_key     = options[:aws_secret_access_key]
  @aws_session_token         = options[:aws_session_token]
  @aws_credentials_expire_at = options[:aws_credentials_expire_at]

  @signer = Fog::AWS::SignatureV4.new( @aws_access_key_id, @aws_secret_access_key, @region, 'autoscaling')
end