public AnalyzeConversationSummarizationResult(DateTimeOffset lastUpdateDateTime, TaskState status, SummaryResult results) : base(lastUpdateDateTime, status)
        {
            if (results == null)
            {
                throw new ArgumentNullException(nameof(results));
            }

            Results = results;
            Kind    = AnalyzeConversationResultsKind.ConversationalSummarizationResults;
        }
        internal static AnalyzeConversationSummarizationResult DeserializeAnalyzeConversationSummarizationResult(JsonElement element)
        {
            SummaryResult results = default;
            AnalyzeConversationResultsKind kind  = default;
            Optional <string> taskName           = default;
            DateTimeOffset    lastUpdateDateTime = default;
            TaskState         status             = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("results"))
                {
                    results = SummaryResult.DeserializeSummaryResult(property.Value);
                    continue;
                }
                if (property.NameEquals("kind"))
                {
                    kind = new AnalyzeConversationResultsKind(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("taskName"))
                {
                    taskName = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("lastUpdateDateTime"))
                {
                    lastUpdateDateTime = property.Value.GetDateTimeOffset("O");
                    continue;
                }
                if (property.NameEquals("status"))
                {
                    status = property.Value.GetString().ToTaskState();
                    continue;
                }
            }
            return(new AnalyzeConversationSummarizationResult(lastUpdateDateTime, status, kind, taskName.Value, results));
        }
 internal AnalyzeConversationSummarizationResult(DateTimeOffset lastUpdateDateTime, TaskState status, AnalyzeConversationResultsKind kind, string taskName, SummaryResult results) : base(lastUpdateDateTime, status, kind, taskName)
 {
     Results = results;
     Kind    = kind;
 }