/**
 *
 * Please note:
 * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * Do not edit this file manually.
 *
 */

@file:Suppress(
    "ArrayInDataClass",
    "EnumEntryName",
    "RemoveRedundantQualifierName",
    "UnusedImport",
)

package dev.mokksy.aimocks.openai.model

import kotlinx.serialization.Required
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

/**
 *
 *
 * @param type The type of the file citation. Always `file_citation`.
 * @param index The index of the file in the list of files.
 * @param fileId The ID of the file.
 * @param url The URL of the web resource.
 * @param title The title of the web resource.
 * @param startIndex The index of the first character of the URL citation in the message.
 * @param endIndex The index of the last character of the URL citation in the message.
 */
@Serializable
public data class Annotation(
    // The type of the file citation. Always `file_citation`.
    @SerialName(value = "type") @Required val type: Annotation.Type,
    // The index of the file in the list of files.
    @SerialName(value = "index") @Required val index: kotlin.Int,
    // The ID of the file.
    @SerialName(value = "file_id") @Required val fileId: kotlin.String,
    // The URL of the web resource.
    @SerialName(value = "url") @Required val url: kotlin.String,
    // The title of the web resource.
    @SerialName(value = "title") @Required val title: kotlin.String,
    // The index of the first character of the URL citation in the message.
    @SerialName(value = "start_index") @Required val startIndex: kotlin.Int,
    // The index of the last character of the URL citation in the message.
    @SerialName(value = "end_index") @Required val endIndex: kotlin.Int,
) {
    /**
     * The type of the file citation. Always `file_citation`.
     *
     * Values: FILE_CITATION,URL_CITATION,FILE_PATH
     */
    @Serializable
    public enum class Type(
        public val value: kotlin.String,
    ) {
        @SerialName(value = "file_citation")
        FILE_CITATION("file_citation"),

        @SerialName(value = "url_citation")
        URL_CITATION("url_citation"),

        @SerialName(value = "file_path")
        FILE_PATH("file_path"),
    }
}
