provider "snowflake" {
  account_name = "delphi"
  role         = "PROD_ATLANTIS"

  preview_features_enabled = [
    "snowflake_storage_integration_resource",
    "snowflake_stage_resource",
  ]
}

module "database" {
  source = "../../../modules/database"

  database_name = "TERRAFORM_SNOWFLAKE_TEST"

  schemas = [
    {
      name    = "SCHEMA_A"
      managed = false
    },
  ]
}

resource "snowflake_storage_integration" "test_integration" {
  name             = "test-s3-integration"
  storage_provider = "S3"

  storage_allowed_locations = ["s3://dev-cucumbers/"]

  storage_aws_role_arn = "arn:aws:iam::103233932089:role/dev-cucumbers-snowflake-integration-role"
}

resource "snowflake_stage" "test_stage" {
  name                = "test-s3-stage"
  url                 = "s3://dev-cucumbers/"
  database            = "TERRAFORM_SNOWFLAKE_TEST"
  schema              = "SCHEMA_A"
  storage_integration = snowflake_storage_integration.test_integration.name
}

module "role" {
  source   = "../../../modules/roles/stage_access"
  database = snowflake_stage.test_stage.database
  schema   = snowflake_stage.test_stage.schema
  stage    = snowflake_stage.test_stage.name
}
