internal/elasticsearch/security/api_key/delete.go (29 lines of code) (raw):
package api_key
import (
"context"
"github.com/elastic/terraform-provider-elasticstack/internal/clients"
"github.com/elastic/terraform-provider-elasticstack/internal/clients/elasticsearch"
"github.com/hashicorp/terraform-plugin-framework/resource"
)
func (r *Resource) Delete(ctx context.Context, req resource.DeleteRequest, resp *resource.DeleteResponse) {
var stateModel tfModel
resp.Diagnostics.Append(req.State.Get(ctx, &stateModel)...)
if resp.Diagnostics.HasError() {
return
}
client, diags := clients.MaybeNewApiClientFromFrameworkResource(ctx, stateModel.ElasticsearchConnection, r.client)
resp.Diagnostics.Append(diags...)
if resp.Diagnostics.HasError() {
return
}
compId, diags := stateModel.GetID()
resp.Diagnostics.Append(diags...)
if resp.Diagnostics.HasError() {
return
}
resp.Diagnostics.Append(elasticsearch.DeleteApiKey(client, compId.ResourceId)...)
if resp.Diagnostics.HasError() {
return
}
resp.State.RemoveResource(ctx)
}