class TerraformDevKit::Aws::S3

Public Class Methods

new(credentials, region) click to toggle source
# File lib/TerraformDevKit/aws/s3.rb, line 8
def initialize(credentials, region)
  @s3_client = ::Aws::S3::Client.new(
    credentials: credentials,
    region: region
  )
end

Public Instance Methods

create_bucket(bucket_name) click to toggle source
# File lib/TerraformDevKit/aws/s3.rb, line 15
def create_bucket(bucket_name)
  @s3_client.create_bucket(
    bucket: bucket_name
  )
end
delete_bucket(bucket_name) click to toggle source
# File lib/TerraformDevKit/aws/s3.rb, line 21
def delete_bucket(bucket_name)
  empty_bucket(bucket_name)

  @s3_client.delete_bucket(
    bucket: bucket_name
  )
end
empty_bucket(bucket_name) click to toggle source
# File lib/TerraformDevKit/aws/s3.rb, line 29
def empty_bucket(bucket_name)
  keys_to_delete = @s3_client
                  .list_objects_v2(bucket: bucket_name)
                  .contents
                  .map { |x| { key: x.key } }

  @s3_client.delete_objects(
    bucket: bucket_name,
    delete: {
      objects: keys_to_delete
    }
  )
end