Created
May 31, 2018 00:00
-
-
Save elijahgagne/a962ad36ec9244de87c5dd1e1bbdcf1c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| function Get-Policy | |
| { | |
| param ( | |
| [Parameter(Mandatory=$true)][string]$LTM, | |
| [Parameter(Mandatory=$true)][System.Management.Automation.PSCredential]$Credential, | |
| [Parameter(Mandatory=$true)][string]$Partition, | |
| [Parameter(Mandatory=$true)][string]$PolicyName, | |
| [Parameter(Mandatory=$false)][string]$LTMVersion = $DefaultLTMVersion | |
| ) | |
| $Uri = "https://$LTM/mgmt/tm/ltm/policy/~$($Partition)~$($PolicyName)`?ver=$LTMVersion" | |
| $Response = Invoke-RestMethodOverride -Method Get -Uri $Uri -Credential $Credential | |
| $Response | ConvertTo-Json | |
| } | |
| function Get-PolicyRuleList | |
| { | |
| param ( | |
| [Parameter(Mandatory=$true)][string]$LTM, | |
| [Parameter(Mandatory=$true)][System.Management.Automation.PSCredential]$Credential, | |
| [Parameter(Mandatory=$true)][string]$Partition, | |
| [Parameter(Mandatory=$true)][string]$PolicyName, | |
| [Parameter(Mandatory=$false)][string]$LTMVersion = $DefaultLTMVersion | |
| ) | |
| $Uri = "https://$LTM/mgmt/tm/ltm/policy/~$($Partition)~$($PolicyName)/rules`?ver=$LTMVersion" | |
| $Response = Invoke-RestMethodOverride -Method Get -Uri $Uri -Credential $Credential | |
| $Response | ConvertTo-Json | |
| } | |
| function Get-PolicyRule | |
| { | |
| param ( | |
| [Parameter(Mandatory=$true)][string]$LTM, | |
| [Parameter(Mandatory=$true)][System.Management.Automation.PSCredential]$Credential, | |
| [Parameter(Mandatory=$true)][string]$Partition, | |
| [Parameter(Mandatory=$true)][string]$PolicyName, | |
| [Parameter(Mandatory=$true)][string]$RuleName, | |
| [Parameter(Mandatory=$false)][string]$LTMVersion = $DefaultLTMVersion | |
| ) | |
| $Uri = "https://$LTM/mgmt/tm/ltm/policy/~$($Partition)~$($PolicyName)/rules/$($RuleName)`?ver=$LTMVersion" | |
| $Response = Invoke-RestMethodOverride -Method Get -Uri $Uri -Credential $Credential | |
| $Response | ConvertTo-Json | |
| } | |
| function Get-PolicyRuleActions | |
| { | |
| param ( | |
| [Parameter(Mandatory=$true)][string]$LTM, | |
| [Parameter(Mandatory=$true)][System.Management.Automation.PSCredential]$Credential, | |
| [Parameter(Mandatory=$true)][string]$Partition, | |
| [Parameter(Mandatory=$true)][string]$PolicyName, | |
| [Parameter(Mandatory=$true)][string]$RuleName, | |
| [Parameter(Mandatory=$false)][string]$LTMVersion = $DefaultLTMVersion | |
| ) | |
| $Uri = "https://$LTM/mgmt/tm/ltm/policy/~$($Partition)~$($PolicyName)/rules/$($RuleName)/actions`?ver=$LTMVersion" | |
| $Response = Invoke-RestMethodOverride -Method Get -Uri $Uri -Credential $Credential | |
| $Response | ConvertTo-Json | |
| } | |
| function Get-PolicyRuleConditions | |
| { | |
| param ( | |
| [Parameter(Mandatory=$true)][string]$LTM, | |
| [Parameter(Mandatory=$true)][System.Management.Automation.PSCredential]$Credential, | |
| [Parameter(Mandatory=$true)][string]$Partition, | |
| [Parameter(Mandatory=$true)][string]$PolicyName, | |
| [Parameter(Mandatory=$true)][string]$RuleName, | |
| [Parameter(Mandatory=$false)][string]$LTMVersion = $DefaultLTMVersion | |
| ) | |
| $Uri = "https://$LTM/mgmt/tm/ltm/policy/~$($Partition)~$($PolicyName)/rules/$($RuleName)/conditions`?ver=$LTMVersion" | |
| $Response = Invoke-RestMethodOverride -Method Get -Uri $Uri -Credential $Credential | |
| $Response | ConvertTo-Json | |
| } | |
| function Get-PolicyRuleAction | |
| { | |
| param ( | |
| [Parameter(Mandatory=$true)][string]$LTM, | |
| [Parameter(Mandatory=$true)][System.Management.Automation.PSCredential]$Credential, | |
| [Parameter(Mandatory=$true)][string]$Partition, | |
| [Parameter(Mandatory=$true)][string]$PolicyName, | |
| [Parameter(Mandatory=$true)][string]$RuleName, | |
| [Parameter(Mandatory=$true)][int]$Ordinal, | |
| [Parameter(Mandatory=$false)][string]$LTMVersion = $DefaultLTMVersion | |
| ) | |
| $Uri = "https://$LTM/mgmt/tm/ltm/policy/~$($Partition)~$($PolicyName)/rules/$($RuleName)/actions/$($Ordinal)`?ver=$LTMVersion" | |
| $Response = Invoke-RestMethodOverride -Method Get -Uri $Uri -Credential $Credential | |
| $Response | ConvertTo-Json | |
| } | |
| function Get-PolicyRuleCondition | |
| { | |
| param ( | |
| [Parameter(Mandatory=$true)][string]$LTM, | |
| [Parameter(Mandatory=$true)][System.Management.Automation.PSCredential]$Credential, | |
| [Parameter(Mandatory=$true)][string]$Partition, | |
| [Parameter(Mandatory=$true)][string]$PolicyName, | |
| [Parameter(Mandatory=$true)][string]$RuleName, | |
| [Parameter(Mandatory=$true)][int]$Ordinal, | |
| [Parameter(Mandatory=$false)][string]$LTMVersion = $DefaultLTMVersion | |
| ) | |
| $Uri = "https://$LTM/mgmt/tm/ltm/policy/~$($Partition)~$($PolicyName)/rules/$($RuleName)/conditions/$($Ordinal)`?ver=$LTMVersion" | |
| $Response = Invoke-RestMethodOverride -Method Get -Uri $Uri -Credential $Credential | |
| $Response | ConvertTo-Json | |
| } | |
| function New-PolicyRuleForward | |
| { | |
| param ( | |
| [Parameter(Mandatory=$true)][string]$LTM, | |
| [Parameter(Mandatory=$true)][System.Management.Automation.PSCredential]$Credential, | |
| [Parameter(Mandatory=$true)][string]$Partition, | |
| [Parameter(Mandatory=$true)][string]$PolicyName, | |
| [Parameter(Mandatory=$true)][string]$RuleName, | |
| [Parameter(Mandatory=$true)][string]$TargetPool, | |
| [Parameter(Mandatory=$false)][string]$LTMVersion = $DefaultLTMVersion | |
| ) | |
| $JSONBody = @" | |
| { | |
| "name" : "$RuleName", | |
| "ordinal" : 0, | |
| "actionsReference" : { | |
| "items" : [{ | |
| "name" : "0", | |
| "code" : 0, | |
| "forward" : true, | |
| "pool" : "$TargetPool", | |
| "port" : 0, | |
| "request" : true, | |
| "select" : true, | |
| "status" : 0, | |
| "vlanId" : 0 | |
| } | |
| ] | |
| }, | |
| "conditionsReference" : { | |
| "items" : [{ | |
| "name" : "0", | |
| "caseInsensitive" : true, | |
| "equals" : true, | |
| "external" : true, | |
| "host" : true, | |
| "httpHost" : true, | |
| "index" : 0, | |
| "present" : true, | |
| "remote" : true, | |
| "request" : true, | |
| "values" : ["$RuleName"] | |
| } | |
| ] | |
| } | |
| } | |
| "@ | |
| $Uri = "https://$LTM/mgmt/tm/ltm/policy/~$($Partition)~$($PolicyName)/rules`?ver=$LTMVersion" | |
| $Response = Invoke-RestMethodOverride -Method POST -Uri "$URI" -Credential $Credential -Body $JSONBody -ContentType 'application/json' | |
| $Response | |
| } | |
| function New-PolicyRuleRedirect | |
| { | |
| param ( | |
| [Parameter(Mandatory=$true)][string]$LTM, | |
| [Parameter(Mandatory=$true)][System.Management.Automation.PSCredential]$Credential, | |
| [Parameter(Mandatory=$true)][string]$Partition, | |
| [Parameter(Mandatory=$true)][string]$PolicyName, | |
| [Parameter(Mandatory=$true)][string]$RuleName, | |
| [Parameter(Mandatory=$true)][string]$TargetURL, | |
| [Parameter(Mandatory=$false)][string]$LTMVersion = $DefaultLTMVersion | |
| ) | |
| $JSONBody = @" | |
| { | |
| "name" : "$RuleName", | |
| "ordinal" : 0, | |
| "actionsReference" : { | |
| "items" : [{ | |
| "name" : "0", | |
| "code" : 0, | |
| "httpReply" : true, | |
| "location" : "$TargetURL", | |
| "port" : 0, | |
| "redirect" : true, | |
| "request" : true, | |
| "status" : 0, | |
| "vlanId" : 0 | |
| } | |
| ] | |
| }, | |
| "conditionsReference" : { | |
| "items" : [{ | |
| "name" : "0", | |
| "caseInsensitive" : true, | |
| "equals" : true, | |
| "external" : true, | |
| "host" : true, | |
| "httpHost" : true, | |
| "index" : 0, | |
| "present" : true, | |
| "remote" : true, | |
| "request" : true, | |
| "values" : ["$RuleName"] | |
| } | |
| ] | |
| } | |
| } | |
| "@ | |
| $Uri = "https://$LTM/mgmt/tm/ltm/policy/~$($Partition)~$($PolicyName)/rules`?ver=$LTMVersion" | |
| $Response = Invoke-RestMethodOverride -Method POST -Uri "$URI" -Credential $Credential -Body $JSONBody -ContentType 'application/json' | |
| $Response | |
| } | |
| function New-PolicyRuleRedirectWithMatch | |
| { | |
| param ( | |
| [Parameter(Mandatory=$true)][string]$LTM, | |
| [Parameter(Mandatory=$true)][System.Management.Automation.PSCredential]$Credential, | |
| [Parameter(Mandatory=$true)][string]$Partition, | |
| [Parameter(Mandatory=$true)][string]$PolicyName, | |
| [Parameter(Mandatory=$true)][string]$RuleName, | |
| [Parameter(Mandatory=$true)][string]$HostMatch, | |
| [Parameter(Mandatory=$true)][string]$UriMatch, | |
| [Parameter(Mandatory=$true)][string]$TargetURL, | |
| [Parameter(Mandatory=$false)][string]$LTMVersion = $DefaultLTMVersion | |
| ) | |
| $JSONBody = @" | |
| { | |
| "name" : "$RuleName", | |
| "ordinal" : 0, | |
| "actionsReference" : { | |
| "items" : [{ | |
| "name" : "0", | |
| "code" : 0, | |
| "httpReply" : true, | |
| "location" : "$TargetURL", | |
| "port" : 0, | |
| "redirect" : true, | |
| "request" : true, | |
| "status" : 0, | |
| "vlanId" : 0 | |
| } | |
| ] | |
| }, | |
| "conditionsReference" : { | |
| "items" : [{ | |
| "name" : "0", | |
| "caseInsensitive" : true, | |
| "equals" : true, | |
| "external" : true, | |
| "host" : true, | |
| "httpHost" : true, | |
| "index" : 0, | |
| "present" : true, | |
| "remote" : true, | |
| "request" : true, | |
| "values" : ["$HostMatch"] | |
| }, | |
| { | |
| "name" : "1", | |
| "caseInsensitive" : true, | |
| "external" : true, | |
| "httpUri": true, | |
| "index" : 0, | |
| "path": true, | |
| "present" : true, | |
| "remote" : true, | |
| "request" : true, | |
| "startsWith": true, | |
| "values" : ["$UriMatch"] | |
| } | |
| ] | |
| } | |
| } | |
| "@ | |
| $Uri = "https://$LTM/mgmt/tm/ltm/policy/~$($Partition)~$($PolicyName)/rules`?ver=$LTMVersion" | |
| $Response = Invoke-RestMethodOverride -Method POST -Uri "$URI" -Credential $Credential -Body $JSONBody -ContentType 'application/json' | |
| $Response | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment