From b3eed2521052d672394b30b6a1a40a2f076a3fee Mon Sep 17 00:00:00 2001 From: Toby Brain Date: Tue, 24 Sep 2024 20:01:37 +1000 Subject: [PATCH 1/2] Apply the sys_monitoring attribute during creation --- internal/clients/fleet/fleet.go | 12 ++++++++++-- internal/fleet/agent_policy_resource.go | 4 +++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/internal/clients/fleet/fleet.go b/internal/clients/fleet/fleet.go index e076123c4..0fb963817 100644 --- a/internal/clients/fleet/fleet.go +++ b/internal/clients/fleet/fleet.go @@ -66,8 +66,16 @@ func ReadAgentPolicy(ctx context.Context, client *Client, id string) (*fleetapi. } // CreateAgentPolicy creates a new agent policy. -func CreateAgentPolicy(ctx context.Context, client *Client, req fleetapi.AgentPolicyCreateRequest) (*fleetapi.AgentPolicy, diag.Diagnostics) { - resp, err := client.API.CreateAgentPolicyWithResponse(ctx, req) +func CreateAgentPolicy(ctx context.Context, client *Client, req fleetapi.AgentPolicyCreateRequest, sysMonitoring bool) (*fleetapi.AgentPolicy, diag.Diagnostics) { + resp, err := client.API.CreateAgentPolicyWithResponse(ctx, req, func(ctx context.Context, req *http.Request) error { + if sysMonitoring { + qs := req.URL.Query() + qs.Add("sys_monitoring", "true") + req.URL.RawQuery = qs.Encode() + } + + return nil + }) if err != nil { return nil, diag.FromErr(err) } diff --git a/internal/fleet/agent_policy_resource.go b/internal/fleet/agent_policy_resource.go index cbd6c054a..6eb5ae338 100644 --- a/internal/fleet/agent_policy_resource.go +++ b/internal/fleet/agent_policy_resource.go @@ -63,6 +63,7 @@ func ResourceAgentPolicy() *schema.Resource { Description: "Enable collection of system logs and metrics.", Type: schema.TypeBool, Optional: true, + ForceNew: true, }, "monitor_logs": { Description: "Enable collection of agent logs.", @@ -140,7 +141,8 @@ func resourceAgentPolicyCreate(ctx context.Context, d *schema.ResourceData, meta } req.MonitoringEnabled = &monitoringValues - policy, diags := fleet.CreateAgentPolicy(ctx, fleetClient, req) + sysMonitoring := d.Get("sys_monitoring").(bool) + policy, diags := fleet.CreateAgentPolicy(ctx, fleetClient, req, sysMonitoring) if diags.HasError() { return diags } From 9984a7b64e245d4d54d15f57f4561623ea2d8f48 Mon Sep 17 00:00:00 2001 From: Toby Brain Date: Wed, 25 Sep 2024 05:55:51 +1000 Subject: [PATCH 2/2] Changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8463e95a9..e29995fd1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ ## [Unreleased] +- Fix handling of `sys_monitoring` in `elasticstack_fleet_agent_policy` ([#792](https://github.com/elastic/terraform-provider-elasticstack/pull/792)) + ## [0.11.7] - 2024-09-20 - Add the `alerts_filter` field to the `actions` in the Create Rule API ([#774](https://github.com/elastic/terraform-provider-elasticstack/pull/774))