Skip to content

Commit f0b28b8

Browse files
authored
azuread_privileged_access_group_assignment_schedule - add EC check to create (#1845)
1 parent a21418d commit f0b28b8

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

internal/services/identitygovernance/privileged_access_group_assignment_schedule_resource.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"github.com/hashicorp/go-azure-sdk/microsoft-graph/identitygovernance/stable/privilegedaccessgroupassignmentschedulerequest"
1616
"github.com/hashicorp/go-azure-sdk/sdk/nullable"
1717
"github.com/hashicorp/go-azure-sdk/sdk/odata"
18+
"github.com/hashicorp/terraform-provider-azuread/internal/helpers/consistency"
1819
"github.com/hashicorp/terraform-provider-azuread/internal/helpers/tf/pluginsdk"
1920
"github.com/hashicorp/terraform-provider-azuread/internal/sdk"
2021
"github.com/hashicorp/terraform-provider-azuread/internal/services/identitygovernance/parse"
@@ -49,6 +50,7 @@ func (r PrivilegedAccessGroupAssignmentScheduleResource) Create() sdk.ResourceFu
4950
Timeout: 5 * time.Minute,
5051
Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error {
5152
client := metadata.Client.IdentityGovernance.PrivilegedAccessGroupAssignmentScheduleRequestClient
53+
scheduleClient := metadata.Client.IdentityGovernance.PrivilegedAccessGroupAssignmentScheduleClient
5254

5355
var model PrivilegedAccessGroupScheduleModel
5456
if err := metadata.Decode(&model); err != nil {
@@ -100,6 +102,18 @@ func (r PrivilegedAccessGroupAssignmentScheduleResource) Create() sdk.ResourceFu
100102

101103
metadata.SetID(resourceId)
102104

105+
id := stable.NewIdentityGovernancePrivilegedAccessGroupAssignmentScheduleID(resourceId.ID())
106+
if err = consistency.WaitForUpdate(ctx, func(ctx context.Context) (*bool, error) {
107+
if u, err := scheduleClient.GetPrivilegedAccessGroupAssignmentSchedule(ctx, id, privilegedaccessgroupassignmentschedule.DefaultGetPrivilegedAccessGroupAssignmentScheduleOperationOptions()); err != nil {
108+
if !response.WasNotFound(u.HttpResponse) {
109+
return pointer.To(false), fmt.Errorf("waiting for creation of %s: %+v", id, err)
110+
}
111+
}
112+
return pointer.To(true), nil
113+
}); err != nil {
114+
return fmt.Errorf("retrieving %s: %+v", id, err)
115+
}
116+
103117
return nil
104118
},
105119
}

0 commit comments

Comments
 (0)