function Invoke-StartDesignation { <# .SYNOPSIS This wraps the APIGateway/Lambda for scaling environments. Starts all instances by Designation. .DESCRIPTION Will start all instances by Designation tag. .PARAMETER Fqdn Fully Qualified Domain Name of the API Gateway. Each environment/account has a unique API Gateway endpoint. .PARAMETER Designation alk:designation tag to filter which instances to query. Case sensitive. .PARAMETER ApiGatewayKey Unique key for authenticating to the API Gateway. .EXAMPLE Invoke-StartDesignation -fqdn "vyq7hqcx55.execute-api.us-east-1.amazonaws.com" -designation "ci1" -apiGatewayKey "123456789" returns JSON: [ { "IsExcluded": false, "IsApp": false, "IsMic": false, "IsWeb": true, "IsRunning": true, "IsStopped": false, "InstanceId": "i-0fa21749b4e4b81ea", "Designation": "ci1", "HostName": "web27425", "Environment": "dev", "Service": "orb" } ] .NOTES Dev FQDN : vyq7hqcx55.execute-api.us-east-1.amazonaws.com Staging FQDN : cox3133b67.execute-api.us-east-1.amazonaws.com Qa FQDN : #> [CmdletBinding()] Param ( [Parameter(Mandatory = $true)] [string] $Fqdn, [Parameter(Mandatory = $true)] [string] $Designation, [Parameter(Mandatory = $true)] [string] $ApiGatewayKey ) [System.Net.ServicePointManager]::SecurityProtocol = "Tls12" $jsonBody = '{"Designation":"' + $Designation + '"}' $response = Invoke-RestMethod -Uri "https://$Fqdn/Prod/StartDesignation" -Headers @{"x-api-key"="$ApiGatewayKey"} -Method POST -body $jsonBody -ContentType "application/json" return $response }