Class: Fog::AWS::AutoScaling::Real

Inherits:
Object
  • Object
show all
Includes:
CredentialFetcher::ConnectionMethods
Defined in:
lib/fog/aws/auto_scaling.rb,
lib/fog/aws/requests/auto_scaling/delete_policy.rb,
lib/fog/aws/requests/auto_scaling/execute_policy.rb,
lib/fog/aws/requests/auto_scaling/resume_processes.rb,
lib/fog/aws/requests/auto_scaling/describe_policies.rb,
lib/fog/aws/requests/auto_scaling/suspend_processes.rb,
lib/fog/aws/requests/auto_scaling/put_scaling_policy.rb,
lib/fog/aws/requests/auto_scaling/set_instance_health.rb,
lib/fog/aws/requests/auto_scaling/set_desired_capacity.rb,
lib/fog/aws/requests/auto_scaling/delete_scheduled_action.rb,
lib/fog/aws/requests/auto_scaling/create_auto_scaling_group.rb,
lib/fog/aws/requests/auto_scaling/delete_auto_scaling_group.rb,
lib/fog/aws/requests/auto_scaling/describe_adjustment_types.rb,
lib/fog/aws/requests/auto_scaling/enable_metrics_collection.rb,
lib/fog/aws/requests/auto_scaling/update_auto_scaling_group.rb,
lib/fog/aws/requests/auto_scaling/describe_scheduled_actions.rb,
lib/fog/aws/requests/auto_scaling/disable_metrics_collection.rb,
lib/fog/aws/requests/auto_scaling/create_launch_configuration.rb,
lib/fog/aws/requests/auto_scaling/delete_launch_configuration.rb,
lib/fog/aws/requests/auto_scaling/describe_scaling_activities.rb,
lib/fog/aws/requests/auto_scaling/describe_auto_scaling_groups.rb,
lib/fog/aws/requests/auto_scaling/describe_launch_configurations.rb,
lib/fog/aws/requests/auto_scaling/describe_scaling_process_types.rb,
lib/fog/aws/requests/auto_scaling/put_notification_configuration.rb,
lib/fog/aws/requests/auto_scaling/describe_auto_scaling_instances.rb,
lib/fog/aws/requests/auto_scaling/describe_metric_collection_types.rb,
lib/fog/aws/requests/auto_scaling/delete_notification_configuration.rb,
lib/fog/aws/requests/auto_scaling/put_scheduled_update_group_action.rb,
lib/fog/aws/requests/auto_scaling/terminate_instance_in_auto_scaling_group.rb

Instance Method Summary collapse

Methods included from CredentialFetcher::ConnectionMethods

#refresh_credentials_if_expired

Constructor Details

#initialize(options = {}) ⇒ Real

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

  • AutoScaling object with connection to AWS.



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/fog/aws/auto_scaling.rb', line 73

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] || "autoscaling.#{options[:region]}.amazonaws.com"
  @path       = options[:path]        || '/'
  @port       = options[:port]        || 443
  @persistent = options[:persistent]  || false
  @scheme     = options[:scheme]      || 'https'
  @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)
end

Instance Method Details

#create_auto_scaling_group(auto_scaling_group_name, availability_zones, launch_configuration_name, max_size, min_size, options = {}) ⇒ Object

Creates a new Auto Scaling group with the specified name. Once the creation request is completed, the AutoScalingGroup is ready to be used in other calls.

Parameters

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

  • availability_zones<~Array> - A list of availability zones for the Auto Scaling group.

  • launch_configuration_name<~String> - The name of the launch configuration to use with the Auto Scaling group.

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

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

  • options<~Hash>:

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

    • ‘DesiredCapacity’<~Integer> - The number of EC2 instances that should be running in the group. For more information, see set_desired_capacity.

    • ‘HealthCheckGracePeriod’<~Integer> - Length of time in seconds after a new EC2 instance comes into service that Auto Scaling starts checking its health.

    • ‘HealthCheckType’<~String> - The service you want the health status from, Amazon EC2 or Elastic Load Balancer. Valid values are “EC2” or “ELB”.

    • ‘LoadBalancerNames’<~Array> - A list of LoadBalancers to use.

    • ‘PlacementGroup’<~String> - Physical location of your cluster

      placement group created in Amazon EC2.
      
    • ‘VPCZoneIdentifier’<~String> - Subnet identifier of the Virtual Private Cloud.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘ResponseMetadata’<~Hash>:

        • ‘RequestId’<~String> - Id of request

See Also

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



50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/fog/aws/requests/auto_scaling/create_auto_scaling_group.rb', line 50

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]))
  if load_balancer_names = options.delete('LoadBalancerNames')
    options.merge!(AWS.indexed_param('LoadBalancerNames.member.%d', [*load_balancer_names]))
  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 = {}) ⇒ Object

Creates a new launch configuration. Once 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> - Enable/Disable detailed monitoring, default is enabled

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

    • ‘KeyName’<~String> - The name of the EC2 key pair.

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

    • ‘SecurityGroups’<~Array> - The names of the security groups with which to associate EC2 instances.

    • ‘UserData’<~String> - User data available to the launched EC2 instances.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘ResponseMetadata’<~Hash>:

        • ‘RequestId’<~String> - Id of request

See Also

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



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/fog/aws/requests/auto_scaling/create_launch_configuration.rb', line 47

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 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

#delete_auto_scaling_group(auto_scaling_group_name) ⇒ Object

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.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘ResponseMetadata’<~Hash>:

        • ‘RequestId’<~String> - Id of request

See Also

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



25
26
27
28
29
30
31
# File 'lib/fog/aws/requests/auto_scaling/delete_auto_scaling_group.rb', line 25

def delete_auto_scaling_group(auto_scaling_group_name)
  request({
    'Action'               => 'DeleteAutoScalingGroup',
    'AutoScalingGroupName' => auto_scaling_group_name,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  })
end

#delete_launch_configuration(launch_configuration_name) ⇒ Object

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



28
29
30
31
32
33
34
# File 'lib/fog/aws/requests/auto_scaling/delete_launch_configuration.rb', line 28

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) ⇒ Object

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 you wish to delete.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘ResponseMetadata’<~Hash>:

        • ‘RequestId’<~String> - Id of request

See Also

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



26
27
28
29
30
31
32
33
# File 'lib/fog/aws/requests/auto_scaling/delete_notification_configuration.rb', line 26

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) ⇒ Object

  • 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



26
27
28
29
30
31
32
33
# File 'lib/fog/aws/requests/auto_scaling/delete_policy.rb', line 26

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) ⇒ Object

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



27
28
29
30
31
32
33
34
# File 'lib/fog/aws/requests/auto_scaling/delete_scheduled_action.rb', line 27

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

#describe_adjustment_typesObject

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



24
25
26
27
28
29
# File 'lib/fog/aws/requests/auto_scaling/describe_adjustment_types.rb', line 24

def describe_adjustment_types()
  request({
    'Action' => 'DescribeAdjustmentTypes',
    :parser  => Fog::Parsers::AWS::AutoScaling::DescribeAdjustmentTypes.new
  })
end

#describe_auto_scaling_groups(options = {}) ⇒ Object

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> - 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

      • ‘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 umber of seconds after a scaling activity completes before any further scaling activities can start.

            • ‘DesiredCapacity’<~Integer> - Specifies the desired capacity of the AutoScalingGroup.

            • ‘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 group.

            • ‘MinSize’<~Integer> - The minimum size of the 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.

            • ‘VPCZoneIdentifier’<~String> - The identifier for the VPC connection, if applicable.

        • ‘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_DescribeAutoScalingGroups.html



94
95
96
97
98
99
100
101
102
# File 'lib/fog/aws/requests/auto_scaling/describe_auto_scaling_groups.rb', line 94

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 = {}) ⇒ Object

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



59
60
61
62
63
64
65
66
67
# File 'lib/fog/aws/requests/auto_scaling/describe_auto_scaling_instances.rb', line 59

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_launch_configurations(options = {}) ⇒ Object

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.

            • ‘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



74
75
76
77
78
79
80
81
82
# File 'lib/fog/aws/requests/auto_scaling/describe_launch_configurations.rb', line 74

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_typesObject

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_DescribeAutoScalingInstances.html



26
27
28
29
30
31
# File 'lib/fog/aws/requests/auto_scaling/describe_metric_collection_types.rb', line 26

def describe_metric_collection_types()
  request({
    'Action' => 'DescribeMetricCollectionTypes',
    :parser  => Fog::Parsers::AWS::AutoScaling::DescribeMetricCollectionTypes.new
  })
end

#describe_policies(options = {}) ⇒ Object

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



63
64
65
66
67
68
69
70
71
# File 'lib/fog/aws/requests/auto_scaling/describe_policies.rb', line 63

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 = {}) ⇒ Object

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



66
67
68
69
70
71
72
73
74
# File 'lib/fog/aws/requests/auto_scaling/describe_scaling_activities.rb', line 66

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_typesObject

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



25
26
27
28
29
30
# File 'lib/fog/aws/requests/auto_scaling/describe_scaling_process_types.rb', line 25

def describe_scaling_process_types()
  request({
    'Action' => 'DescribeScalingProcessTypes',
    :parser  => Fog::Parsers::AWS::AutoScaling::DescribeScalingProcessTypes.new
  })
end

#describe_scheduled_actions(options = {}) ⇒ Object

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



66
67
68
69
70
71
72
73
74
# File 'lib/fog/aws/requests/auto_scaling/describe_scheduled_actions.rb', line 66

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

#disable_metrics_collection(auto_scaling_group_name, options = {}) ⇒ Object

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



29
30
31
32
33
34
35
36
37
38
# File 'lib/fog/aws/requests/auto_scaling/disable_metrics_collection.rb', line 29

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 = {}) ⇒ Object

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



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/fog/aws/requests/auto_scaling/enable_metrics_collection.rb', line 35

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 = {}) ⇒ Object

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



30
31
32
33
34
35
36
# File 'lib/fog/aws/requests/auto_scaling/execute_policy.rb', line 30

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) ⇒ Object

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



28
29
30
31
32
33
34
35
36
37
# File 'lib/fog/aws/requests/auto_scaling/put_notification_configuration.rb', line 28

def put_notification_configuration(auto_scaling_group_name, notification_types, topic_arn)
  options = {}
  options.merge!(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!(options))
end

#put_scaling_policy(adjustment_type, auto_scaling_group_name, policy_name, scaling_adjustment, options = {}) ⇒ Object

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



43
44
45
46
47
48
49
50
51
52
# File 'lib/fog/aws/requests/auto_scaling/put_scaling_policy.rb', line 43

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 = {}) ⇒ Object

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



40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/fog/aws/requests/auto_scaling/put_scheduled_update_group_action.rb', line 40

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

#reloadObject



89
90
91
# File 'lib/fog/aws/auto_scaling.rb', line 89

def reload
  @connection.reset
end

#resume_processes(auto_scaling_group_name, options = {}) ⇒ Object

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



27
28
29
30
31
32
33
34
35
36
# File 'lib/fog/aws/requests/auto_scaling/resume_processes.rb', line 27

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 = {}) ⇒ Object

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



56
57
58
59
60
61
62
63
# File 'lib/fog/aws/requests/auto_scaling/set_desired_capacity.rb', line 56

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 = {}) ⇒ Object

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



30
31
32
33
34
35
36
37
# File 'lib/fog/aws/requests/auto_scaling/set_instance_health.rb', line 30

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

#suspend_processes(auto_scaling_group_name, options = {}) ⇒ Object

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



30
31
32
33
34
35
36
37
38
39
# File 'lib/fog/aws/requests/auto_scaling/suspend_processes.rb', line 30

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) ⇒ Object

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



44
45
46
47
48
49
50
51
# File 'lib/fog/aws/requests/auto_scaling/terminate_instance_in_auto_scaling_group.rb', line 44

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 = {}) ⇒ Object

Updates the configuration for the specified AutoScalingGroup.

The new settings are registered upon the completion of this call. Any launch configuration settings take effect on any triggers after this call returns. Triggers that are currently in progress aren’t affected.

Parameters

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

  • options<~Hash>:

    • ‘AvailabilityZones’<~Array>: Availability zones for the group

    • ‘DefaultCooldown’<~Integer> - Amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start

    • ‘DesiredCapacity’<~Integer> - Desired capacity for the scaling group

    • ‘HealthCheckGracePeriod’<~Integer> - Length of time that Auto

      Scaling waits before checking an instance's health status
      
    • ‘HealthCheckType’<~String> - Service of interest for the health status check, either “EC2” or “ELB”.

    • ‘LaunchConfigurationName’<~String> - Name of the launch configuration

    • ‘MaxSize’<~Integer> - Maximum size of the Auto Scaling group

    • ‘MinSize’<~Integer> - Minimum size of the Auto Scaling group

    • ‘PlacementGroup’<~String> - Name of the cluster placement group, if applicable

    • ‘VPCZoneIdentifier’<~String> - Identifier for the VPC connection, if applicable

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘ResponseMetadata’<~Hash>:

        • ‘RequestId’<~String> - Id of request

See Also

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



46
47
48
49
50
51
52
53
54
55
# File 'lib/fog/aws/requests/auto_scaling/update_auto_scaling_group.rb', line 46

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
  request({
    'Action'               => 'UpdateAutoScalingGroup',
    'AutoScalingGroupName' => auto_scaling_group_name,
    :parser                => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end