

AWS IoT FleetWise will no longer be open to new customers as of April 30, 2026. Existing AWS IoT FleetWise customers can continue using the service. The [Guidance for Connected Mobility on AWS](https://aws.amazon.com/solutions/guidance/connected-mobility-on-aws/) provides guidance on how to develop and deploy modular services for connected mobility solutions that can be used to achieve equivalent capabilities as AWS IoT FleetWise.

# Manage AWS IoT FleetWise decoder manifests
<a name="decoder-manifests"></a>

**Important**  
Access to certain AWS IoT FleetWise features is currently gated. For more information, see [AWS Region and feature availability in AWS IoT FleetWise](fleetwise-regions.md).

Decoder manifests contain decoding information that AWS IoT FleetWise uses to transform vehicle data (binary data) into human-readable values and to prepare your data for data analyses. Network interface and signal decoders are the core components that you work with to configure decoder manifests. 

**Network interface**  <a name="network-interface-definition"></a>
Contains information about the protocol that the in-vehicle network uses. AWS IoT FleetWise supports the following protocols.    
**Controller Area Network (CAN bus)**  
A protocol that defines how data is communicated between electronic control units (ECUs). ECUs can be the engine control unit, airbags, or the audio system.  
**On-board diagnostic (OBD) II**  
A further developed protocol that defines how self-diagnostic data is communicated between ECUs. It provides a number of standard diagnostic trouble codes (DTCs) that help identify what is wrong with your vehicle.  
**Vehicle middleware**  
The vehicle middleware defined as a type of network interface. Examples of vehicle middleware include Robot Operating System (ROS 2) and Scalable service-Oriented MiddlewarE over IP (SOME/IP).  
AWS IoT FleetWise supports ROS 2 middleware for vision system data.  
**Custom interfaces**  
You can also use your own interface to decode signals at the Edge. This can save you time since you don't need to create decoding rules in the cloud.

**Signal decoder**  <a name="decoder-signal-definition"></a>
Provides detailed decoding information for a specific signal. Every signal specified in the vehicle model must be paired with a signal decoder. If the decoder manifest contains CAN network interfaces, it must contain CAN decoder signals. If the decoder manifest contains OBD network interfaces, it must contain OBD signal decoders.  
The decoder manifest must contain message signal decoders if it also contains vehicle middleware interfaces. Or, if the decoder manifest contains custom decoding interfaces, it must also contain custom decoding signals.

Each decoder manifest must be associated with a vehicle model. AWS IoT FleetWise uses the associated decoder manifest to decode data from vehicles created based on the vehicle model.

Each decoder manifest has a status field that contains the state of the decoder manifest. The state can be one of the following values:
+ `ACTIVE` – The decoder manifest is active.
+ `DRAFT` – The configuration of the decoder manifest isn't saved. 
+ `VALIDATING` – The decoder manifest is under validation for its eligibility. This only applies to decoder manifests that contain at least one vision system data signal.
+ `INVALID` – The decoder manifest failed validation and can't be activated yet. This only applies to decoder manifests that contain at least one vision system data signal. You can use the ListDecoderManifests and GetDecoderManifest APIs to check the reason for a failed validation.

**Important**  
If you use the AWS IoT FleetWise console to create a decoder manifest, AWS IoT FleetWise automatically activates the decoder manifest for you.
If you use the `CreateDecoderManifest` API operation to create a decoder manifest, the decoder manifest stays in the `DRAFT` state.
You can't create vehicles from vehicle models that are associated with a `DRAFT` decoder manifest. Use the `UpdateDecoderManifest` API operation to change the decoder manifest to the `ACTIVE` state.
You can't edit decoder manifests that are in the `ACTIVE` state.

**Topics**
+ [Configure AWS IoT FleetWise network interfaces and decoder signals](configure-network-interfaces-decoder-signals.md)
+ [Create an AWS IoT FleetWise decoder manifest](create-decoder-manifest.md)
+ [Update an AWS IoT FleetWise decoder manifest](update-decoder-manifest.md)
+ [Delete an AWS IoT FleetWise decoder manifest](delete-decoder-manifest.md)
+ [Get AWS IoT FleetWise decoder manifest information](get-decoder-manifest-information.md)

# Configure AWS IoT FleetWise network interfaces and decoder signals
<a name="configure-network-interfaces-decoder-signals"></a>

**Important**  
Access to certain AWS IoT FleetWise features is currently gated. For more information, see [AWS Region and feature availability in AWS IoT FleetWise](fleetwise-regions.md).

Every decoder manifest has at least a network interface and signal decoders paired with signals specified in the associated vehicle model.

If the decoder manifest contains CAN network interfaces, it must contain CAN signal decoders. If the decoder manifest contains OBD network interfaces, it must contain OBD signal decoders.

**Topics**
+ [Configure network interfaces](#configure-network-interfaces)
+ [Configure signal decoders](#configure-decoder-signals)

## Configure network interfaces
<a name="configure-network-interfaces"></a>

To configure a CAN network interface, specify the following information.
+ `name` – The CAN interface's name. 

  The interface name must be unique and can have 1–100 characters.
+ (Optional) `protocolName` – The protocol's name.

  Valid values: `CAN-FD` and `CAN`
+ (Optional) `protocolVersion` – AWS IoT FleetWise currently supports CAN-FD and CAN 2.0b.

  Valid values: `1.0` and `2.0b`

To configure an OBD network interface, specify the following information.
+ `name` – The OBD interface's name. 

  The interface name must be unique and can have 1–100 characters.
+ `requestMessageId` – The ID of the message that is requesting data.
+ (Optional) `dtcRequestIntervalSeconds` – How often to request diagnostic trouble codes (DTCs) from the vehicle in seconds. For example, if the specified value is 120, the Edge Agent software collects stored DTCs once every 2 minutes.
+ (Optional) `hasTransmissionEcu` – Whether the vehicle has a transmission control module (TCM).

  Valid values: `true` and `false`
+ (Optional) `obdStandard` – The OBD standard that AWS IoT FleetWise supports. AWS IoT FleetWise currently supports the World Wide Harmonization On-Board Diagnostics (WWH-OBD) ISO15765-4 standard.
+ (Optional) `pidRequestIntervalSeconds` – How often to request OBD II PIDs from the vehicle. For example, if the specified value is 120, the Edge Agent software collects OBD II PIDs once every 2 minutes.
+ (Optional) `useExtendedIds` – Whether to use extended IDs in the message.

  Valid values: `true` and `false`

To configure a vehicle middleware network interface, specify the following information.
+ `name` – The vehicle middleware interface's name. 

  The interface name must be unique and can have 1–100 characters.
+ `protocolName` – The protocol's name.

  Valid values: `ROS_2`

To configure a custom decoding interface, specify the following information.
+ `name` – The name of your decoder that you use to decode signals at the Edge.

  The decoder interface name can have 1–100 characters.

## Configure signal decoders
<a name="configure-decoder-signals"></a>

To configure a CAN signal decoder, specify the following information.
+ `factor` – The multiplier used to decode the message.
+ `isBigEndian` – Whether the byte ordering of the message is big-endian. If it's big-endian, the most significant value in the sequence is stored first, at the lowest storage address.
+ `isSigned` – Whether the message is signed. If it's signed, the message can represent both positive and negative numbers.
+ `length` – The length of the message in bits.
+ `messageId` – The ID of the message.
+ `offset` – The offset used to calculate the signal value. Combined with factor, the calculation is `value = raw_value * factor + offset`.
+ `startBit` – Indicates the location of the first bit of the message.
+ (Optional) `name` – The name of the signal.
+ (Optional) `signalValueType` – The value type of the signal. Integer is the default value type.

To configure an OBD signal decoder, specify the following information.
+ `byteLength` – The length of the message in bytes.
+ `offset` – The offset used to calculate the signal value. Combined with scaling, the calculation is `value = raw_value * scaling + offset`.
+ `pid` – The diagnostic code used to request a message from a vehicle for this signal.
+ `pidResponseLength` – The length of the requested message.
+ `scaling` – The multiplier used to decode the message.
+ `serviceMode` – The mode of operation (diagnostic service) in a message.
+ `startByte` – Indicates the beginning of the message.
+ (Optional) `bitMaskLength` – The number of bits that are masked in a message.
+ (Optional) `bitRightShift` – The number of positions shifted to the right.
+ (Optional) `isSigned` – Whether the message is signed. If it's signed, the message can represent both positive and negative numbers. The message is not signed by default (`false`).
+ (Optional) `signalValueType` – The value type of the signal. Integer is the default value type.

To configure a message signal decoder, specify the following information.
+ `topicName` – The topic name for the message signal. It corresponds to topics in ROS 2. For more information about the structured message object, see [StructuredMessage](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_StructuredMessage.html).
+ `structuredMessage` – The structured message for the message signal. It can be defined with either a primitiveMessageDefinition, structuredMessageListDefinition, or structuredMessageDefinition recursively.

To configure a custom decoding signal, specify the following information.
+ (Optional) `id` – The ID of the signal that you decode yourself using your decoder interface. The signal ID can have 1–150 characters. If not specified, the `id` defaults to the `fullyQualifiedName` of the signal.

# Create an AWS IoT FleetWise decoder manifest
<a name="create-decoder-manifest"></a>

**Important**  
Access to certain AWS IoT FleetWise features is currently gated. For more information, see [AWS Region and feature availability in AWS IoT FleetWise](fleetwise-regions.md).

You can use the AWS IoT FleetWise console or API to create a decoder manifest for your vehicle model.

**Topics**
+ [Create a decoder manifest (console)](#create-decoder-manifest-console)
+ [Create a decoder manifest (AWS CLI)](#create-decoder-manifest-cli)

## Create a decoder manifest (console)
<a name="create-decoder-manifest-console"></a>

You can use the AWS IoT FleetWise console to create a decoder manifest that's associated with your vehicle model.

**Important**  
You can't configure vision system data signals in decoder manifests using the AWS IoT FleetWise console. Instead, use the AWS CLI. Vision system data is in preview release and is subject to change.

**To create a decoder manifest**

1. <a name="fleetwise-open-console"></a>Open the [AWS IoT FleetWise console](https://console.aws.amazon.com/iotfleetwise).

1. <a name="choose-vehicle-models"></a>On the navigation pane, choose **Vehicle models**.

1. Choose the target vehicle model.

1. On the vehicle model summary page, choose **Create decoder manifest**, and then do the following.

**Topics**
+ [Step 1: Configure decoder manifest](#configure-decoder-manifest-console)
+ [Step 2: Map CAN interface](#map-can-interface)
+ [Step 3: Review and create](#review-and-create-decoder-manifest-console)

### Step 1: Configure decoder manifest
<a name="configure-decoder-manifest-console"></a>

In **General information**, do the following.

1. Enter a unique name for the decoder manifest.

1. (Optional) Enter a description.

1. Choose **Next**.

#### Add network interfaces
<a name="add-network-interfaces"></a>

Each decoder manifest must have at least one network interface. You can add multiple network interfaces to a decoder manifest.

**To add a network interface**

1. Upload a network interface file. You can upload a .dbc file for CAN protocols, or a .json file for ROS 2 or custom interfaces.

1. Enter a name for your network interface. If you uploaded a custom interface, the name is already provided.

#### Map missing signals
<a name="map-missing-decoders"></a>

If there are signals in the vehicle model that are missing paired signal decoders in the uploaded network interfaces, you can create a default custom decoder that will map the missing signals. This is optional since you can manually map the signals in the next step.

**To create a default custom decoder**

1. Select **Create default custom decoder for missing signals**.

1. Choose **Next**.

### Step 2: Map CAN interface
<a name="map-can-interface"></a>

You can map the CAN signals with CAN signal decoders. If you selected the **Create default custom decoder for missing signals** checkbox, any signals that are missing a decoder signal are automatically mapped to default custom signal decoders.

**To map CAN signals**

1. In **CAN signal mapping**, select a signal decoder.

1. Choose **Next**.

**Note**  
If you added a ROS 2 or a custom interface, you can verify the mappings before creating the decoder manifest.

### Step 3: Review and create
<a name="review-and-create-decoder-manifest-console"></a>

Verify the configurations for the decoder manifest, and then choose **Create**.

## Create a decoder manifest (AWS CLI)
<a name="create-decoder-manifest-cli"></a>

You can use the [CreateDecoderManifest](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_CreateDecoderManifest.html) API operation to create decoder manifests. The following example uses the AWS CLI. 

**Important**  
You must have a vehicle model before you can create a decoder manifest. Every decoder manifest must be associated with a vehicle model. For more information, see [Create an AWS IoT FleetWise vehicle model](create-vehicle-model.md).

To create a decoder manifest, run the following command.

Replace *decoder-manifest-configuration* with the name of the .json file that contains the configuration.

```
aws iotfleetwise create-decoder-manifest --cli-input-json file://decoder-manifest-configuration.json
```

### Decoder manifest with CAN interface configuration
<a name="decoder-manifest-configuration"></a>
+ Replace *decoder-manifest-name* with the name of the decoder manifest that you're creating.
+ Replace *vehicle-model-ARN* with the Amazon Resource Name (ARN) of the vehicle-model.
+ (Optional) Replace *description* with a description to help you identify the decoder manifest.

For more information about how to configure branches, attributes, sensors, and actuators, see [Configure AWS IoT FleetWise network interfaces and decoder signals](configure-network-interfaces-decoder-signals.md).

```
{
    "name": "decoder-manifest-name",
    "modelManifestArn": "vehicle-model-arn",
    "description": "description",
    "networkInterfaces": [
        {
            "canInterface": {
                "name": "myNetworkInterface",
                "protocolName": "CAN",
                "protocolVersion": "2.0b"
            },
            "interfaceId": "Qq1acaenByOB3sSM39SYm",
            "type": "CAN_INTERFACE"
        }
    ],
    "signalDecoders": [
        {
            "canSignal": {
                "name": "Engine_Idle_Time",
                "factor": 1,
                "isBigEndian": true,
                "isSigned": false,
                "length": 24,
                "messageId": 271343712,
                "offset": 0,
                "startBit": 16
            },
            "fullyQualifiedName": "Vehicle.EngineIdleTime",
            "interfaceId": "Qq1acaenByOB3sSM39SYm",
            "type": "CAN_SIGNAL"
        },
        {
            "canSignal": {
                "name": "Engine_Run_Time",
                "factor": 1,
                "isBigEndian": true,
                "isSigned": false,
                "length": 24,
                "messageId": 271343712,
                "offset": 0,
                "startBit": 40
            },
            "fullyQualifiedName": "Vehicle.EngineRunTime",
            "interfaceId": "Qq1acaenByOB3sSM39SYm",
            "type": "CAN_SIGNAL"
        }
    ]
}
```

### Decoder manifest with vehicle middleware interface configuration
<a name="decoder-manifest-vehicle-middleware-configuration"></a>
+ Replace *decoder-manifest-name* with the name of the decoder manifest that you're creating.
+ Replace *vehicle-model-ARN* with the Amazon Resource Name (ARN) of the vehicle-model.
+ (Optional) Replace *description* with a description to help you identify the decoder manifest.

The order of property nodes within a structure (struct) must remain consistent as defined in the signal catalog and vehicle model (model manifest). For more information about how to configure branches, attributes, sensors, and actuators, see [Configure AWS IoT FleetWise network interfaces and decoder signals](configure-network-interfaces-decoder-signals.md).

```
{
	"name": "decoder-manifest-name",
	"modelManifestArn": "vehicle-model-arn",
	"description": "description",
	"networkInterfaces": [{
		"canInterface": {
			"name": "myNetworkInterface",
			"protocolName": "CAN",
			"protocolVersion": "2.0b"
		},
		"interfaceId": "Qq1acaenByOB3sSM39SYm",
		"type": "CAN_INTERFACE"
	}, {
		"type": "VEHICLE_MIDDLEWARE",
		"interfaceId": "G1KzxkdnmV5Hn7wkV3ZL9",
		"vehicleMiddleware": {
			"name": "ROS2_test",
			"protocolName": "ROS_2"
		}
	}],
	"signalDecoders": [{
			"canSignal": {
				"name": "Engine_Idle_Time",
				"factor": 1,
				"isBigEndian": true,
				"isSigned": false,
				"length": 24,
				"messageId": 271343712,
				"offset": 0,
				"startBit": 16
			},
			"fullyQualifiedName": "Vehicle.EngineIdleTime",
			"interfaceId": "Qq1acaenByOB3sSM39SYm",
			"type": "CAN_SIGNAL"
		},
		{
			"canSignal": {
				"name": "Engine_Run_Time",
				"factor": 1,
				"isBigEndian": true,
				"isSigned": false,
				"length": 24,
				"messageId": 271343712,
				"offset": 0,
				"startBit": 40
			},
			"fullyQualifiedName": "Vehicle.EngineRunTime",
			"interfaceId": "Qq1acaenByOB3sSM39SYm",
			"type": "CAN_SIGNAL"
		},
		{
			"fullyQualifiedName": "Vehicle.CompressedImageTopic",
			"type": "MESSAGE_SIGNAL",
			"interfaceId": "G1KzxkdnmV5Hn7wkV3ZL9",
			"messageSignal": {
				"topicName": "CompressedImageTopic:sensor_msgs/msg/CompressedImage",
				"structuredMessage": {
					"structuredMessageDefinition": [{
							"fieldName": "header",
							"dataType": {
								"structuredMessageDefinition": [{
										"fieldName": "stamp",
										"dataType": {
											"structuredMessageDefinition": [{
													"fieldName": "sec",
													"dataType": {
														"primitiveMessageDefinition": {
															"ros2PrimitiveMessageDefinition": {
																"primitiveType": "INT32"
															}
														}
													}
												},
												{
													"fieldName": "nanosec",
													"dataType": {
														"primitiveMessageDefinition": {
															"ros2PrimitiveMessageDefinition": {
																"primitiveType": "UINT32"
															}
														}
													}
												}
											]
										}
									},
									{
										"fieldName": "frame_id",
										"dataType": {
											"primitiveMessageDefinition": {
												"ros2PrimitiveMessageDefinition": {
													"primitiveType": "STRING"
												}
											}
										}
									}
								]
							}
						},
						{
							"fieldName": "format",
							"dataType": {
								"primitiveMessageDefinition": {
									"ros2PrimitiveMessageDefinition": {
										"primitiveType": "STRING"
									}
								}
							}
						},
						{
							"fieldName": "data",
							"dataType": {
								"structuredMessageListDefinition": {
									"name": "listType",
									"memberType": {
										"primitiveMessageDefinition": {
											"ros2PrimitiveMessageDefinition": {
												"primitiveType": "UINT8"
											}
										}
									},
									"capacity": 0,
									"listType": "DYNAMIC_UNBOUNDED_CAPACITY"
								}
							}
						}
					]
				}
			}
		}
	]
}
```

### Decoder manifest with custom decoder configuration
<a name="decoder-manifest-custom-decoder-config"></a>
+ Replace *decoder-manifest-name* with the name of the decoder manifest that you're creating.
+ Replace *vehicle-model-ARN* with the Amazon Resource Name (ARN) of the vehicle-model.
+ (Optional) Replace *description* with a description to help you identify the decoder manifest.

For more information about how to configure branches, attributes, sensors, and actuators, see [Configure AWS IoT FleetWise network interfaces and decoder signals](configure-network-interfaces-decoder-signals.md).

```
{
	"name": "decoder-manifest-name",
	"modelManifestArn": "vehicle-model-arn",
	"description": "description",
	"networkInterfaces": [
        {
		    "interfaceId": "myCustomInterfaceId",
		    "type": "CUSTOM_DECODING_INTERFACE",
            "customDecodingInterface": {
                "name": "myCustomInterface"
            }
        }
    ],
    "signalDecoders": [
        {
            "customDecodingSignal": {
                "fullyQualifiedName": "Vehicle.actuator1",
                "interfaceId": "myCustomInterfaceId",
                "type": "CUSTOM_DECODING_SIGNAL",
                "customDecodingSignal": {
                    "id": "Vehicle.actuator1"
                }
            }
        },
        {
            "customDecodingSignal": {
                "fullyQualifiedName": "Vehicle.actuator2",
                "interfaceId": "myCustomInterfaceId",
                "type": "CUSTOM_DECODING_SIGNAL",
                "customDecodingSignal": {
                    "id": "Vehicle.actuator2"
                }
            }
        }
    ]
}
```

**Note**  
You can download a [demo script](https://raw.githubusercontent.com/aws/aws-iot-fleetwise-edge/main/tools/cloud/ros2-to-decoders.py) to create a decoder manifest with vision system signals. For more information, see the [https://github.com/aws/aws-iot-fleetwise-edge/blob/main/docs/dev-guide/vision-system-data/vision-system-data-demo.ipynb](https://github.com/aws/aws-iot-fleetwise-edge/blob/main/docs/dev-guide/vision-system-data/vision-system-data-demo.ipynb).  
Vision system data is in preview release and is subject to change.

If you [enabled encryption](key-management.md) using a customer managed AWS KMS key, include the following policy statement so that your role can invoke the `CreateDecoderManifest` API operation. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey*",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/KMS_KEY_ID"
            ]
        }
    ]
}
```

------

# Update an AWS IoT FleetWise decoder manifest
<a name="update-decoder-manifest"></a>

**Important**  
Access to certain AWS IoT FleetWise features is currently gated. For more information, see [AWS Region and feature availability in AWS IoT FleetWise](fleetwise-regions.md).

You can use the [UpdateDecoderManifest](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_UpdateDecoderManifest.html) API operation to update a decoder manifest. You can add, remove, and update network interfaces and signal decoders. You can also change the status of the decoder manifest. The following example uses the AWS CLI.

To update a decoder manifest, run the following command.

Replace *decoder-manifest-name* with the name of the decoder manifest that you're updating.

```
aws iotfleetwise update-decoder-manifest / 
                --name decoder-manifest-name /
                --status ACTIVE
```

If the signals don't have specified decoding rules, you can create default decoding rules. The signals are added to a custom decoded interface with the `CustomDecodingSignal$id` set to the fully qualified name of the signal. To update a decoder manifest with default decoding rules, run the following command.

Replace *decoder-manifest-name* with the name of the decoder manifest that you're updating.

```
aws iotfleetwise update-decoder-manifest / 
                --name decoder-manifest-name /
                --status ACTIVE
                --default-for-unmapped-signals CUSTOM_DECODING
```

**Important**  
After you activate the decoder manifest, you can't edit it.

If you [enabled encryption](key-management.md) using a customer managed AWS KMS key, include the following policy statement so that your role can invoke the `UpdateDecoderManifest` API operation. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey*",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/KMS_KEY_ID"
            ]
        }
    ]
}
```

------

## Verify decoder manifest update
<a name="verify-decoder-update"></a>

You can use the [ListDecoderManifestSignals](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_ListDecoderManifestSignals.html) API operation to verify if decoder signals in the decoder manifest were updated. The following example uses AWS CLI.

To retrieve a paginated list of summaries of all decoder signals (nodes) in a given decoder manifest, run the following command.

Replace *decoder-manifest-name* with the name of the decoder manifest that you're checking.

```
aws iotfleetwise list-decoder-manifest-signals /
                 --name decoder-manifest-name
```

If you [enabled encryption](key-management.md) using a customer managed AWS KMS key, include the following policy statement so that your role can invoke the `ListDecoderManifestSignals` API operation. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/KMS_KEY_ID"
            ]
        }
    ]
}
```

------

You can use the [ListDecoderManifestNetworkInterfaces](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_ListDecoderManifestNetworkInterfaces.html) API operation to verify if network interfaces in the decoder manifest were updated. The following example uses AWS CLI.

To retrieve a paginated list of summaries of all network interfaces in a given decoder manifest, run the following command.

Replace *decoder-manifest-name* with the name of the decoder manifest that you're checking.

```
aws iotfleetwise list-decoder-manifest-network-interfaces /
                 --name decoder-manifest-name
```

If you [enabled encryption](key-management.md) using a customer managed AWS KMS key, include the following policy statement so that your role can invoke the `ListDecoderManifestNetworkInterfaces` API operation. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/KMS_KEY_ID"
            ]
        }
    ]
}
```

------

# Delete an AWS IoT FleetWise decoder manifest
<a name="delete-decoder-manifest"></a>

You can use the AWS IoT FleetWise console or API to delete a decoder manifest.

**Important**  
Vehicles associated with the decoder manifest must be deleted first. For more information, see [Delete an AWS IoT FleetWise vehicle](delete-vehicle.md).

**Topics**
+ [Delete a decoder manifest (console)](#delete-decoder-manifest-console)
+ [Delete a decoder manifest (AWS CLI)](#delete-decoder-manifest-cli)

## Delete a decoder manifest (console)
<a name="delete-decoder-manifest-console"></a>

You can use the AWS IoT FleetWise console to delete a decoder manifest.

**To delete a decoder manifest**

1. <a name="fleetwise-open-console"></a>Open the [AWS IoT FleetWise console](https://console.aws.amazon.com/iotfleetwise).

1. <a name="choose-vehicle-models"></a>On the navigation pane, choose **Vehicle models**.

1. Choose the target vehicle model.

1. On the vehicle model summary page, choose the **Decoder manifests** tab.

1. Choose the target decoder manifest, and then choose **Delete**.

1. In **Delete **decoder-manifest-name**?**, enter the name of the decoder manifest to delete, and then choose **Confirm**.

## Delete a decoder manifest (AWS CLI)
<a name="delete-decoder-manifest-cli"></a>

You can use the [DeleteDecoderManifest](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_DeleteDecoderManifest.html) API operation to delete a decoder manifest. The following example uses AWS CLI.

**Important**  
Before you delete the decoder manifest, delete the associated vehicles first. For more information, see [Delete an AWS IoT FleetWise vehicle](delete-vehicle.md).

To delete a decoder manifest, run the following command.

Replace *decoder-manifest-name* with the name of the decoder manifest that you're deleting.

```
aws iotfleetwise delete-decoder-manifest --name decoder-manifest-name
```

### Verify decoder manifest deletion
<a name="verify-decoder-deletion"></a>

You can use the [ListDecoderManifests](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_ListDecoderManifests.html) API operation to verify if a decoder manifest has been deleted. The following example uses AWS CLI.

To retrieve a paginated list of summaries of all decoder manifests, run the following command.

```
aws iotfleetwise list-decoder-manifests
```

If you [enabled encryption](key-management.md) using a customer managed AWS KMS key, include the following policy statement so that your role can invoke the `ListDecoderManifests` API operation. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/KMS_KEY_ID"
            ]
        }
    ]
}
```

------

# Get AWS IoT FleetWise decoder manifest information
<a name="get-decoder-manifest-information"></a>

You can use the [GetDecoderManifest](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_GetDecoderManifest.html) API operation to verify if network interfaces and signal decoders in the decoder manifest have been updated. The following example uses AWS CLI.

To retrieve information about a decoder manifest, run the following command.

Replace *decoder-manifest* with the name of the decoder manifest that you want to retrieve.

```
aws iotfleetwise get-decoder-manifest --name decoder-manifest
```

**Note**  
This operation is [eventually consistent](https://web.stanford.edu/class/cs345d-01/rl/eventually-consistent.pdf). In other words, changes to the decoder manifest might not be reflected immediately.

If you [enabled encryption](key-management.md) using a customer managed AWS KMS key, include the following policy statement so that your role can invoke the `GetDecoderManifest` API operation. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/KMS_KEY_ID"
            ]
        }
    ]
}
```

------