<commit_before>﻿using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using Elasticsearch.Net;
using Elasticsearch.Net.Utf8Json;

namespace Nest
{
	public class ExplainLifecycleResponse : ResponseBase
	{
		[DataMember(Name = "indices")]
		public IReadOnlyDictionary<string, LifecycleExplain> Indices { get; internal set; }
	}

	public class LifecycleExplain
	{
		[DataMember(Name = "action")]
		public string Action { get; internal set; }

		/// <summary>
		/// When the index entered the current action.
		/// </summary>
		[DataMember(Name = "action_time_millis")]
		[JsonFormatter(typeof(DateTimeOffsetEpochMillisecondsFormatter))]
		public DateTimeOffset ActionTime { get; internal set; }

		/// <summary>
		/// The step that caused the error, if applicable.
		/// </summary>
		[DataMember(Name = "failed_step")]
		public string FailedStep { get; internal set; }

		[DataMember(Name = "index")]
		public IndexName Index { get; internal set; }

		/// <summary>
		/// The timestamp used for minimum age.
		/// </summary>
		[DataMember(Name = "lifecycle_date_millis")]
		[JsonFormatter(typeof(DateTimeOffsetEpochMillisecondsFormatter))]
		public DateTimeOffset LifecycleDate { get; internal set; }

		/// <summary>
		/// Shows if the index is being managed by Index Lifecycle Management (ILM). If the index is not managed by ILM the other
		/// fields will not be shown.
		/// </summary>
		[DataMember(Name = "managed")]
		public bool Managed { get; internal set; }

		[DataMember(Name = "phase")]
		public string Phase { get; internal set; }

		/// <summary>
		/// When the index entered the current phase.
		/// </summary>
		[DataMember(Name = "phase_time_millis")]
		[JsonFormatter(typeof(DateTimeOffsetEpochMillisecondsFormatter))]
		public DateTimeOffset PhaseTime { get; internal set; }

		/// <summary>
		/// The name of the policy which ILM is using for this index.
		/// </summary><commit_msg>Add retry count and is retryable to ILM explain (#4391)<commit_after>﻿using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using Elasticsearch.Net;
using Elasticsearch.Net.Utf8Json;

namespace Nest
{
	public class ExplainLifecycleResponse : ResponseBase
	{
		[DataMember(Name = "indices")]
		public IReadOnlyDictionary<string, LifecycleExplain> Indices { get; internal set; }
	}

	public class LifecycleExplain
	{
		[DataMember(Name = "action")]
		public string Action { get; internal set; }

		/// <summary>
		/// When the index entered the current action.
		/// </summary>
		[DataMember(Name = "action_time_millis")]
		[JsonFormatter(typeof(DateTimeOffsetEpochMillisecondsFormatter))]
		public DateTimeOffset ActionTime { get; internal set; }

		/// <summary>
		///	Indicates if retrying a failed step can overcome the error.
		/// If this is true, the failed step will be retried automatically.
		/// </summary>
		[DataMember(Name = "is_auto_retryable_error")]
		public bool? IsAutoRetryableError { get; internal set; }

		/// <summary>
		/// The step that caused the error, if applicable.
		/// </summary>
		[DataMember(Name = "failed_step")]
		public string FailedStep { get; internal set; }

		/// <summary>
		/// Number of attempted automatic retries to execute the failed step, if applicable.
		/// </summary>
		[DataMember(Name = "failed_step_retry_count")]
		public int? FailedStepRetryCount { get; internal set; }

		[DataMember(Name = "index")]
		public IndexName Index { get; internal set; }

		/// <summary>
		/// The timestamp used for minimum age.
		/// </summary>
		[DataMember(Name = "lifecycle_date_millis")]
		[JsonFormatter(typeof(DateTimeOffsetEpochMillisecondsFormatter))]
		public DateTimeOffset LifecycleDate { get; internal set; }

		/// <summary>
		/// Shows if the index is being managed by Index Lifecycle Management (ILM). If the index is not managed by ILM the other
		/// fields will not be shown.
		/// </summary>
		[DataMember(Name = "managed")]
		public bool Managed { get; internal set; }

		[DataMember(Name = "phase")]
		public string Phase { get; internal set; }

		/// <summary>
		/// When the index entered the current phase.
		/// </summary>
		[DataMember(Name = "phase_time_millis")]
		[JsonFormatter(typeof(DateTimeOffsetEpochMillisecondsFormatter))]
		public DateTimeOffset PhaseTime { get; internal set; }

		/// <summary>
		/// The name of the policy which ILM is using for this index.
		/// </summary>
{'fraction_non_alphanumeric': 0.12216681776971895, 'fraction_numerical': 0.0013599274705349048, 'mean_word_length': 3.80718954248366, 'pattern_counts': {'":': 0, '<': 33, '<?xml version=': 0, '>': 33, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6888443', 'n_tokens_mistral': 1391, 'n_tokens_neox': 1274, 'n_words': 409}