public object Execute(ExecutorContext context) { var cmdletContext = context as CmdletContext; // create request var request = new Amazon.EC2.Model.CreateImageRequest(); if (cmdletContext.BlockDeviceMapping != null) { request.BlockDeviceMappings = cmdletContext.BlockDeviceMapping; } if (cmdletContext.Description != null) { request.Description = cmdletContext.Description; } if (cmdletContext.InstanceId != null) { request.InstanceId = cmdletContext.InstanceId; } if (cmdletContext.Name != null) { request.Name = cmdletContext.Name; } if (cmdletContext.NoReboot != null) { request.NoReboot = cmdletContext.NoReboot.Value; } if (cmdletContext.TagSpecification != null) { request.TagSpecifications = cmdletContext.TagSpecification; } CmdletOutput output; // issue call var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint); try { var response = CallAWSServiceOperation(client, request); object pipelineOutput = null; pipelineOutput = cmdletContext.Select(response, this); output = new CmdletOutput { PipelineOutput = pipelineOutput, ServiceResponse = response }; } catch (Exception e) { output = new CmdletOutput { ErrorResponse = e }; } return(output); }
/// <summary> /// Initiates the asynchronous execution of the CreateImage operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the CreateImage operation.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> /// <returns>The task object representing the asynchronous operation.</returns> public Task<CreateImageResponse> CreateImageAsync(CreateImageRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new CreateImageRequestMarshaller(); var unmarshaller = CreateImageResponseUnmarshaller.Instance; return InvokeAsync<CreateImageRequest,CreateImageResponse>(request, marshaller, unmarshaller, cancellationToken); }
/// <summary> /// Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either /// running or stopped. /// /// /// <para> /// If you customized your instance with instance store volumes or EBS volumes in addition /// to the root device volume, the new AMI contains block device mapping information for /// those volumes. When you launch an instance from this new AMI, the instance automatically /// launches with those additional volumes. /// </para> /// /// <para> /// For more information, see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html">Creating /// Amazon EBS-Backed Linux AMIs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>. /// </para> /// </summary> /// <param name="request">Container for the necessary parameters to execute the CreateImage service method.</param> /// /// <returns>The response from the CreateImage service method, as returned by EC2.</returns> public CreateImageResponse CreateImage(CreateImageRequest request) { var marshaller = new CreateImageRequestMarshaller(); var unmarshaller = CreateImageResponseUnmarshaller.Instance; return Invoke<CreateImageRequest,CreateImageResponse>(request, marshaller, unmarshaller); }
/// <summary> /// Initiates the asynchronous execution of the CreateImage operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the CreateImage operation on AmazonEC2Client.</param> /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes.</param> /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback /// procedure using the AsyncState property.</param> /// /// <returns>An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreateImage /// operation.</returns> public IAsyncResult BeginCreateImage(CreateImageRequest request, AsyncCallback callback, object state) { var marshaller = new CreateImageRequestMarshaller(); var unmarshaller = CreateImageResponseUnmarshaller.Instance; return BeginInvoke<CreateImageRequest>(request, marshaller, unmarshaller, callback, state); }
IAsyncResult invokeCreateImage(CreateImageRequest createImageRequest, AsyncCallback callback, object state, bool synchronized) { IRequest irequest = new CreateImageRequestMarshaller().Marshall(createImageRequest); var unmarshaller = CreateImageResponseUnmarshaller.GetInstance(); AsyncResult result = new AsyncResult(irequest, callback, state, synchronized, signer, unmarshaller); Invoke(result); return result; }
/// <summary> /// Initiates the asynchronous execution of the CreateImage operation. /// <seealso cref="Amazon.EC2.IAmazonEC2.CreateImage"/> /// </summary> /// /// <param name="createImageRequest">Container for the necessary parameters to execute the CreateImage operation on AmazonEC2.</param> /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes.</param> /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback /// procedure using the AsyncState property.</param> /// /// <returns>An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreateImage /// operation.</returns> public IAsyncResult BeginCreateImage(CreateImageRequest createImageRequest, AsyncCallback callback, object state) { return invokeCreateImage(createImageRequest, callback, state, false); }
/// <summary> /// <para>Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped.</para> <para>If you customized /// your instance with instance store volumes or EBS volumes in addition to the root device volume, the new AMI contains block device mapping /// information for those volumes. When you launch an instance from this new AMI, the instance automatically launches with those additional /// volumes.</para> <para>For more information, see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html" /// >Creating Amazon EBS-Backed Linux AMIs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .</para> /// </summary> /// /// <param name="createImageRequest">Container for the necessary parameters to execute the CreateImage service method on AmazonEC2.</param> /// /// <returns>The response from the CreateImage service method, as returned by AmazonEC2.</returns> /// public CreateImageResponse CreateImage(CreateImageRequest createImageRequest) { IAsyncResult asyncResult = invokeCreateImage(createImageRequest, null, null, true); return EndCreateImage(asyncResult); }
/// <summary> /// <para>Creates an Amazon EBS-backed AMI from an Amazon EBS-backed instance that is either running or stopped.</para> <para>If you customized /// your instance with instance store volumes or EBS volumes in addition to the root device volume, the new AMI contains block device mapping /// information for those volumes. When you launch an instance from this new AMI, the instance automatically launches with those additional /// volumes.</para> <para>For more information, see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html">Creating Amazon EBS-Backed Linux AMIs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .</para> /// </summary> /// /// <param name="createImageRequest">Container for the necessary parameters to execute the CreateImage service method on AmazonEC2.</param> /// /// <returns>The response from the CreateImage service method, as returned by AmazonEC2.</returns> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> public Task<CreateImageResponse> CreateImageAsync(CreateImageRequest createImageRequest, CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new CreateImageRequestMarshaller(); var unmarshaller = CreateImageResponseUnmarshaller.GetInstance(); return Invoke<IRequest, CreateImageRequest, CreateImageResponse>(createImageRequest, marshaller, unmarshaller, signer, cancellationToken); }
internal CreateImageResponse CreateImage(CreateImageRequest request) { var task = CreateImageAsync(request); try { return task.Result; } catch(AggregateException e) { ExceptionDispatchInfo.Capture(e.InnerException).Throw(); return null; } }
/// <summary> /// Initiates the asynchronous execution of the CreateImage operation. /// <seealso cref="Amazon.EC2.IAmazonEC2.CreateImage"/> /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the CreateImage operation.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> /// <returns>The task object representing the asynchronous operation.</returns> public async Task<CreateImageResponse> CreateImageAsync(CreateImageRequest request, CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new CreateImageRequestMarshaller(); var unmarshaller = CreateImageResponseUnmarshaller.GetInstance(); var response = await Invoke<IRequest, CreateImageRequest, CreateImageResponse>(request, marshaller, unmarshaller, signer, cancellationToken) .ConfigureAwait(continueOnCapturedContext: false); return response; }
/// <summary> /// <para> Creates an Amazon EBS-backed AMI from a "running" or "stopped" instance. AMIs that use an Amazon EBS root device boot faster than /// AMIs that use instance stores. They can be up to 1 TiB in size, use storage that persists on instance failure, and can be stopped and /// started. </para> /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the CreateImage service method on AmazonEC2.</param> /// /// <returns>The response from the CreateImage service method, as returned by AmazonEC2.</returns> public CreateImageResponse CreateImage(CreateImageRequest request) { var task = CreateImageAsync(request); try { return task.Result; } catch(AggregateException e) { throw e.InnerException; } }
private Amazon.EC2.Model.CreateImageResponse CallAWSServiceOperation(IAmazonEC2 client, Amazon.EC2.Model.CreateImageRequest request) { Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon Elastic Compute Cloud (EC2)", "CreateImage"); try { #if DESKTOP return(client.CreateImage(request)); #elif CORECLR return(client.CreateImageAsync(request).GetAwaiter().GetResult()); #else #error "Unknown build edition" #endif } catch (AmazonServiceException exc) { var webException = exc.InnerException as System.Net.WebException; if (webException != null) { throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException); } throw; } }