@@ -2,7 +2,8 @@ package provider
22
33import (
44 "fmt"
5-
5+ "strings"
6+ "strconv"
67 "github.com/PaloAltoNetworks/terraform-provider-prismacloudcompute/internal/api"
78 "github.com/PaloAltoNetworks/terraform-provider-prismacloudcompute/internal/api/rule"
89 "github.com/PaloAltoNetworks/terraform-provider-prismacloudcompute/internal/convert"
@@ -17,7 +18,21 @@ func resourceCustomRule() *schema.Resource {
1718 Delete : deleteCustomRule ,
1819
1920 Importer : & schema.ResourceImporter {
20- StateContext : schema .ImportStatePassthroughContext ,
21+ State : func (d * schema.ResourceData , meta interface {}) ([]* schema.ResourceData , error ) {
22+
23+ name , id , err := CustomRuleParseId (d .Id ())
24+
25+ intVar , err := strconv .Atoi (id )
26+
27+ if err != nil {
28+ return []* schema.ResourceData {d }, nil
29+ }
30+
31+ var pid int = intVar
32+ d .Set ("prisma_id" , pid )
33+ d .SetId (name )
34+ return []* schema.ResourceData {d }, nil
35+ },
2136 },
2237
2338 Schema : map [string ]* schema.Schema {
@@ -60,6 +75,17 @@ func resourceCustomRule() *schema.Resource {
6075 }
6176}
6277
78+
79+ func CustomRuleParseId (id string ) (string , string , error ) {
80+ parts := strings .SplitN (id , ":" , 2 )
81+
82+ if len (parts ) != 2 || parts [0 ] == "" || parts [1 ] == "" {
83+ return "" , "" , fmt .Errorf ("unexpected format of ID (%s), expected attribute1:attribute2" , id )
84+ }
85+
86+ return parts [0 ], parts [1 ], nil
87+ }
88+
6389func createCustomRule (d * schema.ResourceData , meta interface {}) error {
6490 client := meta .(* api.Client )
6591 parsedCustomRule := convert .SchemaToCustomRule (d )
0 commit comments