class Convection::Model::Template::Resource::S3BucketPolicy
@example
s3_bucket_policy 'BucketPolicy' do bucket "my-bucket" allow do principal :AWS => '*' s3_resource "my-bucket", '*' action 's3:GetObject' end end
Attributes
document[R]
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
Convection::Model::Template::Resource::new
# File lib/convection/model/template/resource/aws_s3_bucket_policy.rb, line 28 def initialize(*args) super @document = Model::Mixin::Policy.new(:name => false, :template => @template) end
Public Instance Methods
render()
click to toggle source
Calls superclass method
Convection::Model::Template::Resource#render
# File lib/convection/model/template/resource/aws_s3_bucket_policy.rb, line 55 def render super.tap do |r| document.render(r['Properties']) end end
terraform_import_commands(*)
click to toggle source
# File lib/convection/model/template/resource/aws_s3_bucket_policy.rb, line 33 def terraform_import_commands(*) commands = ['# Run the following commands to import your infrastructure into terraform management.', '# ensure :module_path is set correctly', ''] commands << '# Import s3 bucket and s3 bucket policy: ' # commands << "terraform import #{module_prefix}aws_s3_bucket.#{name.underscore} #{stack.resources[name].physical_resource_id}" commands << '' commands end
to_hcl_json(*)
click to toggle source
# File lib/convection/model/template/resource/aws_s3_bucket_policy.rb, line 41 def to_hcl_json(*) policy_json = resources[name] && resources[name].document.document.to_json.gsub(stack.resources[name].physical_resource_id, bucket) policy_resource = { name.underscore => { bucket: bucket, policy: policy_json } } data = [{ aws_region: { current: { current: true } } }] vars = [{ cloud: { description: 'The cloud name for this resource.' } }] { resource: { aws_s3_bucket_policy: policy_resource }, data: data, variable: vars }.to_json end