public object Execute(ExecutorContext context) { var cmdletContext = context as CmdletContext; // create request var request = new Amazon.AWSMarketplaceMetering.Model.MeterUsageRequest(); if (cmdletContext.DryRun != null) { request.DryRun = cmdletContext.DryRun.Value; } if (cmdletContext.ProductCode != null) { request.ProductCode = cmdletContext.ProductCode; } if (cmdletContext.Timestamp != null) { request.Timestamp = cmdletContext.Timestamp.Value; } if (cmdletContext.UsageAllocation != null) { request.UsageAllocations = cmdletContext.UsageAllocation; } if (cmdletContext.UsageDimension != null) { request.UsageDimension = cmdletContext.UsageDimension; } if (cmdletContext.UsageQuantity != null) { request.UsageQuantity = cmdletContext.UsageQuantity.Value; } 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); }
private Amazon.AWSMarketplaceMetering.Model.MeterUsageResponse CallAWSServiceOperation(IAmazonAWSMarketplaceMetering client, Amazon.AWSMarketplaceMetering.Model.MeterUsageRequest request) { Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "AWS Marketplace Metering", "MeterUsage"); try { #if DESKTOP return(client.MeterUsage(request)); #elif CORECLR return(client.MeterUsageAsync(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; } }
/// <summary> /// Initiates the asynchronous execution of the MeterUsage operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the MeterUsage operation on AmazonAWSMarketplaceMeteringClient.</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 EndMeterUsage /// operation.</returns> public IAsyncResult BeginMeterUsage(MeterUsageRequest request, AsyncCallback callback, object state) { var marshaller = new MeterUsageRequestMarshaller(); var unmarshaller = MeterUsageResponseUnmarshaller.Instance; return BeginInvoke<MeterUsageRequest>(request, marshaller, unmarshaller, callback, state); }
/// <summary> /// API to emit metering records. For identical requests, the API is idempotent. It simply /// returns the metering record ID. /// </summary> /// <param name="request">Container for the necessary parameters to execute the MeterUsage service method.</param> /// /// <returns>The response from the MeterUsage service method, as returned by AWSMarketplaceMetering.</returns> /// <exception cref="Amazon.AWSMarketplaceMetering.Model.DuplicateRequestException"> /// A metering record has already been emitted by the same EC2 instance for the given /// {usageDimension, timestamp} with a different usageQuantity. /// </exception> /// <exception cref="Amazon.AWSMarketplaceMetering.Model.InternalServiceErrorException"> /// An internal error has occurred. Retry your request. If the problem persists, post /// a message with details on the AWS forums. /// </exception> /// <exception cref="Amazon.AWSMarketplaceMetering.Model.InvalidEndpointRegionException"> /// The endpoint being called is in a region different from your EC2 instance. The region /// of the Metering service endpoint and the region of the EC2 instance must match. /// </exception> /// <exception cref="Amazon.AWSMarketplaceMetering.Model.InvalidProductCodeException"> /// The product code passed does not match the product code used for publishing the product. /// </exception> /// <exception cref="Amazon.AWSMarketplaceMetering.Model.InvalidUsageDimensionException"> /// The usage dimension does not match one of the UsageDimensions associated with products. /// </exception> /// <exception cref="Amazon.AWSMarketplaceMetering.Model.ThrottlingException"> /// The calls to the MeterUsage API are throttled. /// </exception> /// <exception cref="Amazon.AWSMarketplaceMetering.Model.TimestampOutOfBoundsException"> /// The timestamp value passed in the meterUsage() is out of allowed range. /// </exception> public MeterUsageResponse MeterUsage(MeterUsageRequest request) { var marshaller = new MeterUsageRequestMarshaller(); var unmarshaller = MeterUsageResponseUnmarshaller.Instance; return Invoke<MeterUsageRequest,MeterUsageResponse>(request, marshaller, unmarshaller); }
/// <summary> /// Initiates the asynchronous execution of the MeterUsage operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the MeterUsage 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<MeterUsageResponse> MeterUsageAsync(MeterUsageRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new MeterUsageRequestMarshaller(); var unmarshaller = MeterUsageResponseUnmarshaller.Instance; return InvokeAsync<MeterUsageRequest,MeterUsageResponse>(request, marshaller, unmarshaller, cancellationToken); }