From 01997ca760bff1695e5539840acf4c03ff9eaa84 Mon Sep 17 00:00:00 2001 From: Raghav Anandan Date: Tue, 5 Sep 2023 12:37:27 -0700 Subject: [PATCH 1/6] Initial draft of resource --- ...resource_sysdig_secure_cloud_account_v2.go | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 sysdig/resource_sysdig_secure_cloud_account_v2.go diff --git a/sysdig/resource_sysdig_secure_cloud_account_v2.go b/sysdig/resource_sysdig_secure_cloud_account_v2.go new file mode 100644 index 00000000..9efa9ad3 --- /dev/null +++ b/sysdig/resource_sysdig_secure_cloud_account_v2.go @@ -0,0 +1,96 @@ +package sysdig + +import ( + "context" + "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" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" +) + +func resourceSysdigSecureCloudAccountV2() *schema.Resource { + timeout := 5 * time.Minute + + return &schema.Resource{ + // CreateContext: resourceSysdigSecureCloudAccountCreate, + // UpdateContext: resourceSysdigSecureCloudAccountUpdate, + // ReadContext: resourceSysdigSecureCloudAccountRead, + // DeleteContext: resourceSysdigSecureCloudAccountDelete, + Importer: &schema.ResourceImporter{ + StateContext: schema.ImportStatePassthroughContext, + }, + Timeouts: &schema.ResourceTimeout{ + Create: schema.DefaultTimeout(timeout), + Update: schema.DefaultTimeout(timeout), + Read: schema.DefaultTimeout(timeout), + Delete: schema.DefaultTimeout(timeout), + }, + Schema: map[string]*schema.Schema{ + "account_id": { + Type: schema.TypeString, + Required: true, + }, + "cloud_provider": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validation.StringInSlice([]string{"gcp"}, false), + }, + "alias": { + Type: schema.TypeString, + Optional: true, + }, + "role_enabled": { + Type: schema.TypeBool, + Optional: true, + Default: false, + }, + "role_name": { + Type: schema.TypeString, + Optional: true, + Default: "SysdigCloudBench", + }, + "external_id": { + Type: schema.TypeString, + Computed: true, + }, + "workload_identity_account_id": { + Type: schema.TypeString, + Optional: true, + }, + "workload_identity_account_alias": { + Type: schema.TypeString, + Optional: true, + }, + }, + } +} + +func resourceSysdigSecureCloudAccountV2Create(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + return nil +} + +func resourceSysdigSecureCloudAccountV2Read(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + return nil +} + +func resourceSysdigSecureCloudAccountV2Update(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + return nil +} + +func resourceSysdigSecureCloudAccountV2Delete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + return nil +} + +func cloudAccountFromResourceDataV2(d *schema.ResourceData) *v2.CloudAccountSecure { + return &v2.CloudAccountSecure{ + AccountID: d.Get("account_id").(string), + Provider: d.Get("cloud_provider").(string), + Alias: d.Get("alias").(string), + RoleAvailable: d.Get("role_enabled").(bool), + RoleName: d.Get("role_name").(string), + WorkLoadIdentityAccountID: d.Get("workload_identity_account_id").(string), + WorkLoadIdentityAccountAlias: d.Get("workload_identity_account_alias").(string), + } +} From 10f998d4a0b303e2e0ee3095a8ffe2d558fe5d9f Mon Sep 17 00:00:00 2001 From: Raghav Anandan Date: Wed, 6 Sep 2023 10:11:34 -0700 Subject: [PATCH 2/6] go fmt file --- ...resource_sysdig_secure_cloud_account_v2.go | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/sysdig/resource_sysdig_secure_cloud_account_v2.go b/sysdig/resource_sysdig_secure_cloud_account_v2.go index 9efa9ad3..712a4aa4 100644 --- a/sysdig/resource_sysdig_secure_cloud_account_v2.go +++ b/sysdig/resource_sysdig_secure_cloud_account_v2.go @@ -24,43 +24,43 @@ func resourceSysdigSecureCloudAccountV2() *schema.Resource { Timeouts: &schema.ResourceTimeout{ Create: schema.DefaultTimeout(timeout), Update: schema.DefaultTimeout(timeout), - Read: schema.DefaultTimeout(timeout), + Read: schema.DefaultTimeout(timeout), Delete: schema.DefaultTimeout(timeout), }, Schema: map[string]*schema.Schema{ "account_id": { - Type: schema.TypeString, + Type: schema.TypeString, Required: true, }, "cloud_provider": { - Type: schema.TypeString, - Required: true, + Type: schema.TypeString, + Required: true, ValidateFunc: validation.StringInSlice([]string{"gcp"}, false), }, "alias": { - Type: schema.TypeString, + Type: schema.TypeString, Optional: true, }, "role_enabled": { - Type: schema.TypeBool, + Type: schema.TypeBool, Optional: true, - Default: false, + Default: false, }, "role_name": { - Type: schema.TypeString, + Type: schema.TypeString, Optional: true, - Default: "SysdigCloudBench", + Default: "SysdigCloudBench", }, "external_id": { - Type: schema.TypeString, + Type: schema.TypeString, Computed: true, }, "workload_identity_account_id": { - Type: schema.TypeString, + Type: schema.TypeString, Optional: true, }, "workload_identity_account_alias": { - Type: schema.TypeString, + Type: schema.TypeString, Optional: true, }, }, @@ -85,12 +85,12 @@ func resourceSysdigSecureCloudAccountV2Delete(ctx context.Context, d *schema.Res func cloudAccountFromResourceDataV2(d *schema.ResourceData) *v2.CloudAccountSecure { return &v2.CloudAccountSecure{ - AccountID: d.Get("account_id").(string), - Provider: d.Get("cloud_provider").(string), - Alias: d.Get("alias").(string), - RoleAvailable: d.Get("role_enabled").(bool), - RoleName: d.Get("role_name").(string), - WorkLoadIdentityAccountID: d.Get("workload_identity_account_id").(string), + AccountID: d.Get("account_id").(string), + Provider: d.Get("cloud_provider").(string), + Alias: d.Get("alias").(string), + RoleAvailable: d.Get("role_enabled").(bool), + RoleName: d.Get("role_name").(string), + WorkLoadIdentityAccountID: d.Get("workload_identity_account_id").(string), WorkLoadIdentityAccountAlias: d.Get("workload_identity_account_alias").(string), } } From 4bc45927252c111c8535d0cfc18e66a10d59d698 Mon Sep 17 00:00:00 2001 From: Raghav Anandan Date: Wed, 6 Sep 2023 10:33:29 -0700 Subject: [PATCH 3/6] Use declared functions --- sysdig/resource_sysdig_secure_cloud_account_v2.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sysdig/resource_sysdig_secure_cloud_account_v2.go b/sysdig/resource_sysdig_secure_cloud_account_v2.go index 712a4aa4..629bd371 100644 --- a/sysdig/resource_sysdig_secure_cloud_account_v2.go +++ b/sysdig/resource_sysdig_secure_cloud_account_v2.go @@ -14,10 +14,10 @@ func resourceSysdigSecureCloudAccountV2() *schema.Resource { timeout := 5 * time.Minute return &schema.Resource{ - // CreateContext: resourceSysdigSecureCloudAccountCreate, - // UpdateContext: resourceSysdigSecureCloudAccountUpdate, - // ReadContext: resourceSysdigSecureCloudAccountRead, - // DeleteContext: resourceSysdigSecureCloudAccountDelete, + CreateContext: resourceSysdigSecureCloudAccountV2Create, + UpdateContext: resourceSysdigSecureCloudAccountV2Update, + ReadContext: resourceSysdigSecureCloudAccountV2Read, + DeleteContext: resourceSysdigSecureCloudAccountV2Delete, Importer: &schema.ResourceImporter{ StateContext: schema.ImportStatePassthroughContext, }, From 8d924080505662a99724ba0bf2cc66a88f033827 Mon Sep 17 00:00:00 2001 From: Raghav Anandan Date: Wed, 6 Sep 2023 12:06:24 -0700 Subject: [PATCH 4/6] Rename and add resource --- sysdig/provider.go | 1 + ...source_sysdig_secure_cloud_auth_account.go | 96 +++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 sysdig/resource_sysdig_secure_cloud_auth_account.go diff --git a/sysdig/provider.go b/sysdig/provider.go index 47afe8ca..5a61dc33 100644 --- a/sysdig/provider.go +++ b/sysdig/provider.go @@ -133,6 +133,7 @@ func Provider() *schema.Provider { "sysdig_secure_cloud_account": resourceSysdigSecureCloudAccount(), "sysdig_secure_scanning_policy": resourceSysdigSecureScanningPolicy(), "sysdig_secure_scanning_policy_assignment": resourceSysdigSecureScanningPolicyAssignment(), + "sysdig_secure_cloud_auth_account": resourceSysdigSecureCloudAccount(), "sysdig_monitor_silence_rule": resourceSysdigMonitorSilenceRule(), "sysdig_monitor_alert_downtime": resourceSysdigMonitorAlertDowntime(), diff --git a/sysdig/resource_sysdig_secure_cloud_auth_account.go b/sysdig/resource_sysdig_secure_cloud_auth_account.go new file mode 100644 index 00000000..da892b17 --- /dev/null +++ b/sysdig/resource_sysdig_secure_cloud_auth_account.go @@ -0,0 +1,96 @@ +package sysdig + +import ( + "context" + "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" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" +) + +func resourceSysdigSecureCloudauthAccount() *schema.Resource { + timeout := 5 * time.Minute + + return &schema.Resource{ + CreateContext: resourceSysdigSecureCloudauthAccountCreate, + UpdateContext: resourceSysdigSecureCloudauthAccountUpdate, + ReadContext: resourceSysdigSecureCloudauthAccountRead, + DeleteContext: resourceSysdigSecureCloudauthAccountDelete, + Importer: &schema.ResourceImporter{ + StateContext: schema.ImportStatePassthroughContext, + }, + Timeouts: &schema.ResourceTimeout{ + Create: schema.DefaultTimeout(timeout), + Update: schema.DefaultTimeout(timeout), + Read: schema.DefaultTimeout(timeout), + Delete: schema.DefaultTimeout(timeout), + }, + Schema: map[string]*schema.Schema{ + "account_id": { + Type: schema.TypeString, + Required: true, + }, + "cloud_provider": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validation.StringInSlice([]string{"gcp"}, false), + }, + "alias": { + Type: schema.TypeString, + Optional: true, + }, + "role_enabled": { + Type: schema.TypeBool, + Optional: true, + Default: false, + }, + "role_name": { + Type: schema.TypeString, + Optional: true, + Default: "SysdigCloudBench", + }, + "external_id": { + Type: schema.TypeString, + Computed: true, + }, + "workload_identity_account_id": { + Type: schema.TypeString, + Optional: true, + }, + "workload_identity_account_alias": { + Type: schema.TypeString, + Optional: true, + }, + }, + } +} + +func resourceSysdigSecureCloudauthAccountCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + return nil +} + +func resourceSysdigSecureCloudauthAccountRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + return nil +} + +func resourceSysdigSecureCloudauthAccountUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + return nil +} + +func resourceSysdigSecureCloudauthAccountDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { + return nil +} + +func cloudAccountFromResourceDataV2(d *schema.ResourceData) *v2.CloudAccountSecure { + return &v2.CloudAccountSecure{ + AccountID: d.Get("account_id").(string), + Provider: d.Get("cloud_provider").(string), + Alias: d.Get("alias").(string), + RoleAvailable: d.Get("role_enabled").(bool), + RoleName: d.Get("role_name").(string), + WorkLoadIdentityAccountID: d.Get("workload_identity_account_id").(string), + WorkLoadIdentityAccountAlias: d.Get("workload_identity_account_alias").(string), + } +} From 77046b7e2e2f3e3efe19082af2782dc1d21a9276 Mon Sep 17 00:00:00 2001 From: Raghav Anandan Date: Wed, 6 Sep 2023 12:18:24 -0700 Subject: [PATCH 5/6] Remove unused file --- sysdig/provider.go | 2 +- ...resource_sysdig_secure_cloud_account_v2.go | 96 ------------------- ...source_sysdig_secure_cloud_auth_account.go | 2 +- 3 files changed, 2 insertions(+), 98 deletions(-) delete mode 100644 sysdig/resource_sysdig_secure_cloud_account_v2.go diff --git a/sysdig/provider.go b/sysdig/provider.go index 5a61dc33..11fda218 100644 --- a/sysdig/provider.go +++ b/sysdig/provider.go @@ -133,7 +133,7 @@ func Provider() *schema.Provider { "sysdig_secure_cloud_account": resourceSysdigSecureCloudAccount(), "sysdig_secure_scanning_policy": resourceSysdigSecureScanningPolicy(), "sysdig_secure_scanning_policy_assignment": resourceSysdigSecureScanningPolicyAssignment(), - "sysdig_secure_cloud_auth_account": resourceSysdigSecureCloudAccount(), + "sysdig_secure_cloud_auth_account": resourceSysdigSecureCloudauthAccount(), "sysdig_monitor_silence_rule": resourceSysdigMonitorSilenceRule(), "sysdig_monitor_alert_downtime": resourceSysdigMonitorAlertDowntime(), diff --git a/sysdig/resource_sysdig_secure_cloud_account_v2.go b/sysdig/resource_sysdig_secure_cloud_account_v2.go deleted file mode 100644 index 629bd371..00000000 --- a/sysdig/resource_sysdig_secure_cloud_account_v2.go +++ /dev/null @@ -1,96 +0,0 @@ -package sysdig - -import ( - "context" - "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" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" -) - -func resourceSysdigSecureCloudAccountV2() *schema.Resource { - timeout := 5 * time.Minute - - return &schema.Resource{ - CreateContext: resourceSysdigSecureCloudAccountV2Create, - UpdateContext: resourceSysdigSecureCloudAccountV2Update, - ReadContext: resourceSysdigSecureCloudAccountV2Read, - DeleteContext: resourceSysdigSecureCloudAccountV2Delete, - Importer: &schema.ResourceImporter{ - StateContext: schema.ImportStatePassthroughContext, - }, - Timeouts: &schema.ResourceTimeout{ - Create: schema.DefaultTimeout(timeout), - Update: schema.DefaultTimeout(timeout), - Read: schema.DefaultTimeout(timeout), - Delete: schema.DefaultTimeout(timeout), - }, - Schema: map[string]*schema.Schema{ - "account_id": { - Type: schema.TypeString, - Required: true, - }, - "cloud_provider": { - Type: schema.TypeString, - Required: true, - ValidateFunc: validation.StringInSlice([]string{"gcp"}, false), - }, - "alias": { - Type: schema.TypeString, - Optional: true, - }, - "role_enabled": { - Type: schema.TypeBool, - Optional: true, - Default: false, - }, - "role_name": { - Type: schema.TypeString, - Optional: true, - Default: "SysdigCloudBench", - }, - "external_id": { - Type: schema.TypeString, - Computed: true, - }, - "workload_identity_account_id": { - Type: schema.TypeString, - Optional: true, - }, - "workload_identity_account_alias": { - Type: schema.TypeString, - Optional: true, - }, - }, - } -} - -func resourceSysdigSecureCloudAccountV2Create(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - return nil -} - -func resourceSysdigSecureCloudAccountV2Read(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - return nil -} - -func resourceSysdigSecureCloudAccountV2Update(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - return nil -} - -func resourceSysdigSecureCloudAccountV2Delete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { - return nil -} - -func cloudAccountFromResourceDataV2(d *schema.ResourceData) *v2.CloudAccountSecure { - return &v2.CloudAccountSecure{ - AccountID: d.Get("account_id").(string), - Provider: d.Get("cloud_provider").(string), - Alias: d.Get("alias").(string), - RoleAvailable: d.Get("role_enabled").(bool), - RoleName: d.Get("role_name").(string), - WorkLoadIdentityAccountID: d.Get("workload_identity_account_id").(string), - WorkLoadIdentityAccountAlias: d.Get("workload_identity_account_alias").(string), - } -} diff --git a/sysdig/resource_sysdig_secure_cloud_auth_account.go b/sysdig/resource_sysdig_secure_cloud_auth_account.go index da892b17..a3342604 100644 --- a/sysdig/resource_sysdig_secure_cloud_auth_account.go +++ b/sysdig/resource_sysdig_secure_cloud_auth_account.go @@ -83,7 +83,7 @@ func resourceSysdigSecureCloudauthAccountDelete(ctx context.Context, d *schema.R return nil } -func cloudAccountFromResourceDataV2(d *schema.ResourceData) *v2.CloudAccountSecure { +func cloudauthAccountFromResourceData(d *schema.ResourceData) *v2.CloudAccountSecure { return &v2.CloudAccountSecure{ AccountID: d.Get("account_id").(string), Provider: d.Get("cloud_provider").(string), From 2276ec5727cf548dd760e104fbfcee5e9c5c0f6a Mon Sep 17 00:00:00 2001 From: Raghav Anandan Date: Wed, 6 Sep 2023 12:19:54 -0700 Subject: [PATCH 6/6] Reformat files --- sysdig/provider.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sysdig/provider.go b/sysdig/provider.go index 11fda218..e575800d 100644 --- a/sysdig/provider.go +++ b/sysdig/provider.go @@ -133,7 +133,7 @@ func Provider() *schema.Provider { "sysdig_secure_cloud_account": resourceSysdigSecureCloudAccount(), "sysdig_secure_scanning_policy": resourceSysdigSecureScanningPolicy(), "sysdig_secure_scanning_policy_assignment": resourceSysdigSecureScanningPolicyAssignment(), - "sysdig_secure_cloud_auth_account": resourceSysdigSecureCloudauthAccount(), + "sysdig_secure_cloud_auth_account": resourceSysdigSecureCloudauthAccount(), "sysdig_monitor_silence_rule": resourceSysdigMonitorSilenceRule(), "sysdig_monitor_alert_downtime": resourceSysdigMonitorAlertDowntime(),