resource "aws_scheduler_schedule_group" "youtube_audit_schedule_group" {
  name = "${var.environment}-${var.event_bus_name}"
}

data "aws_iam_policy_document" "scheduler_access_policy_document" {
  statement {
    effect = "Allow"

    actions = [
      "scheduler:ListSchedules",
      "scheduler:ListScheduleGroups",
    ]

    resources = ["*"]
  }

  statement {
    effect = "Allow"

    actions = [
      "scheduler:ListTagsForResource"
    ]

    resources = [
      aws_scheduler_schedule_group.youtube_audit_schedule_group.arn
    ]
  }

  statement {
    effect = "Allow"

    actions = [
      "scheduler:CreateSchedule",
      "scheduler:DeleteSchedule",
      "scheduler:GetSchedule",
      "scheduler:UpdateSchedule",
    ]

    resources = [
      "${aws_scheduler_schedule_group.youtube_audit_schedule_group.arn}/*"
    ]
  }
}

resource "aws_iam_policy" "scheduler_access_policy" {
  name   = "Scheduler-${var.environment}-${var.service_name}-group-RW"
  policy = data.aws_iam_policy_document.scheduler_access_policy_document.json
}
