// <auto-generated/>

#nullable disable

using System;
using System.Collections.Generic;
using System.Linq;
using OpenAI;

namespace OpenAI.Responses
{
    internal partial class InternalCodeInterpreterToolCallItemParam : InternalItemParam
    {
        public InternalCodeInterpreterToolCallItemParam(string code, IEnumerable<BinaryData> results) : base(InternalItemType.CodeInterpreterCall)
        {
            Argument.AssertNotNull(code, nameof(code));
            Argument.AssertNotNull(results, nameof(results));

            Code = code;
            Results = results.ToList();
        }

        internal InternalCodeInterpreterToolCallItemParam(InternalItemType kind, IDictionary<string, BinaryData> additionalBinaryDataProperties, string containerId, string code, IList<BinaryData> results) : base(kind, additionalBinaryDataProperties)
        {
            // Plugin customization: ensure initialization of collections
            ContainerId = containerId;
            Code = code;
            Results = results ?? new ChangeTrackingList<BinaryData>();
        }

        public string ContainerId { get; set; }

        public string Code { get; }

        public IList<BinaryData> Results { get; }
    }
}
