module AWS::AutoScaling::GroupOptions
This mixin provides a method for parsing Auto Scaling group options (for create and update methods). @api private
Protected Instance Methods
# File lib/aws/auto_scaling/group_options.rb, line 126 def az_opt options zones = options[:availability_zones] zones.map {|zone| zone.is_a?(EC2::AvailabilityZone) ? zone.name : zone } end
@param [Hash] options
@option options [required,Integer] :min_size
The maximum size of the Auto Scaling group.
@option options [required,Integer] :max_size
The minimum size of the Auto Scaling group.
@option options [required,LaunchConfiguration,String] :launch_configuration
The launch configuration to use with the Auto Scaling group. This may be a {LaunchConfiguration} object or a launch configuration name string.
@option options [required,Array<String>] :availability_zones
A list of Availability Zones for the Auto Scaling group. This can be {EC2::AvailabilityZone} objects or availability zone names.
@option options [Integer] :default_cooldown
The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start.
@option options [Integer] :desired_capacity
The number of Amazon EC2 instances that should be running in the group.
@option options [Integer] :health_check_grace_period
Length of time in seconds after a new Amazon EC2 instance comes into service that Auto Scaling starts checking its health.
@option options [Symbol] :health_check_type
The service you want the health status from, Amazon EC2 or Elastic Load Balancer. Valid values are `:ec2` or `:elb`.
@option options [String] :placement_group
Physical location of your cluster placement group created in Amazon EC2. For more information about cluster placement group, see [Using Cluster Instances](http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/using_cluster_computing.html).
@option options [Array<String>] :termination_policies
A standalone termination policy or a list of termination policies used to select the instance to terminate. The policies are executed in the order they are listed. For more information on creating a termination policy for your Auto Scaling group, go to [Instance Termination Policy for Your Auto Scaling Group](http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/us-termination-policy.html) in the Auto Scaling Developer Guide.
@option options [Array<Hash>] :tags A list of tags to apply launched
instances. Each tag hash may have the following keys: * `:key` - (required,String) The tag name. * `:value` - (String) The optional tag value. * `:propagate_at_launch` - (Boolean) Whether or not to propagate to instances, defaults to true.
@option options [Array<EC2::Subnet>,Array<String>] :subnets
A list of subnet identifiers of Amazon Virtual Private Clouds (Amazon VPCs). Ensure the subnets' Availability Zones match the Availability Zones specified.
@return [Hash]
# File lib/aws/auto_scaling/group_options.rb, line 87 def group_options options group_opts = {} group_opts[:launch_configuration_name] = launch_config_opt(options) if options.key?(:launch_configuration) group_opts[:availability_zones] = az_opt(options) if options.key?(:availability_zones) group_opts[:vpc_zone_identifier] = subnets_opt(options) if options.key?(:subnets) group_opts[:health_check_type] = health_check_type_opt(options) if options.key?(:health_check_type) group_opts[:tags] = tags_opt(options) if options.key?(:tags) [ :min_size, :max_size, :default_cooldown, :desired_capacity, :health_check_grace_period, :placement_group, :termination_policies, ].each do |opt| group_opts[opt] = options[opt] if options.key?(opt) end group_opts end
# File lib/aws/auto_scaling/group_options.rb, line 143 def health_check_type_opt options options[:health_check_type].to_s.upcase end
# File lib/aws/auto_scaling/group_options.rb, line 121 def launch_config_opt options lc = options[:launch_configuration] lc.is_a?(LaunchConfiguration) ? lc.name : lc end
# File lib/aws/auto_scaling/group_options.rb, line 131 def load_balancers_opt options options[:load_balancers].collect do |lb| lb.is_a?(ELB::LoadBalancer) ? lb.name : lb end end
# File lib/aws/auto_scaling/group_options.rb, line 137 def subnets_opt options options[:subnets].collect do |subnet| subnet.is_a?(EC2::Subnet) ? subnet.id : subnet end.join(',') end