public/Set-ProofpointPackage.ps1
<# .SYNOPSIS Sets Proofpoint Package Options. .DESCRIPTION Sets Package Options .PARAMETER Domain Any Domain in org. .PARAMETER LicensePackage ("Beginner", "Business", "Advanced", "Professional") .PARAMETER Activate Activates Package Deactivate with -Activate:$false .PARAMETER ConfirmEULA Confirms EULA Deactivate with -ConfirmEULA:$false .PARAMETER ExtendTrial Extends Package Trial Deactivate with -ExtendTrial:$false .EXAMPLE PS> Set-ProofpointPackage -Domain microsoft.com -LicensePackage "Beginner" -Activate:$False #> Function Set-ProofpointPackage{ [CmdletBinding(SupportsShouldProcess = $true)] Param( [Parameter(Mandatory=$true)] [string]$Domain, [validateset ("Beginner", "Business", "Advanced", "Professional")] $LicensePackage, [switch]$Activate, [Switch]$ConfirmEula, [string]$ExtendTrial ) $PSBoundParameters| Out-Null $Body = @{ } switch ($PSBoundParameters.keys){ "LicensePackage" {$Body += @{package = "$($PSBoundParameters["LicensePackage"])"}} "Activate" {$Body += @{is_activated = "$($PSBoundParameters["Activate"])"}} "ConfirmEula" {$Body += @{is_eula_confirmed = "$($PSBoundParameters["ConfirmEula"])"}} "ExtendTrial" {$Body += @{is_trial_extended = "$($PSBoundParameters["ExtendTrial"])"}} } $jsonBody = $Body | ConvertTo-Json if(!($PPheaders)){ Write-Error "Not Connected to Proofpoint." } try{ Invoke-RestMethod -Uri "$PPURI/orgs/$Domain/package" -Headers $PPheaders -Method put -Body $jsonBody -ContentType 'application/json' }Catch{ Write-Output "$_" } } |