in src/Elastic.Ingest.Elasticsearch.CommonSchema/EcsDataStreamChannel.cs [36:65]
public override bool BootstrapElasticsearch(BootstrapMethod bootstrapMethod, string? ilmPolicy = null)
{
if (bootstrapMethod == BootstrapMethod.None) return true;
var name = $"{TemplateName}-{EcsDocument.Version}";
var match = TemplateWildcard;
if (IndexTemplateExists(name)) return false;
foreach (var kv in IndexComponents.Components)
{
if (!PutComponentTemplate(bootstrapMethod, kv.Key, kv.Value))
return false;
}
var additionalComponents = GetInferredComponentTemplates();
if (!string.IsNullOrEmpty(ilmPolicy))
{
// create a component template that sets index.lifecycle.name
var (settingsName, settingsBody) = GetDefaultComponentSettings(name, ilmPolicy);
if (!PutComponentTemplate(bootstrapMethod, settingsName, settingsBody))
return false;
additionalComponents.Add(settingsName);
}
var template = IndexTemplates.GetIndexTemplateForElasticsearchComposable(match, additionalComponents.ToArray());
if (!PutIndexTemplate(bootstrapMethod, name, template))
return false;
return true;
}