class AWS::AutoScaling::TagCollection
Provides an interface for enumerating tags defined in Auto Scaling.
auto_scaling = AWS::AutoScaling.new auto_scaling.tags.each do |tag| puts "#{tag.key}:#{tag.value}" end
## Filters
You can filter the tags returned using {#filter}:
# returns tags with the key "role" auto_scaling.filter(:key, 'role').to_a # returns tags with the key "role" and value "webserver" auto_scaling.filter(:key, 'role').filter(:value, 'webserver')to_a # returns tags with the Auto Scaling group name "group1" auto_scaling.filter(:auto_scaling_group, 'group1').to_a # returns all tags that propagate at launch auto_scaling.filter(:propagate_at_launch, true).to_a
## Creating Tags
You can create Auto Scaling tags when you:
-
[create]{GroupCollection#create} an Auto Scaling group
-
[update]{Group#update} an Auto Scaling group
Both of these methods accept a `:tags` option.
tags = [ { :key => 'auto-scaling-instance' }, # tag name only { :key => 'role', :value => 'webserver' }, # tag name and value ] # creating a group with tags group = auto_scaling.groups.create('group-name', :tags => tags, ...) # updating a group's tags group.update(:tags => tags)
Public Class Methods
new(options = {})
click to toggle source
@api private
Calls superclass method
# File lib/aws/auto_scaling/tag_collection.rb, line 65 def initialize options = {} @filters = options.delete(:filters) || [] super end
Public Instance Methods
filter(name, *values)
click to toggle source
Filters the tags by the given filter name and value(s).
“ # return tags with the key “role” and the value “webserver” auto_scaling.tags.filter(:key, 'role').filer(:value, 'webserver') “
@param [Symbol] name Valid filter names include:
* :key * :value * :propagate_at_launch * :auto_scaling_group
@param [Array<String>] values
@return [TagCollection]
# File lib/aws/auto_scaling/tag_collection.rb, line 88 def filter name, *values name = name.to_s.gsub(/_/, '-') values = values.flatten.map(&:to_s) filter = { :name => name, :values => values } TagCollection.new(:filters => @filters + [filter], :config => config) end
Protected Instance Methods
_each_item(next_token, limit, options = {}) { |tag(to_hash.merge(:config => config))| ... }
click to toggle source
# File lib/aws/auto_scaling/tag_collection.rb, line 97 def _each_item next_token, limit, options = {}, &block options[:next_token] = next_token if next_token options[:max_records] = limit if limit options[:filters] = @filters unless @filters.empty? resp = client.describe_tags(options) resp.tags.each do |tag| yield(Tag.new(tag.to_hash.merge(:config => config))) end resp.data[:next_token] end