@@ -179,24 +179,28 @@ func resourceCustomIAMRoleImporter(_ context.Context, data *schema.ResourceData,
179179
180180func validateSchema (ctx context.Context , data * schema.ResourceDiff , m interface {}) (err error ) {
181181 specData := data .Get (SpecKey ).([]interface {})[0 ].(map [string ]interface {})
182- ruleData := specData [KubernetesPermissionsKey ].([]interface {})[0 ].(map [string ]interface {})[RuleKey ].([]interface {})
183- errMsg := ""
182+ kubernetesPermissions := specData [KubernetesPermissionsKey ].([]interface {})
184183
185- for i , r := range ruleData {
186- resourcesLen := len ( r .(map [string ]interface {})[ResourcesKey ].([]interface {}) )
187- urlPathsLen := len ( r .( map [ string ] interface {})[ URLPathsKey ].([] interface {}))
184+ if len ( kubernetesPermissions ) > 0 {
185+ rulesData := kubernetesPermissions [ 0 ] .(map [string ]interface {})[RuleKey ].([]interface {})
186+ errMsg := ""
188187
189- if (resourcesLen > 0 && urlPathsLen > 0 ) || (resourcesLen == 0 && urlPathsLen == 0 ) {
190- if errMsg == "" {
191- errMsg = "Custom IAM Role Rules Validation Failed:"
192- }
188+ for i , r := range rulesData {
189+ resourcesLen := len (r .(map [string ]interface {})[ResourcesKey ].([]interface {}))
190+ urlPathsLen := len (r .(map [string ]interface {})[URLPathsKey ].([]interface {}))
191+
192+ if (resourcesLen > 0 && urlPathsLen > 0 ) || (resourcesLen == 0 && urlPathsLen == 0 ) {
193+ if errMsg == "" {
194+ errMsg = "Custom IAM Role Rules Validation Failed:"
195+ }
193196
194- errMsg = fmt .Sprintf ("%s\n %s" , errMsg , fmt .Sprintf ("Rule #%d - Must include %s or %s but not both." , i + 1 , ResourcesKey , URLPathsKey ))
197+ errMsg = fmt .Sprintf ("%s\n %s" , errMsg , fmt .Sprintf ("Rule #%d - Must include %s or %s but not both." , i + 1 , ResourcesKey , URLPathsKey ))
198+ }
195199 }
196- }
197200
198- if errMsg != "" {
199- err = errors .New (errMsg )
201+ if errMsg != "" {
202+ err = errors .New (errMsg )
203+ }
200204 }
201205
202206 return err
0 commit comments