public/TrustedOrigin.ps1
# https://developer.okta.com/docs/reference/api/trusted-origins/ Set-StrictMode -Version Latest function Get-OktaTrustedOrigin { [CmdletBinding(DefaultParameterSetName="Filter")] param ( [Parameter(Mandatory,ParameterSetName="ById",ValueFromPipeline,ValueFromPipelineByPropertyName)] [Alias("Id")] [string] $TrustedOriginId, [Parameter(ParameterSetName="Filter",Position=0)] [string] $Filter, [Parameter(ParameterSetName="Filter")] [uint32] $Limit, [Parameter(ParameterSetName="Next")] [switch] $Next, [switch] $Json, [Parameter(ParameterSetName="Next")] [switch] $NoWarn ) process { if ($TrustedOriginId) { Invoke-OktaApi -RelativeUri "trustedOrigins/$TrustedOriginId" -Method GET -Json:$Json } else { Invoke-OktaApi -RelativeUri "trustedOrigins$(Get-QueryParameters -Limit $Limit -Filter $Filter)" -Method GET -Json:$Json -Next:$Next -NoWarn:$NoWarn } } } function New-OktaTrustedOrigin { [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSShouldProcess", "")] [CmdletBinding(SupportsShouldProcess)] param ( [Parameter(Mandatory)] [string] $Name, [Parameter(Mandatory)] [string] $Origin, [switch] $CORS, [switch] $Redirect ) if (!$CORS -and !$Redirect) { throw "CORS and/or Redirect must be set" } $body = @{ name = $Name origin = $Origin } if ($CORS) { $body["scopes"] = @(@{ type = 'CORS'}) } if ($Redirect) { if (!$body["scopes"]) { $body["scopes"] = @() } $body.scopes += @{ type = 'REDIRECT'} } Invoke-OktaApi -RelativeUri "trustedOrigins" -Body $body -Method POST } function Set-OktaTrustedOrigin { [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSShouldProcess", "")] [CmdletBinding(SupportsShouldProcess)] param ( [Parameter(Mandatory,Position=0,ValueFromPipeline)] [PSCustomObject] $TrustedOrigin ) process { Invoke-OktaApi -RelativeUri "trustedOrigins/$($TrustedOrigin.Id)" -Body $TrustedOrigin -Method PUT } } function Remove-OktaTrustedOrigin { [CmdletBinding(SupportsShouldProcess, ConfirmImpact = "High")] param( [Parameter(Mandatory,ValueFromPipeline,ValueFromPipelineByPropertyName)] [Alias('Id')] [string] $TrustedOriginId ) process { Set-StrictMode -Version Latest $to = Get-OktaTrustedOrigin -Id $TrustedOriginId if ($to) { if ($PSCmdlet.ShouldProcess($to.name,"Remove TrustedOrigin")) { Invoke-OktaApi -RelativeUri "trustedOrigins/$TrustedOriginId" -Method DELETE } } else { Write-Warning "TrustedOrigin with id '$TrustedOriginId' not found" } } } |