// <auto-generated/>

#nullable disable

using System;
using System.Collections.Generic;

namespace OpenAI.Responses
{
    internal partial class InternalImageGenTool : ResponseTool
    {
        public InternalImageGenTool() : this(InternalToolType.ImageGeneration, null, null, default, default, default, default, default, default, null, default)
        {
        }

        internal InternalImageGenTool(InternalToolType kind, IDictionary<string, BinaryData> additionalBinaryDataProperties, string model, InternalImageGenToolQuality? quality, InternalImageGenToolSize? size, InternalImageGenToolOutputFormat? outputFormat, int? outputCompression, InternalImageGenToolModeration? moderation, InternalImageGenToolBackground? background, InternalImageGenToolInputImageMask inputImageMask, int? partialImages) : base(kind, additionalBinaryDataProperties)
        {
            Model = model;
            Quality = quality;
            Size = size;
            OutputFormat = outputFormat;
            OutputCompression = outputCompression;
            Moderation = moderation;
            Background = background;
            InputImageMask = inputImageMask;
            PartialImages = partialImages;
        }

        public string Model { get; set; }

        internal InternalImageGenToolQuality? Quality { get; set; }

        internal InternalImageGenToolSize? Size { get; set; }

        internal InternalImageGenToolOutputFormat? OutputFormat { get; set; }

        public int? OutputCompression { get; set; }

        internal InternalImageGenToolModeration? Moderation { get; set; }

        internal InternalImageGenToolBackground? Background { get; set; }

        internal InternalImageGenToolInputImageMask InputImageMask { get; set; }

        public int? PartialImages { get; set; }
    }
}
