Functions/Platforms/Remove-PASPlatform.ps1

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
Function Remove-PASPlatform {
    <#
.SYNOPSIS
Deletes a platform.

.DESCRIPTION
Deletes, target, dependent, group or rotational group platform.

.PARAMETER TargetPlatform
Specify if ID relates to Target platform

.PARAMETER DependentPlatform
Specify if ID relates to Dependent platform

.PARAMETER GroupPlatform
Specify if ID relates to Group platform

.PARAMETER RotationalGroup
Specify if ID relates to Rotational Group platform

.PARAMETER ID
The unique ID number of the platofrm to delete.

.EXAMPLE
Remove-PASPlatform -TargetPlatform -ID 9

Deletes Target Platform with ID of 9

.EXAMPLE
Remove-PASPlatform -DependentPlatform -ID 9

Deletes Dependent Platform with ID of 9

.EXAMPLE
Remove-PASPlatform -GroupPlatform -ID 39

Deletes Group Platform with ID of 39

.EXAMPLE
Remove-PASPlatform -RotationalGroup -ID 59

Deletes Rotational Group Platform with ID of 59

.NOTES
PAS 11.4 minimum

.LINK
https://pspas.pspete.dev/commands/Remove-PASPlatform
#>

    [CmdletBinding(SupportsShouldProcess)]
    param(
        [parameter(
            Mandatory = $true,
            ValueFromPipelinebyPropertyName = $true,
            ParameterSetName = "targets"
        )]
        [switch]$TargetPlatform,

        [parameter(
            Mandatory = $true,
            ValueFromPipelinebyPropertyName = $true,
            ParameterSetName = "dependents"
        )]
        [switch]$DependentPlatform,

        [parameter(
            Mandatory = $true,
            ValueFromPipelinebyPropertyName = $true,
            ParameterSetName = "groups"
        )]
        [switch]$GroupPlatform,

        [parameter(
            Mandatory = $true,
            ValueFromPipelinebyPropertyName = $true,
            ParameterSetName = "rotationalGroups"
        )]
        [switch]$RotationalGroup,

        [parameter(
            Mandatory = $true,
            ValueFromPipelinebyPropertyName = $true
        )]
        [int]$ID
    )

    BEGIN {

        $MinimumVersion = [System.Version]"11.4"

    }#begin

    Process {

        Assert-VersionRequirement -ExternalVersion $Script:ExternalVersion -RequiredVersion $MinimumVersion

        #Create URL for request
        $URI = "$Script:BaseURI/API/Platforms/$($PSCmdLet.ParameterSetName)/$ID"

        if ($PSCmdlet.ShouldProcess($ID, "Delete $($PSCmdLet.ParameterSetName) Platform")) {

            #send request to web service
            Invoke-PASRestMethod -Uri $URI -Method DELETE -WebSession $Script:WebSession

        }

    }

}