/**
* CopyImage action
*
* Initiates the copy of an AMI from the specified source region to the region in which the API call is executed
*
* @param string $srcRegion The ID of the AWS region that contains the AMI to be copied.
* @param string $srcImageId The ID of the Amazon EC2 AMI to copy.
* @param string $name optional The name of the new Amazon EC2 AMI.
* @param string $description optional A description of the new EC2 AMI in the destination region.
* @param string $clientToken optional Unique, case-sensitive identifier you provide to ensure
* idempotency of the request
* @param string $destRegion optional The ID of the destination region.
* @return string Returns ID of the created image on success.
* @throws ClientException
* @throws Ec2Exception
*/
public function copyImage($srcRegion, $srcImageId, $name = null, $description = null, $clientToken = null, $destRegion = null)
{
$result = null;
$options = array('SourceRegion' => (string) $srcRegion, 'SourceImageId' => (string) $srcImageId);
if ($description !== null) {
$options['Description'] = (string) $description;
}
if ($name !== null) {
$options['Name'] = (string) $name;
}
if ($name !== null) {
$options['ClientToken'] = (string) $clientToken;
}
if ($destRegion !== null) {
//It overrides region to copy
$options['_host'] = $this->ec2->getUrl($destRegion);
$options['_region'] = $destRegion;
}
$response = $this->client->call(ucfirst(__FUNCTION__), $options);
if ($response->getError() === false) {
$sxml = simplexml_load_string($response->getRawContent());
$result = (string) $sxml->imageId;
}
return $result;
}