/*
 * TaskStatusUpdateEvent.kt
 *
 * This code was generated by json-kotlin-schema-codegen - JSON Schema Code Generator
 * See https://github.com/pwall567/json-kotlin-schema-codegen
 *
 * It is not advisable to modify generated code as any modifications will be lost
 * when the generation process is re-run.
 *
 * This was generated from A2A Schema: https://raw.githubusercontent.com/google/A2A/refs/heads/main/specification/json/a2a.json
 */
package dev.mokksy.aimocks.a2a.model

import kotlinx.serialization.EncodeDefault
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
public data class TaskStatusUpdateEvent
    @JvmOverloads
    public constructor(
        @SerialName("id")
        val id: TaskId,
        @SerialName("status")
        val status: TaskStatus,
        @SerialName("final")
        @EncodeDefault
        val final: Boolean = false,
        @SerialName("metadata")
        val metadata: Metadata? = null,
    ) : TaskUpdateEvent {
        override fun id(): TaskId = id

        public fun isFinal(): Boolean = final

        public companion object
    }
