14
14
15
15
namespace Microsoft . Azure . Commands . ResourceManager . Cmdlets . Implementation
16
16
{
17
+ using Microsoft . Azure . Commands . ResourceManager . Cmdlets . Components ;
17
18
using Microsoft . Azure . Commands . ResourceManager . Cmdlets . SdkModels ;
18
19
using System ;
19
20
using System . Collections . Generic ;
@@ -28,6 +29,56 @@ public class GetAzResourceGroupDeploymentStackSnapshot : DeploymentStacksCmdletB
28
29
29
30
internal const string ListDeploymentStack = "ListDeploymentStack" ;
30
31
32
+ internal const string GetByResourceIdParameterSetName = "GetDeploymentStackByResourceId" ;
33
+ internal const string GetByResourceGroupNameParameterSetName = "GetDeploymentStacksByResourceGroupName" ;
34
+ internal const string GetByDeploymentStackName = "GetDeploymentStackByStackName" ;
35
+
36
+ [ Parameter ( Mandatory = true , ValueFromPipelineByPropertyName = true , ParameterSetName = GetByResourceIdParameterSetName ) ]
37
+ [ ValidateNotNullOrEmpty ]
38
+ public string ResourceId { get ; set ; }
39
+
40
+ [ Parameter ( Mandatory = true , ValueFromPipelineByPropertyName = true , ParameterSetName = GetByResourceGroupNameParameterSetName ) ]
41
+ [ Parameter ( Mandatory = true , ValueFromPipelineByPropertyName = true , ParameterSetName = GetByDeploymentStackName ) ]
42
+ [ ValidateNotNullOrEmpty ]
43
+ public string ResourceGroupName { get ; set ; }
44
+
45
+
46
+ [ Parameter ( Position = 0 , Mandatory = true , ValueFromPipelineByPropertyName = true , ParameterSetName = GetByDeploymentStackName ) ]
47
+ [ Parameter ( Mandatory = true , ValueFromPipelineByPropertyName = true , ParameterSetName = GetByResourceGroupNameParameterSetName ) ]
48
+ [ ValidateNotNullOrEmpty ]
49
+ public string StackName { get ; set ; }
50
+
51
+ [ Parameter ( Mandatory = true , ValueFromPipelineByPropertyName = true , ParameterSetName = GetByResourceIdParameterSetName ) ]
52
+ [ Parameter ( Mandatory = true , ValueFromPipelineByPropertyName = true , ParameterSetName = GetByDeploymentStackName ) ]
53
+ [ ValidateNotNullOrEmpty ]
54
+ public string SnapshotName { get ; set ; }
55
+
56
+
57
+ public override void ExecuteCmdlet ( )
58
+ {
59
+ try
60
+ {
61
+ switch ( ParameterSetName )
62
+ {
63
+ case GetByResourceIdParameterSetName :
64
+ WriteObject ( DeploymentStacksSdkClient . GetResourceGroupDeploymentStackSnapshot ( ResourceIdUtility . GetResourceGroupName ( ResourceId ) , ResourceIdUtility . GetDeploymentName ( ResourceId ) , SnapshotName ) ) ;
65
+ break ;
66
+ case GetByResourceGroupNameParameterSetName :
67
+ WriteObject ( DeploymentStacksSdkClient . ListResourceGroupDeploymentStackSnapshot ( ResourceGroupName , StackName ) ) ;
68
+ break ;
69
+ case GetByDeploymentStackName :
70
+ WriteObject ( DeploymentStacksSdkClient . GetResourceGroupDeploymentStackSnapshot ( ResourceGroupName , StackName , SnapshotName ) ) ;
71
+ break ;
72
+ default :
73
+ throw new PSInvalidOperationException ( ) ;
74
+ }
75
+ }
76
+ catch ( Exception ex )
77
+ {
78
+ WriteExceptionError ( ex ) ;
79
+ }
80
+ }
81
+
31
82
32
83
#endregion
33
84
0 commit comments