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

@file:OptIn(kotlinx.serialization.ExperimentalSerializationApi::class)
@file:Suppress(
    "ArrayInDataClass",
    "EnumEntryName",
    "RemoveRedundantQualifierName",
    "UnusedImport",
)

package dev.mokksy.aimocks.openai.model

import kotlinx.serialization.EncodeDefault
import kotlinx.serialization.EncodeDefault.Mode.ALWAYS
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

/**
 * **o-series models only**  Configuration options for
 * [reasoning models](https://platform.openai.com/docs/guides/reasoning).
 *
 * @param effort
 * @param generateSummary **computer_use_preview only**  A summary of the reasoning performed
 * by the model. This can be useful for debugging and understanding the model's reasoning process.
 * One of `concise` or `detailed`.
 */
@Serializable
public data class Reasoning(
    @EncodeDefault(ALWAYS)
    @SerialName(value = "effort") val effort: ReasoningEffort? = ReasoningEffort.MEDIUM,
    // **computer_use_preview only**  A summary of the reasoning performed by the model.
    // This can be useful for debugging and understanding the model's reasoning process.
    // One of `concise` or `detailed`.
    @EncodeDefault(ALWAYS)
    @SerialName(value = "generate_summary") val generateSummary: Reasoning.GenerateSummary? = null,
) {
    /**
     * **computer_use_preview only**  A summary of the reasoning performed by the model.
     *
     * This can be useful for debugging and understanding the model's reasoning process. One of `concise` or `detailed`.
     *
     * Values: CONCISE,DETAILED
     */
    @Serializable
    public enum class GenerateSummary(
        public val value: kotlin.String,
    ) {
        @SerialName(value = "concise")
        CONCISE("concise"),

        @SerialName(value = "detailed")
        DETAILED("detailed"),
    }
}
