# frozen_string_literal: true

module OpenAI
  module Models
    module Responses
      class ResponseCustomToolCall < OpenAI::Internal::Type::BaseModel
        # @!attribute call_id
        #   An identifier used to map this custom tool call to a tool call output.
        #
        #   @return [String]
        required :call_id, String

        # @!attribute input
        #   The input for the custom tool call generated by the model.
        #
        #   @return [String]
        required :input, String

        # @!attribute name
        #   The name of the custom tool being called.
        #
        #   @return [String]
        required :name, String

        # @!attribute type
        #   The type of the custom tool call. Always `custom_tool_call`.
        #
        #   @return [Symbol, :custom_tool_call]
        required :type, const: :custom_tool_call

        # @!attribute id
        #   The unique ID of the custom tool call in the OpenAI platform.
        #
        #   @return [String, nil]
        optional :id, String

        # @!method initialize(call_id:, input:, name:, id: nil, type: :custom_tool_call)
        #   Some parameter documentations has been truncated, see
        #   {OpenAI::Models::Responses::ResponseCustomToolCall} for more details.
        #
        #   A call to a custom tool created by the model.
        #
        #   @param call_id [String] An identifier used to map this custom tool call to a tool call output.
        #
        #   @param input [String] The input for the custom tool call generated by the model.
        #
        #   @param name [String] The name of the custom tool being called.
        #
        #   @param id [String] The unique ID of the custom tool call in the OpenAI platform.
        #
        #   @param type [Symbol, :custom_tool_call] The type of the custom tool call. Always `custom_tool_call`.
      end
    end
  end
end
