Sha256: 2179886c3e8656041e3b456b26532458973a19e798bfa581fc06d56fba2f5465

Contents?: true

Size: 906 Bytes

Versions: 26

Compression:

Stored size: 906 Bytes

Contents

module Awspec::Type
  class IamRole < Base
    aws_resource Aws::IAM::Role

    def resource_via_client
      @resource_via_client ||= find_iam_role(@display_name)
    end

    def id
      @id ||= resource_via_client.role_id if resource_via_client
    end

    def has_iam_policy?(policy_id)
      policies = select_iam_policy_by_role_name(resource_via_client.role_name)
      policies.find do |policy|
        policy.policy_arn == policy_id || policy.policy_name == policy_id
      end
    end

    def has_inline_policy?(policy_name, document = nil)
      res = iam_client.get_role_policy({
                                         role_name: resource_via_client.role_name,
                                         policy_name: policy_name
                                       })
      return JSON.parse(URI.decode(res.policy_document)) == JSON.parse(document) if document
      res
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
awspec-0.69.1 lib/awspec/type/iam_role.rb
awspec-0.69.0 lib/awspec/type/iam_role.rb
awspec-0.68.0 lib/awspec/type/iam_role.rb
awspec-0.67.1 lib/awspec/type/iam_role.rb
awspec-0.67.0 lib/awspec/type/iam_role.rb
awspec-0.66.2 lib/awspec/type/iam_role.rb
awspec-0.66.1 lib/awspec/type/iam_role.rb
awspec-0.66.0 lib/awspec/type/iam_role.rb
awspec-0.65.2 lib/awspec/type/iam_role.rb
awspec-0.65.1 lib/awspec/type/iam_role.rb
awspec-0.65.0 lib/awspec/type/iam_role.rb
awspec-0.64.0 lib/awspec/type/iam_role.rb
awspec-0.63.1 lib/awspec/type/iam_role.rb
awspec-0.63.0 lib/awspec/type/iam_role.rb
awspec-0.62.1 lib/awspec/type/iam_role.rb
awspec-0.62.0 lib/awspec/type/iam_role.rb
awspec-0.61.1 lib/awspec/type/iam_role.rb
awspec-0.61.0 lib/awspec/type/iam_role.rb
awspec-0.60.1 lib/awspec/type/iam_role.rb
awspec-0.60.0 lib/awspec/type/iam_role.rb