class AWS::IAM::UserCollection

A collection that provides access to IAM users belonging to this account.

iam = AWS::IAM.new
users = iam.users

## Creating A User

To create an IAM user you need only provide a user name.

user = users.create('username')

You can also provide an optional ‘:path` that can be used to organize users.

user = users.create('johndoe', :path => '/staff/customer_support/')

## Getting a User by Name

You can get a referene to a user by using array notation:

user = users['username']

## Enumerating Users

A user collection can also be used to enumerate users:

users.each do |user|
  puts user.name
end

## Path Prefixes

You can also find/enumerate users who’s path begins with a given prefix:

users.each(:path_prefix => '/staff/developers/ruby').each do |ruby_dev|
  puts "#{ruby_dev.name} is awesome!"
end

Public Instance Methods

[](name) click to toggle source

Returns a reference to the user with the given name:

user = iam.users['username']

@param [String] name Name of the user to return a reference for. @return [User] Returns a reference to the named user.

# File lib/aws/iam/user_collection.rb, line 80
def [] name
  User.new(name.to_s, :config => config)
end
create(name, options = {}) click to toggle source

@param [String] name Name of the user to create. @option options [String] :path (‘/’) The path for the user name.

For more information about paths, see
[Identifiers for IAM Entities](http://docs.aws.amazon.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html)

@return [User] Returns the newly created user.

# File lib/aws/iam/user_collection.rb, line 65
def create name, options = {}
  create_opts = {}
  create_opts[:user_name] = name
  create_opts[:path] = options[:path] if options[:path]
  resp = client.create_user(create_opts)
  User.new_from(:create_user, resp.user,
    resp.user.user_name, :config => config)
end
each(options = {}) click to toggle source

Yields once for each user.

You can limit the number of users yielded using ‘:limit` and `:path_prefix`.

@param [Hash] options

@option options [String] :path_prefix (‘/’) A path prefix that

filters according to the path of the user.

@option options [Integer] :limit The maximum number of users to yield.

@option options [Integer] :batch_size The maximum number of users

to retrieve with each service request.

@yieldparam [User] user @return [nil]

Calls superclass method
# File lib/aws/iam/user_collection.rb, line 101
def each options = {}, &block
  super(options, &block)
end
enumerator(options = {}) click to toggle source

Returns an enumerable object for this collection. This can be useful if you want to call an enumerable method that does not accept options (e.g. ‘collect`, `first`, etc).

users.enumerator(:path_prefix => '/admin').collect(&:name)

@param (see each) @option (see each) @return [Enumerator]

Calls superclass method
# File lib/aws/iam/user_collection.rb, line 114
def enumerator options = {}
  super(options)
end

Protected Instance Methods

each_item(response) { |user| ... } click to toggle source

@api private

# File lib/aws/iam/user_collection.rb, line 120
def each_item response, &block
  response.users.each do |item|

    user = User.new_from(:list_users, item,
      item.user_name, :config => config)

    yield(user)

  end
end