@@ -134,6 +134,34 @@ func Provider() tfbridge.ProviderInfo {
134134 panic ("flashblade_file_system resource not found after MustComputeTokens" )
135135 }
136136
137+ // flashblade_s3_export_policy_rule — composite ID with "/" separator.
138+ // The TF provider does not return a stable ID, so we compute it from policyName + name.
139+ if r , ok := prov .Resources ["flashblade_s3_export_policy_rule" ]; ok {
140+ r .ComputeID = func (
141+ ctx context.Context ,
142+ state resource.PropertyMap ,
143+ ) (resource.ID , error ) {
144+ policyName , ok1 := state ["policyName" ]
145+ ruleName , ok2 := state ["name" ]
146+ if ! ok1 || ! ok2 {
147+ return "" , fmt .Errorf (
148+ "s3_export_policy_rule: missing policyName or name in state (got keys %v)" ,
149+ mapKeys (state ),
150+ )
151+ }
152+ ps , psOk := policyName .V .(string )
153+ rs , rsOk := ruleName .V .(string )
154+ if ! psOk || ! rsOk {
155+ return "" , fmt .Errorf (
156+ "s3_export_policy_rule: policyName and name must be strings" ,
157+ )
158+ }
159+ return resource .ID (ps + "/" + rs ), nil
160+ }
161+ } else {
162+ panic ("flashblade_s3_export_policy_rule resource not found after MustComputeTokens" )
163+ }
164+
137165 // flashblade_object_store_access_policy_rule — composite ID with "/" separator,
138166 // string rule name (COMPOSITE-01, verified against
139167 // internal/provider/object_store_access_policy_rule_resource.go:361-387).
0 commit comments