in internal/elasticsearch/logstash/pipeline.go [225:287]
func resourceLogstashPipelineRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
client, diags := clients.NewApiClientFromSDKResource(d, meta)
if diags.HasError() {
return diags
}
resourceID, diags := clients.ResourceIDFromStr(d.Id())
if diags.HasError() {
return diags
}
logstashPipeline, diags := elasticsearch.GetLogstashPipeline(ctx, client, resourceID)
if logstashPipeline == nil && diags == nil {
tflog.Warn(ctx, fmt.Sprintf(`Logstash pipeline "%s" not found, removing from state`, resourceID))
d.SetId("")
return diags
}
if diags.HasError() {
return diags
}
if err := d.Set("pipeline_id", logstashPipeline.PipelineID); err != nil {
return diag.FromErr(err)
}
if err := d.Set("description", logstashPipeline.Description); err != nil {
return diag.FromErr(err)
}
if err := d.Set("last_modified", logstashPipeline.LastModified); err != nil {
return diag.FromErr(err)
}
if err := d.Set("pipeline", logstashPipeline.Pipeline); err != nil {
return diag.FromErr(err)
}
pipelineMetadata, err := json.Marshal(logstashPipeline.PipelineMetadata)
if err != nil {
return diag.FromErr(err)
}
if err := d.Set("pipeline_metadata", string(pipelineMetadata)); err != nil {
return diag.FromErr(err)
}
for key, typ := range allSettingsKeys {
var value interface{}
if v, ok := logstashPipeline.PipelineSettings[key]; ok {
value = v
} else {
tflog.Warn(ctx, fmt.Sprintf("setting '%s' is not currently managed by terraform provider and has been ignored", key))
continue
}
switch typ {
case schema.TypeInt:
value = int(math.Round(value.(float64)))
}
if err := d.Set(utils.ConvertSettingsKeyToTFFieldKey(key), value); err != nil {
return diag.FromErr(err)
}
}
if err := d.Set("username", logstashPipeline.Username); err != nil {
return diag.FromErr(err)
}
return nil
}