@@ -185,8 +185,14 @@ func (r *DatasetResource) Create(ctx context.Context, req resource.CreateRequest
185185 return
186186 }
187187
188+ state , err := flattenDatasetWithOrgDefault (ctx , r .client , ds )
189+ if err != nil {
190+ resp .Diagnostics .AddWarning ("Unable to resolve default edge deployment" , err .Error ())
191+ state = flattenDataset (ds , "" )
192+ }
193+
188194 // Set state immediately after creation to avoid orphaned resources
189- resp .Diagnostics .Append (resp .State .Set (ctx , flattenDataset ( ds ) )... )
195+ resp .Diagnostics .Append (resp .State .Set (ctx , state )... )
190196 if resp .Diagnostics .HasError () {
191197 return
192198 }
@@ -206,7 +212,14 @@ func (r *DatasetResource) Create(ctx context.Context, req resource.CreateRequest
206212 }
207213
208214 ds .MapFields = resMapFields
209- resp .Diagnostics .Append (resp .State .Set (ctx , flattenDataset (ds ))... )
215+
216+ state , err := flattenDatasetWithOrgDefault (ctx , r .client , ds )
217+ if err != nil {
218+ resp .Diagnostics .AddWarning ("Unable to resolve default edge deployment" , err .Error ())
219+ state = flattenDataset (ds , "" )
220+ }
221+
222+ resp .Diagnostics .Append (resp .State .Set (ctx , state )... )
210223 }
211224}
212225
@@ -232,7 +245,13 @@ func (r *DatasetResource) Read(ctx context.Context, req resource.ReadRequest, re
232245 return
233246 }
234247
235- resp .Diagnostics .Append (resp .State .Set (ctx , flattenDataset (ds ))... )
248+ state , err := flattenDatasetWithOrgDefault (ctx , r .client , ds )
249+ if err != nil {
250+ resp .Diagnostics .AddWarning ("Unable to resolve default edge deployment" , err .Error ())
251+ state = flattenDataset (ds , "" )
252+ }
253+
254+ resp .Diagnostics .Append (resp .State .Set (ctx , state )... )
236255}
237256
238257func (r * DatasetResource ) Update (ctx context.Context , req resource.UpdateRequest , resp * resource.UpdateResponse ) {
@@ -263,8 +282,14 @@ func (r *DatasetResource) Update(ctx context.Context, req resource.UpdateRequest
263282 return
264283 }
265284
285+ state , err := flattenDatasetWithOrgDefault (ctx , r .client , ds )
286+ if err != nil {
287+ resp .Diagnostics .AddWarning ("Unable to resolve default edge deployment" , err .Error ())
288+ state = flattenDataset (ds , "" )
289+ }
290+
266291 // Set state immediately after update to preserve changes
267- resp .Diagnostics .Append (resp .State .Set (ctx , flattenDataset ( ds ) )... )
292+ resp .Diagnostics .Append (resp .State .Set (ctx , state )... )
268293 if resp .Diagnostics .HasError () {
269294 return
270295 }
@@ -284,7 +309,14 @@ func (r *DatasetResource) Update(ctx context.Context, req resource.UpdateRequest
284309 }
285310
286311 ds .MapFields = resMapFields
287- resp .Diagnostics .Append (resp .State .Set (ctx , flattenDataset (ds ))... )
312+
313+ state , err := flattenDatasetWithOrgDefault (ctx , r .client , ds )
314+ if err != nil {
315+ resp .Diagnostics .AddWarning ("Unable to resolve default edge deployment" , err .Error ())
316+ state = flattenDataset (ds , "" )
317+ }
318+
319+ resp .Diagnostics .Append (resp .State .Set (ctx , state )... )
288320 }
289321}
290322
@@ -306,7 +338,7 @@ func (r *DatasetResource) ImportState(ctx context.Context, req resource.ImportSt
306338 resource .ImportStatePassthroughID (ctx , path .Root ("id" ), req , resp )
307339}
308340
309- func flattenDataset (dataset * axiom.Dataset ) DatasetResourceModel {
341+ func flattenDataset (dataset * axiom.Dataset , defaultEdgeDeployment string ) DatasetResourceModel {
310342 var description types.String
311343 var edgeDeployment types.String
312344
@@ -316,6 +348,8 @@ func flattenDataset(dataset *axiom.Dataset) DatasetResourceModel {
316348
317349 if dataset .EdgeDeployment != "" {
318350 edgeDeployment = types .StringValue (dataset .EdgeDeployment )
351+ } else if defaultEdgeDeployment != "" {
352+ edgeDeployment = types .StringValue (defaultEdgeDeployment )
319353 }
320354
321355 mapFields := make ([]attr.Value , 0 , len (dataset .MapFields ))
@@ -353,3 +387,41 @@ func edgeDeploymentValue(edgeDeployment types.String) string {
353387
354388 return edgeDeployment .ValueString ()
355389}
390+
391+ func flattenDatasetWithOrgDefault (ctx context.Context , client * axiom.Client , dataset * axiom.Dataset ) (DatasetResourceModel , error ) {
392+ if dataset .EdgeDeployment != "" {
393+ return flattenDataset (dataset , "" ), nil
394+ }
395+
396+ defaultEdgeDeployment , err := fetchDefaultEdgeDeployment (ctx , client )
397+ if err != nil {
398+ return DatasetResourceModel {}, err
399+ }
400+
401+ return flattenDataset (dataset , defaultEdgeDeployment ), nil
402+ }
403+
404+ func fetchDefaultEdgeDeployment (ctx context.Context , client * axiom.Client ) (string , error ) {
405+ if client == nil {
406+ return "" , fmt .Errorf ("client is not set" )
407+ }
408+
409+ organizations , err := client .Organizations .List (ctx )
410+ if err != nil {
411+ return "" , fmt .Errorf ("could not fetch organizations while resolving edge deployment: %w" , err )
412+ }
413+
414+ return selectDefaultEdgeDeployment (organizations ), nil
415+ }
416+
417+ func selectDefaultEdgeDeployment (organizations []* axiom.Organization ) string {
418+ for _ , organization := range organizations {
419+ if organization == nil || organization .DefaultEdgeDeployment == "" {
420+ continue
421+ }
422+
423+ return organization .DefaultEdgeDeployment
424+ }
425+
426+ return ""
427+ }
0 commit comments