diff --git a/ibm/service/scc/resource_ibm_scc_control_library.go b/ibm/service/scc/resource_ibm_scc_control_library.go index f791694ac6..aa17e2bd40 100644 --- a/ibm/service/scc/resource_ibm_scc_control_library.go +++ b/ibm/service/scc/resource_ibm_scc_control_library.go @@ -154,6 +154,7 @@ func ResourceIbmSccControlLibrary() *schema.Resource { Computed: true, Description: "The number of assessments.", }, + "assessments": { Type: schema.TypeSet, Optional: true, @@ -212,6 +213,13 @@ func ResourceIbmSccControlLibrary() *schema.Resource { }, }, }, + "assessments_map": { + Type: schema.TypeMap, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, }, }, }, @@ -924,8 +932,6 @@ func resourceIbmSccControlLibraryControlSpecificationsToMap(model *securityandco } assessmentsList := schema.NewSet(compareAssessmentSetFunc, assessments) modelMap["assessments"] = assessmentsList - - // modelMap["assessments"] = assessments } return modelMap, nil } diff --git a/ibm/service/scc/resource_ibm_scc_profile_attachment.go b/ibm/service/scc/resource_ibm_scc_profile_attachment.go index 44ebbe12eb..5e4e955d2d 100644 --- a/ibm/service/scc/resource_ibm_scc_profile_attachment.go +++ b/ibm/service/scc/resource_ibm_scc_profile_attachment.go @@ -7,6 +7,9 @@ import ( "context" "fmt" "log" + "math/big" + "strconv" + "strings" "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" @@ -162,7 +165,7 @@ func ResourceIbmSccProfileAttachment() *schema.Resource { }, }, "attachment_parameters": { - Type: schema.TypeList, + Type: schema.TypeSet, Optional: true, Description: "The profile parameters for the attachment.", Elem: &schema.Resource{ @@ -321,6 +324,16 @@ func resourceIbmSccProfileAttachmentCreate(context context.Context, d *schema.Re return resourceIbmSccProfileAttachmentRead(context, d, meta) } +func cmpAttachParamSetFunc(v interface{}) int { + m := v.(map[string]interface{}) + id := (m["assessment_id"]).(*string) + assId := (*id)[5:18] + var i big.Int + i.SetString(strings.Replace(assId, "-", "", 4), 16) + val, _ := strconv.Atoi(i.String()) + return val +} + func resourceIbmSccProfileAttachmentRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics { securityandcompliancecenterapiClient, err := meta.(conns.ClientSession).SecurityAndComplianceCenterV3() if err != nil { @@ -419,14 +432,15 @@ func resourceIbmSccProfileAttachmentRead(context context.Context, d *schema.Reso } } if !core.IsNil(attachmentItem.AttachmentParameters) { - attachmentParameters := []map[string]interface{}{} + attachmentParametersList := []interface{}{} for _, attachmentParametersItem := range attachmentItem.AttachmentParameters { attachmentParametersItemMap, err := resourceIbmSccProfileAttachmentAttachmentParameterPrototypeToMap(&attachmentParametersItem) if err != nil { return diag.FromErr(err) } - attachmentParameters = append(attachmentParameters, attachmentParametersItemMap) + attachmentParametersList = append(attachmentParametersList, attachmentParametersItemMap) } + attachmentParameters := schema.NewSet(cmpAttachParamSetFunc, attachmentParametersList) if err = d.Set("attachment_parameters", attachmentParameters); err != nil { return diag.FromErr(fmt.Errorf("Error setting attachment_parameters: %s", err)) } diff --git a/ibm/service/scc/resource_ibm_scc_profile_test.go b/ibm/service/scc/resource_ibm_scc_profile_test.go index 9013ae8a0f..74d542bcac 100644 --- a/ibm/service/scc/resource_ibm_scc_profile_test.go +++ b/ibm/service/scc/resource_ibm_scc_profile_test.go @@ -207,11 +207,11 @@ func testAccCheckIbmSccProfileConfig(instanceID string, profileName string, prof } default_parameters { assessment_type = "automated" - assessment_id = {for k,v in resource.ibm_scc_control_library.scc_control_library_instance.controls[0].control_specifications[0].assessments: k => v if v.assessment_id == "rule-a637949b-7e51-46c4-afd4-b96619001bf1"}[0].assessment_id + assessment_id = "rule-a637949b-7e51-46c4-afd4-b96619001bf1" parameter_name = "session_invalidation_in_seconds" parameter_type = "numeric" parameter_default_value = "9" - parameter_display_name = {for k,v in resource.ibm_scc_control_library.scc_control_library_instance.controls[0].control_specifications[0].assessments: k => v if v.assessment_id == "rule-a637949b-7e51-46c4-afd4-b96619001bf1"}[0].parameters[0].parameter_display_name + parameter_display_name = "Sign out due to inactivity in seconds" } }