/// <summary>
        /// Common Exception Functionality
        /// </summary>
        /// <param name="client">Client to access codepipeline</param>
        /// <param name="ex">Exception thrown by the lambdas</param>
        /// <param name="jobId">ID of the job that failed</param>
        /// <param name="context">Lambda context for logging</param>
        /// <returns><see cref="PutJobFailureResultRequest"/> to send back to codepipeline</returns>
        private async Task <PutJobFailureResultResponse> DoException(
            IAmazonCodePipeline client,
            Exception ex,
            string jobId,
            ILambdaContext context
            )
        {
            // Send the failure response and log
            context.Logger.LogLine("Exception encountered");
            context.Logger.LogLine(ex.Message);
            var failureDetails = new FailureDetails
            {
                Message = ex.Message,
                Type    = FailureType.JobFailed
            };

            return(await client.PutJobFailureResultAsync(jobId, failureDetails));
        }
 private Amazon.CodePipeline.Model.PutJobFailureResultResponse CallAWSServiceOperation(IAmazonCodePipeline client, Amazon.CodePipeline.Model.PutJobFailureResultRequest request)
 {
     Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "AWS CodePipeline", "PutJobFailureResult");
     try
     {
         #if DESKTOP
         return(client.PutJobFailureResult(request));
         #elif CORECLR
         return(client.PutJobFailureResultAsync(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;
     }
 }