@@ -187,22 +187,7 @@ func (r *requestConditionResource) Create(ctx context.Context, req resource.Crea
187187 return
188188 }
189189
190- requestConditionReq , diags := createRequestCondition (data )
191- if diags .HasError () {
192- if diags .HasError () {
193- resp .Diagnostics .Append (diags ... )
194- return
195- }
196- }
197- if requestConditionReq == nil {
198- resp .Diagnostics .AddError (
199- "Error creating Request conditions" ,
200- "Could not create Request conditions, unexpected error: requestConditionReq is nil" ,
201- )
202- return
203- }
204-
205- requestConditionResp , _ , err := r .OktaGovernanceClient .OktaGovernanceSDKClient ().RequestConditionsAPI .CreateResourceRequestConditionV2 (ctx , data .ResourceId .ValueString ()).RequestConditionCreatable (* requestConditionReq ).Execute ()
190+ requestConditionResp , _ , err := r .OktaGovernanceClient .OktaGovernanceSDKClient ().RequestConditionsAPI .CreateResourceRequestConditionV2 (ctx , data .ResourceId .ValueString ()).RequestConditionCreatable (createRequestCondition (data )).Execute ()
206191 if err != nil {
207192 resp .Diagnostics .AddError (
208193 "Error creating Request conditions" ,
@@ -211,7 +196,8 @@ func (r *requestConditionResource) Create(ctx context.Context, req resource.Crea
211196 return
212197 }
213198
214- if applyRequestConditionToState (& data , requestConditionResp ) {
199+ resp .Diagnostics .Append (applyRequestConditionToState (ctx , & data , requestConditionResp )... )
200+ if resp .Diagnostics .HasError () {
215201 return
216202 }
217203
@@ -239,7 +225,10 @@ func (r *requestConditionResource) Read(ctx context.Context, req resource.ReadRe
239225 return
240226 }
241227
242- applyRequestConditionToState (& data , readRequestConditionResp )
228+ resp .Diagnostics .Append (applyRequestConditionToState (ctx , & data , readRequestConditionResp )... )
229+ if resp .Diagnostics .HasError () {
230+ return
231+ }
243232 resp .Diagnostics .Append (resp .State .Set (ctx , & data )... )
244233}
245234
@@ -258,15 +247,8 @@ func (r *requestConditionResource) Update(ctx context.Context, req resource.Upda
258247 return
259248 }
260249
261- patch , diags := createRequestConditionPatch (data )
262- if diags .HasError () {
263- if diags .HasError () {
264- resp .Diagnostics .Append (diags ... )
265- return
266- }
267- }
268250 // Update API call logic
269- updatedRequestCondition , _ , err := r .OktaGovernanceClient .OktaGovernanceSDKClient ().RequestConditionsAPI .UpdateResourceRequestConditionV2 (ctx , data .ResourceId .ValueString (), state .Id .ValueString ()).RequestConditionPatchable (patch ).Execute ()
251+ updatedRequestCondition , _ , err := r .OktaGovernanceClient .OktaGovernanceSDKClient ().RequestConditionsAPI .UpdateResourceRequestConditionV2 (ctx , data .ResourceId .ValueString (), state .Id .ValueString ()).RequestConditionPatchable (createRequestConditionPatch ( data ) ).Execute ()
270252 if err != nil {
271253 resp .Diagnostics .AddError (
272254 "Error updating Request conditions" ,
@@ -275,8 +257,12 @@ func (r *requestConditionResource) Update(ctx context.Context, req resource.Upda
275257 return
276258 }
277259
278- applyRequestConditionToState (& data , updatedRequestCondition )
279- // Save updated Data into Terraform state
260+ resp .Diagnostics .Append (applyRequestConditionToState (ctx , & data , updatedRequestCondition )... )
261+ if resp .Diagnostics .HasError () {
262+ return
263+ }
264+
265+ // Save Data into Terraform state
280266 resp .Diagnostics .Append (resp .State .Set (ctx , & data )... )
281267}
282268
@@ -306,7 +292,8 @@ func (r *requestConditionResource) Delete(ctx context.Context, req resource.Dele
306292 }
307293}
308294
309- func applyRequestConditionToState (data * requestConditionResourceModel , requestConditionResp * governance.RequestConditionFull ) bool {
295+ func applyRequestConditionToState (ctx context.Context , data * requestConditionResourceModel , requestConditionResp * governance.RequestConditionFull ) diag.Diagnostics {
296+ var diags diag.Diagnostics
310297 data .Id = types .StringValue (requestConditionResp .GetId ())
311298 data .Name = types .StringValue (requestConditionResp .GetName ())
312299 if requestConditionResp .Description != nil {
@@ -322,7 +309,7 @@ func applyRequestConditionToState(data *requestConditionResourceModel, requestCo
322309 data .RequesterSettings , _ = setRequesterSettings (requestConditionResp .GetRequesterSettings ())
323310 data .AccessScopeSettings , _ = setAccessScopeSettings (requestConditionResp .GetAccessScopeSettings ())
324311 data .AccessDurationSettings = setAccessDurationSettings (requestConditionResp .GetAccessDurationSettings ())
325- return false
312+ return diags
326313}
327314
328315func setAccessDurationSettings (settings governance.AccessDurationSettingsFull ) * AccessDurationSettings {
@@ -388,7 +375,7 @@ func setRequesterSettings(settings governance.RequesterSettingsFullRequesterSett
388375 return & setting , nil
389376}
390377
391- func createRequestCondition (data requestConditionResourceModel ) ( * governance.RequestConditionCreatable , diag. Diagnostics ) {
378+ func createRequestCondition (data requestConditionResourceModel ) governance.RequestConditionCreatable {
392379 req := governance.RequestConditionCreatable {}
393380 req .Name = data .Name .ValueString ()
394381 req .ApprovalSequenceId = data .ApprovalSequenceId .ValueString ()
@@ -401,6 +388,10 @@ func createRequestCondition(data requestConditionResourceModel) (*governance.Req
401388
402389 accessScopeSettings := governance.AccessScopeSettingsCreatableAccessScopeSettings {}
403390 if data .AccessScopeSettings .Type .ValueString () == "GROUPS" {
391+ if accessScopeSettings .AccessScopeSettingsCreatableGroupAccessScopeSettings == nil {
392+ accessScopeSettings .AccessScopeSettingsCreatableGroupAccessScopeSettings =
393+ & governance.AccessScopeSettingsCreatableGroupAccessScopeSettings {}
394+ }
404395 accessScopeSettings .AccessScopeSettingsCreatableGroupAccessScopeSettings .Type = "GROUPS"
405396 var groupsIds []governance.GroupsArrayCreatableInner
406397 elems := data .AccessScopeSettings .Ids
@@ -413,6 +404,10 @@ func createRequestCondition(data requestConditionResourceModel) (*governance.Req
413404 accessScopeSettings .AccessScopeSettingsCreatableGroupAccessScopeSettings .Groups = groupsIds
414405 req .AccessScopeSettings = accessScopeSettings
415406 } else if data .AccessScopeSettings .Type .ValueString () == "ENTITLEMENT_BUNDLES" {
407+ if accessScopeSettings .AccessScopeSettingsCreatableEntitlementBundleAccessScopeSettings == nil {
408+ accessScopeSettings .AccessScopeSettingsCreatableEntitlementBundleAccessScopeSettings =
409+ & governance.AccessScopeSettingsCreatableEntitlementBundleAccessScopeSettings {}
410+ }
416411 accessScopeSettings .AccessScopeSettingsCreatableEntitlementBundleAccessScopeSettings .Type = "ENTITLEMENT_BUNDLES"
417412 var entitlementBundles []governance.EntitlementBundlesArrayCreatableInner
418413 elems := data .AccessScopeSettings .Ids
@@ -474,10 +469,10 @@ func createRequestCondition(data requestConditionResourceModel) (*governance.Req
474469 }
475470 }
476471
477- return & req , nil
472+ return req
478473}
479474
480- func createRequestConditionPatch (data requestConditionResourceModel ) ( governance.RequestConditionPatchable , diag. Diagnostics ) {
475+ func createRequestConditionPatch (data requestConditionResourceModel ) governance.RequestConditionPatchable {
481476 var patch governance.RequestConditionPatchable
482477 patch .Name = data .Name .ValueStringPointer ()
483478 patch .ApprovalSequenceId = data .ApprovalSequenceId .ValueStringPointer ()
@@ -567,5 +562,5 @@ func createRequestConditionPatch(data requestConditionResourceModel) (governance
567562 patch .AccessDurationSettings .Set (& accessDurationSettings )
568563 }
569564 }
570- return patch , nil
565+ return patch
571566}
0 commit comments