// <auto-generated/>

#nullable disable

using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;

namespace OpenAI.Graders
{
    [Experimental("OPENAI001")]
    public partial class RunGraderResponseMetadataErrors
    {
        private protected IDictionary<string, BinaryData> _additionalBinaryDataProperties;

        internal RunGraderResponseMetadataErrors(bool formulaParseError, bool sampleParseError, bool truncatedObservationError, bool unresponsiveRewardError, bool invalidVariableError, bool otherError, bool pythonGraderServerError, string pythonGraderServerErrorType, bool pythonGraderRuntimeError, string pythonGraderRuntimeErrorDetails, bool modelGraderServerError, bool modelGraderRefusalError, bool modelGraderParseError, string modelGraderServerErrorDetails)
        {
            FormulaParseError = formulaParseError;
            SampleParseError = sampleParseError;
            TruncatedObservationError = truncatedObservationError;
            UnresponsiveRewardError = unresponsiveRewardError;
            InvalidVariableError = invalidVariableError;
            OtherError = otherError;
            PythonGraderServerError = pythonGraderServerError;
            PythonGraderServerErrorType = pythonGraderServerErrorType;
            PythonGraderRuntimeError = pythonGraderRuntimeError;
            PythonGraderRuntimeErrorDetails = pythonGraderRuntimeErrorDetails;
            ModelGraderServerError = modelGraderServerError;
            ModelGraderRefusalError = modelGraderRefusalError;
            ModelGraderParseError = modelGraderParseError;
            ModelGraderServerErrorDetails = modelGraderServerErrorDetails;
        }

        internal RunGraderResponseMetadataErrors(bool formulaParseError, bool sampleParseError, bool truncatedObservationError, bool unresponsiveRewardError, bool invalidVariableError, bool otherError, bool pythonGraderServerError, string pythonGraderServerErrorType, bool pythonGraderRuntimeError, string pythonGraderRuntimeErrorDetails, bool modelGraderServerError, bool modelGraderRefusalError, bool modelGraderParseError, string modelGraderServerErrorDetails, IDictionary<string, BinaryData> additionalBinaryDataProperties)
        {
            FormulaParseError = formulaParseError;
            SampleParseError = sampleParseError;
            TruncatedObservationError = truncatedObservationError;
            UnresponsiveRewardError = unresponsiveRewardError;
            InvalidVariableError = invalidVariableError;
            OtherError = otherError;
            PythonGraderServerError = pythonGraderServerError;
            PythonGraderServerErrorType = pythonGraderServerErrorType;
            PythonGraderRuntimeError = pythonGraderRuntimeError;
            PythonGraderRuntimeErrorDetails = pythonGraderRuntimeErrorDetails;
            ModelGraderServerError = modelGraderServerError;
            ModelGraderRefusalError = modelGraderRefusalError;
            ModelGraderParseError = modelGraderParseError;
            ModelGraderServerErrorDetails = modelGraderServerErrorDetails;
            _additionalBinaryDataProperties = additionalBinaryDataProperties;
        }

        public bool FormulaParseError { get; }

        public bool SampleParseError { get; }

        public bool TruncatedObservationError { get; }

        public bool UnresponsiveRewardError { get; }

        public bool InvalidVariableError { get; }

        public bool OtherError { get; }

        public bool PythonGraderServerError { get; }

        public string PythonGraderServerErrorType { get; }

        public bool PythonGraderRuntimeError { get; }

        public string PythonGraderRuntimeErrorDetails { get; }

        public bool ModelGraderServerError { get; }

        public bool ModelGraderRefusalError { get; }

        public bool ModelGraderParseError { get; }

        public string ModelGraderServerErrorDetails { get; }

        internal IDictionary<string, BinaryData> SerializedAdditionalRawData
        {
            get => _additionalBinaryDataProperties;
            set => _additionalBinaryDataProperties = value;
        }
    }
}
