# Re-encode workflow (CDAM-4129): re-runs validate_analysis +
# create_streamable_preview_and_thumbnails with corrected crop/clip overrides.
resource "aws_iam_role" "video_ingestion_reencode_workflow_state_machine_role" {
  name               = "${var.environment}_video_ingestion_reencode_workflow_state_machine_role"
  assume_role_policy = data.aws_iam_policy_document.assume_statemachines_role.json
}

resource "aws_sfn_state_machine" "video_ingestion_reencode_workflow" {
  name     = "${var.environment}_${var.video_ingestion_reencode_workflow_state_machine_name}"
  role_arn = aws_iam_role.video_ingestion_reencode_workflow_state_machine_role.arn
  definition = templatefile("${path.module}/${var.video_ingestion_reencode_workflow_state_machine_definition_file}", {
    daemon_video_start_workflow_arn                                   = aws_sfn_activity.daemon_video_start_workflow.id
    daemon_video_validate_analysis_arn                                = aws_sfn_activity.daemon_video_validate_analysis.id
    daemon_video_create_streamable_preview_and_thumbnails_arn         = aws_sfn_activity.daemon_video_create_streamable_preview_and_thumbnails.id
    daemon_video_is_create_streamable_preview_and_thumbnails_done_arn = aws_sfn_activity.daemon_video_is_create_streamable_preview_and_thumbnails_done.id
    daemon_video_end_workflow_arn                                     = aws_sfn_activity.daemon_video_end_workflow.id
  })
  tags = {
    application_family = var.application_family
    environment        = var.environment
    service_name       = var.video_ingestion_reencode_workflow_state_machine_name
    terraformed        = true
  }
  tracing_configuration {
    enabled = true
  }
}
