def describe_tags(filters = {})
response = Excon::Response.new
tag_set = deep_clone(self.data[:tags])
aliases = {
'key' => 'key',
'resource-id' => 'resourceId',
'resource-type' => 'resourceType',
'value' => 'value'
}
for filter_key, filter_value in filters
filter_attribute = aliases[filter_key]
case filter_attribute
when 'key'
tag_set.reject! { |k,_| k != filter_value }
when 'value'
tag_set.each { |k,values| values.reject! { |v, _| v != filter_value } }
when 'resourceId'
filter_resources(tag_set, 'resourceId', filter_value)
when 'resourceType'
filter_resources(tag_set, 'resourceType', filter_value)
end
end
tagged_resources = []
tag_set.each do |key, values|
values.each do |value, resources|
resources.each do |resource|
tagged_resources << resource.merge({
'key' => key,
'value' => value
})
end
end
end
response.status = 200
response.body = {
'requestId' => Fog::AWS::Mock.request_id,
'tagSet' => tagged_resources
}
response
end