# frozen_string_literal: true

module OpenAI
  module Models
    module Chat
      class ChatCompletionAudio < OpenAI::Internal::Type::BaseModel
        # @!attribute id
        #   Unique identifier for this audio response.
        #
        #   @return [String]
        required :id, String

        # @!attribute data
        #   Base64 encoded audio bytes generated by the model, in the format specified in
        #   the request.
        #
        #   @return [String]
        required :data, String

        # @!attribute expires_at
        #   The Unix timestamp (in seconds) for when this audio response will no longer be
        #   accessible on the server for use in multi-turn conversations.
        #
        #   @return [Integer]
        required :expires_at, Integer

        # @!attribute transcript
        #   Transcript of the audio generated by the model.
        #
        #   @return [String]
        required :transcript, String

        # @!method initialize(id:, data:, expires_at:, transcript:)
        #   Some parameter documentations has been truncated, see
        #   {OpenAI::Models::Chat::ChatCompletionAudio} for more details.
        #
        #   If the audio output modality is requested, this object contains data about the
        #   audio response from the model.
        #   [Learn more](https://platform.openai.com/docs/guides/audio).
        #
        #   @param id [String] Unique identifier for this audio response.
        #
        #   @param data [String] Base64 encoded audio bytes generated by the model, in the format
        #
        #   @param expires_at [Integer] The Unix timestamp (in seconds) for when this audio response will
        #
        #   @param transcript [String] Transcript of the audio generated by the model.
      end
    end

    ChatCompletionAudio = Chat::ChatCompletionAudio
  end
end
