Functions/Remove-AwsEasyStack.ps1

<#
.SYNOPSIS
    Get rid of all the stuff created by New-EasyAwsStack.
.DESCRIPTION
    N/A.
.EXAMPLE
    New-AwsEasyStack -serverclass mystackname -region where?
#>


function Remove-AwsEasyStack {
  [CmdletBinding(SupportsShouldProcess=$true,ConfirmImpact="High")]
  param(
    [Parameter(Mandatory=$true)]
    [string]$serverclass, # name your build

    [Parameter(Mandatory=$true)]
    [string]$region
  )
  process{
    #asg
      Write-Output "Downscale asg-$serverclass to 0, terminating instances."
      Update-ASAutoScalingGroup -AutoScalingGroupName asg-$serverclass -MaxSize 0 -MinSize 0 -DesiredCapacity 0 -PassThru -Force -Region $region
      start-sleep -s 180
      Remove-ASAutoScalingGroup -AutoScalingGroupName asg-$serverclass -PassThru -Force -Region $region
      start-sleep -s 10
    #elb
      Get-ELBLoadBalancer -Region $region | Where-Object {$_.LoadbalancerName -like "*$serverclass"} | Remove-ELBLoadBalancer -PassThru -Force -Region $region
      start-sleep -s 10
    #launch config
      Remove-ASLaunchConfiguration -LaunchConfigurationName lconfig-$serverclass -PassThru -Force -Region $region
      start-sleep -s 20
    #iam SSM unregister
      Unregister-IAMRolePolicy -RoleName iam-role-$serverclass -PolicyArn arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSM -PassThru -Force -Region $region
      start-sleep -s 5
    #iam instance profile
      Remove-IAMRoleFromInstanceProfile -InstanceProfileName iam-profile-$serverclass -RoleName iam-role-$serverclass -Force -PassThru -Region $region
      start-sleep -s 5
    #iam policy
      Remove-IAMRolePolicy -RoleName iam-role-$serverclass -PolicyName iam-policy-$serverclass -PassThru -Force -Region $region
      start-sleep -s 5
    #iam role
      Remove-IAMRole -RoleName iam-role-$serverclass -Force -PassThru -Region $region
      start-sleep -s 5
    #instance profile
      Remove-IAMInstanceProfile -InstanceProfileName iam-profile-$serverclass -PassThru -Force -Region $region
      start-sleep -s 20
    #securitygroups
      Get-EC2SecurityGroup -Region $region | Where-Object {$_.GroupName -like "*$serverclass"} | Remove-EC2SecurityGroup -PassThru -Force -Region $region
  } # close process
} # close function