@@ -518,39 +518,42 @@ func flattenCISRulesets(rulesetObj rulesetsv1.RulesetDetails) interface{} {
518518 rulesetOutput [CISRulesetsVersion ] = * rulesetObj .Version
519519 rulesetOutput [CISRulesetsId ] = * & rulesetObj .ID
520520
521- ruleDetailsList := make ([]map [string ]interface {}, 0 )
522- for _ , ruleDetailsObj := range rulesetObj .Rules {
523- ruleDetails := map [string ]interface {}{}
524- ruleDetails [CISRulesetsRuleId ] = ruleDetailsObj .ID
525- ruleDetails [CISRulesetsRuleVersion ] = ruleDetailsObj .Version
526- ruleDetails [CISRulesetsRuleAction ] = ruleDetailsObj .Action
527- ruleDetails [CISRulesetsRuleExpression ] = ruleDetailsObj .Expression
528- ruleDetails [CISRulesetsRuleRef ] = ruleDetailsObj .Ref
529- ruleDetails [CISRulesetsRuleLastUpdatedAt ] = ruleDetailsObj .LastUpdated
530- ruleDetails [CISRulesetsRuleActionCategories ] = ruleDetailsObj .Categories
531- ruleDetails [CISRulesetsRuleActionEnabled ] = ruleDetailsObj .Enabled
532- ruleDetails [CISRulesetsRuleActionDescription ] = ruleDetailsObj .Description
533-
534- // Not Applicable for now
535- //ruleDetails[CISRulesetsRuleLogging] = ruleDetailsObj.Logging
536-
537- flattenedActionParameter := flattenCISRulesetsRuleActionParameters (ruleDetailsObj .ActionParameters )
538-
539- if len (flattenedActionParameter ) != 0 {
540- ruleDetails [CISRulesetsRuleActionParameters ] = []map [string ]interface {}{flattenedActionParameter }
541- }
521+ if rulesetObj .Rules != nil {
522+ ruleDetailsList := make ([]map [string ]interface {}, 0 )
523+ for _ , ruleDetailsObj := range rulesetObj .Rules {
524+ ruleDetails := map [string ]interface {}{}
525+ ruleDetails [CISRulesetsRuleId ] = ruleDetailsObj .ID
526+ ruleDetails [CISRulesetsRuleVersion ] = ruleDetailsObj .Version
527+ ruleDetails [CISRulesetsRuleAction ] = ruleDetailsObj .Action
528+ ruleDetails [CISRulesetsRuleExpression ] = ruleDetailsObj .Expression
529+ ruleDetails [CISRulesetsRuleRef ] = ruleDetailsObj .Ref
530+ ruleDetails [CISRulesetsRuleLastUpdatedAt ] = ruleDetailsObj .LastUpdated
531+ ruleDetails [CISRulesetsRuleActionCategories ] = ruleDetailsObj .Categories
532+ ruleDetails [CISRulesetsRuleActionEnabled ] = ruleDetailsObj .Enabled
533+ ruleDetails [CISRulesetsRuleActionDescription ] = ruleDetailsObj .Description
534+
535+ // Not Applicable for now
536+ //ruleDetails[CISRulesetsRuleLogging] = ruleDetailsObj.Logging
537+
538+ if ruleDetailsObj .ActionParameters != nil {
539+ flattenedActionParameter := flattenCISRulesetsRuleActionParameters (ruleDetailsObj .ActionParameters )
540+ if len (flattenedActionParameter ) != 0 {
541+ ruleDetails [CISRulesetsRuleActionParameters ] = []map [string ]interface {}{flattenedActionParameter }
542+ }
543+ }
542544
543- ruleDetailsList = append (ruleDetailsList , ruleDetails )
545+ ruleDetailsList = append (ruleDetailsList , ruleDetails )
546+ }
547+ rulesetOutput [CISRulesetsRules ] = ruleDetailsList
544548 }
545549
546- rulesetOutput [CISRulesetsRules ] = ruleDetailsList
547-
548550 finalrulesetObj = append (finalrulesetObj , rulesetOutput )
549551
550552 return finalrulesetObj
551553}
552554
553555func flattenCISRulesetsRuleActionParameters (rulesetsRuleActionParameterObj * rulesetsv1.ActionParameters ) map [string ]interface {} {
556+
554557 actionParametersOutput := map [string ]interface {}{}
555558 resultOutput := map [string ]interface {}{}
556559
@@ -584,18 +587,19 @@ func flattenCISRulesetsRuleActionParameters(rulesetsRuleActionParameterObj *rule
584587 resultOutput [CISRulesetOverrides ] = []map [string ]interface {}{flattenCISRulesetsRuleActionParameterOverrides }
585588 }
586589
587- if rulesToSkip := rulesetsRuleActionParameterObj .Rules ; rulesToSkip != nil && len (rulesToSkip ) > 0 {
588- flattenedRulesToSkip := make ([]map [string ]interface {}, 0 , len (rulesToSkip ))
589-
590- for rulesetID , ruleIDs := range rulesToSkip {
591- entry := map [string ]interface {}{
592- "ruleset_id" : rulesetID ,
593- "rule_ids" : ruleIDs ,
590+ if _ , ok := actionParametersOutput ["rules" ]; ok {
591+ rulesToSkip := rulesetsRuleActionParameterObj .Rules
592+ if len (rulesToSkip ) > 0 {
593+ flattenedRulesToSkip := make ([]map [string ]interface {}, 0 , len (rulesToSkip ))
594+ for rulesetID , ruleIDs := range rulesToSkip {
595+ entry := map [string ]interface {}{
596+ "ruleset_id" : rulesetID ,
597+ "rule_ids" : ruleIDs ,
598+ }
599+ flattenedRulesToSkip = append (flattenedRulesToSkip , entry )
594600 }
595- flattenedRulesToSkip = append ( flattenedRulesToSkip , entry )
601+ resultOutput [ CISRulesToSkip ] = flattenedRulesToSkip
596602 }
597-
598- resultOutput [CISRulesToSkip ] = flattenedRulesToSkip
599603 }
600604
601605 return resultOutput
0 commit comments