in internal/elasticsearch/index/template.go [346:419]
func resourceIndexTemplateRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client, diags := clients.NewApiClientFromSDKResource(d, meta)
if diags.HasError() {
return diags
}
compId, diags := clients.CompositeIdFromStr(d.Id())
if diags.HasError() {
return diags
}
templateId := compId.ResourceId
tpl, diags := elasticsearch.GetIndexTemplate(ctx, client, templateId)
if tpl == nil && diags == nil {
tflog.Warn(ctx, fmt.Sprintf(`Index template "%s" not found, removing from state`, compId.ResourceId))
d.SetId("")
return diags
}
if diags.HasError() {
return diags
}
// set the fields
if err := d.Set("name", tpl.Name); err != nil {
return diag.FromErr(err)
}
if err := d.Set("composed_of", tpl.IndexTemplate.ComposedOf); err != nil {
return diag.FromErr(err)
}
if stream := tpl.IndexTemplate.DataStream; stream != nil {
ds := make([]interface{}, 1)
dSettings := make(map[string]interface{})
if v := stream.Hidden; v != nil {
dSettings["hidden"] = *v
}
if v := stream.AllowCustomRouting; v != nil {
dSettings["allow_custom_routing"] = *v
}
ds[0] = dSettings
if err := d.Set("data_stream", ds); err != nil {
return diag.FromErr(err)
}
}
if err := d.Set("index_patterns", tpl.IndexTemplate.IndexPatterns); err != nil {
return diag.FromErr(err)
}
if tpl.IndexTemplate.Meta != nil {
metadata, err := json.Marshal(tpl.IndexTemplate.Meta)
if err != nil {
return diag.FromErr(err)
}
if err := d.Set("metadata", string(metadata)); err != nil {
return diag.FromErr(err)
}
}
if err := d.Set("priority", tpl.IndexTemplate.Priority); err != nil {
return diag.FromErr(err)
}
if tpl.IndexTemplate.Template != nil {
template, diags := flattenTemplateData(tpl.IndexTemplate.Template)
if diags.HasError() {
return diags
}
if err := d.Set("template", template); err != nil {
return diag.FromErr(err)
}
}
if err := d.Set("version", tpl.IndexTemplate.Version); err != nil {
return diag.FromErr(err)
}
return diags
}