def self.data
@data ||= Hash.new do |hash, key|
owner_id = Fog::AWS::Mock.owner_id
hash[key] = {
:owner_id => owner_id,
:instance_profiles => {},
:server_certificates => {},
:access_keys => [{
"Status" => "Active",
"AccessKeyId" => key
}],
:devices => [{
:enable_date => Time.now,
:serial_number => 'R1234',
:user_name => 'Bob'
}],
:markers => Hash.new { |mhash, mkey| mhash[mkey] = [] },
:managed_policies => Fog::AWS::IAM::Mock.default_policies.inject({}) { |r,p|
r.merge(p['Arn'] => p)
},
:managed_policy_versions => Fog::AWS::IAM::Mock.default_policy_versions.inject({}) { |r,(arn,pv)|
r.merge(arn => {pv["VersionId"] => pv})
},
:users => Hash.new do |uhash, ukey|
uhash[ukey] = {
:access_keys => [],
:arn => "arn:aws:iam::#{owner_id}:user/#{ukey}",
:attached_policies => [],
:created_at => Time.now,
:path => '/',
:policies => {},
:user_id => Fog::AWS::Mock.key_id
}
end,
:groups => Hash.new do |ghash, gkey|
ghash[gkey] = {
:arn => "arn:aws:iam::#{owner_id}:group/#{gkey}",
:attached_policies => [],
:created_at => Time.now,
:group_id => Fog::AWS::Mock.key_id,
:members => [],
:policies => {}
}
end,
:roles => Hash.new do |rhash, rkey|
rhash[rkey] = {
:role_id => Fog::AWS::Mock.key_id,
:arn => "arn:aws:iam:#{owner_id}:role/#{rkey}",
:create_date => Time.now,
:assume_role_policy_document => {
"Version" => "2012-10-17",
"Statement" => [
{
"Effect" => "Allow",
"Principal" => {
"Service" => [
"ec2.amazonaws.com"
]
},
"Action" => ["sts:AssumeRole"]
}
]
},
}
end
}
end
end