param([string]$operation, [string]$secretKeyId, [string]$secretAccessKeyId, [string[]]$instanceIds)

Add-Type -Path ".\AWSSDK.dll"

function StartInstances()
{
	$ec2Client = CreateEC2Client
	
	$request = New-Object -TypeName Amazon.EC2.Model.StartInstancesRequest
	$request.InstanceId = GetInstancesFromParameterList
	
	$response = $ec2Client.StartInstances($request)
}

function StopInstances()
{
	$ec2Client = CreateEC2Client
	
	$request = New-Object -TypeName Amazon.EC2.Model.StopInstancesRequest
	$request.InstanceId = GetInstancesFromParameterList
	
	$response = $ec2Client.StopInstances($request)
}

function CreateEC2Client()
{
	$ec2Client = [Amazon.AWSClientFactory]::CreateAmazonEC2Client($secretKeyId, $secretAccessKeyId)
	$ec2Client
}

function GetInstancesFromParameterList()
{
	$instances = New-Object -TypeName System.Collections.Generic.List[string]
	
	foreach ($instanceId in $instanceIds) 
	{
		$instances.Add($instanceId)
	}
	
	,$instances
}

if ($operation -eq "start")
{
	StartInstances 
}
elseif ($operation -eq "stop") 
{
	StopInstances
}