/// <summary> /// The BundleInstance operation request that an instance is bundled the next time it boots. /// The bundling process creates a new image from a running instance and stores /// the AMI data in S3. Once bundled, the image must be registered in the normal /// way using the RegisterImage API. /// /// </summary> /// <param name="service">Instance of AmazonEC2 service</param> /// <param name="request">BundleInstanceRequest request</param> public static void InvokeBundleInstance(AmazonEC2 service, BundleInstanceRequest request) { try { BundleInstanceResponse response = service.BundleInstance(request); Console.WriteLine ("Service Response"); Console.WriteLine ("============================================================================="); Console.WriteLine (); Console.WriteLine(" BundleInstanceResponse"); if (response.IsSetResponseMetadata()) { Console.WriteLine(" ResponseMetadata"); ResponseMetadata responseMetadata = response.ResponseMetadata; if (responseMetadata.IsSetRequestId()) { Console.WriteLine(" RequestId"); Console.WriteLine(" {0}", responseMetadata.RequestId); } } if (response.IsSetBundleInstanceResult()) { Console.WriteLine(" BundleInstanceResult"); BundleInstanceResult bundleInstanceResult = response.BundleInstanceResult; List<BundleTask> bundleTaskList = bundleInstanceResult.BundleTask; foreach (BundleTask bundleTask in bundleTaskList) { Console.WriteLine(" BundleTask"); if (bundleTask.IsSetInstanceId()) { Console.WriteLine(" InstanceId"); Console.WriteLine(" {0}", bundleTask.InstanceId); } if (bundleTask.IsSetBundleId()) { Console.WriteLine(" BundleId"); Console.WriteLine(" {0}", bundleTask.BundleId); } if (bundleTask.IsSetBundleState()) { Console.WriteLine(" BundleState"); Console.WriteLine(" {0}", bundleTask.BundleState); } if (bundleTask.IsSetStartTime()) { Console.WriteLine(" StartTime"); Console.WriteLine(" {0}", bundleTask.StartTime); } if (bundleTask.IsSetUpdateTime()) { Console.WriteLine(" UpdateTime"); Console.WriteLine(" {0}", bundleTask.UpdateTime); } if (bundleTask.IsSetStorage()) { Console.WriteLine(" Storage"); Storage storage = bundleTask.Storage; if (storage.IsSetS3()) { Console.WriteLine(" S3"); S3Storage s3 = storage.S3; if (s3.IsSetBucket()) { Console.WriteLine(" Bucket"); Console.WriteLine(" {0}", s3.Bucket); } if (s3.IsSetPrefix()) { Console.WriteLine(" Prefix"); Console.WriteLine(" {0}", s3.Prefix); } if (s3.IsSetAWSAccessKeyId()) { Console.WriteLine(" AWSAccessKeyId"); Console.WriteLine(" {0}", s3.AWSAccessKeyId); } if (s3.IsSetUploadPolicy()) { Console.WriteLine(" UploadPolicy"); Console.WriteLine(" {0}", s3.UploadPolicy); } if (s3.IsSetUploadPolicySignature()) { Console.WriteLine(" UploadPolicySignature"); Console.WriteLine(" {0}", s3.UploadPolicySignature); } } } if (bundleTask.IsSetProgress()) { Console.WriteLine(" Progress"); Console.WriteLine(" {0}", bundleTask.Progress); } if (bundleTask.IsSetBundleTaskError()) { Console.WriteLine(" BundleTaskError"); BundleTaskError bundleTaskError = bundleTask.BundleTaskError; if (bundleTaskError.IsSetCode()) { Console.WriteLine(" Code"); Console.WriteLine(" {0}", bundleTaskError.Code); } if (bundleTaskError.IsSetMessage()) { Console.WriteLine(" Message"); Console.WriteLine(" {0}", bundleTaskError.Message); } } } } } catch (AmazonEC2Exception ex) { Console.WriteLine("Caught Exception: " + ex.Message); Console.WriteLine("Response Status Code: " + ex.StatusCode); Console.WriteLine("Error Code: " + ex.ErrorCode); Console.WriteLine("Error Type: " + ex.ErrorType); Console.WriteLine("Request ID: " + ex.RequestId); Console.WriteLine("XML: " + ex.XML); } }