1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
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', 'Path'
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'
@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
|