diff --git a/datadog/resource_datadog_logs_index.go b/datadog/resource_datadog_logs_index.go index 31c3ed597d..be671cc204 100644 --- a/datadog/resource_datadog_logs_index.go +++ b/datadog/resource_datadog_logs_index.go @@ -103,6 +103,11 @@ var indexSchema = map[string]*schema.Schema{ Schema: exclusionFilterSchema, }, }, + "prevent_deletion": { + Description: "If true, the logs index cannot be deleted. Defaults to false.", + Type: schema.TypeBool, + Optional: true, + }, } var exclusionFilterSchema = map[string]*schema.Schema{ @@ -266,6 +271,11 @@ func resourceDatadogLogsIndexDelete(ctx context.Context, d *schema.ResourceData, logsIndexMutex.Lock() defer logsIndexMutex.Unlock() + + if v, ok := d.GetOk("prevent_deletion"); ok && v.(bool) { + return diag.Errorf("Deletion of logs index '%s' is prevented by 'prevent_deletion' flag", d.Id()) + } + httpResponse, err := apiInstances.GetLogsIndexesApiV1().DeleteLogsIndex(auth, d.Id()) if err != nil { return utils.TranslateClientErrorDiag(err, httpResponse, "error deleting logs index")