44 "fmt"
55 "github.com/hashicorp/terraform-plugin-sdk/helper/schema"
66 "log"
7+ "strconv"
78)
89
910func resourceSumologicCSELogMapping () * schema.Resource {
@@ -351,11 +352,17 @@ func resourceToCSELogMappingField(data interface{}) CSELogMappingField {
351352 field .SkippedValues = resourceStringArrayToStringArray (fieldObj ["skipped_values" ].([]interface {}))
352353 field .DefaultValue = fieldObj ["default_value" ].(string )
353354 field .Format = fieldObj ["format" ].(string )
354- field .CaseInsensitive = fieldObj ["case_insensitive" ].(bool )
355+ caseInsensitive := fieldObj ["case_insensitive" ]
356+ if caseInsensitive != nil {
357+ field .CaseInsensitive = fieldObj ["case_insensitive" ].(bool )
358+ }
355359 field .AlternateValues = resourceStringArrayToStringArray (fieldObj ["alternate_values" ].([]interface {}))
356360 field .TimeZone = fieldObj ["time_zone" ].(string )
357361 field .SplitDelimiter = fieldObj ["split_delimiter" ].(string )
358- field .SplitIndex = fmt .Sprint (fieldObj ["split_index" ].(int ))
362+ splitIndex := fieldObj ["split_index" ]
363+ if splitIndex != nil {
364+ field .SplitIndex = fmt .Sprint (splitIndex .(int ))
365+ }
359366 field .FieldJoin = resourceStringArrayToStringArray (fieldObj ["field_join" ].([]interface {}))
360367 field .JoinDelimiter = fieldObj ["join_delimiter" ].(string )
361368 field .FormatParameters = resourceStringArrayToStringArray (fieldObj ["format_parameters" ].([]interface {}))
@@ -366,7 +373,7 @@ func resourceToCSELogMappingField(data interface{}) CSELogMappingField {
366373 lookup = append (lookup , resourceToCSELogMappingLookUp ([]interface {}{data }))
367374 }
368375
369- field .LookUp = lookup
376+ field .LookUp = & lookup
370377
371378 }
372379 return field
@@ -424,6 +431,7 @@ func setFields(d *schema.ResourceData, fields []CSELogMappingField) {
424431 var f []map [string ]interface {}
425432
426433 for _ , t := range fields {
434+
427435 mapping := map [string ]interface {}{
428436 "name" : t .Name ,
429437 "value" : t .Value ,
@@ -435,28 +443,35 @@ func setFields(d *schema.ResourceData, fields []CSELogMappingField) {
435443 "alternate_values" : t .AlternateValues ,
436444 "time_zone" : t .TimeZone ,
437445 "split_delimiter" : t .SplitDelimiter ,
438- "split_index" : t .SplitIndex ,
439446 "field_join" : t .FieldJoin ,
440447 "join_delimiter" : t .JoinDelimiter ,
441448 "format_parameters" : t .FormatParameters ,
442449 "lookup" : getLookUpResource (t .LookUp ),
443450 }
451+
452+ splitIndex , err := strconv .Atoi (t .SplitIndex )
453+ if err == nil {
454+ mapping ["split_index" ] = splitIndex
455+ }
456+
444457 f = append (f , mapping )
458+
445459 }
446460
447461 d .Set ("fields" , f )
448462
449463}
450464
451- func getLookUpResource (lookUp []CSELogMappingLookUp ) []map [string ]interface {} {
465+ func getLookUpResource (lookUp * []CSELogMappingLookUp ) []map [string ]interface {} {
452466 var s []map [string ]interface {}
453-
454- for _ , l := range lookUp {
455- mapping := map [string ]interface {}{
456- "key" : l .Key ,
457- "value" : l .Value ,
467+ if lookUp != nil {
468+ for _ , l := range * lookUp {
469+ mapping := map [string ]interface {}{
470+ "key" : l .Key ,
471+ "value" : l .Value ,
472+ }
473+ s = append (s , mapping )
458474 }
459- s = append (s , mapping )
460475 }
461476
462477 return s
0 commit comments