Sha256: bbd77a40d74754599d6145f6cb0b7b26d08d3ecee3131bc19b5ff45c9bc9e260

Contents?: true

Size: 1.18 KB

Versions: 13

Compression:

Stored size: 1.18 KB

Contents

module Awspec::Type
  class IamPolicy < Base
    def initialize(id)
      super
      @resource_via_client = find_iam_policy(id)
      @id = @resource_via_client[:policy_id] if @resource_via_client
    end

    def attachable?
      @resource_via_client.is_attachable
    end

    def attached_to_user?(user_id = nil)
      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)
      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)
      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
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
awspec-0.33.0 lib/awspec/type/iam_policy.rb
awspec-0.32.0 lib/awspec/type/iam_policy.rb
awspec-0.31.0 lib/awspec/type/iam_policy.rb
awspec-0.30.0 lib/awspec/type/iam_policy.rb
awspec-0.29.0 lib/awspec/type/iam_policy.rb
awspec-0.28.1 lib/awspec/type/iam_policy.rb
awspec-0.28.0 lib/awspec/type/iam_policy.rb
awspec-0.27.2 lib/awspec/type/iam_policy.rb
awspec-0.27.1 lib/awspec/type/iam_policy.rb
awspec-0.27.0 lib/awspec/type/iam_policy.rb
awspec-0.26.2 lib/awspec/type/iam_policy.rb
awspec-0.26.1 lib/awspec/type/iam_policy.rb
awspec-0.26.0 lib/awspec/type/iam_policy.rb