

# Using EventBridge with AWS Elemental MediaConvert
Using Amazon EventBridge with MediaConvert

You can use Amazon EventBridge to monitor your AWS Elemental MediaConvert jobs. Here are some examples of what you can do with EventBridge:

**Get details about your job outputs**  
AWS Elemental MediaConvert provides details about your job outputs in the notification for the `COMPLETE` event. This information includes the location and file names of the job's media files and manifests. For details, see [Events with COMPLETE status](ev_status_complete.md).  
For information about job metrics sent to Amazon CloudWatch, see [Using CloudWatch with MediaConvert](cloudwatch_metrics.md).

**Set up email notifications for job status changes**  
To set up an EventBridge event rule, see [Tutorial: Setting up email notifications for failed jobs](setting-up-cloudwatch-event-rules.md#mediaconvert_sns_tutorial).  
For a list of all job status change notifications that you can set up event rules for, see [List of MediaConvert EventBridge events](mediaconvert_event_list.md).

**Monitor the progress of your job**  
`STATUS_UPDATE` events provide information about what phase your job is in (`PROBING`, `TRANSCODING`, and `UPLOADING`). For some jobs, MediaConvert provides an estimate of how far your job has progressed. This estimate is shown as a percentage of the total time from when your job leaves its queue to when your output files appear in your output Amazon S3 bucket.  
For more information about `STATUS_UPDATE` events, see the table of event types in [List of MediaConvert EventBridge events](mediaconvert_event_list.md).  
For information about adjusting the frequency of status updates, see [Adjust the status update interval](adjusting-the-status-update-interval.md).

**Automatically initiate post-processing with an AWS Lambda function**  
You can set up EventBridge so that an AWS Lambda function initiates your post-processing code after your job finishes. For more information about using AWS Lambda with AWS Elemental MediaConvert, see one of these resources:  
+ For experienced cloud architects, see the [Video on demand on AWS](https://aws.amazon.com/solutions/video-on-demand-on-aws/) post on the *AWS Answers* blog.
+ For developers new to MediaConvert and Lambda, see the [Automating MediaConvert jobs with Lambda](https://github.com/aws-samples/aws-media-services-simple-vod-workflow/blob/master/7-MediaConvertJobLambda/README.md) tutorial on GitHub.

**Get details about jobs you create or other MediaConvert operations**  
By default, MediaConvert does not emit an EventBridge event for new jobs that you create or any other MediaConvert operation that you perform. To receive EventBridge events in these cases, you first must create an AWS CloudTrail trail.   
For more information, see [Working with CloudTrail trails](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-getting-started.html). 

**Note**  
EventBridge delivers each event from the MediaConvert event stream at least once.  
MediaConvert does not require any additional permissions to deliver events to EventBridge.

**Topics**
+ [

# Setting up EventBridge rules
](setting-up-cloudwatch-event-rules.md)
+ [

# Monitoring MediaConvert job progress
](how-mediaconvert-jobs-progress.md)
+ [

# List of MediaConvert EventBridge events
](mediaconvert_event_list.md)

# Setting up EventBridge rules
Setting up EventBridge rules

To set up Amazon EventBridge rules: Create a rule that links the event from AWS Elemental MediaConvert and the target service that responds to your job status change, such as Amazon Simple Notification Service (Amazon SNS) or AWS Lambda. 

For a tutorial on setting up an EventBridge rule with AWS Elemental MediaConvert, see [Tutorial: Setting up email notifications for failed jobs](#mediaconvert_sns_tutorial).

For a list of the events that MediaConvert sends in the EventBridge event stream, see [List of MediaConvert EventBridge events](mediaconvert_event_list.md).

For more general information about using EventBridge, see the [Amazon EventBridge User Guide](https://docs.aws.amazon.com/eventbridge/latest/userguide/).

For troubleshooting information, see [Troubleshooting Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-troubleshooting.html) in the *Amazon EventBridge User Guide*. 

**Topics**
+ [

## Tutorial: Setting up email notifications for failed jobs
](#mediaconvert_sns_tutorial)
+ [

## Step 1: Create a topic in Amazon SNS
](#mediaconvert_sns_create_topic)
+ [

## Step 2: Specify an event pattern in an EventBridge rule
](#mediaconvert_sns_rule_event_source)
+ [

## Step 3: Add the Amazon SNS topic and finish your rule
](#add-target-and-finish-rule)
+ [

## Step 4: Test your rule
](#mediaconvert_sns_test_rule)

## Tutorial: Setting up email notifications for failed jobs
Tutorial: Email alerts

In this tutorial, you configure an EventBridge event rule that captures events when a job status changes to `ERROR` and then notifies you about the event. To do this, you first create a topic in Amazon SNS that will send you an email notification about the failed job. Next, you create a rule in EventBridge by defining an event source and referencing the Amazon SNS topic (the "target").

## Step 1: Create a topic in Amazon SNS
Step 1: Create a topic in Amazon SNS

The first part of setting up an EventBridge rule is preparing the rule target. In this case, that means creating and subscribing to an Amazon SNS topic.

**To create an Amazon SNS topic**

1. Open the Amazon SNS console at [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home).

1. In the navigation pane, choose **Topics**, and then choose **Create topic**.

1. For **Type**, choose **Standard**.

1. For **Name**, enter **MediaConvertJobErrorAlert**, and then choose **Create topic**.

1. Choose the topic **Name** for the topic that you just created to view the **Topic details**.

1. On the **MediaConvertJobErrorAlert** **Topic details** page, in the **Subscriptions** section, choose **Create subscription**. 

1. For **Protocol**, choose **Email**. For **Endpoint**, enter the email address that you want Amazon SNS to send the notification to.

1. Choose **Create subscription**.

1. You will receive a notification email from Amazon SNS. When you receive it, choose the **Confirm subscription** link in the email. 

## Step 2: Specify an event pattern in an EventBridge rule
Step 2: Specify an event pattern in EventBridge

This step shows how to specify your event pattern in an EventBridge rule. This rule will capture events sent by MediaConvert when a job status changes to `ERROR`. 

**To set up an event pattern in an EventBridge rule**

1. Open the Amazon EventBridge console at [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. In the navigation pane, choose **Rules**. Keep the **default** **Event bus** and then choose **Create rule**.

1. For **Name**, enter **MediaConvertJobStateError**, and then choose **Next**.

1. In the **Event pattern** section, starting with **Event source** choose the following settings:
   + **Event source**: **AWS services**
   + **AWS service**: **MediaConvert**
   + **Event type**: **MediaConvert Job State Change**
   + **Event type, Specific state(s)**: **ERROR**

1. An **Event pattern** box will look like the following example. 

   ```
   {
     "source": ["aws.mediaconvert"],
     "detail-type": ["MediaConvert Job State Change"],
     "detail": {
       "status": ["ERROR"]
     }
   }
   ```

   This code defines an EventBridge event rule that matches any event where the job status changes to `ERROR`. For more information about event patterns, see [Events and event patterns](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CloudWatchEventsandEventPatterns.html) in the *Amazon CloudWatch User Guide*.

1. Choose **Next**.

## Step 3: Add the Amazon SNS topic and finish your rule
Step 3: Add the Amazon SNS topic and finish your rule

Add the Amazon SNS topic that you created in step 1 to the EventBridge rule that you started in step 2.

**To add the Amazon SNS topic and finish the EventBridge rule**

1. In the **Select target(s)** section, under **Select a target**, choose **SNS topic**.

1. For **Topic**, choose **MediaConvertJobErrorAlert**.

1. Choose **Next**.

1. Optionally add tags. Then choose **Next**.

1. Review your settings. Then choose **Create rule**. 

## Step 4: Test your rule
Step 4: Test your rule

To test your rule, submit a job that you know will cause an error. For example, specify an input location that does not exist. If you configured your event rule correctly, you should receive an email with the event text message in a few minutes. 

**To test the rule**

1. Open the AWS Elemental MediaConvert console at [https://console.aws.amazon.com/mediaconvert](https://console.aws.amazon.com/mediaconvert).

1. Submit a new MediaConvert job. For more information, see [Tutorial: Configuring job settings](setting-up-a-job.md).

1. Check the email account that you specified when you set up your Amazon SNS topic. Confirm that you received an email notification for the job error.

# Monitoring MediaConvert job progress
How MediaConvert jobs progress

MediaConvert provides status information for each job that you create. You can monitor a job's status to determine what is happening with your job, track its progress, or toubleshoot issues.

**Topics**
+ [

## Job statuses
](#job-statuses)
+ [

## How to find a job's status
](#finding-job-status)
+ [

## Job phases
](#job-phase)

## Job statuses


Each job you submit will progress through a number of different possible statuses. Successful jobs end with a `COMPLETE` status, and unsuccessful jobs end with an `ERROR` or `CANCELED` status.

**Successful jobs**  
A successful job results in all of its outputs being written to your Amazon S3 bucket. The following list contains details about the different statuses successful jobs go through:  

1. `SUBMITTED`: Jobs that you created in the MediaConvert console or through a [https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-http-methods](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-http-methods) operation that MediaConvert hasn't started processing.

1. `INPUT_INFORMATION`: MediaConvert read details about your input or inputs.

1. `PROGRESSING`: MediaConvert began processing your job.

1. `STATUS_UPDATE`: MediaConvert has been processing your job for at least a minute or longer. Jobs with this status go through three different *job phases*. For more information, see [Job phases](#job-phase).

1. `COMPLETE`: MediaConvert completed your job and all of your outputs were saved to your Amazon S3 bucket.
Successful jobs may also include [`NEW_WARNING`](ev_status_new_warning.md) or [`QUEUE_HOP`](ev_status_new_warning.md) statuses.

**Unsuccessful jobs**  
An unsuccessful job results in no outputs being written to your Amazon S3 bucket, although it may initially progress similar to a successful job. Unsuccessful jobs have one of the the following two statuses:  
+ `ERROR`: MediaConvert had an issue processing your job. For more information, see [Error codes](mediaconvert_error_codes.md).
+ `CANCELED`: You canceled a job in the MediaConvert console or through a `CancelJob` operation.

## How to find a job's status


To view a list of all job statuses in the current Region, open the [Jobs](https://console.aws.amazon.com/mediaconvert/home#/jobs/list) page in the MediaConvert console. Or submit a `GetJob` or `ListJobs` operation.

AWS CloudTrail records details about each create job request you make. CloudTrail only emits an EventBridge event for `SUBMITTED` jobs if you also create a CloudTrail trail. For more information, see [Working with CloudTrail trails](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-getting-started.html) and [Accessing AWS service events via AWS CloudTrail](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html).

MediaConvert emits an EventBridge event when a job begins processing and then whenever its status changes, for example if it changes from `PROGRESSING` to `COMPLETE` or `ERROR`. For list of EventBridge events, see [List of MediaConvert EventBridge events](mediaconvert_event_list.md).

## Job phases


If a job's status is `PROGRESSING` for over a minute, MediaConvert emits a `STATUS_UPDATE` event with the current job *phase*. A job phase provides details about what is happening with a job. Job phases progress through the following order:

1. `PROBING`: When your job is in the `PROBING` phase, MediaConvert reads the information from your input files that the service needs for transcoding.

1. `TRANSCODING`: When your job is in the `TRANSCODING` phase, the service demuxes, decodes, encodes, and remuxes your content. In some jobs, the service begins uploading outputs to your output Amazon S3 bucket during this phase. The phase ends when all transcoding is complete.

1. `UPLOADING`: When your job is in the `UPLOADING` phase, the service uploads your transcoded outputs to your output Amazon S3 bucket. In the case of outputs that the service begins to upload during the `TRANSCODING` phase, the `UPLOADING` phase begins when the transcoding is done. It continues until all uploads are finished.

To view a job's phase, open the [Jobs](https://console.aws.amazon.com/mediaconvert/home#/jobs/list) page in the MediaConvert console, check the [`STATUS_UPDATE` EventBridge event](ev_status_status_update.md), or submit a `GetJob` or `ListJobs` operation.

# List of MediaConvert EventBridge events
List of MediaConvert EventBridge events

AWS Elemental MediaConvert emits an event to Amazon EventBridge when the status of a job changes. You can create [EventBridge rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html) for any of these events. 

Most jobs will only emit a few of these events, with the most common being: `INPUT_INFORMATION`, `PROGRESSING`, and `COMPLETE`.

For more information about each event type, choose the link in the **Event** column.


**MediaConvert events**  

| Event | Sent when | Contains | 
| --- | --- | --- | 
|  [INPUT\$1INFORMATION](ev_status_input_information.md)  |  Soon after MediaConvert begins processing the job.  |  Media information, such as frame height and width, frame rate, and codec. Information from MediaConvert about all inputs in a single event.  | 
|  [PROGRESSING](ev_status_progressing.md)  |  A job moves from the `SUBMITTED` state to the `PROGRESSING` state.   |  Basic job details.  | 
| [STATUS\$1UPDATE](ev_status_status_update.md) | Approximately one minute after MediaConvert begins processing the job. Sent approximately every minute after that, until the job is completed or encounters an error. | Job progress expressed in the number of frames transcoded since the beginning of the job. | 
|  [COMPLETE](ev_status_complete.md)  |  A job is completed and MediaConvert writes all outputs successfully without errors.  |  Warnings and output information about the completed job.  | 
| [CANCELED](ev_status_canceled.md) | A job is canceled. | Basic job details. | 
|  [ERROR](ev_status_error.md)  |  A job has an error. At least one output has an error.  |  The error code or codes and any messages. Includes any other ephemeral job information about the job's error status.   | 
|  [NEW\$1WARNING](ev_status_new_warning.md)  |  A warning condition arises.  |  The warning code or codes and any warning messages.  | 
|  [QUEUE\$1HOP](ev_status_queue_hop.md)  |  When a job hops queues.  |  The ARNs for both queues and the job's priority within the queue.   | 

**Note**  
MediaConvert does not emit a `SUBMITTED` event. To receive an EventBridge event any time you make an API call, including calls from the MediaConvert console, you must create a AWS CloudTrail trail. For more information, see [Accessing AWS service events via AWS CloudTrail](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html) and [Working with CloudTrail trails](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-getting-started.html).

When MediaConvert sends an event to EventBridge, the following fields are present in the resulting JSON.
+ **version** — Currently 0 (zero) for all events.
+ **id** — A Version 4 UUID generated for every event.
+ **detail-type** — The type of event that's being sent.
+ **source** — Identifies the service that generated the event.
+ **account** — The 12-digit AWS account ID that ran the job.
+ **time** — The time the event occurred.
+ **region** — Identifies the AWS Region of the job.
+ **resources** — A JSON array that contains the Amazon Resource Name (ARN) of the job.
+ **detail** — A JSON object that contains information about the job.

The following sections contain event message details, JSON responses, and event patterns for every EventBridge event that MediaConvert emits.

**Topics**
+ [

# Events with INPUT\$1INFORMATION status
](ev_status_input_information.md)
+ [

# Events with PROGRESSING status
](ev_status_progressing.md)
+ [

# Events with STATUS\$1UPDATE status
](ev_status_status_update.md)
+ [

# Events with COMPLETE status
](ev_status_complete.md)
+ [

# Events with CANCELED status
](ev_status_canceled.md)
+ [

# Events with ERROR status
](ev_status_error.md)
+ [

# Events with NEW\$1WARNING status
](ev_status_new_warning.md)
+ [

# Events with QUEUE\$1HOP status
](ev_status_queue_hop.md)

# Events with INPUT\$1INFORMATION status
INPUT\$1INFORMATION

MediaConvert sends the event for `INPUT_INFORMATION` after a job begins processing and after MediaConvert reads information about your input. The event primarily contains media information about your input, such as frame height and width, frame rate, and codec.

 MediaConvert includes information about all of your inputs in a single event.

The following JSON is an example event containing the `INPUT_INFORMATION` status for a job with a single input.

```
{
    "version": "0",
    "id": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "detail-type": "MediaConvert Job State Change",
    "source": "aws.mediaconvert",
    "account": "111122223333",
    "time": "2022-12-19T19:07:12Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:mediaconvert:us-west-2:111122223333:jobs/1671476818694-phptj0"
    ],
    "detail": {
        "timestamp": 1671476832075,
        "accountId": "111122223333",
        "queue": "arn:aws:mediaconvert:us-west-2:111122223333:queues/Default",
        "jobId": "1671476818694-phptj0",
        "status": "INPUT_INFORMATION",
        "userMetadata": {},
        "inputDetails": [
            {
                "id": 1,
                "uri": "s3://amzn-s3-demo-bucket/file/file.mp4",
                "audio": [
                    {
                        "channels": 2,
                        "codec": "AAC",
                        "language": "UND",
                        "sampleRate": 44100,
                        "streamId": 2
                    }
                ],
                "video": [
                    {
                        "bitDepth": 8,
                        "codec": "H_264",
                        "colorFormat": "YUV_420",
                        "fourCC": "avc1",
                        "frameRate": 24,
                        "height": 1080,
                        "interlaceMode": "PROGRESSIVE",
                        "sar": "1:1",
                        "standard": "UNSPECIFIED",
                        "streamId": 1,
                        "width": 1920
                    }
                ]
            }
        ]
    }
}
```

You can use the following sample JSON to create an EventBridge event pattern for jobs with a status of `INPUT_INFORMATION`.

```
{
  "source": ["aws.mediaconvert"],
  "detail-type": ["MediaConvert Job State Change"],
  "detail": {
    "status": ["INPUT_INFORMATION"]
  }
}
```

# Events with PROGRESSING status
PROGRESSING

MediaConvert sends the event for `PROGRESSING` when a job moves from the `SUBMITTED` state to the `PROGRESSING` state.

**Note**  
After a job has been in the `PROGRESSING` status for 48 hours, the service puts it into an `ERROR` state and stops working on it. You are not billed for jobs that end in an `ERROR` state.

The following JSON is an example event containing the `PROGRESSING` status for a job.

```
{
    "version": "0",
    "id": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "detail-type": "MediaConvert Job State Change",
    "source": "aws.mediaconvert",
    "account": "111122223333",
    "time": "2022-12-19T19:20:21Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:mediaconvert:us-west-2:111122223333:jobs/1671477617078-2886ye"
    ],
    "detail": {
        "timestamp": 1671477621654,
        "accountId": "111122223333",
        "queue": "arn:aws:mediaconvert:us-west-2:111122223333:queues/Default",
        "jobId": "1671477617078-2886ye",
        "status": "PROGRESSING",
        "userMetadata": {}
    }
}
```

You can use the following sample JSON to create an EventBridge event pattern for jobs with a status of `PROGRESSING`.

```
{
    "source": ["aws.mediaconvert"],
    "detail-type": ["MediaConvert Job State Change"],
    "detail": {
        "status": ["PROGRESSING"]
    }
}
```

# Events with STATUS\$1UPDATE status
STATUS\$1UPDATE

MediaConvert sends the event for `STATUS_UPDATE` approximately one minute after it begins processing a job. By default, updates are sent approximately every minute after that, until the service finishes transcoding or encounters an error.

You can optionally specify a different update frequency in your job, with the **Status update interval** setting. For more frequent updates, you can choose 10, 12, 15, 20, or 30 seconds. For fewer updates, you can choose anywhere from 2 to 10 minutes, in increments of one minute. For more information, see [Adjust the status update interval](adjusting-the-status-update-interval.md).

A `STATUS_UPDATE` event contains information about your job's current phase. When available, it contains job and phase percent completion.

Job phases are as follows:
+ During `PROBING`, the service reads information about the input while it prepares to transcode. 
+ During `TRANSCODING`, the service demuxes, decodes, encodes, and remuxes your content. In some jobs, the service begins uploading outputs to your output Amazon S3 bucket during this phase, as well. The phase ends when all transcoding is complete.
+ During `UPLOADING`, the service uploads the remaining transcoded outputs to your Amazon S3 bucket.

The following JSON is an example event containing the `STATUS_UPDATE` status for a job.

```
{
    "version": "0",
    "id": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "detail-type": "MediaConvert Job State Change",
    "source": "aws.mediaconvert",
    "account": "111122223333",
    "time": "2022-12-19T19:21:21Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:mediaconvert:us-west-2:111122223333:jobs/1671477617078-2886ye"
    ],
    "detail": {
        "timestamp": 1671477681737,
        "accountId": "111122223333",
        "queue": "arn:aws:mediaconvert:us-west-2:111122223333:queues/Default",
        "jobId": "1671477617078-2886ye",
        "status": "STATUS_UPDATE",
        "userMetadata": {},
        "framesDecoded": 353,
        "jobProgress": {
            "phaseProgress": {
                "PROBING": {
                    "status": "COMPLETE",
                    "percentComplete": 100
                },
                "TRANSCODING": {
                    "status": "PROGRESSING",
                    "percentComplete": 2
                },
                "UPLOADING": {
                    "status": "PENDING",
                    "percentComplete": 0
                }
            },
            "jobPercentComplete": 7,
            "currentPhase": "TRANSCODING",
            "retryCount": 0
        }
    }
}
```

You can use the following sample JSON to create an EventBridge event pattern for jobs with a status of `STATUS_UPDATE`.

```
{
    "source": ["aws.mediaconvert"],
    "detail-type": ["MediaConvert Job State Change"],
    "detail": {
        "status": ["STATUS_UPDATE"]
    }
}
```

# Adjust the status update interval


By default, AWS Elemental MediaConvert sends `STATUS_UPDATE` events to Amazon EventBridge approximately once per minute. These status updates provide information about how your job is progressing. You can adjust the status update interval by specifying a different update frequency in your job.

**To specify the STATUS\$1UPDATE frequency**

1. On the **Create job** page, in the **Job** pane on the left, in the **Job settings** section, choose **AWS integration**.

1. In the **AWS integration** section on the right, for **Status update interval (sec)**, choose **interval, in seconds, between updates**.

If you use the API or an SDK, you can find this setting in the JSON file of your job. The setting name is [statusUpdateInterval](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-createjobrequest-statusupdateinterval).

# Events with COMPLETE status
COMPLETE

MediaConvert sends the event for `COMPLETE` when all outputs are written to Amazon S3 without errors. It contains both warnings and output information for the completed job. For more information about output file names and paths, see [Output file names and paths](output-file-names-and-paths.md).

The following JSON is an example event containing the `COMPLETE` status for a job.

```
{
    "version": "0",
    "id": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "detail-type": "MediaConvert Job State Change",
    "source": "aws.mediaconvert",
    "account": "111122223333",
    "time": "2022-12-19T19:07:12Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:mediaconvert:us-west-2::jobs/1671476818694-phptj0"
    ],
    "detail": {
        "timestamp": 1671476832124,
        "accountId": "111122223333",
        "queue": "arn:aws:mediaconvert:us-west-2:111122223333:queues/Default",
        "jobId": "1671476818694-phptj0",
        "status": "COMPLETE",
        "userMetadata": {},
        "warnings": [
            {
                "code": 000000,
                "count": 1
            }
        ],
        "outputGroupDetails": [
            {
                "outputDetails": [
                    {
                        "outputFilePaths": [
                            "s3://amzn-s3-demo-bucket/file/file.mp4"
                        ],
                        "durationInMs": 30041,
                        "videoDetails": {
                            "widthInPx": 1920,
                            "heightInPx": 1080,
                            "qvbrAvgQuality": 7.38,
                            "qvbrMinQuality": 7,
                            "qvbrMaxQuality": 8,
                            "qvbrMinQualityLocation": 2168,
                            "qvbrMaxQualityLocation": 25025
                        }
                    }
                ],
                "type": "FILE_GROUP"
            }
        ],
        "paddingInserted": 0,
        "blackVideoDetected": 10,
        "blackSegments": [
            {
                "start": 0,
                "end": 10
            }
        ]
    }
}
```

`COMPLETE` events contain additional information about your job and outputs. The following table lists and describes the different properties available in job event message details.


**COMPLETE event message details**  

| Property | Data type | Details | 
| --- | --- | --- | 
|  `paddingInserted`  |  integer  | The total duration of blank frames MediaConvert inserted across all outputs in your job, in milliseconds. Video padding inserts blank frames to help keep audio and video durations aligned. Large `paddingInserted` values show that more blank frames were inserted. These values also show to what extend your input audio tracks start late, or end early, or both. | 
|  `qvbrAvgQuality`  |  float  |  The average video quality of your Quality-Defined Variable Bitrate (QVBR) output. Included for QVBR outputs only.  | 
|  `qvbrMinQuality`  |  float  |  The minimum video quality detected in your QVBR output.  Included for QVBR outputs only.  | 
|  `qvbrMaxQuality`  |  float  |  The maximum video quality detected in your QVBR output. Included for QVBR outputs only.  | 
|  `qvbrMinQualityLocation`  |  integer  |  The location in your output where `qvbrMinQuality` was detected, in milliseconds. You can use `qvbrMinQualityLocation` while reviewing your output video quality and bandwidth usage. Included for QVBR outputs only.  | 
|  `qvbrMaxQualityLocation`  |  integer  |  The location in your output where `qvbrMaxQuality` was detected, in milliseconds. You can use `qvbrMaxQualityLocation` while reviewing your output video quality and bandwidth usage. Included for QVBR outputs only.  | 
|  `warnings`  code  count  |  array integer integer  |  Any warning codes seen in the job and the number of times they occurred. For more information, see [Warning codes](warning_codes.md).  | 
|  `blackVideoDetected`  |  integer  |  The total duration of black video frames in your outputs that are also present in your inputs, in milliseconds. `blackVideoDetected` does not include any black frames inserted by MediaConvert.  | 
|  `blackVideoSegments`  `start`  `end`  |  array integer integer  |  The location or locations in your output where black video frames were detected. Each segment of black video in your output is shown with its own start and end. `blackVideoSegments` does not include any black frames inserted by MediaConvert.  | 
|  `averageBitrate`  |  integer  |  The average bitrate of your video output, calculated by dividing the duration by the total bits.  | 

You can use the following sample JSON to create an EventBridge event pattern for jobs with a status of `COMPLETE`.

```
{
  "source": ["aws.mediaconvert"],
  "detail-type": ["MediaConvert Job State Change"],
  "detail": {
    "status": ["COMPLETE"]
  }
}
```

# Output file names and paths
Output file names and pathsFind output file names and paths in EventBridge notifications

You can receive output file names and paths, including manifest and media file outputs, by using Amazon EventBridge with AWS Elemental MediaConvert jobs.

The EventBridge job `COMPLETE` notification includes details about your output in JSON. This information includes the file names and paths for the outputs of the job—including manifests and media assets.

The files that AWS Elemental MediaConvert creates depends on the output groups that you set up in the job. For example, DASH ISO packages contain an .mpd manifest and .mp4 media fragment files.

You can find output file name and path information in the following properties:

`playlistFilePaths`  
A list of the Amazon S3 file paths to the multivariant playlists.

`outputFilePaths`  
The file path to either the media or the manifest, depending on the output group type.

`type`  
The type of output group, which determines what files are listed in the `playlistFilePaths` and `outputFilePaths`.

The following table summarizes the values for these properties, depending on the output group type.


| Type | playlistFilePaths | outputFilePaths | 
| --- | --- | --- | 
| FILE\$1GROUP (standard output) | not returned |  File name and path of the media file. Example: `s3://amzn-s3-demo-bucket/file/file.mp4`  | 
| FILE\$1GROUP (with additional frame capture output) | not returned |  File name and path of the final captured image. Example: `s3://amzn-s3-demo-bucket/frameoutput/file.0000036.jpg`  | 
| HLS\$1GROUP |  File name and path of the multivariant playlist. Example: `s3://amzn-s3-demo-bucket/hls/main.m3u8`  |  File name and path of the manifests for the individual outputs. Examples: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/mediaconvert/latest/ug/output-file-names-and-paths.html)  | 
| DASH\$1ISO\$1GROUP |  File name and path of the manifest. Example: `s3://amzn-s3-demo-bucket/dash/1.mpd`  | not returned | 
| CMAF\$1GROUP |  File name and path for each of the top-level manifests. Examples: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/mediaconvert/latest/ug/output-file-names-and-paths.html)  | not returned | 
| MS\$1SMOOTH\$1GROUP |  File name and path of the server-side manifest. Example: `s3://amzn-s3-demo-bucket/smooth/1.ism`  |  File name and path of the video manifests for each of the individual outputs. Examples: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/mediaconvert/latest/ug/output-file-names-and-paths.html)  | 

For sample responses in JSON for each output group type, see the following topics:

**Topics**
+ [

# File group
](file-group.md)
+ [

# File group with a frame capture output
](file-group-with-frame-capture-output.md)
+ [

# Apple HLS group
](apple-hls-group.md)
+ [

# DASH ISO group
](dash-iso-group.md)
+ [

# CMAF group
](cmaf-group.md)
+ [

# Microsoft Smooth Streaming group
](microsoft-smooth-streaming-group.md)

# File group
File group

The following is an Amazon EventBridge sample event for a job with a `COMPLETE` status. The example includes output file path information for a file group.

```
{
    "detail": {
        "status": "COMPLETE",
        "paddingInserted": 0,
        "blackVideoDetected": 10,
        "blackSegments": [
            "start": 0,
            "end": 10
        ],
        "outputGroupDetails": [
            {
                "outputDetails": [
                    {
                        "outputFilePaths": [
                            "s3://amzn-s3-demo-bucket/file/file.mp4"
                        ],
                        "durationInMs": 180041,
                        "videoDetails": {
                            "averageBitrate": 200000,
                            "widthInPx": 1280,
                            "heightInPx": 720,
                            "qvbrAvgQuality": 7.38,
                            "qvbrMinQuality": 7,
                            "qvbrMaxQuality": 8,
                            "qvbrMinQualityLocation": 2168,
                            "qvbrMaxQualityLocation": 25025
                        },
                    }
                ],
                "type": "FILE_GROUP"
            }
        ],
        "timestamp": 1536964380391,
        "accountId": "111122223333",
        "queue": "arn:aws:mediaconvert:us-west-2:111122223333:queues/Default",
        "jobId": "1536964333549-opn151",
        "userMetadata": {},
        "warnings": [
            {
                "code": 000000,
                "count": 1
            }
        ],
    },
    "version": "0",
    "id": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "detail-type": "MediaConvert Job State Change",
    "source": "aws.mediaconvert",
    "account": "111122223333",
    "time": "2018-09-14T21:54:31Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:mediaconvert:us-west-2:111122223333:jobs/1536961999428-kxngbl"
    ]
}
```

**Note**  
QVBR statistics are only available when your video output uses Quality-Defined Variable Bitrate (QVBR) rate control.

# File group with a frame capture output
File group with frame capture output

This guide provides an Amazon EventBridge example event for a job with a `COMPLETE` status. It also shows output file path information for a file group with a frame capture output. 

A *frame capture output* is an output that you set up to create still images of video. You set it up similar to a regular **File group** output group. However, you remove the audio component, choose **No container** for the container, and then choose **Frame capture to JPEG** for the video codec.

**Note**  
You can create frame capture outputs only in jobs that also have a regular audio and video output. MediaConvert doesn't support jobs that consist only of a frame capture output.

When you create a frame capture output, the `COMPLETE` status includes the `outputFilePaths` property. This tells you the file name and path of the final captured image. 

**Tip**  
Because the service includes automatic numbering in the frame capture file names, you can infer all the image names from the final one. For example, if your `outputFilePaths` value is `s3://amzn-s3-demo-bucket/frameoutput/file.0000036.jpg`, you can infer that there are 35 other images in the same location, named `file.0000001`, `file.0000002`, and so on.

The following is an EventBridge sample event for a job with a `COMPLETE` status. It includes output file path information for a file group with a frame capture output. 

```
{
    "detail": {
        "status": "COMPLETE",
        "paddingInserted": 0,
        "blackVideoDetected": 10,
        "blackSegments": [
                {
                    "start": 0,
                    "end": 10
                }
        ],
        "outputGroupDetails": [
            {
                "outputDetails": [
                    {
                        "outputFilePaths": [
                            "s3://amzn-s3-demo-bucket/frameoutput/file.0000036.jpg"
                        ],
                        "durationInMs": 185000,
                        "videoDetails": {
                            "widthInPx": 1280,
                            "heightInPx": 720
                        }
                    }
                ],
                "type": "FILE_GROUP"
            },
            {
                "outputDetails": [
                    {
                        "outputFilePaths": [
                            "s3://amzn-s3-demo-bucket/file/file.mp4"
                        ],
                        "durationInMs": 180041,
                        "blackVideoDurationInMs": 0,
                        "videoDetails": {
                            "widthInPx": 1280,
                            "heightInPx": 720,
                            "averageQVBRScore": 7.38,
                            "minimumQVBRScore": 7,
                            "maximumQVBRScore": 8,
                            "minimumQVBRScoreLocationInMs": 2168,
                            "maximumQVBRScoreLocationInMs": 25025
                        }
                    }
                ],
                "type": "FILE_GROUP"
            }
        ],
        "timestamp": 1536964380391,
        "accountId": "111122223333",
        "queue": "arn:aws:mediaconvert:us-west-2:111122223333:queues/Default",
        "jobId": "1536964333549-opn151",
        "userMetadata": {},
        "warnings": [
            {
                "code": 000000,
                "count": 1
            }
        ]
    },
    "version": "0",
    "id": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "detail-type": "MediaConvert Job State Change",
    "source": "aws.mediaconvert",
    "account": "111122223333",
    "time": "2018-09-14T21:54:31Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:mediaconvert:us-west-2:111122223333:jobs/1536961999428-kxngbl"
    ]
}
```

**Note**  
Quality-Defined Variable Bitrate (QVBR) statistics are only available when your video output uses QVBR rate control.

# Apple HLS group
Apple HLS group

The following is an Amazon EventBridge sample event for a job with a `COMPLETE` status. It includes output file path information for an Apple HLS group.

```
{
    "detail": {
        "status": "COMPLETE",
        "paddingInserted": 0,
        "blackVideoDetected": 10,
        "blackSegments": [
            {
                "start": 0,
                "end": 10
            }
        ],
        "outputGroupDetails": [
            {
                "outputDetails": [
                    {
                        "outputFilePaths": [
                            "s3://amzn-s3-demo-bucket/hls/mainv2.m3u8"
                        ],
                        "durationInMs": 180041,
                        "blackVideoDurationInMs": 0,
                        "videoDetails": {
                            "widthInPx": 426,
                            "heightInPx": 240,
                            "averageQVBRScore": 7.38,
                            "minimumQVBRScore": 7,
                            "maximumQVBRScore": 8,
                            "minimumQVBRScoreLocationInMs": 2168,
                            "maximumQVBRScoreLocationInMs": 25025
                        }
                    },
                    {
                        "outputFilePaths": [
                            "s3://amzn-s3-demo-bucket/hls/mainv1.m3u8"
                        ],
                        "durationInMs": 180041,
                        "blackVideoDurationInMs": 0,
                        "videoDetails": {
                            "widthInPx": 1280,
                            "heightInPx": 720,
                            "averageQVBRScore": 7.38,
                            "minimumQVBRScore": 7,
                            "maximumQVBRScore": 8,
                            "minimumQVBRScoreLocationInMs": 2168,
                            "maximumQVBRScoreLocationInMs": 25025
                        }
                    }
                ],
                "type": "HLS_GROUP",
                "playlistFilePaths": [
                    "s3://amzn-s3-demo-bucket/hls/main.m3u8"
                ]
            }
        ],
        "timestamp": 1536964380391,
        "accountId": "111122223333",
        "queue": "arn:aws:mediaconvert:us-west-2:111122223333:queues/Default",
        "jobId": "1536964333549-opn151",
        "userMetadata": {},
        "warnings": [
            {
                "code": 000000,
                "count": 1
            }
        ]
    },
    "version": "0",
    "id": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "detail-type": "MediaConvert Job State Change",
    "source": "aws.mediaconvert",
    "account": "111122223333",
    "time": "2018-09-14T21:54:31Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:mediaconvert:us-west-2:111122223333:jobs/1536961999428-kxngbl"
    ]
}
```

**Note**  
Quality-Defined Variable Bitrate (QVBR) statistics are only available when your video output uses QVBR rate control.

# DASH ISO group
DASH ISO group

The following is an Amazon EventBridge sample event for a job with a `COMPLETE` status. It includes output file path information for a DASH ISO group.

```
{
    "detail": {
        "status": "COMPLETE",
        "paddingInserted": 0,
        "blackVideoDetected": 10,
        "blackSegments": [
            {
                "start": 0,
                "end": 10
            }
        ],
        "outputGroupDetails": [
            {
                "outputDetails": [
                    {
                        "durationInMs": 180041,
                        "blackVideoDurationInMs": 0,
                        "videoDetails": {
                            "widthInPx": 1280,
                            "heightInPx": 720,
                            "averageQVBRScore": 7.38,
                            "minimumQVBRScore": 7,
                            "maximumQVBRScore": 8,
                            "minimumQVBRScoreLocationInMs": 2168,
                            "maximumQVBRScoreLocationInMs": 25025
                        }
                    }
                ],
                "type": "DASH_ISO_GROUP",
                "playlistFilePaths": [
                    "s3://amzn-s3-demo-bucket/dash/1.mpd"
                ]
            }
        ],
        "timestamp": 1536964380391,
        "accountId": "111122223333",
        "queue": "arn:aws:mediaconvert:us-west-2:111122223333:queues/Default",
        "jobId": "1536964333549-opn151",
        "userMetadata": {},
        "warnings": [
            {
                "code": 000000,
                "count": 1
            }
        ]
    },
    "version": "0",
    "id": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "detail-type": "MediaConvert Job State Change",
    "source": "aws.mediaconvert",
    "account": "111122223333",
    "time": "2018-09-14T21:54:31Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:mediaconvert:us-west-2:111122223333:jobs/1536961999428-kxngbl"
    ]
}
```

**Note**  
Quality-Defined Variable Bitrate (QVBR) statistics are only available when your video output uses QVBR rate control.

# CMAF group
CMAF group

The following is an EventBridge sample event for a job with a `COMPLETE` status. It includes output file path information for a CMAF group.

```
{
    "detail": {
        "status": "COMPLETE",
        "paddingInserted": 0,
        "blackVideoDetected": 10,
        "blackSegments": [
            {
                "start": 0,
                "end": 10
            }
        ],
        "outputGroupDetails": [
            {
                "outputDetails": [
                    {
                            "durationInMs": 180041,
                            "blackVideoDurationInMs": 0,
                            "videoDetails": {
                                "widthInPx": 1280,
                                "heightInPx": 720,
                                "averageQVBRScore": 7.38,
                                "minimumQVBRScore": 7,
                                "maximumQVBRScore": 8,
                                "minimumQVBRScoreLocationInMs": 2168,
                                "maximumQVBRScoreLocationInMs": 25025
                            }
                    }
                ],
                "type": "CMAF_GROUP",
                "playlistFilePaths": [
                    "s3://amzn-s3-demo-bucket/cmaf/1.mpd",
                    "s3://amzn-s3-demo-bucket/cmaf/1.m3u8"
                ]
            }
        ],
        "timestamp": 1536964380391,
        "accountId": "111122223333",
        "queue": "arn:aws:mediaconvert:us-west-2:111122223333:queues/Default",
        "jobId": "1536964333549-opn151",
        "userMetadata": {},
        "warnings": [
            {
                "code": 000000,
                "count": 1
            }
        ]
    },
    "version": "0",
    "id": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "detail-type": "MediaConvert Job State Change",
    "source": "aws.mediaconvert",
    "account": "111122223333",
    "time": "2018-09-14T21:54:31Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:mediaconvert:us-west-2:111122223333:jobs/1536961999428-kxngbl"
    ]
}
```

**Note**  
Quality-Defined Variable Bitrate (QVBR) statistics are only available when your video output uses QVBR rate control.

# Microsoft Smooth Streaming group
Microsoft Smooth Streaming group

The following is an EventBridge sample event for a job with a `COMPLETE` status. It includes output file path information for a Microsoft Smooth Streaming group.

```
{
    "detail": {
        "status": "COMPLETE",
        "paddingInserted": 0,
        "blackVideoDetected": 10,
        "blackSegments": [
            {
                "start": 0,
                "end": 10
            }
        ],
        "outputGroupDetails": [
            {
                "outputDetails": [
                    {
                        "outputFilePaths": [
                            "s3://amzn-s3-demo-bucket/smooth/1_va.ismv"
                        ],
                        "durationInMs": 180041,
                        "blackVideoDurationInMs": 0,
                        "videoDetails": {
                            "widthInPx": 1280,
                            "heightInPx": 534,
                            "averageQVBRScore": 7.38,
                            "minimumQVBRScore": 7,
                            "maximumQVBRScore": 8,
                            "minimumQVBRScoreLocationInMs": 2168,
                            "maximumQVBRScoreLocationInMs": 25025
                        }
                    }
                ],
                "type": "MS_SMOOTH_GROUP",
                "playlistFilePaths": [
                    "s3://amzn-s3-demo-bucket/smooth/1.ism"
                ]
            }
        ],
        "timestamp": 1536964380391,
        "accountId": "111122223333",
        "queue": "arn:aws:mediaconvert:us-west-2:111122223333:queues/Default",
        "jobId": "1536964333549-opn151",
        "userMetadata": {},
        "warnings": [
            {
                "code": 000000,
                "count": 1
            }
        ]
    },
    "version": "0",
    "id": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "detail-type": "MediaConvert Job State Change",
    "source": "aws.mediaconvert",
    "account": "111122223333",
    "time": "2018-09-14T21:54:31Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:mediaconvert:us-west-2:111122223333:jobs/1536961999428-kxngbl"
    ]
}
```

**Note**  
Quality-Defined Variable Bitrate (QVBR) statistics are only available when your video output uses QVBR rate control.

# Events with CANCELED status
CANCELED

MediaConvert sends the event for `CANCELED` when the job is canceled. It contains basic job details including `timestamp`, `accountID`, `queue`, `jobId`, and `userMetadata`.

The following JSON is an example event containing the `CANCELED` status for a job.

```
{
    "version": "0",
    "id": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "detail-type": "MediaConvert Job State Change",
    "source": "aws.mediaconvert",
    "account": "111122223333",
    "time": "2018-01-07T23:35:20Z",
    "region": "us-west-2",
    "resources": ["arn:aws:mediaconvert:us-west-2:111122223333:jobs/1515368087458-qnoxtd"],
    "detail": {
        "timestamp": 1515368120764,
        "accountId": "111122223333",
        "queue": "arn:aws:mediaconvert:us-west-2:111122223333:queues/Default",
        "jobId": "1515368087458-qnoxtd",
        "status": "CANCELED",
        "userMetadata": {}
    }
}
```

You can use the following sample JSON to create an EventBridge event pattern for jobs with a status of `CANCELED`.

```
{
    "source": ["aws.mediaconvert"],
    "detail-type": ["MediaConvert Job State Change"],
    "detail": {
        "status": ["CANCELED"]
    }
}
```

# Events with ERROR status
ERROR

MediaConvert sends the event for `ERROR` when at least one output has an error. It contains the error code or codes, messages, and warnings or other ephemeral job information about the job's error status. For more information about error codes, see [Error codes](mediaconvert_error_codes.md).

The following JSON is an example event containing the `ERROR` status for a job.

```
{
    "version": "0",
    "id": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "detail-type": "MediaConvert Job State Change",
    "source": "aws.mediaconvert",
    "account": "111122223333",
    "time": "2018-01-07T23:35:20Z",
    "region": "us-west-2",
    "resources": ["arn:aws:mediaconvert:us-west-2:111122223333:jobs/1515368087458-qnoxtd"],
    "detail": {
        "timestamp": 1515368120764,
        "accountId": "111122223333",
        "queue": "arn:aws:mediaconvert:us-west-2:111122223333:queues/Default",
        "jobId": "1515368087458-qnoxtd",
        "status": "ERROR",
        "errorCode": 1040,
        "errorMessage": "Example error message",
        "userMetadata": {}
    }
}
```

You can use the following sample JSON to create an EventBridge event pattern for jobs with a status of `ERROR`.

```
{
    "source": ["aws.mediaconvert"],
    "detail-type": ["MediaConvert Job State Change"],
    "detail": {
        "status": ["ERROR"]
    }
}
```

# Events with NEW\$1WARNING status
NEW\$1WARNING

MediaConvert sends an event for `NEW_WARNING` when a warning condition arises. A warning condition doesn't stop the job from running. It contains the submission queue ARN, the job ID, and a warning message. Warning messages inform you about conditions that don't stop the job but might indicate that the job is not progressing as you planned.

For example, a job that you set up to hop queues reaches the wait time that you specified, but can't hop.

`NEW_WARNING` only contains the most recent warning message. It doesn't report previous warnings, even if those warning conditions are still in effect.

For more information about warning messages, see [Warning codes](warning_codes.md).

The following JSON is an example event containing the `NEW_WARNING` status for a job.

```
{
    "version": "0",
    "id": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "detail-type": "MediaConvert Job State Change",
    "source": "aws.mediaconvert",
    "account": "111122223333",
    "time": "2018-01-07T23:35:20Z",
    "region": "us-west-2",
    "resources": ["arn:aws:mediaconvert:us-west-2:111122223333:jobs/1515368087458-qnoxtd"],
    "detail": {
        "timestamp": 1515368120764,
        "accountId": "111122223333",
        "queue": "arn:aws:mediaconvert:us-west-2:111122223333:queues/Default",
        "jobId": "1515368087458-qnoxtd",
        "status": "NEW_WARNING",
        "warningCode": "000000",
        "warningMessage": "Example warning message",
        "userMetadata": {}
    }
}
```

You can use the following sample JSON to create an EventBridge event pattern for jobs with a status of `NEW_WARNING`.

```
{
  "source": ["aws.mediaconvert"],
  "detail-type": ["MediaConvert Job State Change"],
  "detail": {
    "status": ["NEW_WARNING"]
  }
}
```

# Events with QUEUE\$1HOP status
QUEUE\$1HOP

MediaConvert sends the `QUEUE_HOP` event when a job hops queues. It contains the ARNs for both queues and the job's priority within the queues.

Both `priority` and `previousPriority` will be the same unless the queue hopping configuration specifies a new priority to give to the job as it hops queues.

The following JSON is an example event containing the `QUEUE_HOP` status for a job.

```
{
    "version": "0",
    "id": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "detail-type": "MediaConvert Job State Change",
    "source": "aws.mediaconvert",
    "account": "111122223333",
    "time": "2018-01-07T23:35:20Z",
    "region": "us-west-2",
    "resources": ["arn:aws:mediaconvert:us-west-2:111122223333:jobs/1515368087458-qnoxtd"],
    "detail": {
        "timestamp": 1515368120764,
        "accountId": "111122223333",
        "queue": "arn:aws:mediaconvert:us-west-2:111122223333:queues/Default",
        "previousQueue": "arn:aws:mediaconvert:us-west-2:111122223333:queues/Alternate",
        "priority": 0,
        "previousPriority": 0,
        "jobId": "1515368087458-qnoxtd",
        "status": "QUEUE_HOP",
        "userMetadata": {}
    }
}
```

You can use the following sample JSON to create an EventBridge event pattern for jobs with a status of `QUEUE_HOP`.

```
{
    "source": ["aws.mediaconvert"],
    "detail-type": ["MediaConvert Job State Change"],
    "detail": {
        "status": ["QUEUE_HOP"]
    }
}
```

