mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
55 lines
1.4 KiB
Ruby
55 lines
1.4 KiB
Ruby
module Fog
|
|
module Parsers
|
|
module AWS
|
|
module IAM
|
|
|
|
class GetGroup < Fog::Parsers::Base
|
|
# http://docs.amazonwebservices.com/IAM/latest/APIReference/index.html?API_GetGroup.html
|
|
|
|
def reset
|
|
@user = {}
|
|
@response = { 'Group' => {}, 'Users' => [] }
|
|
end
|
|
|
|
def start_element(name, attrs = [])
|
|
super
|
|
case name
|
|
when 'Group'
|
|
@in_group = true
|
|
when 'Users'
|
|
@in_users = true
|
|
end
|
|
end
|
|
|
|
def end_element(name)
|
|
case name
|
|
when 'Arn'
|
|
if @in_group
|
|
@response['Group'][name] = value
|
|
elsif @in_users
|
|
@user[name] = value
|
|
end
|
|
when 'Group'
|
|
@in_group = false
|
|
when 'GroupName', 'GroupId'
|
|
@response['Group'][name] = value
|
|
when 'Users'
|
|
@in_users = false
|
|
when 'UserId', 'UserName', 'Path'
|
|
@user[name] = value
|
|
when 'member'
|
|
@response['Users'] << @user
|
|
@user = {}
|
|
when 'IsTruncated'
|
|
response[name] = (value == 'true')
|
|
when 'Marker', 'RequestId'
|
|
@response[name] = value
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|
|
end
|