@@ -288,7 +288,7 @@ public class SetAzureActionRule : AlertsManagementBaseCmdlet
288
288
289
289
protected override void ProcessRecordInternal ( )
290
290
{
291
- PSActionRule actionRule = new PSActionRule ( ) ;
291
+ ActionRule result = new ActionRule ( ) ;
292
292
if ( ShouldProcess (
293
293
target : string . Format ( Resources . TargetWithRG , this . Name , this . ResourceGroupName ) ,
294
294
action : Resources . CreateOrUpdateActionRule_Action ) )
@@ -314,8 +314,8 @@ protected override void ProcessRecordInternal()
314
314
)
315
315
) ;
316
316
317
- actionRule = new PSActionRule ( this . AlertsManagementClient . ActionRules . CreateUpdateWithHttpMessagesAsync (
318
- resourceGroupName : ResourceGroupName , actionRuleName : Name , actionRule : actionGroupAR ) . Result . Body ) ;
317
+ result = this . AlertsManagementClient . ActionRules . CreateUpdateWithHttpMessagesAsync (
318
+ resourceGroupName : ResourceGroupName , actionRuleName : Name , actionRule : actionGroupAR ) . Result . Body ;
319
319
break ;
320
320
321
321
case BySimplifiedFormatSuppressionActionRuleParameterSet :
@@ -354,8 +354,8 @@ protected override void ProcessRecordInternal()
354
354
)
355
355
) ;
356
356
357
- actionRule = new PSActionRule ( this . AlertsManagementClient . ActionRules . CreateUpdateWithHttpMessagesAsync (
358
- resourceGroupName : ResourceGroupName , actionRuleName : Name , actionRule : suppressionAR ) . Result . Body ) ;
357
+ result = this . AlertsManagementClient . ActionRules . CreateUpdateWithHttpMessagesAsync (
358
+ resourceGroupName : ResourceGroupName , actionRuleName : Name , actionRule : suppressionAR ) . Result . Body ;
359
359
break ;
360
360
361
361
case BySimplifiedFormatDiagnosticsActionRuleParameterSet :
@@ -376,8 +376,8 @@ protected override void ProcessRecordInternal()
376
376
)
377
377
) ;
378
378
379
- actionRule = new PSActionRule ( this . AlertsManagementClient . ActionRules . CreateUpdateWithHttpMessagesAsync (
380
- resourceGroupName : ResourceGroupName , actionRuleName : Name , actionRule : diagnosticsAR ) . Result . Body ) ;
379
+ result = this . AlertsManagementClient . ActionRules . CreateUpdateWithHttpMessagesAsync (
380
+ resourceGroupName : ResourceGroupName , actionRuleName : Name , actionRule : diagnosticsAR ) . Result . Body ;
381
381
382
382
break ;
383
383
case ByInputObjectParameterSet :
@@ -386,36 +386,38 @@ protected override void ProcessRecordInternal()
386
386
{
387
387
case "ActionGroup" :
388
388
// Create Action Rule
389
+ PSActionGroupActionRule actionGroupInputObject = ( PSActionGroupActionRule ) InputObject ;
389
390
ActionRule actionGroupARFromInputObject = new ActionRule (
390
391
location : "Global" ,
391
392
tags : new Dictionary < string , string > ( ) ,
392
393
properties : new ActionGroup (
393
- scope : JsonConvert . DeserializeObject < Scope > ( InputObject . Scope ) ,
394
- conditions : JsonConvert . DeserializeObject < Conditions > ( InputObject . Conditions ) ,
395
- actionGroupId : InputObject . ActionGroupId ,
396
- description : InputObject . Description ,
397
- status : InputObject . Status
394
+ scope : JsonConvert . DeserializeObject < Scope > ( actionGroupInputObject . Scope ) ,
395
+ conditions : JsonConvert . DeserializeObject < Conditions > ( actionGroupInputObject . Conditions ) ,
396
+ actionGroupId : actionGroupInputObject . ActionGroupId ,
397
+ description : actionGroupInputObject . Description ,
398
+ status : actionGroupInputObject . Status
398
399
)
399
400
) ;
400
401
401
- actionRule = new PSActionRule ( this . AlertsManagementClient . ActionRules . CreateUpdateWithHttpMessagesAsync (
402
- resourceGroupName : info . ResourceGroupName , actionRuleName : info . Resource , actionRule : actionGroupARFromInputObject ) . Result . Body ) ;
402
+ result = this . AlertsManagementClient . ActionRules . CreateUpdateWithHttpMessagesAsync (
403
+ resourceGroupName : info . ResourceGroupName , actionRuleName : info . Resource , actionRule : actionGroupARFromInputObject ) . Result . Body ;
403
404
break ;
404
405
405
406
case "Suppression" :
406
- SuppressionConfig configFromInputObject = new SuppressionConfig ( recurrenceType : InputObject . SuppressionConfig . RecurrenceType ) ;
407
- if ( InputObject . SuppressionConfig . RecurrenceType != "Always" )
407
+ PSSuppressionActionRule suppressionInputObject = ( PSSuppressionActionRule ) InputObject ;
408
+ SuppressionConfig configFromInputObject = new SuppressionConfig ( recurrenceType : suppressionInputObject . SuppressionConfig . RecurrenceType ) ;
409
+ if ( suppressionInputObject . SuppressionConfig . RecurrenceType != "Always" )
408
410
{
409
411
configFromInputObject . Schedule = new SuppressionSchedule (
410
- startDate : InputObject . SuppressionConfig . StartDate ,
411
- endDate : InputObject . SuppressionConfig . EndDate ,
412
- startTime : InputObject . SuppressionConfig . StartTime ,
413
- endTime : InputObject . SuppressionConfig . EndTime
412
+ startDate : suppressionInputObject . SuppressionConfig . StartDate ,
413
+ endDate : suppressionInputObject . SuppressionConfig . EndDate ,
414
+ startTime : suppressionInputObject . SuppressionConfig . StartTime ,
415
+ endTime : suppressionInputObject . SuppressionConfig . EndTime
414
416
) ;
415
417
416
418
if ( ReccurentValue . Length > 0 )
417
419
{
418
- configFromInputObject . Schedule . RecurrenceValues = InputObject . SuppressionConfig . RecurrenceValues ;
420
+ configFromInputObject . Schedule . RecurrenceValues = suppressionInputObject . SuppressionConfig . RecurrenceValues ;
419
421
}
420
422
}
421
423
@@ -424,39 +426,40 @@ protected override void ProcessRecordInternal()
424
426
location : "Global" ,
425
427
tags : new Dictionary < string , string > ( ) ,
426
428
properties : new Suppression (
427
- scope : JsonConvert . DeserializeObject < Scope > ( InputObject . Scope ) ,
428
- conditions : JsonConvert . DeserializeObject < Conditions > ( InputObject . Conditions ) ,
429
- description : InputObject . Description ,
430
- status : InputObject . Status ,
429
+ scope : JsonConvert . DeserializeObject < Scope > ( suppressionInputObject . Scope ) ,
430
+ conditions : JsonConvert . DeserializeObject < Conditions > ( suppressionInputObject . Conditions ) ,
431
+ description : suppressionInputObject . Description ,
432
+ status : suppressionInputObject . Status ,
431
433
suppressionConfig : configFromInputObject
432
434
)
433
435
) ;
434
436
435
- actionRule = new PSActionRule ( this . AlertsManagementClient . ActionRules . CreateUpdateWithHttpMessagesAsync (
436
- resourceGroupName : info . ResourceGroupName , actionRuleName : info . Resource , actionRule : suppressionARFromInputObject ) . Result . Body ) ;
437
+ result = this . AlertsManagementClient . ActionRules . CreateUpdateWithHttpMessagesAsync (
438
+ resourceGroupName : info . ResourceGroupName , actionRuleName : info . Resource , actionRule : suppressionARFromInputObject ) . Result . Body ;
437
439
break ;
438
440
439
441
case "Diagnostics" :
440
442
// Create Action Rule
443
+ PSDiagnosticsActionRule diagnosticsInputObject = ( PSDiagnosticsActionRule ) InputObject ;
441
444
ActionRule diagnosticsARFromInputObject = new ActionRule (
442
445
location : "Global" ,
443
446
tags : new Dictionary < string , string > ( ) ,
444
447
properties : new Diagnostics (
445
- scope : JsonConvert . DeserializeObject < Scope > ( InputObject . Scope ) ,
446
- conditions : JsonConvert . DeserializeObject < Conditions > ( InputObject . Conditions ) ,
447
- description : InputObject . Description ,
448
- status : InputObject . Status
448
+ scope : JsonConvert . DeserializeObject < Scope > ( diagnosticsInputObject . Scope ) ,
449
+ conditions : JsonConvert . DeserializeObject < Conditions > ( diagnosticsInputObject . Conditions ) ,
450
+ description : diagnosticsInputObject . Description ,
451
+ status : diagnosticsInputObject . Status
449
452
)
450
453
) ;
451
454
452
- actionRule = new PSActionRule ( this . AlertsManagementClient . ActionRules . CreateUpdateWithHttpMessagesAsync (
453
- resourceGroupName : info . ResourceGroupName , actionRuleName : info . Resource , actionRule : diagnosticsARFromInputObject ) . Result . Body ) ;
455
+ result = this . AlertsManagementClient . ActionRules . CreateUpdateWithHttpMessagesAsync (
456
+ resourceGroupName : info . ResourceGroupName , actionRuleName : info . Resource , actionRule : diagnosticsARFromInputObject ) . Result . Body ;
454
457
break ;
455
458
}
456
459
break ;
457
460
}
458
461
459
- WriteObject ( sendToPipeline : actionRule ) ;
462
+ WriteObject ( sendToPipeline : TransformOutput ( result ) ) ;
460
463
}
461
464
}
462
465
@@ -565,5 +568,22 @@ private string DetermineScopeType(string value)
565
568
throw new PSInvalidOperationException ( string . Format ( Resources . InvalidScopeType_Exception ) ) ;
566
569
}
567
570
}
571
+
572
+ private PSActionRule TransformOutput ( ActionRule input )
573
+ {
574
+ string actionRuleType = input . Properties . GetType ( ) . Name ;
575
+
576
+ switch ( actionRuleType )
577
+ {
578
+ case "Suppression" :
579
+ return new PSSuppressionActionRule ( input ) ;
580
+ case "ActionGroup" :
581
+ return new PSActionGroupActionRule ( input ) ;
582
+ case "Diagnostics" :
583
+ return new PSDiagnosticsActionRule ( input ) ;
584
+ default :
585
+ return new PSActionRule ( input ) ;
586
+ }
587
+ }
568
588
}
569
589
}
0 commit comments