in internal/elasticsearch/cluster/slm.go [239:329]
func resourceSlmRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client, diags := clients.NewApiClientFromSDKResource(d, meta)
if diags.HasError() {
return diags
}
id, diags := clients.CompositeIdFromStr(d.Id())
if diags.HasError() {
return diags
}
slm, diags := elasticsearch.GetSlm(ctx, client, id.ResourceId)
if slm == nil && diags == nil {
tflog.Warn(ctx, fmt.Sprintf(`SLM policy "%s" not found, removing from state`, id.ResourceId))
d.SetId("")
return diags
}
if diags.HasError() {
return diags
}
if err := d.Set("name", id.ResourceId); err != nil {
return diag.FromErr(err)
}
if err := d.Set("snapshot_name", slm.Name); err != nil {
return diag.FromErr(err)
}
if err := d.Set("repository", slm.Repository); err != nil {
return diag.FromErr(err)
}
if err := d.Set("schedule", slm.Schedule); err != nil {
return diag.FromErr(err)
}
if slm.Retention != nil {
if v := slm.Retention.ExpireAfter; v != nil {
if err := d.Set("expire_after", *v); err != nil {
return diag.FromErr(err)
}
}
if v := slm.Retention.MaxCount; v != nil {
if err := d.Set("max_count", *v); err != nil {
return diag.FromErr(err)
}
}
if v := slm.Retention.MinCount; v != nil {
if err := d.Set("min_count", *v); err != nil {
return diag.FromErr(err)
}
}
}
if c := slm.Config; c != nil {
if c.ExpandWildcards != nil {
if err := d.Set("expand_wildcards", *c.ExpandWildcards); err != nil {
return diag.FromErr(err)
}
}
if c.IncludeGlobalState != nil {
if err := d.Set("include_global_state", *c.IncludeGlobalState); err != nil {
return diag.FromErr(err)
}
}
if c.IgnoreUnavailable != nil {
if err := d.Set("ignore_unavailable", *c.IgnoreUnavailable); err != nil {
return diag.FromErr(err)
}
}
if c.Partial != nil {
if err := d.Set("partial", *c.Partial); err != nil {
return diag.FromErr(err)
}
}
if c.Metadata != nil {
meta, err := json.Marshal(c.Metadata)
if err != nil {
return diag.FromErr(err)
}
if err := d.Set("metadata", meta); err != nil {
return diag.FromErr(err)
}
}
if err := d.Set("indices", c.Indices); err != nil {
return diag.FromErr(err)
}
if err := d.Set("feature_states", c.FeatureStates); err != nil {
return diag.FromErr(err)
}
}
return diags
}