{
  "Comment": "Video ingestion re-encode workflow.",
  "StartAt": "StartWorkflow",
  "TimeoutSeconds": 172800,
  "States": {
    "StartWorkflow": {
      "Type": "Task",
      "Resource": "${daemon_video_start_workflow_arn}",
      "HeartbeatSeconds": 60,
      "TimeoutSeconds": 86400,
      "Retry": [{
        "ErrorEquals": ["States.Timeout"],
        "IntervalSeconds": 60,
        "MaxAttempts": 5,
        "BackoffRate": 2.0
      }],
      "Next": "ValidateAnalysis"
    },
    "ValidateAnalysis": {
      "Type": "Task",
      "Resource": "${daemon_video_validate_analysis_arn}",
      "HeartbeatSeconds": 60,
      "TimeoutSeconds": 86400,
      "Retry": [{
        "ErrorEquals": ["States.Timeout"],
        "IntervalSeconds": 60,
        "MaxAttempts": 5,
        "BackoffRate": 2.0
      }],
      "Next": "CreateStreamablePreviewAndThumbnails"
    },
    "CreateStreamablePreviewAndThumbnails": {
      "Type": "Task",
      "Resource": "${daemon_video_create_streamable_preview_and_thumbnails_arn}",
      "HeartbeatSeconds": 60,
      "TimeoutSeconds": 1800,
      "Retry": [{
        "ErrorEquals": ["States.Timeout"],
        "IntervalSeconds": 60,
        "MaxAttempts": 5,
        "BackoffRate": 2.0
      }],
      "Next": "CheckIfCreateStreamablePreviewAndThumbnailsIsDoneAfterDelay"
    },
    "CheckIfCreateStreamablePreviewAndThumbnailsIsDone": {
      "Type": "Task",
      "Resource": "${daemon_video_is_create_streamable_preview_and_thumbnails_done_arn}",
      "HeartbeatSeconds": 60,
      "TimeoutSeconds": 86400,
      "Retry": [{
        "ErrorEquals": ["States.Timeout"],
        "IntervalSeconds": 60,
        "MaxAttempts": 5,
        "BackoffRate": 2.0
      }],
      "Next": "ContinueOnlyIfCreateStreamablePreviewAndThumbnailsIsDone"
    },
    "ContinueOnlyIfCreateStreamablePreviewAndThumbnailsIsDone": {
      "Type": "Choice",
      "Choices": [
        {
          "Variable": "$.is_create_streamable_preview_and_thumbnails_done",
          "BooleanEquals": true,
          "Next": "EndWorkflow"
        },
        {
          "Variable": "$.is_create_streamable_preview_and_thumbnails_done",
          "BooleanEquals": false,
          "Next": "CheckIfCreateStreamablePreviewAndThumbnailsIsDoneAfterDelay"
        }
      ]
    },
    "CheckIfCreateStreamablePreviewAndThumbnailsIsDoneAfterDelay": {
      "Type": "Wait",
      "Seconds": 10,
      "Next": "CheckIfCreateStreamablePreviewAndThumbnailsIsDone"
    },
    "EndWorkflow": {
      "Type": "Task",
      "Resource": "${daemon_video_end_workflow_arn}",
      "HeartbeatSeconds": 60,
      "TimeoutSeconds": 86400,
      "Retry": [{
        "ErrorEquals": ["States.Timeout"],
        "IntervalSeconds": 60,
        "MaxAttempts": 5,
        "BackoffRate": 2.0
      }],
      "End": true
    }
  }
}
