{
    "category": "api_structure",
    "id_lsb": 2,
    "name": "failure_message",
    "api_intro": 2,
    "message_types": [
        {
            "id": 1,
            "name": "failure"
        }
    ],
    "id_msb": 0,
    "properties": [
        {
            "size": 2,
            "type": "integer",
            "description": "Capability identifier of the failed message",
            "name": "failed_message_identifier",
            "id": 1
        },
        {
            "size": 1,
            "type": "integer",
            "description": "Message type of the failed message",
            "name": "failed_message_type",
            "id": 2
        },
        {
            "type": "enum",
            "size": 1,
            "values": [
                {
                    "pretty_name": "Unsupported Capability - Car has not the capability to perform the command",
                    "name": "unsupported_capability",
                    "id": 0
                },
                {
                    "pretty_name": "Unauthorised - User has not been authenticated or lacks permissions",
                    "name": "unauthorised",
                    "id": 1
                },
                {
                    "pretty_name": "Incorrect State - Command can not be executed in the current car state",
                    "name": "incorrect_state",
                    "id": 2
                },
                {
                    "pretty_name": "Execution Timeout - Command failed to execute in time for an unknown reason",
                    "name": "execution_timeout",
                    "id": 3
                },
                {
                    "pretty_name": "Vehicle Asleep - Car has to be waken up before the command can be used. If this is for a virtual car, the emulator has to be loaded",
                    "name": "vehicle_asleep",
                    "id": 4
                },
                {
                    "pretty_name": "Invalid Command - Not recognised",
                    "name": "invalid_command",
                    "id": 5
                }
            ],
            "id": 3,
            "name": "failure_reason"
        },
        {
            "type": "string",
            "description": "Failure description bytes formatted in UTF-8",
            "name": "failure_description",
            "id": 4
        }
    ],
    "api_update": 5
}
