public/New-ProofpointOrg.ps1
Function New-ProofpointOrg{ [CmdletBinding(SupportsShouldProcess = $true)] Param( [Parameter(Mandatory=$true)] [string]$Domain, [Parameter(Mandatory=$true)] [string]$PrimaryDomain, [Parameter(Mandatory=$true)] [string]$Name, [Parameter(Mandatory=$true)][int]$UserLicense, [validateset ("Beginner", "Business", "Advanced", "Professional")] $LicensePackage, [validateset ("oem_partner","strategic_partner","channel","organization")]$Type ="organization", [switch]$Trial, [string]$URL, [string]$Address, [string]$Postcode, [string]$State, [string]$Country, [string]$Phone, [Parameter(Mandatory=$true)][string]$AdminEmail, [string]$TemplateID ) $Body =[ORDERED] @{ primary_domain= "$($PrimaryDomain)" name= "$($Name)" is_active= "true" type= "organization" licensing_package= "$($LicensePackage)" is_on_trial= "$(if($Trial){"true"}else{"false"})" user_licenses= "$($UserLicense)" admin_user= @{ primary_email= "$($AdminEmail)" } domains= @( @{ name= "$($PrimaryDomain)" } ) account_template_id= "$(if($TemplateID){"$($TemplateID)"}else{"null"})" } If($URL){ $Body +=@{www= "$($URL)"} } if($Address){ $Body += @{address= "$($Address)"} $Body += @{postcode= "$($Postcode)"} $Body += @{stateprov= "$($State)"} $Body += @{country= "$($Country)"} } if($Phone){ $Body += @{phone= "$($Phone)"} } $jsonBody = $Body | ConvertTo-Json if(!($PPheaders)){ Write-Error "Not Connected to Proofpoint." } try{ Invoke-RestMethod -Uri "$PPURI/orgs/$Domain/orgs" -Headers $PPheaders -Method Post -Body $jsonBody -ContentType 'application/json' }Catch{ Write-Output "$_" } } |