Sha256: 2d437001c57e3c2083536c57355631f17b9598e3a43cdb798d0aa469bab5aee9

Contents?: true

Size: 1.51 KB

Versions: 54

Compression:

Stored size: 1.51 KB

Contents

require 'forwardable'
require_relative '../resource'

module Convection
  module Model
    class Template
      class Resource
        ##
        # AWS::IAM::Policy
        ##
        class IAMPolicy < Resource
          extend Forwardable

          type 'AWS::IAM::Policy'
          property :group, 'Groups', :type => :list,
                                     :transform => (proc do |resource|
                                       depends_on(resource)
                                       resource
                                     end)
          property :role, 'Roles', :type => :list,
                                   :transform => (proc do |resource|
                                     depends_on(resource)
                                     resource
                                   end)
          property :user, 'Users', :type => :list,
                                   :transform => (proc do |resource|
                                     depends_on(resource)
                                     resource
                                   end)

          attr_reader :document
          def_delegators :@document, :allow, :id, :version, :statement
          def_delegator :@document, :name, :policy_name

          def initialize(*args)
            super
            @document = Model::Mixin::Policy.new(:template => @template)
          end

          def render
            super.tap do |r|
              document.render(r['Properties'])
            end
          end
        end
      end
    end
  end
end

Version data entries

54 entries across 54 versions & 1 rubygems

Version Path
convection-1.0.5 lib/convection/model/template/resource/aws_iam_policy.rb
convection-1.0.4 lib/convection/model/template/resource/aws_iam_policy.rb
convection-1.0.3 lib/convection/model/template/resource/aws_iam_policy.rb
convection-1.0.2 lib/convection/model/template/resource/aws_iam_policy.rb
convection-1.0.1 lib/convection/model/template/resource/aws_iam_policy.rb
convection-1.0.0.pre.beta.10 lib/convection/model/template/resource/aws_iam_policy.rb
convection-1.0.0.pre.beta.9 lib/convection/model/template/resource/aws_iam_policy.rb
convection-1.0.0.pre.beta.8 lib/convection/model/template/resource/aws_iam_policy.rb
convection-1.0.0.pre.beta.7 lib/convection/model/template/resource/aws_iam_policy.rb
convection-1.0.0.pre.beta.6 lib/convection/model/template/resource/aws_iam_policy.rb
convection-1.0.0.pre.beta.4 lib/convection/model/template/resource/aws_iam_policy.rb
convection-1.0.0.pre.beta.1 lib/convection/model/template/resource/aws_iam_policy.rb
convection-0.4.3 lib/convection/model/template/resource/aws_iam_policy.rb
convection-0.4.2 lib/convection/model/template/resource/aws_iam_policy.rb
convection-0.4.1 lib/convection/model/template/resource/aws_iam_policy.rb
convection-0.4.0 lib/convection/model/template/resource/aws_iam_policy.rb
convection-0.3.3.pre.beta.1 lib/convection/model/template/resource/aws_iam_policy.rb
convection-0.3.2 lib/convection/model/template/resource/aws_iam_policy.rb
convection-0.3.1 lib/convection/model/template/resource/aws_iam_policy.rb
convection-0.3.0 lib/convection/model/template/resource/aws_iam_policy.rb