forked from AzureAD/SCIMReferenceCode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOrchestrator_Workflow.json
More file actions
715 lines (715 loc) · 57.6 KB
/
Copy pathOrchestrator_Workflow.json
File metadata and controls
715 lines (715 loc) · 57.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
{
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"contentVersion": "1.0.0.0",
"triggers": {
"Manual_Recurrence": {
"recurrence": {
"frequency": "Month",
"interval": 1
},
"evaluatedRecurrence": {
"frequency": "Month",
"interval": 1
},
"type": "Recurrence"
}
},
"actions": {
"Compose_Debug_WorkflowObject": {
"runAfter": {},
"type": "Compose",
"inputs": {
"workflowId": "@workflow().id",
"workflowName": "@workflow().name",
"workflowRunName": "@workflow().run.name",
"workflowIdSplit": "@split(workflow().id, '/')",
"workflowIdSplitLength": "@length(split(workflow().id, '/'))"
}
},
"Compose_WorkflowInfo": {
"runAfter": {
"Compose_Debug_WorkflowObject": [
"Succeeded"
]
},
"type": "Compose",
"inputs": {
"subscriptionId": "@first(split(appsetting('WEBSITE_OWNER_NAME'), '+'))",
"resourceGroup": "@appsetting('WEBSITE_RESOURCE_GROUP')",
"logicAppName": "@appsetting('WEBSITE_SITE_NAME')",
"location": "@appsetting('REGION_NAME')"
}
},
"Compose_ManagementApiBase": {
"runAfter": {
"Compose_WorkflowInfo": [
"Succeeded"
]
},
"type": "Compose",
"inputs": "@concat('https://management.azure.com/subscriptions/', outputs('Compose_WorkflowInfo')?['subscriptionId'], '/resourceGroups/', outputs('Compose_WorkflowInfo')?['resourceGroup'], '/providers/Microsoft.Web/sites/', outputs('Compose_WorkflowInfo')?['logicAppName'], '/hostruntime/runtime/webhooks/workflow/api/management/workflows/')"
},
"Call_Initialization_Workflow": {
"runAfter": {
"Compose_ManagementApiBase": [
"Succeeded"
]
},
"type": "Workflow",
"inputs": {
"host": {
"workflow": {
"id": "Initialization_Workflow"
}
},
"headers": {
"Content-Type": "application/json"
},
"body": {
"servicePrincipalId": "@parameters('servicePrincipalId')",
"scimEndpoint": "@parameters('scimEndpoint')",
"scimBearerToken": "@parameters('scimBearerToken')",
"scimContentType": "@parameters('scimContentType')",
"testUserDomain": "@parameters('testUserDomain')",
"defaultUserProperties": "@parameters('defaultUserProperties')",
"defaultGroupProperties": "@parameters('defaultGroupProperties')",
"attributeTransforms": "@parameters('attributeTransforms')",
"scimTargetUserValues": "@parameters('scimTargetUserValues')"
}
}
},
"Compose_Initialization_RunLink": {
"runAfter": {
"Call_Initialization_Workflow": [
"Succeeded",
"Failed",
"Skipped",
"TimedOut"
]
},
"type": "Compose",
"inputs": "@if(equals(actions('Call_Initialization_Workflow')?['status'], 'Skipped'), 'SKIPPED - Workflow did not run', concat('https://portal.azure.com/#view/Microsoft_Azure_EMA/DesignerEditor.ReactView/id/%2Fsubscriptions%2F', outputs('Compose_WorkflowInfo')?['subscriptionId'], '%2FresourceGroups%2F', outputs('Compose_WorkflowInfo')?['resourceGroup'], '%2Fproviders%2FMicrosoft.Web%2Fsites%2F', outputs('Compose_WorkflowInfo')?['logicAppName'], '%2Fworkflows%2FInitialization_Workflow/location/', replace(outputs('Compose_WorkflowInfo')?['location'], ' ', '%20'), '/isReadOnly~/false/isMonitoringView~/true/runId/', coalesce(actions('Call_Initialization_Workflow')?['outputs']?['body']?['workflowRunId'], actions('Call_Initialization_Workflow')?['outputs']?['body']?['RunId'], 'UNKNOWN')))"
},
"Call_UserTests_Workflow": {
"runAfter": {
"Call_Initialization_Workflow": [
"Succeeded"
]
},
"type": "Workflow",
"inputs": {
"host": {
"workflow": {
"id": "UserTests_Workflow"
}
},
"headers": {
"Content-Type": "application/json"
},
"body": {
"initializationData": "@body('Call_Initialization_Workflow')",
"EnabledTests": "@parameters('EnabledTests')",
"IsSoftDeleted": "@and(coalesce(body('Call_Initialization_Workflow')?['isSoftDeleteSupported'], true), parameters('IsSoftDeleted'))"
}
}
},
"Call_GroupTests_Workflow": {
"runAfter": {
"Call_Initialization_Workflow": [
"Succeeded"
]
},
"type": "Workflow",
"inputs": {
"host": {
"workflow": {
"id": "GroupTests_Workflow"
}
},
"headers": {
"Content-Type": "application/json"
},
"body": {
"initializationData": "@body('Call_Initialization_Workflow')",
"EnabledTests": "@parameters('EnabledTests')",
"scimTargetUserValues": "@parameters('scimTargetUserValues')"
}
}
},
"Call_SCIMTests_Workflow": {
"runAfter": {
"Call_Initialization_Workflow": [
"Succeeded"
]
},
"type": "Workflow",
"inputs": {
"host": {
"workflow": {
"id": "SCIMTests_Workflow"
}
},
"headers": {
"Content-Type": "application/json"
},
"body": {
"initializationData": "@body('Call_Initialization_Workflow')",
"EnabledTests": "@parameters('EnabledTests')",
"scimTargetUserValues": "@parameters('scimTargetUserValues')"
}
}
},
"Compose_UserTests_RunLink": {
"runAfter": {
"Call_UserTests_Workflow": [
"Succeeded",
"Failed",
"Skipped",
"TimedOut"
]
},
"type": "Compose",
"inputs": "@if(equals(actions('Call_UserTests_Workflow')?['status'], 'Skipped'), 'SKIPPED - Workflow did not run', concat('https://portal.azure.com/#view/Microsoft_Azure_EMA/DesignerEditor.ReactView/id/%2Fsubscriptions%2F', outputs('Compose_WorkflowInfo')?['subscriptionId'], '%2FresourceGroups%2F', outputs('Compose_WorkflowInfo')?['resourceGroup'], '%2Fproviders%2FMicrosoft.Web%2Fsites%2F', outputs('Compose_WorkflowInfo')?['logicAppName'], '%2Fworkflows%2FUserTests_Workflow/location/', replace(outputs('Compose_WorkflowInfo')?['location'], ' ', '%20'), '/isReadOnly~/false/isMonitoringView~/true/runId/', coalesce(actions('Call_UserTests_Workflow')?['outputs']?['body']?['workflowRunId'], actions('Call_UserTests_Workflow')?['outputs']?['body']?['RunId'], 'UNKNOWN')))"
},
"Compose_GroupTests_RunLink": {
"runAfter": {
"Call_GroupTests_Workflow": [
"Succeeded",
"Failed",
"Skipped",
"TimedOut"
]
},
"type": "Compose",
"inputs": "@if(equals(actions('Call_GroupTests_Workflow')?['status'], 'Skipped'), 'SKIPPED - Workflow did not run', concat('https://portal.azure.com/#view/Microsoft_Azure_EMA/DesignerEditor.ReactView/id/%2Fsubscriptions%2F', outputs('Compose_WorkflowInfo')?['subscriptionId'], '%2FresourceGroups%2F', outputs('Compose_WorkflowInfo')?['resourceGroup'], '%2Fproviders%2FMicrosoft.Web%2Fsites%2F', outputs('Compose_WorkflowInfo')?['logicAppName'], '%2Fworkflows%2FGroupTests_Workflow/location/', replace(outputs('Compose_WorkflowInfo')?['location'], ' ', '%20'), '/isReadOnly~/false/isMonitoringView~/true/runId/', coalesce(actions('Call_GroupTests_Workflow')?['outputs']?['body']?['workflowRunId'], actions('Call_GroupTests_Workflow')?['outputs']?['body']?['RunId'], 'UNKNOWN')))"
},
"Compose_SCIMTests_RunLink": {
"runAfter": {
"Call_SCIMTests_Workflow": [
"Succeeded",
"Failed",
"Skipped",
"TimedOut"
]
},
"type": "Compose",
"inputs": "@if(equals(actions('Call_SCIMTests_Workflow')?['status'], 'Skipped'), 'SKIPPED - Workflow did not run', concat('https://portal.azure.com/#view/Microsoft_Azure_EMA/DesignerEditor.ReactView/id/%2Fsubscriptions%2F', outputs('Compose_WorkflowInfo')?['subscriptionId'], '%2FresourceGroups%2F', outputs('Compose_WorkflowInfo')?['resourceGroup'], '%2Fproviders%2FMicrosoft.Web%2Fsites%2F', outputs('Compose_WorkflowInfo')?['logicAppName'], '%2Fworkflows%2FSCIMTests_Workflow/location/', replace(outputs('Compose_WorkflowInfo')?['location'], ' ', '%20'), '/isReadOnly~/false/isMonitoringView~/true/runId/', coalesce(actions('Call_SCIMTests_Workflow')?['outputs']?['body']?['workflowRunId'], actions('Call_SCIMTests_Workflow')?['outputs']?['body']?['RunId'], 'UNKNOWN')))"
},
"Until_Wait_UserTests_Complete": {
"runAfter": {
"Compose_UserTests_RunLink": [
"Succeeded"
]
},
"type": "Until",
"expression": "@or(not(equals(coalesce(body('Poll_UserTests_Status')?['properties']?['status'], 'Running'), 'Running')), not(equals(coalesce(outputs('Poll_UserTests_Status')?['statusCode'], 200), 200)))",
"limit": {
"count": 48,
"timeout": "PT4H"
},
"actions": {
"Delay_UserTests_5min": {
"runAfter": {},
"type": "Wait",
"inputs": {
"interval": {
"count": 5,
"unit": "Minute"
}
}
},
"Poll_UserTests_Status": {
"runAfter": {
"Delay_UserTests_5min": [
"Succeeded"
]
},
"type": "Http",
"inputs": {
"method": "GET",
"uri": "@concat(outputs('Compose_ManagementApiBase'), 'UserTests_Workflow/runs/', coalesce(actions('Call_UserTests_Workflow')?['outputs']?['body']?['workflowRunId'], actions('Call_UserTests_Workflow')?['outputs']?['body']?['RunId'], 'UNKNOWN'), '?api-version=2024-04-01')",
"authentication": {
"type": "ManagedServiceIdentity",
"audience": "https://management.azure.com/"
}
}
}
}
},
"Until_Wait_GroupTests_Complete": {
"runAfter": {
"Compose_GroupTests_RunLink": [
"Succeeded"
]
},
"type": "Until",
"expression": "@or(not(equals(coalesce(body('Poll_GroupTests_Status')?['properties']?['status'], 'Running'), 'Running')), not(equals(coalesce(outputs('Poll_GroupTests_Status')?['statusCode'], 200), 200)))",
"limit": {
"count": 48,
"timeout": "PT4H"
},
"actions": {
"Delay_GroupTests_5min": {
"runAfter": {},
"type": "Wait",
"inputs": {
"interval": {
"count": 5,
"unit": "Minute"
}
}
},
"Poll_GroupTests_Status": {
"runAfter": {
"Delay_GroupTests_5min": [
"Succeeded"
]
},
"type": "Http",
"inputs": {
"method": "GET",
"uri": "@concat(outputs('Compose_ManagementApiBase'), 'GroupTests_Workflow/runs/', coalesce(actions('Call_GroupTests_Workflow')?['outputs']?['body']?['workflowRunId'], actions('Call_GroupTests_Workflow')?['outputs']?['body']?['RunId'], 'UNKNOWN'), '?api-version=2024-04-01')",
"authentication": {
"type": "ManagedServiceIdentity",
"audience": "https://management.azure.com/"
}
}
}
}
},
"Until_Wait_SCIMTests_Complete": {
"runAfter": {
"Compose_SCIMTests_RunLink": [
"Succeeded"
]
},
"type": "Until",
"expression": "@or(not(equals(coalesce(body('Poll_SCIMTests_Status')?['properties']?['status'], 'Running'), 'Running')), not(equals(coalesce(outputs('Poll_SCIMTests_Status')?['statusCode'], 200), 200)))",
"limit": {
"count": 48,
"timeout": "PT4H"
},
"actions": {
"Delay_SCIMTests_5min": {
"runAfter": {},
"type": "Wait",
"inputs": {
"interval": {
"count": 5,
"unit": "Minute"
}
}
},
"Poll_SCIMTests_Status": {
"runAfter": {
"Delay_SCIMTests_5min": [
"Succeeded"
]
},
"type": "Http",
"inputs": {
"method": "GET",
"uri": "@concat(outputs('Compose_ManagementApiBase'), 'SCIMTests_Workflow/runs/', coalesce(actions('Call_SCIMTests_Workflow')?['outputs']?['body']?['workflowRunId'], actions('Call_SCIMTests_Workflow')?['outputs']?['body']?['RunId'], 'UNKNOWN'), '?api-version=2024-04-01')",
"authentication": {
"type": "ManagedServiceIdentity",
"audience": "https://management.azure.com/"
}
}
}
}
},
"Get_UserTests_Output": {
"runAfter": {
"Until_Wait_UserTests_Complete": [
"Succeeded",
"Failed",
"TimedOut"
]
},
"type": "Http",
"inputs": {
"method": "GET",
"uri": "@concat(outputs('Compose_ManagementApiBase'), 'UserTests_Workflow/runs/', coalesce(actions('Call_UserTests_Workflow')?['outputs']?['body']?['workflowRunId'], actions('Call_UserTests_Workflow')?['outputs']?['body']?['RunId'], 'UNKNOWN'), '/actions/Compose_Final_Results?api-version=2024-04-01')",
"authentication": {
"type": "ManagedServiceIdentity",
"audience": "https://management.azure.com/"
}
}
},
"Get_UserTests_Output_Content": {
"runAfter": {
"Get_UserTests_Output": [
"Succeeded"
]
},
"type": "Http",
"inputs": {
"method": "GET",
"uri": "@body('Get_UserTests_Output')?['properties']?['outputsLink']?['uri']"
}
},
"Get_GroupTests_Output": {
"runAfter": {
"Until_Wait_GroupTests_Complete": [
"Succeeded",
"Failed",
"TimedOut"
]
},
"type": "Http",
"inputs": {
"method": "GET",
"uri": "@concat(outputs('Compose_ManagementApiBase'), 'GroupTests_Workflow/runs/', coalesce(actions('Call_GroupTests_Workflow')?['outputs']?['body']?['workflowRunId'], actions('Call_GroupTests_Workflow')?['outputs']?['body']?['RunId'], 'UNKNOWN'), '/actions/Compose_Final_Results?api-version=2024-04-01')",
"authentication": {
"type": "ManagedServiceIdentity",
"audience": "https://management.azure.com/"
}
}
},
"Get_GroupTests_Output_Content": {
"runAfter": {
"Get_GroupTests_Output": [
"Succeeded"
]
},
"type": "Http",
"inputs": {
"method": "GET",
"uri": "@body('Get_GroupTests_Output')?['properties']?['outputsLink']?['uri']"
}
},
"Get_SCIMTests_Output": {
"runAfter": {
"Until_Wait_SCIMTests_Complete": [
"Succeeded",
"Failed",
"TimedOut"
]
},
"type": "Http",
"inputs": {
"method": "GET",
"uri": "@concat(outputs('Compose_ManagementApiBase'), 'SCIMTests_Workflow/runs/', coalesce(actions('Call_SCIMTests_Workflow')?['outputs']?['body']?['workflowRunId'], actions('Call_SCIMTests_Workflow')?['outputs']?['body']?['RunId'], 'UNKNOWN'), '/actions/Compose_Final_Results?api-version=2024-04-01')",
"authentication": {
"type": "ManagedServiceIdentity",
"audience": "https://management.azure.com/"
}
}
},
"Get_SCIMTests_Output_Content": {
"runAfter": {
"Get_SCIMTests_Output": [
"Succeeded"
]
},
"type": "Http",
"inputs": {
"method": "GET",
"uri": "@body('Get_SCIMTests_Output')?['properties']?['outputsLink']?['uri']"
}
},
"Evaluate_Test_Results": {
"runAfter": {
"Compose_Initialization_RunLink": [
"Succeeded",
"Failed",
"Skipped",
"TimedOut"
],
"Get_UserTests_Output_Content": [
"Succeeded",
"Failed",
"Skipped",
"TimedOut"
],
"Get_GroupTests_Output_Content": [
"Succeeded",
"Failed",
"Skipped",
"TimedOut"
],
"Get_SCIMTests_Output_Content": [
"Succeeded",
"Failed",
"Skipped",
"TimedOut"
]
},
"type": "Compose",
"inputs": {
"enabledTestsEvaluation": {
"createUserTestEnabled": "@or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'UserTests'), equals(parameters('EnabledTests'), 'Create_User_Test'))",
"createGroupTestEnabled": "@and(body('Call_Initialization_Workflow')?['isGroupSupported'], or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'GroupTests'), equals(parameters('EnabledTests'), 'Create_Group_Test')))",
"updateUserTestEnabled": "@or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'UserTests'), equals(parameters('EnabledTests'), 'Update_User_Test'))",
"disableUserTestEnabled": "@and(coalesce(body('Call_Initialization_Workflow')?['isSoftDeleteSupported'], true), parameters('IsSoftDeleted'), or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'UserTests'), equals(parameters('EnabledTests'), 'Disable_User_Test')))",
"deleteUserTestEnabled": "@or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'UserTests'), equals(parameters('EnabledTests'), 'Delete_User_Test'))",
"managerTestEnabled": "@and(body('Call_Initialization_Workflow')?['isManagerAttributeSupported'], or(or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'UserTests')), equals(parameters('EnabledTests'), 'User_Update_Manager_Test')))",
"restoreUserTestEnabled": "@or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'UserTests'), equals(parameters('EnabledTests'), 'Restore_User_Test'))",
"podUserTestEnabled": "@or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'UserTests'), equals(parameters('EnabledTests'), 'POD_User_Test'))",
"podGroupTestEnabled": "@and(body('Call_Initialization_Workflow')?['isGroupSupported'], or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'GroupTests'), equals(parameters('EnabledTests'), 'POD_Group_Test')))",
"restoreGroupTestEnabled": "@and(body('Call_Initialization_Workflow')?['isGroupSupported'], or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'GroupTests'), equals(parameters('EnabledTests'), 'Restore_Group_Test')))",
"updateGroupTestEnabled": "@and(body('Call_Initialization_Workflow')?['isGroupSupported'], or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'GroupTests'), equals(parameters('EnabledTests'), 'Update_Group_Test')))",
"deleteGroupTestEnabled": "@and(body('Call_Initialization_Workflow')?['isGroupSupported'], or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'GroupTests'), equals(parameters('EnabledTests'), 'Delete_Group_Test')))",
"addMemberTestEnabled": "@and(body('Call_Initialization_Workflow')?['isGroupSupported'], or(or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'GroupTests')), equals(parameters('EnabledTests'), 'Group_Update_Add_Member_Test')))",
"removeMemberTestEnabled": "@and(body('Call_Initialization_Workflow')?['isGroupSupported'], or(or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'GroupTests')), equals(parameters('EnabledTests'), 'Group_Update_Remove_Member_Test')))",
"schemaDiscoverabilityTestEnabled": "@or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'SCIMTests'), equals(parameters('EnabledTests'), 'Schema_Discoverability_Test'))",
"nullUpdateUserTestEnabled": "@or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'SCIMTests'), equals(parameters('EnabledTests'), 'SCIM_Null_Update_Test'), equals(parameters('EnabledTests'), 'Null_Update_User_Test'))",
"scimUserCreateTestEnabled": "@or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'SCIMTests'), equals(parameters('EnabledTests'), 'SCIM_User_Create_Test'))",
"scimGroupCreateTestEnabled": "@and(coalesce(body('Call_Initialization_Workflow')?['isGroupSupported'], false), or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'SCIMTests'), equals(parameters('EnabledTests'), 'SCIM_Group_Create_Test')))",
"scimUserUpdateTestEnabled": "@or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'SCIMTests'), equals(parameters('EnabledTests'), 'SCIM_User_Update_Test'))",
"scimGroupUpdateTestEnabled": "@and(coalesce(body('Call_Initialization_Workflow')?['isGroupSupported'], false), or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'SCIMTests'), equals(parameters('EnabledTests'), 'SCIM_Group_Update_Test')))",
"validateCredentialsTestEnabled": "@or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'SCIMTests'), equals(parameters('EnabledTests'), 'Validate_Credentials_Test'))",
"scimUserPaginationTestEnabled": "@or(equals(parameters('EnabledTests'), 'All'), equals(parameters('EnabledTests'), 'SCIMTests'), equals(parameters('EnabledTests'), 'SCIM_User_Pagination_Test'))"
},
"testResults": {
"createUserTestResult": "@coalesce(body('Get_UserTests_Output_Content')?['CreateUserTestOutputs']?['overallResult'], 'SKIPPED')",
"updateUserTestResult": "@coalesce(body('Get_UserTests_Output_Content')?['UpdateUserTestOutputs']?['overallResult'], 'SKIPPED')",
"disableUserTestResult": "@coalesce(body('Get_UserTests_Output_Content')?['DisableUserTestOutputs']?['overallResult'], 'SKIPPED')",
"deleteUserTestResult": "@coalesce(body('Get_UserTests_Output_Content')?['DeleteUserTestOutputs']?['overallResult'], 'SKIPPED')",
"managerTestResult": "@coalesce(body('Get_UserTests_Output_Content')?['ManagerTestOutputs']?['overallResult'], 'SKIPPED')",
"restoreUserTestResult": "@coalesce(body('Get_UserTests_Output_Content')?['RestoreUserTestOutputs']?['overallResult'], 'SKIPPED')",
"podUserTestResult": "@coalesce(body('Get_UserTests_Output_Content')?['PODUserTestOutputs']?['overallResult'], 'SKIPPED')",
"podGroupTestResult": "@coalesce(body('Get_GroupTests_Output_Content')?['PODGroupTestOutputs']?['overallResult'], 'SKIPPED')",
"restoreGroupTestResult": "@coalesce(body('Get_GroupTests_Output_Content')?['RestoreGroupTestOutputs']?['overallResult'], 'SKIPPED')",
"createGroupTestResult": "@coalesce(body('Get_GroupTests_Output_Content')?['CreateGroupTestOutputs']?['overallResult'], 'SKIPPED')",
"updateGroupTestResult": "@coalesce(body('Get_GroupTests_Output_Content')?['UpdateGroupTestOutputs']?['overallResult'], 'SKIPPED')",
"deleteGroupTestResult": "@coalesce(body('Get_GroupTests_Output_Content')?['DeleteGroupTestOutputs']?['overallResult'], 'SKIPPED')",
"addMemberTestResult": "@coalesce(body('Get_GroupTests_Output_Content')?['AddMemberTestOutputs']?['overallResult'], 'SKIPPED')",
"removeMemberTestResult": "@coalesce(body('Get_GroupTests_Output_Content')?['RemoveMemberTestOutputs']?['overallResult'], 'SKIPPED')",
"schemaDiscoverabilityTestResult": "@coalesce(body('Get_SCIMTests_Output_Content')?['SchemaDiscoverabilityTestOutputs']?['overallResult'], 'SKIPPED')",
"nullUpdateUserTestResult": "@coalesce(body('Get_SCIMTests_Output_Content')?['SCIMNullUpdateTestOutputs']?['overallResult'], 'SKIPPED')",
"scimUserCreateTestResult": "@coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserCreateTestOutputs']?['overallResult'], 'SKIPPED')",
"scimGroupCreateTestResult": "@coalesce(body('Get_SCIMTests_Output_Content')?['SCIMGroupCreateTestOutputs']?['overallResult'], 'SKIPPED')",
"scimUserUpdateTestResult": "@coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserUpdateTestOutputs']?['overallResult'], 'SKIPPED')",
"scimGroupUpdateTestResult": "@coalesce(body('Get_SCIMTests_Output_Content')?['SCIMGroupUpdateTestOutputs']?['overallResult'], 'SKIPPED')",
"validateCredentialsTestResult": "@coalesce(body('Get_SCIMTests_Output_Content')?['ValidateCredentialsTestOutputs']?['overallResult'], 'SKIPPED')",
"scimUserPaginationTestResult": "@coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserPaginationTestOutputs']?['overallResult'], 'SKIPPED')",
"scimGroupPaginationTestResult": "@coalesce(body('Get_SCIMTests_Output_Content')?['SCIMGroupPaginationTestOutputs']?['overallResult'], 'SKIPPED')"
},
"childWorkflowStatuses": {
"initializationStatus": "@coalesce(actions('Call_Initialization_Workflow')?['status'], 'Unknown')",
"userTestsStatus": "@coalesce(body('Poll_UserTests_Status')?['properties']?['status'], 'Unknown')",
"groupTestsStatus": "@coalesce(body('Poll_GroupTests_Status')?['properties']?['status'], 'Unknown')",
"scimTestsStatus": "@coalesce(body('Poll_SCIMTests_Status')?['properties']?['status'], 'Unknown')"
},
"childWorkflowRunLinks": {
"Initialization_Workflow": "@outputs('Compose_Initialization_RunLink')",
"UserTests_Workflow": "@outputs('Compose_UserTests_RunLink')",
"GroupTests_Workflow": "@outputs('Compose_GroupTests_RunLink')",
"SCIMTests_Workflow": "@outputs('Compose_SCIMTests_RunLink')"
},
"overallLogicAppResult": "@if(or(or(or(or(or(or(or(or(or(or(or(or(or(or(or(or(or(or(or(or(or(or(or(or(equals(coalesce(body('Get_UserTests_Output_Content')?['CreateUserTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), equals(coalesce(body('Get_UserTests_Output_Content')?['UpdateUserTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), equals(coalesce(body('Get_UserTests_Output_Content')?['DisableUserTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), equals(coalesce(body('Get_UserTests_Output_Content')?['DeleteUserTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), equals(coalesce(body('Get_UserTests_Output_Content')?['ManagerTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), or(equals(coalesce(body('Get_UserTests_Output_Content')?['RestoreUserTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMNullUpdateTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'))), equals(coalesce(body('Get_SCIMTests_Output_Content')?['ValidateCredentialsTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), equals(coalesce(body('Get_GroupTests_Output_Content')?['CreateGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), equals(coalesce(body('Get_GroupTests_Output_Content')?['UpdateGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), equals(coalesce(body('Get_GroupTests_Output_Content')?['DeleteGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), equals(coalesce(body('Get_GroupTests_Output_Content')?['AddMemberTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), equals(coalesce(body('Get_GroupTests_Output_Content')?['RemoveMemberTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), equals(coalesce(body('Get_SCIMTests_Output_Content')?['SchemaDiscoverabilityTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserCreateTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMGroupCreateTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserUpdateTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMGroupUpdateTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserPaginationTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMGroupPaginationTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), equals(coalesce(body('Get_UserTests_Output_Content')?['PODUserTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), equals(coalesce(body('Get_GroupTests_Output_Content')?['PODGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), equals(coalesce(body('Get_GroupTests_Output_Content')?['RestoreGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED')), equals(actions('Call_Initialization_Workflow')?['status'], 'Failed')), equals(coalesce(body('Poll_UserTests_Status')?['properties']?['status'], ''), 'Failed')), equals(coalesce(body('Poll_GroupTests_Status')?['properties']?['status'], ''), 'Failed')), 'Failed', if(equals(coalesce(body('Poll_SCIMTests_Status')?['properties']?['status'], ''), 'Failed'), 'Failed', 'Succeeded'))"
}
},
"Final_TestResults": {
"runAfter": {
"Evaluate_Test_Results": [
"Succeeded"
]
},
"type": "Compose",
"inputs": {
"testResults": [
{
"testName": "Create_User_Test",
"testResult": "@coalesce(body('Get_UserTests_Output_Content')?['CreateUserTestOutputs']?['result'], 'SKIPPED')",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['CreateUserTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_UserTests_Output_Content')?['CreateUserTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['CreateUserTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['CreateUserTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_UserTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['CreateUserTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "Update_User_Test",
"testResult": "@coalesce(body('Get_UserTests_Output_Content')?['UpdateUserTestOutputs']?['result'], 'SKIPPED')",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['UpdateUserTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_UserTests_Output_Content')?['UpdateUserTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['UpdateUserTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['UpdateUserTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_UserTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['UpdateUserTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "Disable_User_Test",
"testResult": "@coalesce(body('Get_UserTests_Output_Content')?['DisableUserTestOutputs']?['result'], if(not(coalesce(body('Call_Initialization_Workflow')?['isSoftDeleteSupported'], true)), 'SKIPPED - No active attribute mapping found', if(not(parameters('IsSoftDeleted')), 'SKIPPED - IsSoftDeleted parameter is false', 'SKIPPED')))",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['DisableUserTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_UserTests_Output_Content')?['DisableUserTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['DisableUserTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['DisableUserTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_UserTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['DisableUserTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "Delete_User_Test",
"testResult": "@coalesce(body('Get_UserTests_Output_Content')?['DeleteUserTestOutputs']?['result'], if(not(coalesce(body('Call_Initialization_Workflow')?['isUserDeleteSupported'], true)), 'SKIPPED - Delete action not enabled on target object', 'SKIPPED'))",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['DeleteUserTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_UserTests_Output_Content')?['DeleteUserTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['DeleteUserTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['DeleteUserTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_UserTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['DeleteUserTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "User_Update_Manager_Test",
"testResult": "@coalesce(body('Get_UserTests_Output_Content')?['ManagerTestOutputs']?['result'], if(not(body('Call_Initialization_Workflow')?['isManagerAttributeSupported']), 'SKIPPED - IsManagerAttributeSupported is false', 'SKIPPED'))",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['ManagerTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_UserTests_Output_Content')?['ManagerTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['ManagerTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['ManagerTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_UserTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['ManagerTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "Restore_User_Test",
"testResult": "@coalesce(body('Get_UserTests_Output_Content')?['RestoreUserTestOutputs']?['result'], 'SKIPPED')",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['RestoreUserTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_UserTests_Output_Content')?['RestoreUserTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['RestoreUserTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['RestoreUserTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_UserTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['RestoreUserTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "Create_Group_Test",
"testResult": "@coalesce(body('Get_GroupTests_Output_Content')?['CreateGroupTestOutputs']?['result'], if(not(body('Call_Initialization_Workflow')?['isGroupSupported']), 'SKIPPED - IsGroupSupported is false', 'SKIPPED'))",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['CreateGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_GroupTests_Output_Content')?['CreateGroupTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['CreateGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['CreateGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_GroupTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['CreateGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "Update_Group_Test",
"testResult": "@coalesce(body('Get_GroupTests_Output_Content')?['UpdateGroupTestOutputs']?['result'], if(not(body('Call_Initialization_Workflow')?['isGroupSupported']), 'SKIPPED - IsGroupSupported is false', 'SKIPPED'))",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['UpdateGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_GroupTests_Output_Content')?['UpdateGroupTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['UpdateGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['UpdateGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_GroupTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['UpdateGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "Delete_Group_Test",
"testResult": "@coalesce(body('Get_GroupTests_Output_Content')?['DeleteGroupTestOutputs']?['result'], if(not(body('Call_Initialization_Workflow')?['isGroupSupported']), 'SKIPPED - IsGroupSupported is false', if(not(coalesce(body('Call_Initialization_Workflow')?['isGroupDeleteSupported'], true)), 'SKIPPED - Delete action not enabled on target object', 'SKIPPED')))",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['DeleteGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_GroupTests_Output_Content')?['DeleteGroupTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['DeleteGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['DeleteGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_GroupTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['DeleteGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "Group_Update_Add_Member_Test",
"testResult": "@coalesce(body('Get_GroupTests_Output_Content')?['AddMemberTestOutputs']?['result'], if(not(body('Call_Initialization_Workflow')?['isGroupSupported']), 'SKIPPED - IsGroupSupported is false', 'SKIPPED'))",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['AddMemberTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_GroupTests_Output_Content')?['AddMemberTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['AddMemberTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['AddMemberTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_GroupTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['AddMemberTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "Group_Update_Remove_Member_Test",
"testResult": "@coalesce(body('Get_GroupTests_Output_Content')?['RemoveMemberTestOutputs']?['result'], if(not(body('Call_Initialization_Workflow')?['isGroupSupported']), 'SKIPPED - IsGroupSupported is false', 'SKIPPED'))",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['RemoveMemberTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_GroupTests_Output_Content')?['RemoveMemberTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['RemoveMemberTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['RemoveMemberTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_GroupTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['RemoveMemberTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "Schema_Discoverability_Test",
"testResult": "@coalesce(body('Get_SCIMTests_Output_Content')?['SchemaDiscoverabilityTestOutputs']?['result'], 'SKIPPED')",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SchemaDiscoverabilityTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_SCIMTests_Output_Content')?['SchemaDiscoverabilityTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SchemaDiscoverabilityTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SchemaDiscoverabilityTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_SCIMTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SchemaDiscoverabilityTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "SCIM_Null_Update_Test",
"testResult": "@coalesce(body('Get_SCIMTests_Output_Content')?['SCIMNullUpdateTestOutputs']?['result'], 'SKIPPED')",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMNullUpdateTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_SCIMTests_Output_Content')?['SCIMNullUpdateTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMNullUpdateTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMNullUpdateTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_SCIMTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMNullUpdateTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "SCIM_User_Create_Test",
"testResult": "@coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserCreateTestOutputs']?['result'], 'SKIPPED')",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserCreateTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_SCIMTests_Output_Content')?['SCIMUserCreateTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserCreateTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserCreateTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_SCIMTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserCreateTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "SCIM_Group_Create_Test",
"testResult": "@coalesce(body('Get_SCIMTests_Output_Content')?['SCIMGroupCreateTestOutputs']?['result'], if(not(coalesce(body('Call_Initialization_Workflow')?['isGroupSupported'], false)), 'SKIPPED - IsGroupSupported is false', 'SKIPPED'))",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMGroupCreateTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_SCIMTests_Output_Content')?['SCIMGroupCreateTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMGroupCreateTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMGroupCreateTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_SCIMTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMGroupCreateTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "SCIM_User_Update_Test",
"testResult": "@coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserUpdateTestOutputs']?['result'], 'SKIPPED')",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserUpdateTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_SCIMTests_Output_Content')?['SCIMUserUpdateTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserUpdateTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserUpdateTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_SCIMTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserUpdateTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "SCIM_Group_Update_Test",
"testResult": "@coalesce(body('Get_SCIMTests_Output_Content')?['SCIMGroupUpdateTestOutputs']?['result'], if(not(coalesce(body('Call_Initialization_Workflow')?['isGroupSupported'], false)), 'SKIPPED - IsGroupSupported is false', 'SKIPPED'))",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMGroupUpdateTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_SCIMTests_Output_Content')?['SCIMGroupUpdateTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMGroupUpdateTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMGroupUpdateTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_SCIMTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMGroupUpdateTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "Validate_Credentials_Test",
"testResult": "@coalesce(body('Get_SCIMTests_Output_Content')?['ValidateCredentialsTestOutputs']?['result'], 'SKIPPED')",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['ValidateCredentialsTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_SCIMTests_Output_Content')?['ValidateCredentialsTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['ValidateCredentialsTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['ValidateCredentialsTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_SCIMTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['ValidateCredentialsTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "SCIM_User_Pagination_Test",
"testResult": "@coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserPaginationTestOutputs']?['result'], 'SKIPPED')",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserPaginationTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_SCIMTests_Output_Content')?['SCIMUserPaginationTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserPaginationTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserPaginationTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_SCIMTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_SCIMTests_Output_Content')?['SCIMUserPaginationTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "POD_User_Test",
"testResult": "@coalesce(body('Get_UserTests_Output_Content')?['PODUserTestOutputs']?['result'], 'SKIPPED')",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['PODUserTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_UserTests_Output_Content')?['PODUserTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['PODUserTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['PODUserTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_UserTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_UserTests_Output_Content')?['PODUserTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "POD_Group_Test",
"testResult": "@coalesce(body('Get_GroupTests_Output_Content')?['PODGroupTestOutputs']?['result'], if(not(coalesce(body('Call_Initialization_Workflow')?['isGroupSupported'], false)), 'SKIPPED - IsGroupSupported is false', 'SKIPPED'))",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['PODGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_GroupTests_Output_Content')?['PODGroupTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['PODGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['PODGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_GroupTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['PODGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
},
{
"testName": "Restore_Group_Test",
"testResult": "@coalesce(body('Get_GroupTests_Output_Content')?['RestoreGroupTestOutputs']?['result'], if(not(coalesce(body('Call_Initialization_Workflow')?['isGroupSupported'], false)), 'SKIPPED - IsGroupSupported is false', 'SKIPPED'))",
"provisioningErrorDetails": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['RestoreGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), body('Get_GroupTests_Output_Content')?['RestoreGroupTestOutputs']?['errorDetails'], '')",
"recommendationUrl": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['RestoreGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'FAILED'), 'https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/known-issues', '')",
"runLink": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['RestoreGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', outputs('Compose_GroupTests_RunLink'))",
"message": "@if(equals(coalesce(body('Get_GroupTests_Output_Content')?['RestoreGroupTestOutputs']?['overallResult'], 'SKIPPED'), 'SKIPPED'), '', 'Click the runLink and search for the action Compose_Final_Results for more info.')"
}
],
"childWorkflowRunLinks": {
"Initialization_Workflow": "@outputs('Compose_Initialization_RunLink')",
"UserTests_Workflow": "@outputs('Compose_UserTests_RunLink')",
"GroupTests_Workflow": "@outputs('Compose_GroupTests_RunLink')",
"SCIMTests_Workflow": "@outputs('Compose_SCIMTests_RunLink')"
},
"overallResult": "@outputs('Evaluate_Test_Results')?['overallLogicAppResult']"
}
},
"Terminate_With_Test_Status": {
"runAfter": {
"Final_TestResults": [
"Succeeded"
]
},
"type": "Terminate",
"inputs": {
"runStatus": "@outputs('Evaluate_Test_Results')?['overallLogicAppResult']"
}
}
},
"outputs": {}
},
"kind": "Stateful"
}