From 2caad50552aae6a4b6c02284e0897f4ee7e0e6b2 Mon Sep 17 00:00:00 2001 From: vojindjukic Date: Fri, 11 Apr 2025 17:03:54 +0200 Subject: [PATCH 01/17] add `sysdig_monitor_team` and `sysdig_secure_team` data sources --- sysdig/data_source_sysdig_monitor_team.go | 126 ++++++++++++++++++ .../data_source_sysdig_monitor_team_test.go | 46 +++++++ sysdig/data_source_sysdig_secure_team.go | 112 ++++++++++++++++ sysdig/data_source_sysdig_secure_team_test.go | 45 +++++++ sysdig/data_source_sysdig_secure_zone.go | 3 +- sysdig/provider.go | 2 + 6 files changed, 333 insertions(+), 1 deletion(-) create mode 100644 sysdig/data_source_sysdig_monitor_team.go create mode 100644 sysdig/data_source_sysdig_monitor_team_test.go create mode 100644 sysdig/data_source_sysdig_secure_team.go create mode 100644 sysdig/data_source_sysdig_secure_team_test.go diff --git a/sysdig/data_source_sysdig_monitor_team.go b/sysdig/data_source_sysdig_monitor_team.go new file mode 100644 index 000000000..95df816a8 --- /dev/null +++ b/sysdig/data_source_sysdig_monitor_team.go @@ -0,0 +1,126 @@ +package sysdig + +import ( + "context" + "strconv" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" +) + +func dataSourceSysdigMonitorTeam() *schema.Resource { + return &schema.Resource{ + Read: dataSourceSysdigMonitorTeamRead, + Schema: map[string]*schema.Schema{ + "id": { + Type: schema.TypeString, + Required: true, + }, + "theme": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "description": { + Type: schema.TypeString, + Computed: true, + }, + "scope_by": { + Type: schema.TypeString, + Computed: true, + }, + "filter": { + Type: schema.TypeString, + Computed: true, + }, + "can_use_sysdig_capture": { + Type: schema.TypeBool, + Computed: true, + }, + "can_see_infrastructure_events": { + Type: schema.TypeBool, + Computed: true, + }, + "can_use_aws_data": { + Type: schema.TypeBool, + Computed: true, + }, + "default_team": { + Type: schema.TypeBool, + Computed: true, + }, + "user_roles": { + Type: schema.TypeSet, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "email": { + Type: schema.TypeString, + Computed: true, + }, + "role": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "entrypoint": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": { + Type: schema.TypeString, + Computed: true, + }, + "selection": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "version": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func dataSourceSysdigMonitorTeamRead(d *schema.ResourceData, meta interface{}) error { + clients := meta.(SysdigClients) + client, err := getMonitorTeamClient(clients) + if err != nil { + return err + } + + id, err := strconv.Atoi(d.Get("id").(string)) + if err != nil { + return err + } + + team, err := client.GetTeamById(context.Background(), id) + if err != nil { + return err + } + + d.SetId(strconv.Itoa(team.ID)) + _ = d.Set("name", team.Name) + _ = d.Set("theme", team.Theme) + _ = d.Set("description", team.Description) + _ = d.Set("scope_by", team.Show) + _ = d.Set("filter", team.Filter) + _ = d.Set("can_use_sysdig_capture", team.CanUseSysdigCapture) + _ = d.Set("can_see_infrastructure_events", team.CanUseCustomEvents) + _ = d.Set("can_use_aws_data", team.CanUseAwsMetrics) + _ = d.Set("default_team", team.DefaultTeam) + _ = d.Set("user_roles", userMonitorRolesToSet(team.UserRoles)) + _ = d.Set("entrypoint", entrypointToSet(team.EntryPoint)) + _ = d.Set("version", team.Version) + + return nil +} diff --git a/sysdig/data_source_sysdig_monitor_team_test.go b/sysdig/data_source_sysdig_monitor_team_test.go new file mode 100644 index 000000000..3d9d4c529 --- /dev/null +++ b/sysdig/data_source_sysdig_monitor_team_test.go @@ -0,0 +1,46 @@ +//go:build tf_acc_sysdig_monitor || tf_acc_onprem_monitor || tf_acc_ibm_monitor + +package sysdig_test + +import ( + "fmt" + "testing" + + "github.com/draios/terraform-provider-sysdig/sysdig" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +) + +func TestAccDataSourceSysdigMonitorTeam(t *testing.T) { + name := fmt.Sprintf("test-monitor-team-%s", randomText(10)) + resource.Test(t, resource.TestCase{ + PreCheck: preCheckAnyEnv(t, SysdigSecureApiTokenEnv), + ProviderFactories: map[string]func() (*schema.Provider, error){ + "sysdig": func() (*schema.Provider, error) { + return sysdig.Provider(), nil + }, + }, + Steps: []resource.TestStep{ + { + Config: monitorTeamWithName(name), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr("data.sysdig_monitor_team.test", "name", name), + ), + }, + }, + }) +} + +func monitorTeamWithName(name string) string { + return fmt.Sprintf(` +resource "sysdig_monitor_team" "sample" { + name = "TF test-%s" + description = "A test monitor team" +} + +data "sysdig_monitor_team" "test" { + id = sysdig_monitor_team.sample.id +} +`, name) +} diff --git a/sysdig/data_source_sysdig_secure_team.go b/sysdig/data_source_sysdig_secure_team.go new file mode 100644 index 000000000..9d9af5a0a --- /dev/null +++ b/sysdig/data_source_sysdig_secure_team.go @@ -0,0 +1,112 @@ +package sysdig + +import ( + "context" + "strconv" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" +) + +func dataSourceSysdigSecureTeam() *schema.Resource { + return &schema.Resource{ + Read: dataSourceSysdigSecureTeamRead, + Schema: map[string]*schema.Schema{ + "id": { + Type: schema.TypeString, + Required: true, + }, + "theme": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "description": { + Type: schema.TypeString, + Computed: true, + }, + "scope_by": { + Type: schema.TypeString, + Computed: true, + }, + "filter": { + Type: schema.TypeString, + Computed: true, + }, + "use_sysdig_capture": { + Type: schema.TypeBool, + Computed: true, + }, + "default_team": { + Type: schema.TypeBool, + Computed: true, + }, + "user_roles": { + Type: schema.TypeSet, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "email": { + Type: schema.TypeString, + Computed: true, + }, + "role": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "version": { + Type: schema.TypeInt, + Computed: true, + }, + "zone_ids": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeInt, + }, + }, + "all_zones": { + Type: schema.TypeBool, + Computed: true, + }, + }, + } +} + +func dataSourceSysdigSecureTeamRead(d *schema.ResourceData, meta interface{}) error { + clients := meta.(SysdigClients) + client, err := getSecureTeamClient(clients) + if err != nil { + return err + } + + id, err := strconv.Atoi(d.Get("id").(string)) + if err != nil { + return err + } + + team, err := client.GetTeamById(context.Background(), id) + if err != nil { + return err + } + + d.SetId(strconv.Itoa(team.ID)) + _ = d.Set("name", team.Name) + _ = d.Set("theme", team.Theme) + _ = d.Set("description", team.Description) + _ = d.Set("scope_by", team.Show) + _ = d.Set("filter", team.Filter) + _ = d.Set("use_sysdig_capture", team.CanUseSysdigCapture) + _ = d.Set("default_team", team.DefaultTeam) + _ = d.Set("user_roles", userSecureRolesToSet(team.UserRoles)) + _ = d.Set("version", team.Version) + _ = d.Set("zone_ids", team.ZoneIDs) + _ = d.Set("all_zones", team.AllZones) + + return nil +} diff --git a/sysdig/data_source_sysdig_secure_team_test.go b/sysdig/data_source_sysdig_secure_team_test.go new file mode 100644 index 000000000..131f8b329 --- /dev/null +++ b/sysdig/data_source_sysdig_secure_team_test.go @@ -0,0 +1,45 @@ +//go:build tf_acc_sysdig_secure || tf_acc_onprem_secure || tf_acc_ibm_secure + +package sysdig_test + +import ( + "fmt" + "testing" + + "github.com/draios/terraform-provider-sysdig/sysdig" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" +) + +func TestAccDataSourceSysdigSecureTeam(t *testing.T) { + name := fmt.Sprintf("test-secure-team-%s", randomText(5)) + resource.Test(t, resource.TestCase{ + PreCheck: preCheckAnyEnv(t, SysdigSecureApiTokenEnv), + ProviderFactories: map[string]func() (*schema.Provider, error){ + "sysdig": func() (*schema.Provider, error) { + return sysdig.Provider(), nil + }, + }, + Steps: []resource.TestStep{ + { + Config: secureTeamWithName(name), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr("data.sysdig_secure_team.test", "name", name), + ), + }, + }, + }) +} + +func secureTeamWithName(name string) string { + return fmt.Sprintf(` +resource "sysdig_secure_team" "sample" { + name = "TF test-%s" + description = "A test secure team" +} + +data "sysdig_secure_team" "test" { + id = sysdig_secure_team.sample.id +} +`, name) +} diff --git a/sysdig/data_source_sysdig_secure_zone.go b/sysdig/data_source_sysdig_secure_zone.go index a39299c83..595cd3e65 100644 --- a/sysdig/data_source_sysdig_secure_zone.go +++ b/sysdig/data_source_sysdig_secure_zone.go @@ -3,10 +3,11 @@ package sysdig import ( "context" "fmt" - v2 "github.com/draios/terraform-provider-sysdig/sysdig/internal/client/v2" "strconv" "time" + v2 "github.com/draios/terraform-provider-sysdig/sysdig/internal/client/v2" + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) diff --git a/sysdig/provider.go b/sysdig/provider.go index 82ca1fbf8..928733bf6 100644 --- a/sysdig/provider.go +++ b/sysdig/provider.go @@ -238,6 +238,7 @@ func (p *SysdigProvider) Provider() *schema.Provider { "sysdig_secure_rule_stateful": dataSourceSysdigSecureRuleStateful(), "sysdig_secure_rule_stateful_count": dataSourceSysdigSecureRuleStatefulCount(), "sysdig_secure_zone": dataSourceSysdigSecureZone(), + "sysdig_secure_team": dataSourceSysdigSecureTeam(), "sysdig_current_user": dataSourceSysdigCurrentUser(), "sysdig_user": dataSourceSysdigUser(), @@ -260,6 +261,7 @@ func (p *SysdigProvider) Provider() *schema.Provider { "sysdig_monitor_notification_channel_ibm_event_notification": dataSourceSysdigMonitorNotificationChannelIBMEventNotification(), "sysdig_monitor_notification_channel_ibm_function": dataSourceSysdigMonitorNotificationChannelIBMFunction(), "sysdig_monitor_custom_role_permissions": dataSourceSysdigMonitorCustomRolePermissions(), + "sysdig_monitor_team": dataSourceSysdigMonitorTeam(), "sysdig_secure_posture_policy": dataSourceSysdigSecurePosturePolicy(), }, ConfigureContextFunc: p.providerConfigure, From da23e6fe96e33fe18ee325665fbc0fb21d654fd3 Mon Sep 17 00:00:00 2001 From: vojindjukic Date: Fri, 11 Apr 2025 17:43:12 +0200 Subject: [PATCH 02/17] rename helper methods --- sysdig/data_source_sysdig_monitor_team_test.go | 4 ++-- sysdig/data_source_sysdig_secure_team_test.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sysdig/data_source_sysdig_monitor_team_test.go b/sysdig/data_source_sysdig_monitor_team_test.go index 3d9d4c529..bdf839d46 100644 --- a/sysdig/data_source_sysdig_monitor_team_test.go +++ b/sysdig/data_source_sysdig_monitor_team_test.go @@ -23,7 +23,7 @@ func TestAccDataSourceSysdigMonitorTeam(t *testing.T) { }, Steps: []resource.TestStep{ { - Config: monitorTeamWithName(name), + Config: monitorTeamResourceAndDatasource(name), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.sysdig_monitor_team.test", "name", name), ), @@ -32,7 +32,7 @@ func TestAccDataSourceSysdigMonitorTeam(t *testing.T) { }) } -func monitorTeamWithName(name string) string { +func monitorTeamResourceAndDatasource(name string) string { return fmt.Sprintf(` resource "sysdig_monitor_team" "sample" { name = "TF test-%s" diff --git a/sysdig/data_source_sysdig_secure_team_test.go b/sysdig/data_source_sysdig_secure_team_test.go index 131f8b329..016b3c786 100644 --- a/sysdig/data_source_sysdig_secure_team_test.go +++ b/sysdig/data_source_sysdig_secure_team_test.go @@ -22,7 +22,7 @@ func TestAccDataSourceSysdigSecureTeam(t *testing.T) { }, Steps: []resource.TestStep{ { - Config: secureTeamWithName(name), + Config: secureTeamAndDatasource(name), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.sysdig_secure_team.test", "name", name), ), @@ -31,7 +31,7 @@ func TestAccDataSourceSysdigSecureTeam(t *testing.T) { }) } -func secureTeamWithName(name string) string { +func secureTeamAndDatasource(name string) string { return fmt.Sprintf(` resource "sysdig_secure_team" "sample" { name = "TF test-%s" From 8edf315a503a4c6d861571ec043a4227c36a00cb Mon Sep 17 00:00:00 2001 From: vojindjukic Date: Fri, 11 Apr 2025 18:21:45 +0200 Subject: [PATCH 03/17] fix acc test --- sysdig/data_source_sysdig_monitor_team_test.go | 8 +++++--- sysdig/data_source_sysdig_secure_team_test.go | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/sysdig/data_source_sysdig_monitor_team_test.go b/sysdig/data_source_sysdig_monitor_team_test.go index bdf839d46..488e59e76 100644 --- a/sysdig/data_source_sysdig_monitor_team_test.go +++ b/sysdig/data_source_sysdig_monitor_team_test.go @@ -15,7 +15,7 @@ import ( func TestAccDataSourceSysdigMonitorTeam(t *testing.T) { name := fmt.Sprintf("test-monitor-team-%s", randomText(10)) resource.Test(t, resource.TestCase{ - PreCheck: preCheckAnyEnv(t, SysdigSecureApiTokenEnv), + PreCheck: preCheckAnyEnv(t, SysdigMonitorApiTokenEnv, SysdigIBMMonitorAPIKeyEnv), ProviderFactories: map[string]func() (*schema.Provider, error){ "sysdig": func() (*schema.Provider, error) { return sysdig.Provider(), nil @@ -35,8 +35,10 @@ func TestAccDataSourceSysdigMonitorTeam(t *testing.T) { func monitorTeamResourceAndDatasource(name string) string { return fmt.Sprintf(` resource "sysdig_monitor_team" "sample" { - name = "TF test-%s" - description = "A test monitor team" + name = "%s" + description = "A monitor secure team" + scope_by = "container" + filter = "container.image.repo = \"sysdig/agent\"" } data "sysdig_monitor_team" "test" { diff --git a/sysdig/data_source_sysdig_secure_team_test.go b/sysdig/data_source_sysdig_secure_team_test.go index 016b3c786..fff5dbe3b 100644 --- a/sysdig/data_source_sysdig_secure_team_test.go +++ b/sysdig/data_source_sysdig_secure_team_test.go @@ -14,7 +14,7 @@ import ( func TestAccDataSourceSysdigSecureTeam(t *testing.T) { name := fmt.Sprintf("test-secure-team-%s", randomText(5)) resource.Test(t, resource.TestCase{ - PreCheck: preCheckAnyEnv(t, SysdigSecureApiTokenEnv), + PreCheck: preCheckAnyEnv(t, SysdigSecureApiTokenEnv, SysdigIBMSecureAPIKeyEnv), ProviderFactories: map[string]func() (*schema.Provider, error){ "sysdig": func() (*schema.Provider, error) { return sysdig.Provider(), nil @@ -34,8 +34,10 @@ func TestAccDataSourceSysdigSecureTeam(t *testing.T) { func secureTeamAndDatasource(name string) string { return fmt.Sprintf(` resource "sysdig_secure_team" "sample" { - name = "TF test-%s" - description = "A test secure team" + name = "%s" + description = "A test secure team" + scope_by = "container" + filter = "container.image.repo = \"sysdig/agent\"" } data "sysdig_secure_team" "test" { From 72ab7c14d959e387bc9c8afeda806b6e99c9cf0c Mon Sep 17 00:00:00 2001 From: vojindjukic Date: Fri, 11 Apr 2025 20:52:30 +0200 Subject: [PATCH 04/17] update schema resources: Read -> ReadContext --- sysdig/data_source_sysdig_monitor_team.go | 14 ++++++++------ sysdig/data_source_sysdig_secure_team.go | 13 +++++++------ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/sysdig/data_source_sysdig_monitor_team.go b/sysdig/data_source_sysdig_monitor_team.go index 95df816a8..d66761952 100644 --- a/sysdig/data_source_sysdig_monitor_team.go +++ b/sysdig/data_source_sysdig_monitor_team.go @@ -4,12 +4,13 @@ import ( "context" "strconv" + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) func dataSourceSysdigMonitorTeam() *schema.Resource { return &schema.Resource{ - Read: dataSourceSysdigMonitorTeamRead, + ReadContext: dataSourceSysdigMonitorTeamRead, Schema: map[string]*schema.Schema{ "id": { Type: schema.TypeString, @@ -70,6 +71,7 @@ func dataSourceSysdigMonitorTeam() *schema.Resource { "entrypoint": { Type: schema.TypeList, Computed: true, + Optional: true, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ "type": { @@ -91,21 +93,21 @@ func dataSourceSysdigMonitorTeam() *schema.Resource { } } -func dataSourceSysdigMonitorTeamRead(d *schema.ResourceData, meta interface{}) error { +func dataSourceSysdigMonitorTeamRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { clients := meta.(SysdigClients) client, err := getMonitorTeamClient(clients) if err != nil { - return err + return diag.FromErr(err) } id, err := strconv.Atoi(d.Get("id").(string)) if err != nil { - return err + return diag.FromErr(err) } - team, err := client.GetTeamById(context.Background(), id) + team, err := client.GetTeamById(ctx, id) if err != nil { - return err + return diag.FromErr(err) } d.SetId(strconv.Itoa(team.ID)) diff --git a/sysdig/data_source_sysdig_secure_team.go b/sysdig/data_source_sysdig_secure_team.go index 9d9af5a0a..823fcead8 100644 --- a/sysdig/data_source_sysdig_secure_team.go +++ b/sysdig/data_source_sysdig_secure_team.go @@ -4,12 +4,13 @@ import ( "context" "strconv" + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) func dataSourceSysdigSecureTeam() *schema.Resource { return &schema.Resource{ - Read: dataSourceSysdigSecureTeamRead, + ReadContext: dataSourceSysdigSecureTeamRead, Schema: map[string]*schema.Schema{ "id": { Type: schema.TypeString, @@ -78,21 +79,21 @@ func dataSourceSysdigSecureTeam() *schema.Resource { } } -func dataSourceSysdigSecureTeamRead(d *schema.ResourceData, meta interface{}) error { +func dataSourceSysdigSecureTeamRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { clients := meta.(SysdigClients) client, err := getSecureTeamClient(clients) if err != nil { - return err + return diag.FromErr(err) } id, err := strconv.Atoi(d.Get("id").(string)) if err != nil { - return err + return diag.FromErr(err) } - team, err := client.GetTeamById(context.Background(), id) + team, err := client.GetTeamById(ctx, id) if err != nil { - return err + return diag.FromErr(err) } d.SetId(strconv.Itoa(team.ID)) From a62c7967e320864dc21f8ae61515dbef39a68911 Mon Sep 17 00:00:00 2001 From: vojindjukic Date: Mon, 14 Apr 2025 10:18:17 +0200 Subject: [PATCH 05/17] update test data --- sysdig/data_source_sysdig_monitor_team.go | 1 - sysdig/data_source_sysdig_monitor_team_test.go | 10 ++++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/sysdig/data_source_sysdig_monitor_team.go b/sysdig/data_source_sysdig_monitor_team.go index d66761952..e702e1f2c 100644 --- a/sysdig/data_source_sysdig_monitor_team.go +++ b/sysdig/data_source_sysdig_monitor_team.go @@ -71,7 +71,6 @@ func dataSourceSysdigMonitorTeam() *schema.Resource { "entrypoint": { Type: schema.TypeList, Computed: true, - Optional: true, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ "type": { diff --git a/sysdig/data_source_sysdig_monitor_team_test.go b/sysdig/data_source_sysdig_monitor_team_test.go index 488e59e76..f52aef359 100644 --- a/sysdig/data_source_sysdig_monitor_team_test.go +++ b/sysdig/data_source_sysdig_monitor_team_test.go @@ -37,8 +37,14 @@ func monitorTeamResourceAndDatasource(name string) string { resource "sysdig_monitor_team" "sample" { name = "%s" description = "A monitor secure team" - scope_by = "container" - filter = "container.image.repo = \"sysdig/agent\"" + scope_by = "host" + filter = "container.image.repo = \"sysdig/agent\"" + can_use_sysdig_capture = true + can_see_infrastructure_events = true + + entrypoint { + type = "Dashboards" + } } data "sysdig_monitor_team" "test" { From d947ce3fe50bff1fb9f40554c9baf5416231a407 Mon Sep 17 00:00:00 2001 From: vojindjukic Date: Mon, 14 Apr 2025 11:06:29 +0200 Subject: [PATCH 06/17] add `data_source_sysdig_monitor_teams` and `data_source_sysdig_secure_teams` --- sysdig/data_source_sysdig_monitor_teams.go | 127 ++++++++++++++++++ .../data_source_sysdig_monitor_teams_test.go | 50 +++++++ sysdig/data_source_sysdig_secure_teams.go | 114 ++++++++++++++++ .../data_source_sysdig_secure_teams_test.go | 42 ++++++ sysdig/data_source_sysdig_secure_zone_test.go | 4 +- sysdig/internal/client/v2/teams.go | 24 ++++ sysdig/provider.go | 2 + 7 files changed, 361 insertions(+), 2 deletions(-) create mode 100644 sysdig/data_source_sysdig_monitor_teams.go create mode 100644 sysdig/data_source_sysdig_monitor_teams_test.go create mode 100644 sysdig/data_source_sysdig_secure_teams.go create mode 100644 sysdig/data_source_sysdig_secure_teams_test.go diff --git a/sysdig/data_source_sysdig_monitor_teams.go b/sysdig/data_source_sysdig_monitor_teams.go new file mode 100644 index 000000000..8fbf2229c --- /dev/null +++ b/sysdig/data_source_sysdig_monitor_teams.go @@ -0,0 +1,127 @@ +package sysdig + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" +) + +func dataSourceSysdigMonitorTeams() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceSysdigMonitorTeamsRead, + Schema: map[string]*schema.Schema{ + "teams": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "id": { + Type: schema.TypeInt, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "theme": { + Type: schema.TypeString, + Computed: true, + }, + "description": { + Type: schema.TypeString, + Computed: true, + }, + "scope_by": { + Type: schema.TypeString, + Computed: true, + }, + "filter": { + Type: schema.TypeString, + Computed: true, + }, + "can_use_sysdig_capture": { + Type: schema.TypeBool, + Computed: true, + }, + "can_see_infrastructure_events": { + Type: schema.TypeBool, + Computed: true, + }, + "can_use_aws_data": { + Type: schema.TypeBool, + Computed: true, + }, + "default_team": { + Type: schema.TypeBool, + Computed: true, + }, + "user_roles": { + Type: schema.TypeSet, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "email": { + Type: schema.TypeString, + Computed: true, + }, + "role": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "entrypoint": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": { + Type: schema.TypeString, + Computed: true, + }, + "selection": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "version": { + Type: schema.TypeInt, + Computed: true, + }, + }, + }, + }, + }, + } +} + +func dataSourceSysdigMonitorTeamsRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + clients := meta.(SysdigClients) + client, err := getMonitorTeamClient(clients) + if err != nil { + return diag.FromErr(err) + } + + teams, err := client.ListTeams(ctx) + if err != nil { + return diag.FromErr(err) + } + + var result []map[string]interface{} + for _, team := range teams { + result = append(result, map[string]interface{}{ + "id": team.ID, + "name": team.Name, + }) + } + d.SetId("sysdig_monitor_teams") + if err := d.Set("teams", result); err != nil { + return diag.FromErr(err) + } + + return nil +} diff --git a/sysdig/data_source_sysdig_monitor_teams_test.go b/sysdig/data_source_sysdig_monitor_teams_test.go new file mode 100644 index 000000000..e4de6a48f --- /dev/null +++ b/sysdig/data_source_sysdig_monitor_teams_test.go @@ -0,0 +1,50 @@ +//go:build tf_acc_sysdig_monitor || tf_acc_onprem_monitor || tf_acc_ibm_monitor + +package sysdig_test + +import ( + "fmt" + "github.com/draios/terraform-provider-sysdig/sysdig" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +) + +func TestAccDataSourceSysdigMonitorTeams(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: preCheckAnyEnv(t, SysdigMonitorApiTokenEnv, SysdigIBMMonitorAPIKeyEnv), + ProviderFactories: map[string]func() (*schema.Provider, error){ + "sysdig": func() (*schema.Provider, error) { + return sysdig.Provider(), nil + }, + }, + Steps: []resource.TestStep{ + { + Config: testAccDataSourceSysdigMonitorTeamsConfig(randomText(10)), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.sysdig_monitor_teams.test", "teams.0.id"), + ), + }, + }, + }) +} + +func testAccDataSourceSysdigMonitorTeamsConfig(name string) string { + return fmt.Sprintf(` +resource "sysdig_monitor_team" "sample" { + name = "%s" + description = "A monitor secure team" + scope_by = "host" + filter = "container.image.repo = \"sysdig/agent\"" + can_use_sysdig_capture = true + can_see_infrastructure_events = true + + entrypoint { + type = "Dashboards" + } +} + +data "sysdig_monitor_teams" "test" {} +`, name) +} diff --git a/sysdig/data_source_sysdig_secure_teams.go b/sysdig/data_source_sysdig_secure_teams.go new file mode 100644 index 000000000..0d637a483 --- /dev/null +++ b/sysdig/data_source_sysdig_secure_teams.go @@ -0,0 +1,114 @@ +package sysdig + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/diag" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" +) + +func dataSourceSysdigSecureTeams() *schema.Resource { + return &schema.Resource{ + ReadContext: dataSourceSysdigSecureTeamsRead, + Schema: map[string]*schema.Schema{ + "teams": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "id": { + Type: schema.TypeInt, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "theme": { + Type: schema.TypeString, + Computed: true, + }, + "description": { + Type: schema.TypeString, + Computed: true, + }, + "scope_by": { + Type: schema.TypeString, + Computed: true, + }, + "filter": { + Type: schema.TypeString, + Computed: true, + }, + "use_sysdig_capture": { + Type: schema.TypeBool, + Computed: true, + }, + "default_team": { + Type: schema.TypeBool, + Computed: true, + }, + "user_roles": { + Type: schema.TypeSet, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "email": { + Type: schema.TypeString, + Computed: true, + }, + "role": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "zone_ids": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeInt, + }, + }, + "all_zones": { + Type: schema.TypeBool, + Computed: true, + }, + "version": { + Type: schema.TypeInt, + Computed: true, + }, + }, + }, + }, + }, + } +} + +func dataSourceSysdigSecureTeamsRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + clients := meta.(SysdigClients) + client, err := getSecureTeamClient(clients) + if err != nil { + return diag.FromErr(err) + } + + teams, err := client.ListTeams(ctx) + if err != nil { + return diag.FromErr(err) + } + + var result []map[string]interface{} + for _, team := range teams { + result = append(result, map[string]interface{}{ + "id": team.ID, + "name": team.Name, + }) + } + d.SetId("sysdig_secure_teams") + if err := d.Set("teams", result); err != nil { + return diag.FromErr(err) + } + + return nil +} diff --git a/sysdig/data_source_sysdig_secure_teams_test.go b/sysdig/data_source_sysdig_secure_teams_test.go new file mode 100644 index 000000000..4f2ee453e --- /dev/null +++ b/sysdig/data_source_sysdig_secure_teams_test.go @@ -0,0 +1,42 @@ +//go:build tf_acc_sysdig_secure || tf_acc_onprem_secure || tf_acc_ibm_secure + +package sysdig_test + +import ( + "fmt" + "github.com/draios/terraform-provider-sysdig/sysdig" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +) + +func TestAccDataSourceSysdigSecureTeams(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: preCheckAnyEnv(t, SysdigSecureApiTokenEnv, SysdigIBMSecureAPIKeyEnv), + ProviderFactories: map[string]func() (*schema.Provider, error){ + "sysdig": func() (*schema.Provider, error) { + return sysdig.Provider(), nil + }, + }, + Steps: []resource.TestStep{ + { + Config: testAccDataSourceSysdigSecureTeamsConfig(randomText(5)), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("data.sysdig_secure_teams.test", "teams.0.id"), + ), + }, + }, + }) +} + +func testAccDataSourceSysdigSecureTeamsConfig(name string) string { + return fmt.Sprintf(` +resource "sysdig_secure_team" "test" { + name = "test-secure-team-%s" + description = "A test secure team" +} + +data "sysdig_secure_teams" "test" {} +`, name) +} diff --git a/sysdig/data_source_sysdig_secure_zone_test.go b/sysdig/data_source_sysdig_secure_zone_test.go index 5409bf96d..203aad03d 100644 --- a/sysdig/data_source_sysdig_secure_zone_test.go +++ b/sysdig/data_source_sysdig_secure_zone_test.go @@ -1,4 +1,4 @@ -//go:build tf_acc_sysdig_secure || tf_acc_onprem_secure +//go:build tf_acc_sysdig_secure || tf_acc_onprem_secure || tf_acc_ibm_secure package sysdig_test @@ -13,7 +13,7 @@ import ( func TestAccDataSourceSysdigSecureZone(t *testing.T) { resource.ParallelTest(t, resource.TestCase{ - PreCheck: preCheckAnyEnv(t, SysdigSecureApiTokenEnv), + PreCheck: preCheckAnyEnv(t, SysdigSecureApiTokenEnv, SysdigIBMSecureAPIKeyEnv), ProviderFactories: map[string]func() (*schema.Provider, error){ "sysdig": func() (*schema.Provider, error) { return sysdig.Provider(), nil diff --git a/sysdig/internal/client/v2/teams.go b/sysdig/internal/client/v2/teams.go index 5c0607e42..8688a8669 100644 --- a/sysdig/internal/client/v2/teams.go +++ b/sysdig/internal/client/v2/teams.go @@ -19,6 +19,11 @@ type TeamInterface interface { CreateTeam(ctx context.Context, tRequest Team) (t Team, err error) UpdateTeam(ctx context.Context, tRequest Team) (t Team, err error) DeleteTeam(ctx context.Context, id int) error + ListTeams(ctx context.Context) ([]Team, error) +} + +type teamsWrapper struct { + Teams []Team `json:"teams"` } func (client *Client) GetUserIDByEmail(ctx context.Context, userRoles []UserRoles) ([]UserRoles, error) { @@ -154,6 +159,25 @@ func (client *Client) DeleteTeam(ctx context.Context, id int) error { return nil } +func (client *Client) ListTeams(ctx context.Context) ([]Team, error) { + response, err := client.requester.Request(ctx, http.MethodGet, client.GetTeamsURL(), nil) + if err != nil { + return nil, err + } + defer response.Body.Close() + + if response.StatusCode != http.StatusOK { + return nil, client.ErrorFromResponse(response) + } + + wrapper, err := Unmarshal[teamsWrapper](response.Body) + if err != nil { + return nil, err + } + + return wrapper.Teams, nil +} + func (client *Client) GetUsersLightURL() string { return fmt.Sprintf(GetUsersLightPath, client.config.url) } diff --git a/sysdig/provider.go b/sysdig/provider.go index 928733bf6..40394b872 100644 --- a/sysdig/provider.go +++ b/sysdig/provider.go @@ -239,6 +239,7 @@ func (p *SysdigProvider) Provider() *schema.Provider { "sysdig_secure_rule_stateful_count": dataSourceSysdigSecureRuleStatefulCount(), "sysdig_secure_zone": dataSourceSysdigSecureZone(), "sysdig_secure_team": dataSourceSysdigSecureTeam(), + "sysdig_secure_teams": dataSourceSysdigSecureTeams(), "sysdig_current_user": dataSourceSysdigCurrentUser(), "sysdig_user": dataSourceSysdigUser(), @@ -262,6 +263,7 @@ func (p *SysdigProvider) Provider() *schema.Provider { "sysdig_monitor_notification_channel_ibm_function": dataSourceSysdigMonitorNotificationChannelIBMFunction(), "sysdig_monitor_custom_role_permissions": dataSourceSysdigMonitorCustomRolePermissions(), "sysdig_monitor_team": dataSourceSysdigMonitorTeam(), + "sysdig_monitor_teams": dataSourceSysdigMonitorTeams(), "sysdig_secure_posture_policy": dataSourceSysdigSecurePosturePolicy(), }, ConfigureContextFunc: p.providerConfigure, From c6d7e317230fee5f5971e95ba3f1cb103435e991 Mon Sep 17 00:00:00 2001 From: vojindjukic Date: Mon, 14 Apr 2025 13:56:07 +0200 Subject: [PATCH 07/17] add md files for new data sources --- sysdig/data_source_sysdig_secure_zone_test.go | 2 +- website/docs/d/monitor_team.md | 36 +++++++++++++++++++ website/docs/d/monitor_teams.md | 31 ++++++++++++++++ website/docs/d/secure_team.md | 35 ++++++++++++++++++ website/docs/d/secure_teams.md | 31 ++++++++++++++++ 5 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 website/docs/d/monitor_team.md create mode 100644 website/docs/d/monitor_teams.md create mode 100644 website/docs/d/secure_team.md create mode 100644 website/docs/d/secure_teams.md diff --git a/sysdig/data_source_sysdig_secure_zone_test.go b/sysdig/data_source_sysdig_secure_zone_test.go index 203aad03d..a7744f35f 100644 --- a/sysdig/data_source_sysdig_secure_zone_test.go +++ b/sysdig/data_source_sysdig_secure_zone_test.go @@ -1,4 +1,4 @@ -//go:build tf_acc_sysdig_secure || tf_acc_onprem_secure || tf_acc_ibm_secure +//go:build tf_acc_sysdig_secure || tf_acc_onprem_secure package sysdig_test diff --git a/website/docs/d/monitor_team.md b/website/docs/d/monitor_team.md new file mode 100644 index 000000000..571cb2c53 --- /dev/null +++ b/website/docs/d/monitor_team.md @@ -0,0 +1,36 @@ +--- +subcategory: "Sysdig Monitor" +layout: "sysdig" +page_title: "Sysdig: sysdig_monitor_team" +description: |- + Retrieves information about a specific monitor team in Sysdig +--- + +# sysdig_monitor_team + +The `sysdig_monitor_team` data source retrieves information about a specific monitor team in Sysdig. + +## Example Usage + +```terraform +data "sysdig_monitor_team" "example" { + id = "812371" +} +``` + +## Argument Reference + +- `id` - (Required) The ID of the monitor team. + +## Attribute Reference + +- `name` - The name of the monitor team. +- `description` - The description of the monitor team. +- `entrypoint` - The entrypoint configuration for the team. +- `filter` - The filter applied to the team. +- `scope_by` - The scope of the team. +- `can_use_sysdig_capture` - Whether the team can use Sysdig capture. +- `can_see_infrastructure_events` - Whether the team can see infrastructure events. +- `can_use_aws_data` - Whether the team can use AWS data. +- `default_team` - Whether the team is the default team. +- `user_roles` - The roles assigned to users in the team. diff --git a/website/docs/d/monitor_teams.md b/website/docs/d/monitor_teams.md new file mode 100644 index 000000000..7f7a7edee --- /dev/null +++ b/website/docs/d/monitor_teams.md @@ -0,0 +1,31 @@ +--- +subcategory: "Sysdig Monitor" +layout: "sysdig" +page_title: "Sysdig: sysdig_monitor_teams" +description: |- + Retrieves information about a specific monitor teams in Sysdig +--- + +# sysdig_monitor_teams + +The `sysdig_monitor_teams` data source retrieves a list of all monitor teams in Sysdig. + +## Example Usage + +```terraform +data "sysdig_monitor_teams" "example" {} +``` + +## Attribute Reference + +- `teams` - A list of monitor teams. Each team has the following attributes: + - `id` - The ID of the monitor team. + - `name` - The name of the monitor team. + - `description` - The description of the monitor team. + - `filter` - The filter applied to the team. + - `scope_by` - The scope of the team. + - `can_use_sysdig_capture` - Whether the team can use Sysdig capture. + - `can_see_infrastructure_events` - Whether the team can see infrastructure events. + - `can_use_aws_data` - Whether the team can use AWS data. + - `default_team` - Whether the team is the default team. + - `user_roles` - The roles assigned to users in the team. diff --git a/website/docs/d/secure_team.md b/website/docs/d/secure_team.md new file mode 100644 index 000000000..b4e50205e --- /dev/null +++ b/website/docs/d/secure_team.md @@ -0,0 +1,35 @@ +--- +subcategory: "Sysdig Secure" +layout: "sysdig" +page_title: "Sysdig: sysdig_secure_team" +description: |- + Retrieves information about a specific secure team in Sysdig +--- + +# sysdig_secure_team + +The `sysdig_secure_team` data source retrieves information about a specific secure team in Sysdig. + +## Example Usage + +```terraform +data "sysdig_secure_team" "example" { + id = "812371" +} +``` + +## Argument Reference + +- `id` - (Required) The ID of the secure team. + +## Attribute Reference + +- `name` - The name of the secure team. +- `description` - The description of the secure team. +- `filter` - The filter applied to the team. +- `scope_by` - The scope of the team. +- `use_sysdig_capture` - Whether the team can use Sysdig capture. +- `default_team` - Whether the team is the default team. +- `user_roles` - The roles assigned to users in the team. +- `zone_ids` - The IDs of the zones associated with the team. +- `all_zones` - Whether the team has access to all zones. diff --git a/website/docs/d/secure_teams.md b/website/docs/d/secure_teams.md new file mode 100644 index 000000000..b5b7e2969 --- /dev/null +++ b/website/docs/d/secure_teams.md @@ -0,0 +1,31 @@ +--- +subcategory: "Sysdig Secure" +layout: "sysdig" +page_title: "Sysdig: sysdig_secure_teams" +description: |- + Retrieves information about a specific secure teams in Sysdig +--- + +# sysdig_secure_teams + +The `sysdig_secure_teams` data source retrieves a list of all secure teams in Sysdig. + +## Example Usage + +```terraform +data "sysdig_secure_teams" "example" {} +``` + +## Attribute Reference + +- `teams` - A list of secure teams. Each team has the following attributes: + - `id` - The ID of the secure team. + - `name` - The name of the secure team. + - `description` - The description of the secure team. + - `filter` - The filter applied to the team. + - `scope_by` - The scope of the team. + - `use_sysdig_capture` - Whether the team can use Sysdig capture. + - `default_team` - Whether the team is the default team. + - `user_roles` - The roles assigned to users in the team. + - `zone_ids` - The IDs of the zones associated with the team. + - `all_zones` - Whether the team has access to all zones. From d910b3ed162d0c34f939f14ea622bc2bf2500a0a Mon Sep 17 00:00:00 2001 From: vojindjukic Date: Tue, 15 Apr 2025 17:31:46 +0200 Subject: [PATCH 08/17] document `theme` and `version` attributes --- website/docs/d/monitor_team.md | 2 ++ website/docs/d/monitor_teams.md | 2 ++ website/docs/d/secure_team.md | 3 +++ website/docs/d/secure_teams.md | 2 ++ 4 files changed, 9 insertions(+) diff --git a/website/docs/d/monitor_team.md b/website/docs/d/monitor_team.md index 571cb2c53..04879bd29 100644 --- a/website/docs/d/monitor_team.md +++ b/website/docs/d/monitor_team.md @@ -34,3 +34,5 @@ data "sysdig_monitor_team" "example" { - `can_use_aws_data` - Whether the team can use AWS data. - `default_team` - Whether the team is the default team. - `user_roles` - The roles assigned to users in the team. +- `version` - The version of the monitor team. +- `theme` - The theme of the monitor team. diff --git a/website/docs/d/monitor_teams.md b/website/docs/d/monitor_teams.md index 7f7a7edee..ca72fc936 100644 --- a/website/docs/d/monitor_teams.md +++ b/website/docs/d/monitor_teams.md @@ -29,3 +29,5 @@ data "sysdig_monitor_teams" "example" {} - `can_use_aws_data` - Whether the team can use AWS data. - `default_team` - Whether the team is the default team. - `user_roles` - The roles assigned to users in the team. + - `version` - The version of the monitor team. + - `theme` - The theme of the monitor team. diff --git a/website/docs/d/secure_team.md b/website/docs/d/secure_team.md index b4e50205e..13a1cdfe7 100644 --- a/website/docs/d/secure_team.md +++ b/website/docs/d/secure_team.md @@ -33,3 +33,6 @@ data "sysdig_secure_team" "example" { - `user_roles` - The roles assigned to users in the team. - `zone_ids` - The IDs of the zones associated with the team. - `all_zones` - Whether the team has access to all zones. +- `version` - The version of the secure team. +- `theme` - The theme of the secure team. + diff --git a/website/docs/d/secure_teams.md b/website/docs/d/secure_teams.md index b5b7e2969..fb3e3e806 100644 --- a/website/docs/d/secure_teams.md +++ b/website/docs/d/secure_teams.md @@ -29,3 +29,5 @@ data "sysdig_secure_teams" "example" {} - `user_roles` - The roles assigned to users in the team. - `zone_ids` - The IDs of the zones associated with the team. - `all_zones` - Whether the team has access to all zones. + - `version` - The version of the secure team. + - `theme` - The theme of the secure team. From a508c2ba2dd6c9f73bd5978167defc6b36981e69 Mon Sep 17 00:00:00 2001 From: vojindjukic Date: Tue, 15 Apr 2025 17:52:14 +0200 Subject: [PATCH 09/17] populate IBM platform metrics --- sysdig/data_source_sysdig_monitor_team.go | 2 ++ sysdig/data_source_sysdig_secure_team.go | 2 ++ sysdig/{resource_sysdig_team_common.go => team_common.go} | 0 3 files changed, 4 insertions(+) rename sysdig/{resource_sysdig_team_common.go => team_common.go} (100%) diff --git a/sysdig/data_source_sysdig_monitor_team.go b/sysdig/data_source_sysdig_monitor_team.go index e702e1f2c..62d104af9 100644 --- a/sysdig/data_source_sysdig_monitor_team.go +++ b/sysdig/data_source_sysdig_monitor_team.go @@ -123,5 +123,7 @@ func dataSourceSysdigMonitorTeamRead(ctx context.Context, d *schema.ResourceData _ = d.Set("entrypoint", entrypointToSet(team.EntryPoint)) _ = d.Set("version", team.Version) + resourceSysdigTeamReadIBM(d, &team) + return nil } diff --git a/sysdig/data_source_sysdig_secure_team.go b/sysdig/data_source_sysdig_secure_team.go index 823fcead8..f8a97b15c 100644 --- a/sysdig/data_source_sysdig_secure_team.go +++ b/sysdig/data_source_sysdig_secure_team.go @@ -109,5 +109,7 @@ func dataSourceSysdigSecureTeamRead(ctx context.Context, d *schema.ResourceData, _ = d.Set("zone_ids", team.ZoneIDs) _ = d.Set("all_zones", team.AllZones) + resourceSysdigTeamReadIBM(d, &team) + return nil } diff --git a/sysdig/resource_sysdig_team_common.go b/sysdig/team_common.go similarity index 100% rename from sysdig/resource_sysdig_team_common.go rename to sysdig/team_common.go From 1d43a712236b90c5b5522bc3421d06e1b172ad4e Mon Sep 17 00:00:00 2001 From: vojindjukic Date: Tue, 15 Apr 2025 18:03:18 +0200 Subject: [PATCH 10/17] Revert "populate IBM platform metrics" This reverts commit a508c2ba2dd6c9f73bd5978167defc6b36981e69. --- sysdig/data_source_sysdig_monitor_team.go | 2 -- sysdig/data_source_sysdig_secure_team.go | 2 -- sysdig/{team_common.go => resource_sysdig_team_common.go} | 0 3 files changed, 4 deletions(-) rename sysdig/{team_common.go => resource_sysdig_team_common.go} (100%) diff --git a/sysdig/data_source_sysdig_monitor_team.go b/sysdig/data_source_sysdig_monitor_team.go index 62d104af9..e702e1f2c 100644 --- a/sysdig/data_source_sysdig_monitor_team.go +++ b/sysdig/data_source_sysdig_monitor_team.go @@ -123,7 +123,5 @@ func dataSourceSysdigMonitorTeamRead(ctx context.Context, d *schema.ResourceData _ = d.Set("entrypoint", entrypointToSet(team.EntryPoint)) _ = d.Set("version", team.Version) - resourceSysdigTeamReadIBM(d, &team) - return nil } diff --git a/sysdig/data_source_sysdig_secure_team.go b/sysdig/data_source_sysdig_secure_team.go index f8a97b15c..823fcead8 100644 --- a/sysdig/data_source_sysdig_secure_team.go +++ b/sysdig/data_source_sysdig_secure_team.go @@ -109,7 +109,5 @@ func dataSourceSysdigSecureTeamRead(ctx context.Context, d *schema.ResourceData, _ = d.Set("zone_ids", team.ZoneIDs) _ = d.Set("all_zones", team.AllZones) - resourceSysdigTeamReadIBM(d, &team) - return nil } diff --git a/sysdig/team_common.go b/sysdig/resource_sysdig_team_common.go similarity index 100% rename from sysdig/team_common.go rename to sysdig/resource_sysdig_team_common.go From 0c84a351379af2a3706d46f9727e62aa330c0c6a Mon Sep 17 00:00:00 2001 From: vojindjukic Date: Tue, 15 Apr 2025 18:12:11 +0200 Subject: [PATCH 11/17] populate IBM platform metrics --- sysdig/data_source_sysdig_monitor_team.go | 15 +++++++++++++++ sysdig/data_source_sysdig_secure_team.go | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/sysdig/data_source_sysdig_monitor_team.go b/sysdig/data_source_sysdig_monitor_team.go index e702e1f2c..8fde20502 100644 --- a/sysdig/data_source_sysdig_monitor_team.go +++ b/sysdig/data_source_sysdig_monitor_team.go @@ -52,6 +52,14 @@ func dataSourceSysdigMonitorTeam() *schema.Resource { Type: schema.TypeBool, Computed: true, }, + "enable_ibm_platform_metrics": { + Type: schema.TypeBool, + Computed: true, + }, + "ibm_platform_metrics": { + Type: schema.TypeString, + Computed: true, + }, "user_roles": { Type: schema.TypeSet, Computed: true, @@ -123,5 +131,12 @@ func dataSourceSysdigMonitorTeamRead(ctx context.Context, d *schema.ResourceData _ = d.Set("entrypoint", entrypointToSet(team.EntryPoint)) _ = d.Set("version", team.Version) + var ibmPlatformMetrics *string + if team.NamespaceFilters != nil { + ibmPlatformMetrics = team.NamespaceFilters.IBMPlatformMetrics + } + _ = d.Set("enable_ibm_platform_metrics", team.CanUseBeaconMetrics) + _ = d.Set("ibm_platform_metrics", ibmPlatformMetrics) + return nil } diff --git a/sysdig/data_source_sysdig_secure_team.go b/sysdig/data_source_sysdig_secure_team.go index 823fcead8..36bc502a3 100644 --- a/sysdig/data_source_sysdig_secure_team.go +++ b/sysdig/data_source_sysdig_secure_team.go @@ -44,6 +44,14 @@ func dataSourceSysdigSecureTeam() *schema.Resource { Type: schema.TypeBool, Computed: true, }, + "enable_ibm_platform_metrics": { + Type: schema.TypeBool, + Computed: true, + }, + "ibm_platform_metrics": { + Type: schema.TypeString, + Computed: true, + }, "user_roles": { Type: schema.TypeSet, Computed: true, @@ -109,5 +117,12 @@ func dataSourceSysdigSecureTeamRead(ctx context.Context, d *schema.ResourceData, _ = d.Set("zone_ids", team.ZoneIDs) _ = d.Set("all_zones", team.AllZones) + var ibmPlatformMetrics *string + if team.NamespaceFilters != nil { + ibmPlatformMetrics = team.NamespaceFilters.IBMPlatformMetrics + } + _ = d.Set("enable_ibm_platform_metrics", team.CanUseBeaconMetrics) + _ = d.Set("ibm_platform_metrics", ibmPlatformMetrics) + return nil } From ceb309606b6c4d624f77a24e2236b4e6a521c64b Mon Sep 17 00:00:00 2001 From: vojindjukic Date: Wed, 16 Apr 2025 10:50:28 +0200 Subject: [PATCH 12/17] add tests for IBM --- ...ata_source_sysdig_monitor_team_ibm_test.go | 53 ++++++++++++++++++ .../data_source_sysdig_monitor_team_test.go | 15 ++++-- ...data_source_sysdig_secure_team_ibm_test.go | 54 +++++++++++++++++++ sysdig/data_source_sysdig_secure_team_test.go | 18 +++++-- 4 files changed, 133 insertions(+), 7 deletions(-) create mode 100644 sysdig/data_source_sysdig_monitor_team_ibm_test.go create mode 100644 sysdig/data_source_sysdig_secure_team_ibm_test.go diff --git a/sysdig/data_source_sysdig_monitor_team_ibm_test.go b/sysdig/data_source_sysdig_monitor_team_ibm_test.go new file mode 100644 index 000000000..ece13a6db --- /dev/null +++ b/sysdig/data_source_sysdig_monitor_team_ibm_test.go @@ -0,0 +1,53 @@ +//go:build tf_acc_ibm_monitor + +package sysdig_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/draios/terraform-provider-sysdig/sysdig" +) + +func TestAccDataSourceSysdigMonitorTeam(t *testing.T) { + name := fmt.Sprintf("test-monitor-team-%s", randomText(5)) + resource.Test(t, resource.TestCase{ + PreCheck: preCheckAnyEnv(t, SysdigIBMMonitorAPIKeyEnv), + ProviderFactories: map[string]func() (*schema.Provider, error){ + "sysdig": func() (*schema.Provider, error) { + return sysdig.Provider(), nil + }, + }, + Steps: []resource.TestStep{ + { + Config: monitorTeamResourceAndDatasource(name), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr("data.sysdig_monitor_team.test_dt", "name", name), + resource.TestCheckResourceAttr("data.sysdig_monitor_team.test_dt", "enable_ibm_platform_metrics", "true"), + resource.TestCheckResourceAttr("data.sysdig_monitor_team.test_dt", "ibm_platform_metrics", "foo in (\"0\") and bar in (\"3\")"), + ), + }, + }, + }) +} + +func monitorTeamWithPlatformMetricsIBM(name string) string { + return fmt.Sprintf(` +resource "sysdig_monitor_team" "test" { + name = "%s" + enable_ibm_platform_metrics = true + ibm_platform_metrics = "foo in (\"0\") and bar in (\"3\")" + + entrypoint { + type = "Dashboards" + } +} + +data "sysdig_monitor_team" "test_dt" { + id = sysdig_monitor_team.sample.id +} +`, name) +} diff --git a/sysdig/data_source_sysdig_monitor_team_test.go b/sysdig/data_source_sysdig_monitor_team_test.go index f52aef359..e24e0a3d0 100644 --- a/sysdig/data_source_sysdig_monitor_team_test.go +++ b/sysdig/data_source_sysdig_monitor_team_test.go @@ -1,4 +1,4 @@ -//go:build tf_acc_sysdig_monitor || tf_acc_onprem_monitor || tf_acc_ibm_monitor +//go:build tf_acc_sysdig_monitor || tf_acc_onprem_monitor package sysdig_test @@ -13,9 +13,9 @@ import ( ) func TestAccDataSourceSysdigMonitorTeam(t *testing.T) { - name := fmt.Sprintf("test-monitor-team-%s", randomText(10)) + name := fmt.Sprintf("test-monitor-team-%s", randomText(5)) resource.Test(t, resource.TestCase{ - PreCheck: preCheckAnyEnv(t, SysdigMonitorApiTokenEnv, SysdigIBMMonitorAPIKeyEnv), + PreCheck: preCheckAnyEnv(t, SysdigMonitorApiTokenEnv), ProviderFactories: map[string]func() (*schema.Provider, error){ "sysdig": func() (*schema.Provider, error) { return sysdig.Provider(), nil @@ -26,6 +26,12 @@ func TestAccDataSourceSysdigMonitorTeam(t *testing.T) { Config: monitorTeamResourceAndDatasource(name), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.sysdig_monitor_team.test", "name", name), + resource.TestCheckResourceAttr("data.sysdig_monitor_team.test", "description", "A monitor team"), + resource.TestCheckResourceAttr("data.sysdig_monitor_team.test", "scope_by", "host"), + resource.TestCheckResourceAttr("data.sysdig_monitor_team.test", "filter", "container.image.repo = \"sysdig/agent\""), + resource.TestCheckResourceAttr("data.sysdig_monitor_team.test", "can_use_sysdig_capture", "true"), + resource.TestCheckResourceAttr("data.sysdig_monitor_team.test", "can_see_infrastructure_events", "true"), + resource.TestCheckResourceAttr("data.sysdig_monitor_team.test", "can_use_aws_data", "true"), ), }, }, @@ -36,11 +42,12 @@ func monitorTeamResourceAndDatasource(name string) string { return fmt.Sprintf(` resource "sysdig_monitor_team" "sample" { name = "%s" - description = "A monitor secure team" + description = "A monitor team" scope_by = "host" filter = "container.image.repo = \"sysdig/agent\"" can_use_sysdig_capture = true can_see_infrastructure_events = true + can_use_aws_data = true entrypoint { type = "Dashboards" diff --git a/sysdig/data_source_sysdig_secure_team_ibm_test.go b/sysdig/data_source_sysdig_secure_team_ibm_test.go new file mode 100644 index 000000000..7489293ec --- /dev/null +++ b/sysdig/data_source_sysdig_secure_team_ibm_test.go @@ -0,0 +1,54 @@ +//go:build tf_acc_ibm_secure + +package sysdig_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/draios/terraform-provider-sysdig/sysdig" +) + +func TestAccDataSourceSysdigSecureTeamIBM(t *testing.T) { + name := fmt.Sprintf("test-secure-team-%s", randomText(5)) + resource.Test(t, resource.TestCase{ + PreCheck: preCheckAnyEnv(t, SysdigIBMSecureAPIKeyEnv), + ProviderFactories: map[string]func() (*schema.Provider, error){ + "sysdig": func() (*schema.Provider, error) { + return sysdig.Provider(), nil + }, + }, + Steps: []resource.TestStep{ + { + Config: secureTeamResourceAndDatasource(name), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr("data.sysdig_secure_team.test_dt", "name", name), + resource.TestCheckResourceAttr("data.sysdig_secure_team.test_dt", "description", "A secure team"), + resource.TestCheckResourceAttr("data.sysdig_secure_team.test_dt", "enable_ibm_platform_metrics", "true"), + resource.TestCheckResourceAttr("data.sysdig_secure_team.test_dt", "ibm_platform_metrics", "foo in (\"0\") and bar in (\"3\")"), + ), + }, + }, + }) +} + +func secureTeamWithPlatformMetricsIBM(name string) string { + return fmt.Sprintf(` +resource "sysdig_secure_team" "test" { + name = "%s" + enable_ibm_platform_metrics = true + ibm_platform_metrics = "foo in (\"0\") and bar in (\"3\")" + + entrypoint { + type = "Dashboards" + } +} + +data "sysdig_secure_team" "test_dt" { + id = sysdig_secure_team.sample.id +} +`, name) +} diff --git a/sysdig/data_source_sysdig_secure_team_test.go b/sysdig/data_source_sysdig_secure_team_test.go index fff5dbe3b..9fd154f07 100644 --- a/sysdig/data_source_sysdig_secure_team_test.go +++ b/sysdig/data_source_sysdig_secure_team_test.go @@ -1,4 +1,4 @@ -//go:build tf_acc_sysdig_secure || tf_acc_onprem_secure || tf_acc_ibm_secure +//go:build tf_acc_sysdig_secure || tf_acc_onprem_secure package sysdig_test @@ -14,7 +14,7 @@ import ( func TestAccDataSourceSysdigSecureTeam(t *testing.T) { name := fmt.Sprintf("test-secure-team-%s", randomText(5)) resource.Test(t, resource.TestCase{ - PreCheck: preCheckAnyEnv(t, SysdigSecureApiTokenEnv, SysdigIBMSecureAPIKeyEnv), + PreCheck: preCheckAnyEnv(t, SysdigSecureApiTokenEnv), ProviderFactories: map[string]func() (*schema.Provider, error){ "sysdig": func() (*schema.Provider, error) { return sysdig.Provider(), nil @@ -25,6 +25,14 @@ func TestAccDataSourceSysdigSecureTeam(t *testing.T) { Config: secureTeamAndDatasource(name), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.sysdig_secure_team.test", "name", name), + resource.TestCheckResourceAttr("data.sysdig_secure_team.test", "description", "A test secure team"), + resource.TestCheckResourceAttr("data.sysdig_secure_team.test", "scope_by", "container"), + resource.TestCheckResourceAttr("data.sysdig_secure_team.test", "filter", "container.image.repo = \"sysdig/agent\""), + resource.TestCheckResourceAttr("data.sysdig_secure_team.test", "version", "0"), + resource.TestCheckResourceAttr("data.sysdig_secure_team.test", "can_use_sysdig_capture", "true"), + resource.TestCheckResourceAttr("data.sysdig_secure_team.test", "can_see_infrastructure_events", "true"), + resource.TestCheckResourceAttr("data.sysdig_secure_team.test", "can_use_aws_data", "false"), + resource.TestCheckResourceAttr("data.sysdig_secure_team.test", "all_zones", "true"), ), }, }, @@ -34,10 +42,14 @@ func TestAccDataSourceSysdigSecureTeam(t *testing.T) { func secureTeamAndDatasource(name string) string { return fmt.Sprintf(` resource "sysdig_secure_team" "sample" { - name = "%s" + name = "%s" description = "A test secure team" scope_by = "container" + can_use_sysdig_capture = true + can_see_infrastructure_events = true filter = "container.image.repo = \"sysdig/agent\"" + can_use_aws_data = false + all_zones = true } data "sysdig_secure_team" "test" { From 4512a24a9fb8e6055abf64265ee0113aa919f85e Mon Sep 17 00:00:00 2001 From: vojindjukic Date: Wed, 16 Apr 2025 11:25:07 +0200 Subject: [PATCH 13/17] remove platform metrics from secure team schema --- ...ata_source_sysdig_monitor_team_ibm_test.go | 6 +-- sysdig/data_source_sysdig_secure_team.go | 15 ------ ...data_source_sysdig_secure_team_ibm_test.go | 54 ------------------- 3 files changed, 3 insertions(+), 72 deletions(-) delete mode 100644 sysdig/data_source_sysdig_secure_team_ibm_test.go diff --git a/sysdig/data_source_sysdig_monitor_team_ibm_test.go b/sysdig/data_source_sysdig_monitor_team_ibm_test.go index ece13a6db..12cdc65f9 100644 --- a/sysdig/data_source_sysdig_monitor_team_ibm_test.go +++ b/sysdig/data_source_sysdig_monitor_team_ibm_test.go @@ -12,7 +12,7 @@ import ( "github.com/draios/terraform-provider-sysdig/sysdig" ) -func TestAccDataSourceSysdigMonitorTeam(t *testing.T) { +func TestAccDataSourceSysdigMonitorTeamIBM(t *testing.T) { name := fmt.Sprintf("test-monitor-team-%s", randomText(5)) resource.Test(t, resource.TestCase{ PreCheck: preCheckAnyEnv(t, SysdigIBMMonitorAPIKeyEnv), @@ -23,7 +23,7 @@ func TestAccDataSourceSysdigMonitorTeam(t *testing.T) { }, Steps: []resource.TestStep{ { - Config: monitorTeamResourceAndDatasource(name), + Config: monitorTeamWithPlatformMetricsAndDatasourceIBM(name), Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.sysdig_monitor_team.test_dt", "name", name), resource.TestCheckResourceAttr("data.sysdig_monitor_team.test_dt", "enable_ibm_platform_metrics", "true"), @@ -34,7 +34,7 @@ func TestAccDataSourceSysdigMonitorTeam(t *testing.T) { }) } -func monitorTeamWithPlatformMetricsIBM(name string) string { +func monitorTeamWithPlatformMetricsAndDatasourceIBM(name string) string { return fmt.Sprintf(` resource "sysdig_monitor_team" "test" { name = "%s" diff --git a/sysdig/data_source_sysdig_secure_team.go b/sysdig/data_source_sysdig_secure_team.go index 36bc502a3..823fcead8 100644 --- a/sysdig/data_source_sysdig_secure_team.go +++ b/sysdig/data_source_sysdig_secure_team.go @@ -44,14 +44,6 @@ func dataSourceSysdigSecureTeam() *schema.Resource { Type: schema.TypeBool, Computed: true, }, - "enable_ibm_platform_metrics": { - Type: schema.TypeBool, - Computed: true, - }, - "ibm_platform_metrics": { - Type: schema.TypeString, - Computed: true, - }, "user_roles": { Type: schema.TypeSet, Computed: true, @@ -117,12 +109,5 @@ func dataSourceSysdigSecureTeamRead(ctx context.Context, d *schema.ResourceData, _ = d.Set("zone_ids", team.ZoneIDs) _ = d.Set("all_zones", team.AllZones) - var ibmPlatformMetrics *string - if team.NamespaceFilters != nil { - ibmPlatformMetrics = team.NamespaceFilters.IBMPlatformMetrics - } - _ = d.Set("enable_ibm_platform_metrics", team.CanUseBeaconMetrics) - _ = d.Set("ibm_platform_metrics", ibmPlatformMetrics) - return nil } diff --git a/sysdig/data_source_sysdig_secure_team_ibm_test.go b/sysdig/data_source_sysdig_secure_team_ibm_test.go deleted file mode 100644 index 7489293ec..000000000 --- a/sysdig/data_source_sysdig_secure_team_ibm_test.go +++ /dev/null @@ -1,54 +0,0 @@ -//go:build tf_acc_ibm_secure - -package sysdig_test - -import ( - "fmt" - "testing" - - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" - - "github.com/draios/terraform-provider-sysdig/sysdig" -) - -func TestAccDataSourceSysdigSecureTeamIBM(t *testing.T) { - name := fmt.Sprintf("test-secure-team-%s", randomText(5)) - resource.Test(t, resource.TestCase{ - PreCheck: preCheckAnyEnv(t, SysdigIBMSecureAPIKeyEnv), - ProviderFactories: map[string]func() (*schema.Provider, error){ - "sysdig": func() (*schema.Provider, error) { - return sysdig.Provider(), nil - }, - }, - Steps: []resource.TestStep{ - { - Config: secureTeamResourceAndDatasource(name), - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr("data.sysdig_secure_team.test_dt", "name", name), - resource.TestCheckResourceAttr("data.sysdig_secure_team.test_dt", "description", "A secure team"), - resource.TestCheckResourceAttr("data.sysdig_secure_team.test_dt", "enable_ibm_platform_metrics", "true"), - resource.TestCheckResourceAttr("data.sysdig_secure_team.test_dt", "ibm_platform_metrics", "foo in (\"0\") and bar in (\"3\")"), - ), - }, - }, - }) -} - -func secureTeamWithPlatformMetricsIBM(name string) string { - return fmt.Sprintf(` -resource "sysdig_secure_team" "test" { - name = "%s" - enable_ibm_platform_metrics = true - ibm_platform_metrics = "foo in (\"0\") and bar in (\"3\")" - - entrypoint { - type = "Dashboards" - } -} - -data "sysdig_secure_team" "test_dt" { - id = sysdig_secure_team.sample.id -} -`, name) -} From dd615224f376d8c7662b75962dcc724a00fcc9d2 Mon Sep 17 00:00:00 2001 From: vojindjukic Date: Wed, 16 Apr 2025 11:40:02 +0200 Subject: [PATCH 14/17] add platform metrics fields to monitor team docs --- website/docs/d/monitor_team.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/website/docs/d/monitor_team.md b/website/docs/d/monitor_team.md index 04879bd29..2b334aa84 100644 --- a/website/docs/d/monitor_team.md +++ b/website/docs/d/monitor_team.md @@ -36,3 +36,5 @@ data "sysdig_monitor_team" "example" { - `user_roles` - The roles assigned to users in the team. - `version` - The version of the monitor team. - `theme` - The theme of the monitor team. +- `enable_ibm_platform_metrics` - Whether the team can use IBM platform metrics. +- `ibm_platform_metrics` - The IBM platform metrics configuration for the team. From 2cfd6446143f092a2c42fc3643c22efe9163aedb Mon Sep 17 00:00:00 2001 From: vojindjukic Date: Wed, 16 Apr 2025 12:15:10 +0200 Subject: [PATCH 15/17] fix acc test --- sysdig/data_source_sysdig_monitor_team_ibm_test.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sysdig/data_source_sysdig_monitor_team_ibm_test.go b/sysdig/data_source_sysdig_monitor_team_ibm_test.go index 12cdc65f9..257634f6e 100644 --- a/sysdig/data_source_sysdig_monitor_team_ibm_test.go +++ b/sysdig/data_source_sysdig_monitor_team_ibm_test.go @@ -25,9 +25,9 @@ func TestAccDataSourceSysdigMonitorTeamIBM(t *testing.T) { { Config: monitorTeamWithPlatformMetricsAndDatasourceIBM(name), Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr("data.sysdig_monitor_team.test_dt", "name", name), - resource.TestCheckResourceAttr("data.sysdig_monitor_team.test_dt", "enable_ibm_platform_metrics", "true"), - resource.TestCheckResourceAttr("data.sysdig_monitor_team.test_dt", "ibm_platform_metrics", "foo in (\"0\") and bar in (\"3\")"), + resource.TestCheckResourceAttr("data.sysdig_monitor_team.test", "name", name), + resource.TestCheckResourceAttr("data.sysdig_monitor_team.test", "enable_ibm_platform_metrics", "true"), + resource.TestCheckResourceAttr("data.sysdig_monitor_team.test", "ibm_platform_metrics", "foo in (\"0\") and bar in (\"3\")"), ), }, }, @@ -36,7 +36,7 @@ func TestAccDataSourceSysdigMonitorTeamIBM(t *testing.T) { func monitorTeamWithPlatformMetricsAndDatasourceIBM(name string) string { return fmt.Sprintf(` -resource "sysdig_monitor_team" "test" { +resource "sysdig_monitor_team" "sample" { name = "%s" enable_ibm_platform_metrics = true ibm_platform_metrics = "foo in (\"0\") and bar in (\"3\")" @@ -46,7 +46,7 @@ resource "sysdig_monitor_team" "test" { } } -data "sysdig_monitor_team" "test_dt" { +data "sysdig_monitor_team" "test" { id = sysdig_monitor_team.sample.id } `, name) From 09261f754807ee76334404535d7e93c42abe3b10 Mon Sep 17 00:00:00 2001 From: vojindjukic Date: Wed, 16 Apr 2025 13:05:22 +0200 Subject: [PATCH 16/17] leave only `id` and `name` fields in the `secure_teams` and `monitor_teams` schemas --- sysdig/data_source_sysdig_monitor_teams.go | 68 ---------------------- sysdig/data_source_sysdig_secure_teams.go | 55 ----------------- website/docs/d/monitor_teams.md | 10 ---- website/docs/d/secure_teams.md | 10 ---- 4 files changed, 143 deletions(-) diff --git a/sysdig/data_source_sysdig_monitor_teams.go b/sysdig/data_source_sysdig_monitor_teams.go index 8fbf2229c..043e4808a 100644 --- a/sysdig/data_source_sysdig_monitor_teams.go +++ b/sysdig/data_source_sysdig_monitor_teams.go @@ -24,74 +24,6 @@ func dataSourceSysdigMonitorTeams() *schema.Resource { Type: schema.TypeString, Computed: true, }, - "theme": { - Type: schema.TypeString, - Computed: true, - }, - "description": { - Type: schema.TypeString, - Computed: true, - }, - "scope_by": { - Type: schema.TypeString, - Computed: true, - }, - "filter": { - Type: schema.TypeString, - Computed: true, - }, - "can_use_sysdig_capture": { - Type: schema.TypeBool, - Computed: true, - }, - "can_see_infrastructure_events": { - Type: schema.TypeBool, - Computed: true, - }, - "can_use_aws_data": { - Type: schema.TypeBool, - Computed: true, - }, - "default_team": { - Type: schema.TypeBool, - Computed: true, - }, - "user_roles": { - Type: schema.TypeSet, - Computed: true, - Elem: &schema.Resource{ - Schema: map[string]*schema.Schema{ - "email": { - Type: schema.TypeString, - Computed: true, - }, - "role": { - Type: schema.TypeString, - Computed: true, - }, - }, - }, - }, - "entrypoint": { - Type: schema.TypeList, - Computed: true, - Elem: &schema.Resource{ - Schema: map[string]*schema.Schema{ - "type": { - Type: schema.TypeString, - Computed: true, - }, - "selection": { - Type: schema.TypeString, - Computed: true, - }, - }, - }, - }, - "version": { - Type: schema.TypeInt, - Computed: true, - }, }, }, }, diff --git a/sysdig/data_source_sysdig_secure_teams.go b/sysdig/data_source_sysdig_secure_teams.go index 0d637a483..59a5e565a 100644 --- a/sysdig/data_source_sysdig_secure_teams.go +++ b/sysdig/data_source_sysdig_secure_teams.go @@ -24,61 +24,6 @@ func dataSourceSysdigSecureTeams() *schema.Resource { Type: schema.TypeString, Computed: true, }, - "theme": { - Type: schema.TypeString, - Computed: true, - }, - "description": { - Type: schema.TypeString, - Computed: true, - }, - "scope_by": { - Type: schema.TypeString, - Computed: true, - }, - "filter": { - Type: schema.TypeString, - Computed: true, - }, - "use_sysdig_capture": { - Type: schema.TypeBool, - Computed: true, - }, - "default_team": { - Type: schema.TypeBool, - Computed: true, - }, - "user_roles": { - Type: schema.TypeSet, - Computed: true, - Elem: &schema.Resource{ - Schema: map[string]*schema.Schema{ - "email": { - Type: schema.TypeString, - Computed: true, - }, - "role": { - Type: schema.TypeString, - Computed: true, - }, - }, - }, - }, - "zone_ids": { - Type: schema.TypeList, - Computed: true, - Elem: &schema.Schema{ - Type: schema.TypeInt, - }, - }, - "all_zones": { - Type: schema.TypeBool, - Computed: true, - }, - "version": { - Type: schema.TypeInt, - Computed: true, - }, }, }, }, diff --git a/website/docs/d/monitor_teams.md b/website/docs/d/monitor_teams.md index ca72fc936..ab756f200 100644 --- a/website/docs/d/monitor_teams.md +++ b/website/docs/d/monitor_teams.md @@ -21,13 +21,3 @@ data "sysdig_monitor_teams" "example" {} - `teams` - A list of monitor teams. Each team has the following attributes: - `id` - The ID of the monitor team. - `name` - The name of the monitor team. - - `description` - The description of the monitor team. - - `filter` - The filter applied to the team. - - `scope_by` - The scope of the team. - - `can_use_sysdig_capture` - Whether the team can use Sysdig capture. - - `can_see_infrastructure_events` - Whether the team can see infrastructure events. - - `can_use_aws_data` - Whether the team can use AWS data. - - `default_team` - Whether the team is the default team. - - `user_roles` - The roles assigned to users in the team. - - `version` - The version of the monitor team. - - `theme` - The theme of the monitor team. diff --git a/website/docs/d/secure_teams.md b/website/docs/d/secure_teams.md index fb3e3e806..1c4574779 100644 --- a/website/docs/d/secure_teams.md +++ b/website/docs/d/secure_teams.md @@ -21,13 +21,3 @@ data "sysdig_secure_teams" "example" {} - `teams` - A list of secure teams. Each team has the following attributes: - `id` - The ID of the secure team. - `name` - The name of the secure team. - - `description` - The description of the secure team. - - `filter` - The filter applied to the team. - - `scope_by` - The scope of the team. - - `use_sysdig_capture` - Whether the team can use Sysdig capture. - - `default_team` - Whether the team is the default team. - - `user_roles` - The roles assigned to users in the team. - - `zone_ids` - The IDs of the zones associated with the team. - - `all_zones` - Whether the team has access to all zones. - - `version` - The version of the secure team. - - `theme` - The theme of the secure team. From b8c91c74a3fa7b800e6f67020c23ac53ecb4a008 Mon Sep 17 00:00:00 2001 From: vojindjukic Date: Wed, 16 Apr 2025 13:09:17 +0200 Subject: [PATCH 17/17] fix test --- sysdig/data_source_sysdig_secure_team_test.go | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/sysdig/data_source_sysdig_secure_team_test.go b/sysdig/data_source_sysdig_secure_team_test.go index 9fd154f07..9d57e16e3 100644 --- a/sysdig/data_source_sysdig_secure_team_test.go +++ b/sysdig/data_source_sysdig_secure_team_test.go @@ -29,9 +29,7 @@ func TestAccDataSourceSysdigSecureTeam(t *testing.T) { resource.TestCheckResourceAttr("data.sysdig_secure_team.test", "scope_by", "container"), resource.TestCheckResourceAttr("data.sysdig_secure_team.test", "filter", "container.image.repo = \"sysdig/agent\""), resource.TestCheckResourceAttr("data.sysdig_secure_team.test", "version", "0"), - resource.TestCheckResourceAttr("data.sysdig_secure_team.test", "can_use_sysdig_capture", "true"), - resource.TestCheckResourceAttr("data.sysdig_secure_team.test", "can_see_infrastructure_events", "true"), - resource.TestCheckResourceAttr("data.sysdig_secure_team.test", "can_use_aws_data", "false"), + resource.TestCheckResourceAttr("data.sysdig_secure_team.test", "use_sysdig_capture", "true"), resource.TestCheckResourceAttr("data.sysdig_secure_team.test", "all_zones", "true"), ), }, @@ -45,10 +43,8 @@ resource "sysdig_secure_team" "sample" { name = "%s" description = "A test secure team" scope_by = "container" - can_use_sysdig_capture = true - can_see_infrastructure_events = true + use_sysdig_capture = true filter = "container.image.repo = \"sysdig/agent\"" - can_use_aws_data = false all_zones = true }