Sha256: fbde2a10472277630649e00db8300ae6e9d27593874127eb0e4089744d810759

Contents?: true

Size: 879 Bytes

Versions: 13

Compression:

Stored size: 879 Bytes

Contents

module Jets::Resource::Iam
  class ClassRole < Jets::Resource::Base
    include BaseRoleDefinition

    def initialize(app_class)
      @app_class = app_class.to_s # IE: PostsController, HardJob, Hello, HelloFunction
      @policy_definitions = app_class.class_iam_policy || [] # class_iam_policy contains definitions
      @managed_policy_definitions = app_class.class_managed_iam_policy || [] # class_managed_iam_policy contains definitions
    end

    def role_logical_id
      "{namespace}_iam_role".underscore
    end

    def role_name
      class_namespace = replacements[:namespace].underscore.dasherize
      "#{Jets.config.project_namespace}-#{class_namespace}-role" # camelized because used as template value
    end

    def replacements
      {
        namespace: @app_class.gsub('::','').camelize, # camelized because can be used as value
      }
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
jets-0.8.18 lib/jets/resource/iam/class_role.rb
jets-0.8.17 lib/jets/resource/iam/class_role.rb
jets-0.8.15 lib/jets/resource/iam/class_role.rb
jets-0.8.14 lib/jets/resource/iam/class_role.rb
jets-0.8.13 lib/jets/resource/iam/class_role.rb
jets-0.8.12 lib/jets/resource/iam/class_role.rb
jets-0.8.11 lib/jets/resource/iam/class_role.rb
jets-0.8.10 lib/jets/resource/iam/class_role.rb
jets-0.8.9 lib/jets/resource/iam/class_role.rb
jets-0.8.8 lib/jets/resource/iam/class_role.rb
jets-0.8.6 lib/jets/resource/iam/class_role.rb
jets-0.8.5 lib/jets/resource/iam/class_role.rb
jets-0.8.4 lib/jets/resource/iam/class_role.rb