module "slzDdexReleaseFlow_role" {
  source      = "../../../modules/iam/roles/stepfunction_role"
  name_prefix = local.name_prefix
  name        = "slzDdexReleaseFlow_role"
  common_tags = merge(
    local.common_tags,
    {
      project                  = "SLZ Ingestion",
      service                  = "Step Functions",
      plat_env_project_service = "${local.aggregated_tag}_SLZI_SFU"
    }
  )
  policies_list = [
    module.iam_map.lambda_invoke.arn,
    data.aws_iam_policy.logging.arn,
  ]
}

resource "aws_sfn_state_machine" "slzDdexReleaseFlow" {
  name       = "${local.name_prefix}-slzDdexReleaseFlow"
  role_arn   = module.slzDdexReleaseFlow_role.role.arn
  definition = <<EOF
{
  "StartAt": "Placeholder",
  "States": {
    "Placeholder": {
      "Type": "Pass",
      "End": true
    }
  }
}
EOF
  tags = merge(
    local.common_tags,
    {
      project                  = "SLZ Ingestion",
      service                  = "Step Functions",
      plat_env_project_service = "${local.aggregated_tag}_SLZI_SFU"
    }
  )
  lifecycle {
    ignore_changes = [definition]
  }
}

module "slz_ddex_downloader_role" {
  source                     = "../../../modules/iam/roles/lambda_role"
  name_prefix                = local.name_prefix
  name                       = "slz_ddex_downloader_role"
  allow_execution_inside_vpc = true
  common_tags = merge(
    local.common_tags,
    {
      project                  = "SLZ Ingestion",
      service                  = "Step Functions",
      plat_env_project_service = "${local.aggregated_tag}_SLZI_SFU"
    }
  )
  policies_list = [
    module.iam_map.s3_env_rw.arn,
    module.iam_map.s3_sme_data_rw.arn,
    data.aws_iam_policy.ddex_feed_rw_policy.arn,
    data.aws_iam_policy.logging.arn,
    data.aws_iam_policy.secrets-services-ro.arn,
  ]
}

module "slz_ddex_housekeeping_role" {
  source                     = "../../../modules/iam/roles/lambda_role"
  name_prefix                = local.name_prefix
  name                       = "slz_ddex_housekeeping_role"
  allow_execution_inside_vpc = true
  common_tags = merge(
    local.common_tags,
    {
      project                  = "SLZ Ingestion",
      service                  = "Step Functions",
      plat_env_project_service = "${local.aggregated_tag}_SLZI_SFU"
    }
  )
  policies_list = [
    module.iam_map.s3_env_rw.arn,
    module.iam_map.s3_sme_data_rw.arn,
    data.aws_iam_policy.ddex_feed_rw_policy.arn,
    data.aws_iam_policy.logging.arn,
    data.aws_iam_policy.secrets-services-ro.arn,
  ]
}
