Sha256: b6057edafcb1c6d95731d6578d147c45f37234204d621b105ea7231aec2ec3f7
Contents?: true
Size: 1.75 KB
Versions: 7
Compression:
Stored size: 1.75 KB
Contents
# frozen_string_literal: true require 'awspec/error' module Awspec::Type class IamPolicy < ResourceBase def resource_via_client @resource_via_client ||= find_iam_policy(@display_name) end def id @id ||= resource_via_client.policy_id if resource_via_client end def attachable? check_existence resource_via_client.is_attachable end def attached_to_user?(user_id = nil) check_existence users = select_attached_users(id) if user_id user = find_iam_user(user_id) return false unless user users.any? do |u| u.user_name == user.user_name end else !users.empty? end end def attached_to_group?(group_id = nil) check_existence groups = select_attached_groups(@id) if group_id group = find_iam_group(group_id) return false unless group groups.any? do |g| g.group_name == group.group_name end else !groups.empty? end end def attached_to_role?(role_id = nil) check_existence roles = select_attached_roles(@id) if role_id role = find_iam_role(role_id) return false unless role roles.any? do |r| r.role_name == role.role_name end else !roles.empty? end end def has_policy_document?(document) res = iam_client.get_policy_version({ policy_arn: resource_via_client.arn, version_id: resource_via_client.default_version_id }) JSON.parse(URI.decode_www_form_component(res.policy_version.document)) == JSON.parse(document) end end end
Version data entries
7 entries across 7 versions & 1 rubygems