Class: AWS::EC2::TagCollection

Inherits:
Collection show all
Defined in:
lib/aws/ec2/tag_collection.rb

Overview

Represents all EC2 tags in an account.

Instance Attribute Summary

Attributes included from Core::Model

#config

Instance Method Summary collapse

Methods included from FilteredCollection

#filter, #filtered_request, #initialize

Methods included from Core::Model

#client, #config_prefix, #initialize, #inspect

Instance Method Details

#[](tag_name) ⇒ Tag

Returns a reference to a tag with the given name.

Returns:

  • (Tag)

    Returns a reference to a tag with the given name.



71
72
73
# File 'lib/aws/ec2/tag_collection.rb', line 71

def [] tag_name
  super
end

#create(resource, key, options = {}) ⇒ Tag

Creates a new Tag and assigns it to an EC2 resource.

Examples:

tagging with names (keys) only


ec2.tags.create(instance, 'webserver')

tagging with names (keys) and values


ec2.tags.create(instance, 'stage', 'production')

Parameters:

  • resource (Object)

    The item to tag. This should be a taggable EC2 resource, like an instance, security group, etc.

  • key (String)

    The tag key (or name).

  • options (Hash) (defaults to: {})
  • optins (Hash)

    a customizable set of options

Returns:



62
63
64
65
66
67
68
# File 'lib/aws/ec2/tag_collection.rb', line 62

def create resource, key, options = {}
  value = options[:value].to_s
  client.create_tags(
    :resources => [resource.id],
    :tags => [{ :key => key, :value => value }])
  Tag.new(resource, key, :value => value, :config => config)
end

#each {|tag| ... } ⇒ nil

Yields once for each tag.

Yields:

  • (tag)

Yield Parameters:

Returns:

  • (nil)


79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/aws/ec2/tag_collection.rb', line 79

def each &block
  response = filtered_request(:describe_tags)
  response.tag_set.each do |tag|

    resource_class_name = Core::Inflection.class_name(tag.resource_type)
    if EC2.const_defined?(resource_class_name)
      resource_class = EC2.const_get(resource_class_name)
      resource = resource_class.new(tag.resource_id, :config => config)
    else
      resource = ResourceObject.new(tag.resource_id,
                                    :resource_type => tag.resource_type,
                                    :config => config)
    end

    yield(Tag.new(resource, tag.key))

  end
  nil
end