Functions/Accounts/Enable-PASCPMAutoManagement.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
function Enable-PASCPMAutoManagement {
    <#
.SYNOPSIS
Enables an account for Automatic CPM Management.

.DESCRIPTION
Enables an account for CPM management by setting automaticManagementEnabled to $true,
and clearing any value set for manualManagementReason.

Attempting to set automaticManagementEnabled to $true without clearing manualManagementReason
at the same time results in an error.

This function requests the API to perform both operations with a single command.

.PARAMETER AccountID
The ID of the account to enable for automatic management by CPM.

.EXAMPLE
Enable-PASCPMAutoManagement -AccountID 543_2

Sets automaticManagementEnabled to $true & clears any value set for manualManagementReason
on account with ID 543_2

.NOTES
Applicable to and requires 10.4+

.LINK
https://pspas.pspete.dev/commands/Enable-PASCPMAutoManagement
#>

    [CmdletBinding()]
    param(
        [parameter(
            Mandatory = $true,
            ValueFromPipelinebyPropertyName = $true
        )]
        [Alias("id")]
        [string]$AccountID

    )

    BEGIN {

        Assert-VersionRequirement -RequiredVersion 10.4

        $ops = [Collections.Generic.List[Object]]@(
            @{
                "path"  = "/secretManagement/automaticManagementEnabled"
                "op"    = "replace"
                "value" = $true
            },
            @{
                "path"  = "/secretManagement/manualManagementReason"
                "op"    = "replace"
                "value" = ""
            }
        )

    }#begin

    PROCESS {

        Set-PASAccount -AccountID $AccountID -operations $ops

    }#process

    END { }#end

}