terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

provider "aws" {
  region                      = "us-east-2"
  access_key                  = "test"
  secret_key                  = "test"
  skip_credentials_validation = true
  skip_metadata_api_check     = true
  skip_region_validation      = true
  skip_requesting_account_id  = true
  s3_use_path_style           = true

  endpoints {
    s3 = "http://localhost:4566"
  }
}

# Create the S3 bucket
resource "aws_s3_bucket" "mqmanager" {
  bucket = "mqmanager"

  tags = {
    Name        = "LocalStack Test Bucket"
    Environment = "dev"
  }
}

# Allow public access
resource "aws_s3_bucket_public_access_block" "mqmanager" {
  bucket = aws_s3_bucket.mqmanager.id

  block_public_acls       = false
  block_public_policy     = false
  ignore_public_acls      = false
  restrict_public_buckets = false
}

# Public read policy
resource "aws_s3_bucket_policy" "mqmanager_public_read" {
  bucket     = aws_s3_bucket.mqmanager.id
  depends_on = [aws_s3_bucket_public_access_block.mqmanager]

  policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Sid       = "PublicReadGetObject"
        Effect    = "Allow"
        Principal = "*"
        Action    = "s3:GetObject"
        Resource  = "arn:aws:s3:::mqmanager/*"
      }
    ]
  })
}
