resource "postgresql_grant" "main_admin_aws_s3_schema_ro" {
  database    = postgresql_database.aggregates.name
  role        = postgresql_role.aggregates_admin.name
  schema      = "aws_s3"
  object_type = "schema"
  privileges  = ["USAGE"]

  depends_on = [postgresql_extension.aws_s3]
}

resource "postgresql_grant" "main_owner_aws_s3_schema_ro" {
  database    = postgresql_database.aggregates.name
  role        = postgresql_role.aggregates_owner.name
  schema      = "aws_s3"
  object_type = "schema"
  privileges  = ["USAGE"]

  depends_on = [postgresql_extension.aws_s3]
}

resource "postgresql_grant" "main_user_aws_s3_schema_ro" {
  database    = postgresql_database.aggregates.name
  role        = postgresql_role.aggregates_user.name
  schema      = "aws_s3"
  object_type = "schema"
  privileges  = ["USAGE"]

  depends_on = [postgresql_extension.aws_s3]
}

resource "postgresql_grant" "main_reader_aws_s3_schema_ro" {
  database    = postgresql_database.aggregates.name
  role        = postgresql_role.aggregates_reader.name
  schema      = "aws_s3"
  object_type = "schema"
  privileges  = ["USAGE"]

  depends_on = [postgresql_extension.aws_s3]
}

resource "postgresql_grant" "main_admin_aws_s3_functions_exec" {
  database    = postgresql_database.aggregates.name
  role        = postgresql_role.aggregates_admin.name
  schema      = "aws_s3"
  object_type = "function"
  privileges  = ["EXECUTE"]

  depends_on = [postgresql_extension.aws_s3]
}

resource "postgresql_grant" "main_owner_aws_s3_functions_exec" {
  database    = postgresql_database.aggregates.name
  role        = postgresql_role.aggregates_owner.name
  schema      = "aws_s3"
  object_type = "function"
  privileges  = ["EXECUTE"]

  depends_on = [postgresql_extension.aws_s3]
}

resource "postgresql_grant" "main_user_aws_s3_functions_exec" {
  database    = postgresql_database.aggregates.name
  role        = postgresql_role.aggregates_user.name
  schema      = "aws_s3"
  object_type = "function"
  privileges  = ["EXECUTE"]

  depends_on = [postgresql_extension.aws_s3]
}

resource "postgresql_grant" "main_reader_aws_s3_functions_exec" {
  database    = postgresql_database.aggregates.name
  role        = postgresql_role.aggregates_reader.name
  schema      = "aws_s3"
  object_type = "function"
  privileges  = ["EXECUTE"]

  depends_on = [postgresql_extension.aws_s3]
}
